{
  "name": "opennebula",
  "version": "1.5.0",
  "description": "A Pulumi provider dynamically bridged from opennebula.",
  "attribution": "This Pulumi package is based on the [`opennebula` Terraform Provider](https://github.com/opennebula/terraform-provider-opennebula).",
  "repository": "https://github.com/opennebula/terraform-provider-opennebula",
  "publisher": "opennebula",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "compatibility": "tfbridge20",
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true
    },
    "go": {
      "generateExtraInputTypes": true,
      "importBasePath": "github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula",
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true,
      "rootPackageName": "opennebula"
    },
    "java": {
      "basePackage": "",
      "buildFiles": "",
      "gradleNexusPublishPluginVersion": "",
      "gradleTest": ""
    },
    "nodejs": {
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true,
      "liftSingleValueMethodReturns": true,
      "packageDescription": "A Pulumi provider dynamically bridged from opennebula.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/opennebula/terraform-provider-opennebula)\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-opennebula` repo](https://github.com/opennebula/terraform-provider-opennebula/issues).",
      "respectSchemaVersion": true
    },
    "python": {
      "compatibility": "tfbridge20",
      "pyproject": {
        "enabled": true
      },
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/opennebula/terraform-provider-opennebula)\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-opennebula` repo](https://github.com/opennebula/terraform-provider-opennebula/issues).",
      "respectSchemaVersion": true
    }
  },
  "config": {
    "variables": {
      "defaultTags": {
        "type": "array",
        "items": {
          "$ref": "#/types/opennebula:config%2FdefaultTags:defaultTags"
        },
        "description": "Add default tags to the resources\n"
      },
      "endpoint": {
        "type": "string",
        "description": "The URL to your public or private OpenNebula\n"
      },
      "flowEndpoint": {
        "type": "string",
        "description": "The URL to your public or private OpenNebula Flow server\n"
      },
      "insecure": {
        "type": "boolean",
        "description": "Disable TLS validation\n"
      },
      "password": {
        "type": "string",
        "description": "The password for the user\n"
      },
      "username": {
        "type": "string",
        "description": "The ID of the user to identify as\n"
      }
    },
    "defaults": [
      "endpoint",
      "password",
      "username"
    ]
  },
  "types": {
    "opennebula:config/defaultTags:defaultTags": {
      "properties": {
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags to apply\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/ClusterTemplateSection:ClusterTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Collection of custom tags.\n"
        },
        "name": {
          "type": "string",
          "description": "The vector name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/DatastoreCeph:DatastoreCeph": {
      "properties": {
        "config": {
          "type": "string",
          "description": "Non-default Ceph configuration file if needed.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Ceph monitors.\n"
        },
        "key": {
          "type": "string",
          "description": "Key file for user. if not set default locations are used.\n"
        },
        "localStorage": {
          "type": "boolean",
          "description": "Use local host storage, SSH mode.\n"
        },
        "poolName": {
          "type": "string",
          "description": "Ceph pool name.\n"
        },
        "rbdFormat": {
          "type": "string",
          "description": "By default RBD Format 2 will be used.\n"
        },
        "secret": {
          "type": "string",
          "description": "The UUID of the libvirt secret.\n"
        },
        "trash": {
          "type": "boolean",
          "description": "Enables trash feature on given datastore.\n"
        },
        "user": {
          "type": "string",
          "description": "Ceph user name.\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/DatastoreCustom:DatastoreCustom": {
      "properties": {
        "datastore": {
          "type": "string",
          "description": "name of the datastore driver (named `DS_MAD` in OpenNebula).\n"
        },
        "transfer": {
          "type": "string",
          "description": "name of the transfer driver (named `TM_MAD` in opennebula).\n"
        }
      },
      "type": "object",
      "required": [
        "transfer"
      ]
    },
    "opennebula:index/GroupOpennebula:GroupOpennebula": {
      "properties": {
        "apiListOrder": {
          "type": "string",
          "description": "Sets order of elements by ID in list API calls: ASC or DESC respectively for ascending or descending order\n"
        },
        "defaultImagePersistent": {
          "type": "string",
          "description": "Control the default value for the PERSISTENT attribute on image creation ( clone and disk save-as): should be YES or NO\n"
        },
        "defaultImagePersistentNew": {
          "type": "string",
          "description": "Control the default value for the PERSISTENT attribute on image creation ( only new images): should be YES or NO\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/GroupQuota:GroupQuota": {
      "properties": {
        "datastoreQuotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuotaDatastoreQuota:GroupQuotaDatastoreQuota"
          },
          "description": "List of datastore quotas. See Datastore quotas parameters below for details.\n"
        },
        "imageQuotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuotaImageQuota:GroupQuotaImageQuota"
          },
          "description": "List of image quotas. See Image quotas parameters below for details\n"
        },
        "networkQuotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuotaNetworkQuota:GroupQuotaNetworkQuota"
          },
          "description": "List of network quotas. See Network quotas parameters below for details.\n"
        },
        "vmQuotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuotaVmQuota:GroupQuotaVmQuota"
          },
          "description": "See Virtual Machine quotas parameters below for details\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/GroupQuotaDatastoreQuota:GroupQuotaDatastoreQuota": {
      "properties": {
        "id": {
          "type": "number",
          "description": "ID of the group.\n"
        },
        "images": {
          "type": "number",
          "description": "Maximum number of Images allowed (default: default quota)\n"
        },
        "size": {
          "type": "number",
          "description": "Maximum size in MB allowed on the datastore (default: default quota)\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "opennebula:index/GroupQuotaImageQuota:GroupQuotaImageQuota": {
      "properties": {
        "id": {
          "type": "number",
          "description": "ID of the group.\n"
        },
        "runningVms": {
          "type": "number",
          "description": "Maximum number of Running VMs allowed for this image (default: default quota)\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "opennebula:index/GroupQuotaNetworkQuota:GroupQuotaNetworkQuota": {
      "properties": {
        "id": {
          "type": "number",
          "description": "ID of the group.\n"
        },
        "leases": {
          "type": "number",
          "description": "Maximum number of Leases allowed for this network (default: default quota)\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "opennebula:index/GroupQuotaVmQuota:GroupQuotaVmQuota": {
      "properties": {
        "cpu": {
          "type": "number",
          "description": "Maximum number of CPU allowed (default: default quota)\n"
        },
        "memory": {
          "type": "number",
          "description": "Maximum Memory (MB) allowed (default: default quota)\n"
        },
        "runningCpu": {
          "type": "number",
          "description": "Maximum number of 'running' CPUs allowed (default: default quota)\n"
        },
        "runningMemory": {
          "type": "number",
          "description": "'Running' Memory (MB) allowed (default: default quota)\n"
        },
        "runningVms": {
          "type": "number",
          "description": "Maximum number of Running VMs allowed (default: default quota)\n"
        },
        "systemDiskSize": {
          "type": "number",
          "description": "Maximum System Disk size (MB) allowed (default: default quota)\n"
        },
        "vms": {
          "type": "number",
          "description": "Maximum number of VMs allowed (default: default quota)\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/GroupQuotasDatastore:GroupQuotasDatastore": {
      "properties": {
        "id": {
          "type": "number",
          "description": "Datastore ID.\n"
        },
        "images": {
          "type": "number",
          "description": "Maximum number of images allowed on the datastore. Defaults to `default quota`\n"
        },
        "size": {
          "type": "number",
          "description": "Total size in MB allowed on the datastore. Defaults to `default quota`\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "opennebula:index/GroupQuotasImage:GroupQuotasImage": {
      "properties": {
        "id": {
          "type": "number",
          "description": "Image ID.\n"
        },
        "runningVms": {
          "type": "number",
          "description": "Maximum number of Virtual Machines in `RUNNING` state with this image ID attached. Defaults to `default quota`\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "opennebula:index/GroupQuotasNetwork:GroupQuotasNetwork": {
      "properties": {
        "id": {
          "type": "number",
          "description": "Network ID.\n"
        },
        "leases": {
          "type": "number",
          "description": "Maximum number of ip leases allowed on the network. Defaults to `default quota`\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "opennebula:index/GroupQuotasVm:GroupQuotasVm": {
      "properties": {
        "cpu": {
          "type": "number",
          "description": "Total of CPUs allowed. Defaults to `default quota`.\n"
        },
        "memory": {
          "type": "number",
          "description": "Total of memory (in MB) allowed. Defaults to `default quota`.\n"
        },
        "runningCpu": {
          "type": "number",
          "description": "Virtual Machine CPUs allowed in `RUNNING` state. Defaults to `default quota`.\n"
        },
        "runningMemory": {
          "type": "number",
          "description": "Virtual Machine Memory (in MB) allowed in `RUNNING` state. Defaults to `default quota`.\n"
        },
        "runningVms": {
          "type": "number",
          "description": "Number of Virtual Machines allowed in `RUNNING` state. Defaults to `default quota`.\n"
        },
        "systemDiskSize": {
          "type": "number",
          "description": "Maximum disk global size (in MB) allowed on a `SYSTEM` datastore. Defaults to `default quota`.\n"
        },
        "vms": {
          "type": "number",
          "description": "Maximum number of Virtual Machines allowed. Defaults to `default quota`.\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/GroupSunstone:GroupSunstone": {
      "properties": {
        "defaultView": {
          "type": "string",
          "description": "Default Sunstone view for regular users\n"
        },
        "groupAdminDefaultView": {
          "type": "string",
          "description": "Default Sunstone view for group admin users\n"
        },
        "groupAdminViews": {
          "type": "string",
          "description": "List of available views for the group admins\n"
        },
        "views": {
          "type": "string",
          "description": "List of available views for regular users\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/GroupTemplateSection:GroupTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Collection of custom tags.\n"
        },
        "name": {
          "type": "string",
          "description": "The vector name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/HostCustom:HostCustom": {
      "properties": {
        "information": {
          "type": "string",
          "description": "name of the information driver (named `IM_MAD` in opennebula)\n"
        },
        "virtualization": {
          "type": "string",
          "description": "name of the virtualization driver (named `VM_MAD` in OpenNebula)\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/HostOvercommit:HostOvercommit": {
      "properties": {
        "cpu": {
          "type": "number",
          "description": "Maximum allocatable CPU capacity  in number of cores multiplied by 100.\n"
        },
        "memory": {
          "type": "number",
          "description": "Maximum allocatable memory in KB.\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/HostTimeouts:HostTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "opennebula:index/ImageTemplateSection:ImageTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Collection of custom tags.\n"
        },
        "name": {
          "type": "string",
          "description": "The vector name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/ImageTimeouts:ImageTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "opennebula:index/MarketplaceApplianceTemplateSection:MarketplaceApplianceTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/MarketplaceApplianceTimeouts:MarketplaceApplianceTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "opennebula:index/MarketplaceHttp:MarketplaceHttp": {
      "properties": {
        "endpointUrl": {
          "type": "string",
          "description": "Base URL of the Marketplace HTTP endpoint.\n"
        },
        "path": {
          "type": "string",
          "description": "Absolute directory path to place images in the front-end or in the hosts pointed at by storage_bridge_list.\n"
        },
        "storageBridgeLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of servers to access the public directory.\n"
        }
      },
      "type": "object",
      "required": [
        "endpointUrl",
        "path"
      ]
    },
    "opennebula:index/MarketplaceLxc:MarketplaceLxc": {
      "properties": {
        "cpu": {
          "type": "number",
          "description": "VM template CPU.\n"
        },
        "endpointUrl": {
          "type": "string",
          "description": "The base URL of the Market.\n"
        },
        "filesystem": {
          "type": "string",
          "description": "Filesystem used for the image.\n"
        },
        "imageBlockFileFormat": {
          "type": "string",
          "description": "Image block file format.\n"
        },
        "memory": {
          "type": "number",
          "description": "VM template memory.\n"
        },
        "privileged": {
          "type": "boolean",
          "description": "Secrurity mode of the Linux Container.\n"
        },
        "roofsImageSize": {
          "type": "number",
          "description": "Size in MB for the image holding the rootfs.\n"
        },
        "skipUntested": {
          "type": "boolean",
          "description": "Include only apps with support for context.\n"
        },
        "vcpu": {
          "type": "number",
          "description": "VM template VCPU.\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/MarketplaceOne:MarketplaceOne": {
      "properties": {
        "endpointUrl": {
          "type": "string",
          "description": "The endpoint URL of the marketplace.\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/MarketplaceS3:MarketplaceS3": {
      "properties": {
        "accessKeyId": {
          "type": "string",
          "description": "The access key of the S3 user.\n"
        },
        "bucket": {
          "type": "string",
          "description": "The bucket where the files will be stored.\n"
        },
        "endpointUrl": {
          "type": "string",
          "description": "Only required when connecteing to a service other than Amazon S3.\n"
        },
        "readBlockLength": {
          "type": "number",
          "description": "Split the file into chunks of this size in MB, never user a value larger than 100.\n"
        },
        "region": {
          "type": "string",
          "description": "The region to connect to. Any value will work with Ceph-S3.\n"
        },
        "secretAccessKey": {
          "type": "string",
          "description": "The secret key of the S3 user.\n"
        },
        "totalSize": {
          "type": "number",
          "description": "Define the total size of the marketplace in MB.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of the s3 backend: aws, ceph, minio.\n"
        }
      },
      "type": "object",
      "required": [
        "accessKeyId",
        "bucket",
        "region",
        "secretAccessKey"
      ]
    },
    "opennebula:index/MarketplaceTemplateSection:MarketplaceTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "name": {
          "type": "string",
          "description": "The name of the marketplace.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/MarketplaceTimeouts:MarketplaceTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "opennebula:index/MarketplaceTurnkey:MarketplaceTurnkey": {
      "properties": {
        "endpointUrl": {
          "type": "string",
          "description": "The base URL of the Market\n"
        },
        "filesystem": {
          "type": "string",
          "description": "Filesystem used for the image\n"
        },
        "imageBlockFileFormat": {
          "type": "string",
          "description": "Image block file format\n"
        },
        "roofsImageSize": {
          "type": "number",
          "description": "Size in MB for the image holding the rootfs\n"
        },
        "skipUntested": {
          "type": "boolean",
          "description": "Include only apps with support for context\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/ProviderDefaultTag:ProviderDefaultTag": {
      "properties": {
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags to apply\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/SecurityGroupRule:SecurityGroupRule": {
      "properties": {
        "icmpType": {
          "type": "string",
          "description": "Type of ICMP traffic to apply to when 'protocol' is `ICMP`.\n\nSee <https://docs.opennebula.org/5.12/operation/network_management/security_groups.html> for more details on allowed values.\n"
        },
        "ip": {
          "type": "string",
          "description": "IP (or starting IP if used with 'size') to apply the rule to.\n"
        },
        "networkId": {
          "type": "string",
          "description": "VNET ID to be used as the source/destination IP addresses.\n"
        },
        "protocol": {
          "type": "string",
          "description": "Protocol for the rule. Supported values: `ALL`, `TCP`, `UDP`, `ICMP` or `IPSEC`.\n"
        },
        "range": {
          "type": "string",
          "description": "Comma separated list of ports and port ranges.\n"
        },
        "ruleType": {
          "type": "string",
          "description": "Direction of the traffic flow to allow, must be `INBOUND` or `OUTBOUND`.\n"
        },
        "size": {
          "type": "string",
          "description": "Number of IPs to apply the rule from, starting with `ip`.\n"
        }
      },
      "type": "object",
      "required": [
        "protocol",
        "ruleType"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "icmpType",
            "ip",
            "networkId",
            "protocol",
            "range",
            "ruleType",
            "size"
          ]
        }
      }
    },
    "opennebula:index/SecurityGroupTemplateSection:SecurityGroupTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Collection of custom tags.\n"
        },
        "name": {
          "type": "string",
          "description": "The vector name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/ServiceRole:ServiceRole": {
      "properties": {
        "cardinality": {
          "type": "number"
        },
        "name": {
          "type": "string",
          "description": "The name of the service.\n"
        },
        "nodes": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "state": {
          "type": "number",
          "description": "State of the service.\n"
        }
      },
      "type": "object",
      "required": [
        "cardinality",
        "name",
        "nodes",
        "state"
      ]
    },
    "opennebula:index/ServiceTimeouts:ServiceTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "opennebula:index/TemplateCpumodel:TemplateCpumodel": {
      "properties": {
        "model": {
          "type": "string",
          "description": "CPU model to be used on the virtual machine.\n"
        }
      },
      "type": "object",
      "required": [
        "model"
      ]
    },
    "opennebula:index/TemplateDisk:TemplateDisk": {
      "properties": {
        "cache": {
          "type": "string",
          "description": "Selects the cache mechanism for the disk. Values are default, none, writethrough, writeback, directsync and unsafe.\n"
        },
        "devPrefix": {
          "type": "string",
          "description": "Prefix for the emulated device this image will be mounted at. For instance, attribute of the Image will be used.\n"
        },
        "discard": {
          "type": "string",
          "description": "Controls what’s done with with trim commands to the disk, the values can be ignore or discard.\n"
        },
        "driver": {
          "type": "string",
          "description": "OpenNebula image driver.\n"
        },
        "imageId": {
          "type": "number",
          "description": "ID of the image to attach to the virtual machine. Conflicts with `volatile_type` and `volatile_format`.\n"
        },
        "io": {
          "type": "string",
          "description": "Set IO policy. Values are threads, native.\n"
        },
        "size": {
          "type": "number",
          "description": "Size (in MB) of the image attached to the virtual machine. Not possible to change a cloned image size.\n"
        },
        "target": {
          "type": "string",
          "description": "Target name device on the virtual machine. Depends of the image `dev_prefix`.\n"
        },
        "volatileFormat": {
          "type": "string",
          "description": "Format of the volatile disk: `raw` or `qcow2`. Conflicts with `image_id`.\n\nMinimum 1 item. Maximum 8 items.\n"
        },
        "volatileType": {
          "type": "string",
          "description": "Type of the volatile disk: `swap` or `fs`. Type `swap` is not supported in vcenter. Conflicts with `image_id`.\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/TemplateFeature:TemplateFeature": {
      "properties": {
        "acpi": {
          "type": "string",
          "description": "Useful for power management, for example, with KVM guests it is required for graceful shutdown to work. (Can be `YES` or `NO`)\n"
        },
        "apic": {
          "type": "string",
          "description": "Enables the advanced programmable IRQ management. Useful for SMP machines. (Can be `YES` or `NO`)\n"
        },
        "guestAgent": {
          "type": "string",
          "description": "Enables the QEMU Guest Agent communication. This only creates the socket inside the VM, the Guest Agent itself must be installed and started in the VM. (Can be `YES` or `NO`)\n"
        },
        "hyperv": {
          "type": "string",
          "description": "Add hyperv extensions to the VM. The options can be configured in the driver configuration, HYPERV_OPTIONS.\n"
        },
        "iothreads": {
          "type": "string",
          "description": "umber of iothreads for virtio disks. By default threads will be assign to disk by round robin algorithm. Disk thread id can be forced by disk IOTHREAD attribute.\n"
        },
        "localtime": {
          "type": "string",
          "description": "The guest clock will be synchronized to the host’s configured timezone when booted. Useful for Windows VMs. (Can be `YES` or `NO`)\n"
        },
        "pae": {
          "type": "string",
          "description": "Physical address extension mode allows 32-bit guests to address more than 4 GB of memory.\n"
        },
        "virtioScsiQueues": {
          "type": "string",
          "description": "Numer of vCPU queues for the virtio-scsi controller.\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/TemplateGraphics:TemplateGraphics": {
      "properties": {
        "keymap": {
          "type": "string",
          "description": "Keyboard mapping.\n"
        },
        "listen": {
          "type": "string",
          "description": "Binding address.\n"
        },
        "passwd": {
          "type": "string",
          "description": "VNC's password, conflicts with random_passwd.\n"
        },
        "port": {
          "type": "string",
          "description": "Binding Port.\n"
        },
        "randomPasswd": {
          "type": "boolean",
          "description": "Randomized VNC's password, conflicts with passwd.\n"
        },
        "type": {
          "type": "string",
          "description": "Generally set to VNC.\n"
        }
      },
      "type": "object",
      "required": [
        "listen",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "listen",
            "port",
            "type"
          ]
        }
      }
    },
    "opennebula:index/TemplateNic:TemplateNic": {
      "properties": {
        "dns": {
          "type": "string",
          "description": "DNS server set for the NIC. **Please make sure `INHERIT_VNET_ATTR=\"DNS\"` is added to `/etc/one/oned.conf`.**\n"
        },
        "gateway": {
          "type": "string",
          "description": "Default gateway set for the NIC.\n"
        },
        "ip": {
          "type": "string",
          "description": "IPv4 of the virtual machine on this network.\n"
        },
        "ip6": {
          "type": "string",
          "description": "IPv6 of the virtual machine on this network.\n"
        },
        "ip6Global": {
          "type": "string",
          "description": "IPv6 global address of the virtual machine on this network.\n"
        },
        "ip6Link": {
          "type": "string",
          "description": "IPv6 link-local address of the virtual machine on this network.\n"
        },
        "ip6Ula": {
          "type": "string",
          "description": "IPv6 ULA (Unique Local Address) of the virtual machine on this network.\n"
        },
        "mac": {
          "type": "string",
          "description": "MAC of the virtual machine on this network.\n"
        },
        "method": {
          "type": "string",
          "description": "Method of obtaining IP addresses (empty or `static`, `dhcp`, `skip`).\n"
        },
        "model": {
          "type": "string",
          "description": "Nic model driver. Example: `virtio`.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the NIC. This could be used for reference the NIC as a parent of a NIC Alias.\n"
        },
        "network": {
          "type": "string",
          "description": "The name of the virtual network to attach to the virtual machine.\n"
        },
        "networkId": {
          "type": "number",
          "description": "ID of the virtual network to attach to the virtual machine.\n"
        },
        "networkModeAuto": {
          "type": "boolean",
          "description": "A boolean letting the scheduler pick the Virtual Networks the VM NICs will be attached to. Can only be used at VM creation.\n"
        },
        "physicalDevice": {
          "type": "string",
          "description": "Physical device hosting the virtual network.\n"
        },
        "schedRank": {
          "type": "string",
          "description": "Arithmetic expression to sort the suitable Virtual Networks for this NIC, when `network_mode_auto` is true. Can only be used at VM creation.\n\nMinimum 1 item. Maximum 8 items.\n"
        },
        "schedRequirements": {
          "type": "string",
          "description": "A boolean expression to select virtual networks (evaluates to true) to attach the NIC,  when `network_mode_auto` is true. Can only be used at VM creation.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of security group IDs to use on the virtual network.\n"
        },
        "virtioQueues": {
          "type": "string",
          "description": "Virtio multi-queue size. Only if `model` is `virtio`.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "network"
          ]
        }
      }
    },
    "opennebula:index/TemplateNicAlias:TemplateNicAlias": {
      "properties": {
        "dns": {
          "type": "string",
          "description": "DNS server set for the NIC. **Please make sure `INHERIT_VNET_ATTR=\"DNS\"` is added to `/etc/one/oned.conf`.**\n"
        },
        "gateway": {
          "type": "string",
          "description": "Default gateway set for the NIC.\n"
        },
        "ip": {
          "type": "string",
          "description": "IP of the virtual machine on this network.\n"
        },
        "ip6": {
          "type": "string",
          "description": "IPv6 of the virtual machine on this network.\n"
        },
        "ip6Global": {
          "type": "string",
          "description": "IPv6 global address of the virtual machine on this network.\n"
        },
        "ip6Link": {
          "type": "string",
          "description": "IPv6 link-local address of the virtual machine on this network.\n"
        },
        "ip6Ula": {
          "type": "string",
          "description": "IPv6 ULA (Unique Local Address) of the virtual machine on this network.\n"
        },
        "mac": {
          "type": "string",
          "description": "MAC of the virtual machine on this network.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the NIC Alias.\n"
        },
        "network": {
          "type": "string",
          "description": "The name of the virtual network to attach to the virtual machine.\n"
        },
        "networkId": {
          "type": "number",
          "description": "ID of the virtual network to attach to the virtual machine.\n"
        },
        "parent": {
          "type": "string",
          "description": "The parent NIC name.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of security group IDs to use on the virtual network.\n"
        }
      },
      "type": "object",
      "required": [
        "parent"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "name",
            "parent"
          ]
        }
      }
    },
    "opennebula:index/TemplateOs:TemplateOs": {
      "properties": {
        "arch": {
          "type": "string",
          "description": "Hardware architecture of the Virtual machine. Must fit the host architecture.\n"
        },
        "boot": {
          "type": "string",
          "description": "`OS` disk to use to boot on.\n"
        },
        "bootloader": {
          "type": "string",
          "description": "Path to the bootloader executable.\n"
        },
        "firmware": {
          "type": "string",
          "description": "Firmware type or firmware path. Possible values: `BIOS` or path for KVM, `BIOS` or `UEFI` for vCenter.\n"
        },
        "firmwareSecure": {
          "type": "boolean",
          "description": "Enable Secure Boot. (Can be `true` or `false`).\n* (!!) Use one of `kernel_ds` or `kernel` (and `initrd` or `initrd_ds`).\n"
        },
        "initrd": {
          "type": "string",
          "description": "Path to the initrd image in the host.\n"
        },
        "initrdDs": {
          "type": "string",
          "description": "Image to be used as ramdisk. (see !!)\n"
        },
        "kernel": {
          "type": "string",
          "description": "Path to the `OS` kernel to boot the image in the host.\n"
        },
        "kernelCmd": {
          "type": "string",
          "description": "Arguments for the booting kernel.\n"
        },
        "kernelDs": {
          "type": "string",
          "description": "Image to be used as kernel. (see !!)\n"
        },
        "machine": {
          "type": "string",
          "description": "libvirt machine type.\n"
        },
        "root": {
          "type": "string",
          "description": "Device to be mounted as root.\n"
        },
        "sdDiskBus": {
          "type": "string",
          "description": "Bus for disks with sd prefix, either `scsi` or `sata`, if attribute is missing, libvirt chooses itself.\n"
        },
        "uuid": {
          "type": "string",
          "description": "Unique ID of the VM.\n"
        }
      },
      "type": "object",
      "required": [
        "arch",
        "boot"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "arch",
            "boot",
            "uuid"
          ]
        }
      }
    },
    "opennebula:index/TemplateRaw:TemplateRaw": {
      "properties": {
        "data": {
          "type": "string",
          "description": "Raw data to pass to the hypervisor.\n"
        },
        "type": {
          "type": "string",
          "description": "Hypervisor. Supported values: `kvm`, `lxd`, `vmware`.\n"
        }
      },
      "type": "object",
      "required": [
        "data",
        "type"
      ]
    },
    "opennebula:index/TemplateTemplateSection:TemplateTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Collection of custom tags.\n"
        },
        "name": {
          "type": "string",
          "description": "The vector name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/TemplateVmgroup:TemplateVmgroup": {
      "properties": {
        "role": {
          "type": "string",
          "description": "role of the VM group to use.\n"
        },
        "vmgroupId": {
          "type": "number",
          "description": "ID of the VM group to use.\n"
        }
      },
      "type": "object",
      "required": [
        "role",
        "vmgroupId"
      ]
    },
    "opennebula:index/UserQuota:UserQuota": {
      "properties": {
        "datastoreQuotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuotaDatastoreQuota:UserQuotaDatastoreQuota"
          },
          "description": "List of datastore quotas. See Datastore quotas parameters below for details.\n"
        },
        "imageQuotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuotaImageQuota:UserQuotaImageQuota"
          },
          "description": "List of image quotas. See Image quotas parameters below for details\n"
        },
        "networkQuotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuotaNetworkQuota:UserQuotaNetworkQuota"
          },
          "description": "List of network quotas. See Network quotas parameters below for details.\n"
        },
        "vmQuotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuotaVmQuota:UserQuotaVmQuota"
          },
          "description": "See Virtual Machine quotas parameters below for details\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/UserQuotaDatastoreQuota:UserQuotaDatastoreQuota": {
      "properties": {
        "id": {
          "type": "number",
          "description": "ID of the user.\n"
        },
        "images": {
          "type": "number",
          "description": "Maximum number of Images allowed (default: default quota)\n"
        },
        "size": {
          "type": "number",
          "description": "Maximum size in MB allowed on the datastore (default: default quota)\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "opennebula:index/UserQuotaImageQuota:UserQuotaImageQuota": {
      "properties": {
        "id": {
          "type": "number",
          "description": "ID of the user.\n"
        },
        "runningVms": {
          "type": "number",
          "description": "Maximum number of Running VMs allowed for this image (default: default quota)\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "opennebula:index/UserQuotaNetworkQuota:UserQuotaNetworkQuota": {
      "properties": {
        "id": {
          "type": "number",
          "description": "ID of the user.\n"
        },
        "leases": {
          "type": "number",
          "description": "Maximum number of Leases allowed for this network (default: default quota)\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "opennebula:index/UserQuotaVmQuota:UserQuotaVmQuota": {
      "properties": {
        "cpu": {
          "type": "number",
          "description": "Maximum number of CPU allowed (default: default quota)\n"
        },
        "memory": {
          "type": "number",
          "description": "Maximum Memory (MB) allowed (default: default quota)\n"
        },
        "runningCpu": {
          "type": "number",
          "description": "Maximum number of 'running' CPUs allowed (default: default quota)\n"
        },
        "runningMemory": {
          "type": "number",
          "description": "'Running' Memory (MB) allowed (default: default quota)\n"
        },
        "runningVms": {
          "type": "number",
          "description": "Maximum number of Running VMs allowed (default: default quota)\n"
        },
        "systemDiskSize": {
          "type": "number",
          "description": "Maximum System Disk size (MB) allowed (default: default quota)\n"
        },
        "vms": {
          "type": "number",
          "description": "Maximum number of VMs allowed (default: default quota)\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/UserQuotasDatastore:UserQuotasDatastore": {
      "properties": {
        "id": {
          "type": "number",
          "description": "Datastore ID.\n"
        },
        "images": {
          "type": "number",
          "description": "Maximum number of images allowed on the datastore. Defaults to `default quota`\n"
        },
        "size": {
          "type": "number",
          "description": "Total size in MB allowed on the datastore. Defaults to `default quota`\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "opennebula:index/UserQuotasImage:UserQuotasImage": {
      "properties": {
        "id": {
          "type": "number",
          "description": "Image ID.\n"
        },
        "runningVms": {
          "type": "number",
          "description": "Maximum number of Virtual Machines in `RUNNING` state with this image ID attached. Defaults to `default quota`\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "opennebula:index/UserQuotasNetwork:UserQuotasNetwork": {
      "properties": {
        "id": {
          "type": "number",
          "description": "Network ID.\n"
        },
        "leases": {
          "type": "number",
          "description": "Maximum number of ip leases allowed on the network. Defaults to `default quota`\n"
        }
      },
      "type": "object",
      "required": [
        "id"
      ]
    },
    "opennebula:index/UserQuotasVm:UserQuotasVm": {
      "properties": {
        "cpu": {
          "type": "number",
          "description": "Total of CPUs allowed. Defaults to `default quota`.\n"
        },
        "memory": {
          "type": "number",
          "description": "Total of memory (in MB) allowed. Defaults to `default quota`.\n"
        },
        "runningCpu": {
          "type": "number",
          "description": "Virtual Machine CPUs allowed in `RUNNING` state. Defaults to `default quota`.\n"
        },
        "runningMemory": {
          "type": "number",
          "description": "Virtual Machine Memory (in MB) allowed in `RUNNING` state. Defaults to `default quota`.\n"
        },
        "runningVms": {
          "type": "number",
          "description": "Number of Virtual Machines allowed in `RUNNING` state. Defaults to `default quota`.\n"
        },
        "systemDiskSize": {
          "type": "number",
          "description": "Maximum disk global size (in MB) allowed on a `SYSTEM` datastore. Defaults to `default quota`.\n"
        },
        "vms": {
          "type": "number",
          "description": "Maximum number of Virtual Machines allowed. Defaults to `default quota`.\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/UserTemplateSection:UserTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Collection of custom tags.\n"
        },
        "name": {
          "type": "string",
          "description": "The vector name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/VirtualDataCenterZone:VirtualDataCenterZone": {
      "properties": {
        "clusterIds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of clusters from Zone ID to add in virtual data center.\n"
        },
        "datastoreIds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of datastore from Zone ID to add in virtual data center.\n"
        },
        "hostIds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of hosts from Zone ID to add in virtual data center.\n"
        },
        "id": {
          "type": "number",
          "description": "Zone ID from where resource to add in virtual data center are located. Defaults to 0.\n"
        },
        "vnetIds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of virtual networks from Zone ID to add in virtual data center.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "clusterIds",
            "datastoreIds",
            "hostIds",
            "vnetIds"
          ]
        }
      }
    },
    "opennebula:index/VirtualMachineCpumodel:VirtualMachineCpumodel": {
      "properties": {
        "model": {
          "type": "string",
          "description": "Nic model driver. Example: `virtio`.\n"
        }
      },
      "type": "object",
      "required": [
        "model"
      ]
    },
    "opennebula:index/VirtualMachineDisk:VirtualMachineDisk": {
      "properties": {
        "cache": {
          "type": "string"
        },
        "computedCache": {
          "type": "string"
        },
        "computedDevPrefix": {
          "type": "string"
        },
        "computedDiscard": {
          "type": "string"
        },
        "computedDriver": {
          "type": "string",
          "description": "OpenNebula image driver.\n"
        },
        "computedIo": {
          "type": "string"
        },
        "computedSize": {
          "type": "number",
          "description": "Size (in MB) of the image attached to the virtual machine. Not possible to change a cloned image size.\n"
        },
        "computedTarget": {
          "type": "string",
          "description": "Target name device on the virtual machine. Depends of the image `dev_prefix`.\n"
        },
        "computedVolatileFormat": {
          "type": "string",
          "description": "Format of the Image: `raw` or `qcow2`.\n"
        },
        "devPrefix": {
          "type": "string"
        },
        "discard": {
          "type": "string"
        },
        "diskId": {
          "type": "number",
          "description": "disk attachment identifier\n"
        },
        "driver": {
          "type": "string",
          "description": "OpenNebula image driver.\n"
        },
        "imageId": {
          "type": "number",
          "description": "ID of the image to attach to the virtual machine. Defaults to -1 if not set: this skip Image attchment to the VM. Conflicts with `volatile_type` and `volatile_format`.\n"
        },
        "io": {
          "type": "string"
        },
        "size": {
          "type": "number",
          "description": "Size (in MB) of the image. If set, it will resize the image disk to the targeted size. The size must be greater than the current one.\n"
        },
        "target": {
          "type": "string",
          "description": "Target name device on the virtual machine. Depends of the image `dev_prefix`.\n"
        },
        "volatileFormat": {
          "type": "string",
          "description": "Format of the Image: `raw` or `qcow2`. Conflicts with `image_id`.\n\nMinimum 1 item. Maximum 8 items.\n\nA disk update will be triggered in adding or removing a `disk` section, or by a modification of any of these parameters: `image_id`, `target`, `driver`\n"
        },
        "volatileType": {
          "type": "string",
          "description": "Type of the disk: `swap` or `fs`. Type `swap` is not supported in vcenter. Conflicts with `image_id`.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "computedCache",
            "computedDevPrefix",
            "computedDiscard",
            "computedDriver",
            "computedIo",
            "computedSize",
            "computedTarget",
            "computedVolatileFormat",
            "diskId"
          ]
        }
      }
    },
    "opennebula:index/VirtualMachineGraphics:VirtualMachineGraphics": {
      "properties": {
        "keymap": {
          "type": "string",
          "description": "Keyboard mapping.\n"
        },
        "listen": {
          "type": "string",
          "description": "Binding address.\n"
        },
        "passwd": {
          "type": "string",
          "description": "VNC's password, conflicts with random_passwd.\n"
        },
        "port": {
          "type": "string",
          "description": "Binding Port.\n"
        },
        "randomPasswd": {
          "type": "boolean",
          "description": "Randomized VNC's password, conflicts with passwd.\n"
        },
        "type": {
          "type": "string",
          "description": "Generally set to VNC.\n"
        }
      },
      "type": "object",
      "required": [
        "listen",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "listen",
            "port",
            "type"
          ]
        }
      }
    },
    "opennebula:index/VirtualMachineGroupRole:VirtualMachineGroupRole": {
      "properties": {
        "hostAffineds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of Hosts affined to Virtual Machines using this role.\n"
        },
        "hostAntiAffineds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of Hosts not-affined to Virtual Machines using this role.\n"
        },
        "id": {
          "type": "number",
          "description": "ID of the virtual machine.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the role.\n"
        },
        "policy": {
          "type": "string",
          "description": "Policy to apply between Virtual Machines using this role. Allowed Values: `NONE`, `AFFINED`, `ANTI_AFFINED`.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "hostAffineds",
            "hostAntiAffineds",
            "id",
            "name",
            "policy"
          ]
        }
      }
    },
    "opennebula:index/VirtualMachineGroupTemplateSection:VirtualMachineGroupTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Collection of custom tags.\n"
        },
        "name": {
          "type": "string",
          "description": "The vector name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/VirtualMachineNic:VirtualMachineNic": {
      "properties": {
        "computedAliasIds": {
          "type": "string",
          "description": "List of the dependants NIC aliases for this NIC.\n"
        },
        "computedDns": {
          "type": "string",
          "description": "DNS server set for the NIC.\n"
        },
        "computedGateway": {
          "type": "string",
          "description": "Default gateway set for the NIC.\n"
        },
        "computedIp": {
          "type": "string",
          "description": "IP of the virtual machine on this network.\n"
        },
        "computedIp6": {
          "type": "string",
          "description": "IPv6 of the virtual machine on this network.\n"
        },
        "computedIp6Global": {
          "type": "string",
          "description": "IPv6 global address of the virtual machine on this network.\n"
        },
        "computedIp6Link": {
          "type": "string",
          "description": "IPv6 link-local address of the virtual machine on this network.\n"
        },
        "computedIp6Ula": {
          "type": "string",
          "description": "IPv6 ULA (Unique Local Address) of the virtual machine on this network.\n"
        },
        "computedMac": {
          "type": "string",
          "description": "MAC of the virtual machine on this network.\n"
        },
        "computedMethod": {
          "type": "string",
          "description": "Method of obtaining IP addresses (empty or `static`, `dhcp`, `skip`).\n"
        },
        "computedModel": {
          "type": "string",
          "description": "Nic model driver.\n"
        },
        "computedName": {
          "type": "string",
          "description": "Name of the NIC Alias resource.\n"
        },
        "computedPhysicalDevice": {
          "type": "string",
          "description": "Physical device hosting the virtual network.\n"
        },
        "computedSecurityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of security group IDs to use on the virtual.\n"
        },
        "computedVirtioQueues": {
          "type": "string",
          "description": "Virtio multi-queue size.\n"
        },
        "dns": {
          "type": "string",
          "description": "DNS server set for the NIC. **Please make sure `INHERIT_VNET_ATTR=\"DNS\"` is added to `/etc/one/oned.conf`.**\n"
        },
        "gateway": {
          "type": "string",
          "description": "Default gateway set for the NIC.\n"
        },
        "ip": {
          "type": "string",
          "description": "IPv4 of the virtual machine on this network.\n"
        },
        "ip6": {
          "type": "string",
          "description": "IPv6 of the virtual machine on this network.\n"
        },
        "ip6Global": {
          "type": "string",
          "description": "IPv6 global address of the virtual machine on this network.\n"
        },
        "ip6Link": {
          "type": "string",
          "description": "IPv6 link-local address of the virtual machine on this network.\n"
        },
        "ip6Ula": {
          "type": "string",
          "description": "IPv6 ULA (Unique Local Address) of the virtual machine on this network.\n"
        },
        "mac": {
          "type": "string",
          "description": "MAC of the virtual machine on this network.\n"
        },
        "method": {
          "type": "string",
          "description": "Method of obtaining IP addresses (empty or `static`, `dhcp`, `skip`).\n"
        },
        "model": {
          "type": "string",
          "description": "Nic model driver. Example: `virtio`.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the NIC. This could be used for reference the NIC as a parent of a NIC Alias.\n"
        },
        "network": {
          "type": "string",
          "description": "network name\n"
        },
        "networkId": {
          "type": "number",
          "description": "ID of the virtual network to attach to the virtual machine.\n"
        },
        "networkModeAuto": {
          "type": "boolean",
          "description": "A boolean letting the scheduler pick the Virtual Networks the VM NICs will be attached to. Can only be used at VM creation.\n"
        },
        "nicId": {
          "type": "number",
          "description": "nic alias attachment identifier\n"
        },
        "physicalDevice": {
          "type": "string",
          "description": "Physical device hosting the virtual network.\n"
        },
        "schedRank": {
          "type": "string",
          "description": "Arithmetic expression to sort the suitable Virtual Networks for this NIC, when `network_mode_auto` is true. Can only be used at VM creation.\n\nMinimum 1 item. Maximum 8 items.\n\nA NIC update will be triggered in adding or removing a `nic` section, or by a modification of any of these parameters: `network_id`, `ip`, `mac`, `security_groups`, `physical_device`\n"
        },
        "schedRequirements": {
          "type": "string",
          "description": "A boolean expression to select virtual networks (evaluates to true) to attach the NIC,  when `network_mode_auto` is true. Can only be used at VM creation.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of security group IDs to use on the virtual network.\n"
        },
        "virtioQueues": {
          "type": "string",
          "description": "Virtio multi-queue size. Only if `model` is `virtio`.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "computedAliasIds",
            "computedDns",
            "computedGateway",
            "computedIp",
            "computedIp6",
            "computedIp6Global",
            "computedIp6Link",
            "computedIp6Ula",
            "computedMac",
            "computedMethod",
            "computedModel",
            "computedName",
            "computedPhysicalDevice",
            "computedSecurityGroups",
            "computedVirtioQueues",
            "name",
            "network",
            "nicId"
          ]
        }
      }
    },
    "opennebula:index/VirtualMachineNicAlias:VirtualMachineNicAlias": {
      "properties": {
        "computedAliasId": {
          "type": "number",
          "description": "nic alias index (respective to the referenced NIC)\n"
        },
        "computedDns": {
          "type": "string",
          "description": "DNS server set for the NIC.\n"
        },
        "computedGateway": {
          "type": "string",
          "description": "Default gateway set for the NIC.\n"
        },
        "computedIp": {
          "type": "string",
          "description": "IP of the virtual machine on this network.\n"
        },
        "computedIp6": {
          "type": "string",
          "description": "IPv6 of the virtual machine on this network.\n"
        },
        "computedIp6Global": {
          "type": "string",
          "description": "IPv6 global address of the virtual machine on this network.\n"
        },
        "computedIp6Link": {
          "type": "string",
          "description": "IPv6 link-local address of the virtual machine on this network.\n"
        },
        "computedIp6Ula": {
          "type": "string",
          "description": "IPv6 ULA (Unique Local Address) of the virtual machine on this network.\n"
        },
        "computedMac": {
          "type": "string",
          "description": "MAC of the virtual machine on this network.\n"
        },
        "computedMethod": {
          "type": "string",
          "description": "Method of obtaining IP addresses (empty or `static`, `dhcp`, `skip`).\n"
        },
        "computedName": {
          "type": "string",
          "description": "Name of the NIC Alias resource.\n"
        },
        "computedNetwork": {
          "type": "string",
          "description": "network name\n"
        },
        "computedNetworkId": {
          "type": "number",
          "description": "ID of the image attached to the virtual machine.\n"
        },
        "computedParent": {
          "type": "string",
          "description": "The parent NIC name.\n"
        },
        "computedParentId": {
          "type": "number",
          "description": "The parent NIC ID.\n"
        },
        "computedSecurityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of security group IDs to use on the virtual.\n"
        },
        "dns": {
          "type": "string",
          "description": "DNS server set for the NIC. **Please make sure `INHERIT_VNET_ATTR=\"DNS\"` is added to `/etc/one/oned.conf`.**\n\nA NIC alias update will be triggered adding or removing a `nic_alias` section.\n"
        },
        "gateway": {
          "type": "string",
          "description": "Default gateway set for the NIC.\n"
        },
        "ip": {
          "type": "string",
          "description": "IP of the virtual machine on this network.\n"
        },
        "ip6": {
          "type": "string",
          "description": "IPv6 of the virtual machine on this network.\n"
        },
        "ip6Global": {
          "type": "string",
          "description": "IPv6 global address of the virtual machine on this network.\n"
        },
        "ip6Link": {
          "type": "string",
          "description": "IPv6 link-local address of the virtual machine on this network.\n"
        },
        "ip6Ula": {
          "type": "string",
          "description": "IPv6 ULA (Unique Local Address) of the virtual machine on this network.\n"
        },
        "mac": {
          "type": "string",
          "description": "MAC of the virtual machine on this network.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the NIC Alias.\n"
        },
        "network": {
          "type": "string",
          "description": "The name of the virtual network to attach to the virtual machine.\n"
        },
        "networkId": {
          "type": "number",
          "description": "ID of the virtual network to attach to the virtual machine.\n"
        },
        "nicId": {
          "type": "number",
          "description": "nic alias attachment identifier\n"
        },
        "parent": {
          "type": "string",
          "description": "The parent NIC name.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of security group IDs to use on the virtual network.\n"
        }
      },
      "type": "object",
      "required": [
        "parent"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "computedAliasId",
            "computedDns",
            "computedGateway",
            "computedIp",
            "computedIp6",
            "computedIp6Global",
            "computedIp6Link",
            "computedIp6Ula",
            "computedMac",
            "computedMethod",
            "computedName",
            "computedNetwork",
            "computedNetworkId",
            "computedParent",
            "computedParentId",
            "computedSecurityGroups",
            "name",
            "nicId",
            "parent"
          ]
        }
      }
    },
    "opennebula:index/VirtualMachineOs:VirtualMachineOs": {
      "properties": {
        "arch": {
          "type": "string",
          "description": "Hardware architecture of the Virtual machine. Must fit the host architecture.\n"
        },
        "boot": {
          "type": "string",
          "description": "`OS` disk to use to boot on.\n"
        },
        "bootloader": {
          "type": "string",
          "description": "Path to the bootloader executable.\n"
        },
        "firmware": {
          "type": "string",
          "description": "Firmware type or firmware path. Possible values: `BIOS` or path for KVM, `BIOS` or `UEFI` for vCenter.\n"
        },
        "firmwareSecure": {
          "type": "boolean",
          "description": "Enable Secure Boot. (Can be `true` or `false`).\n* (!!) Use one of `kernel_ds` or `kernel` (and `initrd` or `initrd_ds`).\n"
        },
        "initrd": {
          "type": "string",
          "description": "Path to the initrd image in the host.\n"
        },
        "initrdDs": {
          "type": "string",
          "description": "Image to be used as ramdisk. (see !!)\n"
        },
        "kernel": {
          "type": "string",
          "description": "Path to the `OS` kernel to boot the image in the host.\n"
        },
        "kernelCmd": {
          "type": "string",
          "description": "Arguments for the booting kernel.\n"
        },
        "kernelDs": {
          "type": "string",
          "description": "Image to be used as kernel. (see !!)\n"
        },
        "machine": {
          "type": "string",
          "description": "libvirt machine type.\n"
        },
        "root": {
          "type": "string",
          "description": "Device to be mounted as root.\n"
        },
        "sdDiskBus": {
          "type": "string",
          "description": "Bus for disks with sd prefix, either `scsi` or `sata`, if attribute is missing, libvirt chooses itself.\n"
        },
        "uuid": {
          "type": "string",
          "description": "Unique ID of the VM.\n"
        }
      },
      "type": "object",
      "required": [
        "arch",
        "boot"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "arch",
            "boot",
            "uuid"
          ]
        }
      }
    },
    "opennebula:index/VirtualMachineRaw:VirtualMachineRaw": {
      "properties": {
        "data": {
          "type": "string",
          "description": "Raw data to pass to the hypervisor.\n"
        },
        "type": {
          "type": "string",
          "description": "Hypervisor. Supported values: `kvm`, `lxd`, `vmware`.\n"
        }
      },
      "type": "object",
      "required": [
        "data",
        "type"
      ]
    },
    "opennebula:index/VirtualMachineTemplateDisk:VirtualMachineTemplateDisk": {
      "properties": {
        "computedCache": {
          "type": "string"
        },
        "computedDevPrefix": {
          "type": "string"
        },
        "computedDiscard": {
          "type": "string"
        },
        "computedDriver": {
          "type": "string",
          "description": "OpenNebula image driver.\n"
        },
        "computedIo": {
          "type": "string"
        },
        "computedSize": {
          "type": "number",
          "description": "Size (in MB) of the image attached to the virtual machine. Not possible to change a cloned image size.\n"
        },
        "computedTarget": {
          "type": "string",
          "description": "Target name device on the virtual machine. Depends of the image `dev_prefix`.\n"
        },
        "computedVolatileFormat": {
          "type": "string",
          "description": "Format of the Image: `raw` or `qcow2`.\n"
        },
        "diskId": {
          "type": "number",
          "description": "disk attachment identifier\n"
        },
        "imageId": {
          "type": "number",
          "description": "ID of the image attached to the virtual machine.\n"
        }
      },
      "type": "object",
      "required": [
        "computedCache",
        "computedDevPrefix",
        "computedDiscard",
        "computedDriver",
        "computedIo",
        "computedSize",
        "computedTarget",
        "computedVolatileFormat",
        "diskId",
        "imageId"
      ]
    },
    "opennebula:index/VirtualMachineTemplateNic:VirtualMachineTemplateNic": {
      "properties": {
        "computedAliasIds": {
          "type": "string",
          "description": "List of the dependants NIC aliases for this NIC.\n"
        },
        "computedDns": {
          "type": "string",
          "description": "DNS server set for the NIC.\n"
        },
        "computedGateway": {
          "type": "string",
          "description": "Default gateway set for the NIC.\n"
        },
        "computedIp": {
          "type": "string",
          "description": "IP of the virtual machine on this network.\n"
        },
        "computedIp6": {
          "type": "string",
          "description": "IPv6 of the virtual machine on this network.\n"
        },
        "computedIp6Global": {
          "type": "string",
          "description": "IPv6 global address of the virtual machine on this network.\n"
        },
        "computedIp6Link": {
          "type": "string",
          "description": "IPv6 link-local address of the virtual machine on this network.\n"
        },
        "computedIp6Ula": {
          "type": "string",
          "description": "IPv6 ULA (Unique Local Address) of the virtual machine on this network.\n"
        },
        "computedMac": {
          "type": "string",
          "description": "MAC of the virtual machine on this network.\n"
        },
        "computedMethod": {
          "type": "string",
          "description": "Method of obtaining IP addresses (empty or `static`, `dhcp`, `skip`).\n"
        },
        "computedModel": {
          "type": "string",
          "description": "Nic model driver.\n"
        },
        "computedName": {
          "type": "string",
          "description": "Name of the NIC Alias resource.\n"
        },
        "computedPhysicalDevice": {
          "type": "string",
          "description": "Physical device hosting the virtual network.\n"
        },
        "computedSecurityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of security group IDs to use on the virtual.\n"
        },
        "computedVirtioQueues": {
          "type": "string",
          "description": "Virtio multi-queue size.\n"
        },
        "network": {
          "type": "string",
          "description": "network name\n"
        },
        "networkId": {
          "type": "number",
          "description": "ID of the image attached to the virtual machine.\n"
        },
        "nicId": {
          "type": "number",
          "description": "nic alias attachment identifier\n"
        }
      },
      "type": "object",
      "required": [
        "computedAliasIds",
        "computedDns",
        "computedGateway",
        "computedIp",
        "computedIp6",
        "computedIp6Global",
        "computedIp6Link",
        "computedIp6Ula",
        "computedMac",
        "computedMethod",
        "computedModel",
        "computedName",
        "computedPhysicalDevice",
        "computedSecurityGroups",
        "computedVirtioQueues",
        "network",
        "networkId",
        "nicId"
      ]
    },
    "opennebula:index/VirtualMachineTemplateNicAlias:VirtualMachineTemplateNicAlias": {
      "properties": {
        "computedAliasId": {
          "type": "number",
          "description": "nic alias index (respective to the referenced NIC)\n"
        },
        "computedDns": {
          "type": "string",
          "description": "DNS server set for the NIC.\n"
        },
        "computedGateway": {
          "type": "string",
          "description": "Default gateway set for the NIC.\n"
        },
        "computedIp": {
          "type": "string",
          "description": "IP of the virtual machine on this network.\n"
        },
        "computedIp6": {
          "type": "string",
          "description": "IPv6 of the virtual machine on this network.\n"
        },
        "computedIp6Global": {
          "type": "string",
          "description": "IPv6 global address of the virtual machine on this network.\n"
        },
        "computedIp6Link": {
          "type": "string",
          "description": "IPv6 link-local address of the virtual machine on this network.\n"
        },
        "computedIp6Ula": {
          "type": "string",
          "description": "IPv6 ULA (Unique Local Address) of the virtual machine on this network.\n"
        },
        "computedMac": {
          "type": "string",
          "description": "MAC of the virtual machine on this network.\n"
        },
        "computedMethod": {
          "type": "string",
          "description": "Method of obtaining IP addresses (empty or `static`, `dhcp`, `skip`).\n"
        },
        "computedName": {
          "type": "string",
          "description": "Name of the NIC Alias resource.\n"
        },
        "computedNetwork": {
          "type": "string",
          "description": "network name\n"
        },
        "computedNetworkId": {
          "type": "number",
          "description": "ID of the image attached to the virtual machine.\n"
        },
        "computedParent": {
          "type": "string",
          "description": "The parent NIC name.\n"
        },
        "computedParentId": {
          "type": "number",
          "description": "The parent NIC ID.\n"
        },
        "computedSecurityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of security group IDs to use on the virtual.\n"
        },
        "network": {
          "type": "string",
          "description": "network name\n"
        },
        "networkId": {
          "type": "number",
          "description": "ID of the image attached to the virtual machine.\n"
        },
        "nicId": {
          "type": "number",
          "description": "nic alias attachment identifier\n"
        },
        "parent": {
          "type": "string",
          "description": "The parent NIC name.\n"
        }
      },
      "type": "object",
      "required": [
        "computedAliasId",
        "computedDns",
        "computedGateway",
        "computedIp",
        "computedIp6",
        "computedIp6Global",
        "computedIp6Link",
        "computedIp6Ula",
        "computedMac",
        "computedMethod",
        "computedName",
        "computedNetwork",
        "computedNetworkId",
        "computedParent",
        "computedParentId",
        "computedSecurityGroups",
        "network",
        "networkId",
        "nicId",
        "parent"
      ]
    },
    "opennebula:index/VirtualMachineTemplateSection:VirtualMachineTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Collection of custom tags.\n"
        },
        "name": {
          "type": "string",
          "description": "The vector name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/VirtualMachineTimeouts:VirtualMachineTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "opennebula:index/VirtualMachineVmgroup:VirtualMachineVmgroup": {
      "properties": {
        "role": {
          "type": "string",
          "description": "role of the VM group to use.\n"
        },
        "vmgroupId": {
          "type": "number",
          "description": "ID of the VM group to use.\n"
        }
      },
      "type": "object",
      "required": [
        "role",
        "vmgroupId"
      ]
    },
    "opennebula:index/VirtualNetworkAddressRangeTimeouts:VirtualNetworkAddressRangeTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "opennebula:index/VirtualNetworkAr:VirtualNetworkAr": {
      "properties": {
        "arType": {
          "type": "string",
          "description": "Address range type. Supported values: `IP4`, `IP6`, `IP6_STATIC`, `IP4_6` or `IP4_6_STATIC` or `ETHER`. Defaults to `IP4`.\n"
        },
        "computedGlobalPrefix": {
          "type": "string",
          "description": "Global prefix for type `IP6` or `IP_4_6`.\n"
        },
        "computedIp6": {
          "type": "string",
          "description": "Starting IPv6 address of the range.\n"
        },
        "computedMac": {
          "type": "string",
          "description": "Starting MAC Address of the range.\n"
        },
        "computedUlaPrefix": {
          "type": "string",
          "description": "ULA prefix for type `IP6` or `IP_4_6`.\n"
        },
        "globalPrefix": {
          "type": "string",
          "description": "Global prefix for `IP6` or `IP_4_6`.\n"
        },
        "id": {
          "type": "string",
          "description": "ID of the address range\n"
        },
        "ip4": {
          "type": "string",
          "description": "Starting IPv4 address of the range. Required if `ar_type` is `IP4` or `IP4_6`.\n"
        },
        "ip6": {
          "type": "string",
          "description": "Starting IPv6 address of the range. Required if `ar_type` is `IP6_STATIC` or `IP4_6_STATIC`.\n"
        },
        "mac": {
          "type": "string",
          "description": "Starting MAC Address of the range.\n"
        },
        "prefixLength": {
          "type": "string",
          "description": "Prefix length. Only needed for `IP6_STATIC` or `IP4_6_STATIC`\n"
        },
        "size": {
          "type": "number",
          "description": "Address range size.\n"
        },
        "ulaPrefix": {
          "type": "string",
          "description": "ULA prefix for `IP6` or `IP_4_6`.\n"
        }
      },
      "type": "object",
      "required": [
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "computedGlobalPrefix",
            "computedIp6",
            "computedMac",
            "computedUlaPrefix",
            "id",
            "size"
          ]
        }
      }
    },
    "opennebula:index/VirtualNetworkTemplateSection:VirtualNetworkTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Collection of custom tags.\n"
        },
        "name": {
          "type": "string",
          "description": "The vector name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/VirtualNetworkTimeouts:VirtualNetworkTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "opennebula:index/VirtualRouterInstanceCpumodel:VirtualRouterInstanceCpumodel": {
      "properties": {
        "model": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "model"
      ]
    },
    "opennebula:index/VirtualRouterInstanceDisk:VirtualRouterInstanceDisk": {
      "properties": {
        "cache": {
          "type": "string"
        },
        "computedCache": {
          "type": "string"
        },
        "computedDevPrefix": {
          "type": "string"
        },
        "computedDiscard": {
          "type": "string"
        },
        "computedDriver": {
          "type": "string",
          "description": "OpenNebula image driver.\n"
        },
        "computedIo": {
          "type": "string"
        },
        "computedSize": {
          "type": "number",
          "description": "Size (in MB) of the image attached to the virtual router instance. Not possible to change a cloned image size.\n"
        },
        "computedTarget": {
          "type": "string",
          "description": "Target name device on the virtual router instance. Depends of the image `dev_prefix`.\n"
        },
        "computedVolatileFormat": {
          "type": "string",
          "description": "Format of the Image: `raw` or `qcow2`.\n"
        },
        "devPrefix": {
          "type": "string"
        },
        "discard": {
          "type": "string"
        },
        "diskId": {
          "type": "number",
          "description": "disk attachment identifier\n"
        },
        "driver": {
          "type": "string",
          "description": "OpenNebula image driver.\n"
        },
        "imageId": {
          "type": "number",
          "description": "ID of the image to attach to the virtual router instance. Defaults to -1 if not set: this skip Image attchment to the VM. Conflicts with `volatile_type` and `volatile_format`.\n"
        },
        "io": {
          "type": "string"
        },
        "size": {
          "type": "number",
          "description": "Size (in MB) of the image. If set, it will resize the image disk to the targeted size. The size must be greater than the current one.\n"
        },
        "target": {
          "type": "string",
          "description": "Target name device on the virtual router instance. Depends of the image `dev_prefix`.\n"
        },
        "volatileFormat": {
          "type": "string",
          "description": "Format of the Image: `raw` or `qcow2`. Conflicts with `image_id`.\n\nMinimum 1 item. Maximum 8 items.\n\nA disk update will be triggered in adding or removing a `disk` section, or by a modification of any of these parameters: `image_id`, `target`, `driver`\n"
        },
        "volatileType": {
          "type": "string",
          "description": "Type of the disk: `swap` or `fs`. Type `swap` is not supported in vcenter. Conflicts with `image_id`.\n"
        }
      },
      "type": "object",
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "computedCache",
            "computedDevPrefix",
            "computedDiscard",
            "computedDriver",
            "computedIo",
            "computedSize",
            "computedTarget",
            "computedVolatileFormat",
            "diskId"
          ]
        }
      }
    },
    "opennebula:index/VirtualRouterInstanceGraphics:VirtualRouterInstanceGraphics": {
      "properties": {
        "keymap": {
          "type": "string",
          "description": "Keyboard mapping.\n"
        },
        "listen": {
          "type": "string",
          "description": "Binding address.\n"
        },
        "passwd": {
          "type": "string"
        },
        "port": {
          "type": "string",
          "description": "Binding Port.\n"
        },
        "randomPasswd": {
          "type": "boolean"
        },
        "type": {
          "type": "string",
          "description": "Generally set to VNC.\n"
        }
      },
      "type": "object",
      "required": [
        "listen",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "listen",
            "port",
            "type"
          ]
        }
      }
    },
    "opennebula:index/VirtualRouterInstanceOs:VirtualRouterInstanceOs": {
      "properties": {
        "arch": {
          "type": "string",
          "description": "Hardware architecture of the virtual router instance. Must fit the host architecture.\n"
        },
        "boot": {
          "type": "string",
          "description": "`OS` disk to use to boot on.\n"
        },
        "bootloader": {
          "type": "string",
          "description": "Path to the bootloader executable.\n"
        },
        "firmware": {
          "type": "string",
          "description": "Firmware type or firmware path. Possible values: `BIOS` or path for KVM, `BIOS` or `UEFI` for vCenter.\n"
        },
        "firmwareSecure": {
          "type": "boolean",
          "description": "Enable Secure Boot. (Can be `true` or `false`).\n* (!!) Use one of `kernel_ds` or `kernel` (and `initrd` or `initrd_ds`).\n"
        },
        "initrd": {
          "type": "string",
          "description": "Path to the initrd image in the host.\n"
        },
        "initrdDs": {
          "type": "string",
          "description": "Image to be used as ramdisk. (see !!)\n"
        },
        "kernel": {
          "type": "string",
          "description": "Path to the `OS` kernel to boot the image in the host.\n"
        },
        "kernelCmd": {
          "type": "string",
          "description": "Arguments for the booting kernel.\n"
        },
        "kernelDs": {
          "type": "string",
          "description": "Image to be used as kernel. (see !!)\n"
        },
        "machine": {
          "type": "string",
          "description": "libvirt machine type.\n"
        },
        "root": {
          "type": "string",
          "description": "Device to be mounted as root.\n"
        },
        "sdDiskBus": {
          "type": "string",
          "description": "Bus for disks with sd prefix, either `scsi` or `sata`, if attribute is missing, libvirt chooses itself.\n"
        },
        "uuid": {
          "type": "string",
          "description": "Unique ID of the VM.\n"
        }
      },
      "type": "object",
      "required": [
        "arch",
        "boot"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "arch",
            "boot",
            "uuid"
          ]
        }
      }
    },
    "opennebula:index/VirtualRouterInstanceRaw:VirtualRouterInstanceRaw": {
      "properties": {
        "data": {
          "type": "string",
          "description": "Low-level data to pass to the hypervisor\n"
        },
        "type": {
          "type": "string",
          "description": "Name of the hypervisor: kvm, lxd, vmware\n"
        }
      },
      "type": "object",
      "required": [
        "data",
        "type"
      ]
    },
    "opennebula:index/VirtualRouterInstanceTemplateCpumodel:VirtualRouterInstanceTemplateCpumodel": {
      "properties": {
        "model": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "model"
      ]
    },
    "opennebula:index/VirtualRouterInstanceTemplateDisk:VirtualRouterInstanceTemplateDisk": {
      "properties": {
        "cache": {
          "type": "string"
        },
        "devPrefix": {
          "type": "string"
        },
        "discard": {
          "type": "string"
        },
        "driver": {
          "type": "string",
          "description": "OpenNebula image driver.\n"
        },
        "imageId": {
          "type": "number",
          "description": "ID of the image to attach to the virtual machine. Conflicts with `volatile_type` and `volatile_format`.\n"
        },
        "io": {
          "type": "string"
        },
        "size": {
          "type": "number",
          "description": "Size (in MB) of the image attached to the virtual machine. Not possible to change a cloned image size.\n"
        },
        "target": {
          "type": "string",
          "description": "Target name device on the virtual machine. Depends of the image `dev_prefix`.\n"
        },
        "volatileFormat": {
          "type": "string",
          "description": "Format of the volatile disk: `raw` or `qcow2`. Conflicts with `image_id`.\n\nMinimum 1 item. Maximum 8 items.\n"
        },
        "volatileType": {
          "type": "string",
          "description": "Type of the volatile disk: `swap` or `fs`. Type `swap` is not supported in vcenter. Conflicts with `image_id`.\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/VirtualRouterInstanceTemplateFeature:VirtualRouterInstanceTemplateFeature": {
      "properties": {
        "acpi": {
          "type": "string",
          "description": "Useful for power management, for example, with KVM guests it is required for graceful shutdown to work. (Can be `YES` or `NO`)\n"
        },
        "apic": {
          "type": "string",
          "description": "Enables the advanced programmable IRQ management. Useful for SMP machines. (Can be `YES` or `NO`)\n"
        },
        "guestAgent": {
          "type": "string",
          "description": "Enables the QEMU Guest Agent communication. This only creates the socket inside the VM, the Guest Agent itself must be installed and started in the VM. (Can be `YES` or `NO`)\n"
        },
        "hyperv": {
          "type": "string",
          "description": "Add hyperv extensions to the VM. The options can be configured in the driver configuration, HYPERV_OPTIONS.\n"
        },
        "iothreads": {
          "type": "string",
          "description": "umber of iothreads for virtio disks. By default threads will be assign to disk by round robin algorithm. Disk thread id can be forced by disk IOTHREAD attribute.\n"
        },
        "localtime": {
          "type": "string",
          "description": "The guest clock will be synchronized to the host’s configured timezone when booted. Useful for Windows VMs. (Can be `YES` or `NO`)\n"
        },
        "pae": {
          "type": "string",
          "description": "Physical address extension mode allows 32-bit guests to address more than 4 GB of memory.\n"
        },
        "virtioScsiQueues": {
          "type": "string",
          "description": "Numer of vCPU queues for the virtio-scsi controller.\n"
        }
      },
      "type": "object"
    },
    "opennebula:index/VirtualRouterInstanceTemplateGraphics:VirtualRouterInstanceTemplateGraphics": {
      "properties": {
        "keymap": {
          "type": "string",
          "description": "Keyboard mapping.\n"
        },
        "listen": {
          "type": "string",
          "description": "Binding address.\n"
        },
        "passwd": {
          "type": "string"
        },
        "port": {
          "type": "string",
          "description": "Binding Port.\n"
        },
        "randomPasswd": {
          "type": "boolean"
        },
        "type": {
          "type": "string",
          "description": "Generally set to VNC.\n"
        }
      },
      "type": "object",
      "required": [
        "listen",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "listen",
            "port",
            "type"
          ]
        }
      }
    },
    "opennebula:index/VirtualRouterInstanceTemplateOs:VirtualRouterInstanceTemplateOs": {
      "properties": {
        "arch": {
          "type": "string",
          "description": "Hardware architecture of the Virtual machine. Must fit the host architecture.\n"
        },
        "boot": {
          "type": "string",
          "description": "`OS` disk to use to boot on.\n"
        },
        "bootloader": {
          "type": "string",
          "description": "Path to the bootloader executable.\n"
        },
        "firmware": {
          "type": "string",
          "description": "Firmware type or firmware path. Possible values: `BIOS` or path for KVM, `BIOS` or `UEFI` for vCenter.\n"
        },
        "firmwareSecure": {
          "type": "boolean",
          "description": "Enable Secure Boot. (Can be `true` or `false`).\n* (!!) Use one of `kernel_ds` or `kernel` (and `initrd` or `initrd_ds`).\n"
        },
        "initrd": {
          "type": "string",
          "description": "Path to the initrd image in the host.\n"
        },
        "initrdDs": {
          "type": "string",
          "description": "Image to be used as ramdisk. (see !!)\n"
        },
        "kernel": {
          "type": "string",
          "description": "Path to the `OS` kernel to boot the image in the host.\n"
        },
        "kernelCmd": {
          "type": "string",
          "description": "Arguments for the booting kernel.\n"
        },
        "kernelDs": {
          "type": "string",
          "description": "Image to be used as kernel. (see !!)\n"
        },
        "machine": {
          "type": "string",
          "description": "libvirt machine type.\n"
        },
        "root": {
          "type": "string",
          "description": "Device to be mounted as root.\n"
        },
        "sdDiskBus": {
          "type": "string",
          "description": "Bus for disks with sd prefix, either `scsi` or `sata`, if attribute is missing, libvirt chooses itself.\n"
        },
        "uuid": {
          "type": "string",
          "description": "Unique ID of the VM.\n"
        }
      },
      "type": "object",
      "required": [
        "arch",
        "boot"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "arch",
            "boot",
            "uuid"
          ]
        }
      }
    },
    "opennebula:index/VirtualRouterInstanceTemplateRaw:VirtualRouterInstanceTemplateRaw": {
      "properties": {
        "data": {
          "type": "string",
          "description": "Raw data to pass to the hypervisor.\n"
        },
        "type": {
          "type": "string",
          "description": "Hypervisor. Supported values: `kvm`, `lxd`, `vmware`.\n"
        }
      },
      "type": "object",
      "required": [
        "data",
        "type"
      ]
    },
    "opennebula:index/VirtualRouterInstanceTemplateSection:VirtualRouterInstanceTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Collection of custom tags.\n"
        },
        "name": {
          "type": "string",
          "description": "The vector name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/VirtualRouterInstanceTemplateTemplateSection:VirtualRouterInstanceTemplateTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Collection of custom tags.\n"
        },
        "name": {
          "type": "string",
          "description": "The vector name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/VirtualRouterInstanceTemplateVmgroup:VirtualRouterInstanceTemplateVmgroup": {
      "properties": {
        "role": {
          "type": "string",
          "description": "role of the VM group to use.\n"
        },
        "vmgroupId": {
          "type": "number",
          "description": "ID of the VM group to use.\n"
        }
      },
      "type": "object",
      "required": [
        "role",
        "vmgroupId"
      ]
    },
    "opennebula:index/VirtualRouterInstanceTimeouts:VirtualRouterInstanceTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "opennebula:index/VirtualRouterInstanceVmgroup:VirtualRouterInstanceVmgroup": {
      "properties": {
        "role": {
          "type": "string",
          "description": "role of the VM group to use.\n"
        },
        "vmgroupId": {
          "type": "number",
          "description": "ID of the VM group to use.\n"
        }
      },
      "type": "object",
      "required": [
        "role",
        "vmgroupId"
      ]
    },
    "opennebula:index/VirtualRouterNicTimeouts:VirtualRouterNicTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "opennebula:index/VirtualRouterTemplateSection:VirtualRouterTemplateSection": {
      "properties": {
        "elements": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Collection of custom tags.\n"
        },
        "name": {
          "type": "string",
          "description": "The vector name.\n"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "opennebula:index/getTemplateDisk:getTemplateDisk": {
      "properties": {
        "cache": {
          "type": "string"
        },
        "devPrefix": {
          "type": "string"
        },
        "discard": {
          "type": "string"
        },
        "driver": {
          "type": "string"
        },
        "imageId": {
          "type": "number"
        },
        "io": {
          "type": "string"
        },
        "size": {
          "type": "number"
        },
        "target": {
          "type": "string"
        },
        "volatileFormat": {
          "type": "string"
        },
        "volatileType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "cache",
        "devPrefix",
        "discard",
        "driver",
        "imageId",
        "io",
        "size",
        "target",
        "volatileFormat",
        "volatileType"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getTemplateNic:getTemplateNic": {
      "properties": {
        "dns": {
          "type": "string"
        },
        "gateway": {
          "type": "string"
        },
        "ip": {
          "type": "string"
        },
        "ip6": {
          "type": "string"
        },
        "ip6Global": {
          "type": "string"
        },
        "ip6Link": {
          "type": "string"
        },
        "ip6Ula": {
          "type": "string"
        },
        "mac": {
          "type": "string"
        },
        "method": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The OpenNebula template to retrieve information for.\n"
        },
        "network": {
          "type": "string"
        },
        "networkId": {
          "type": "number"
        },
        "networkModeAuto": {
          "type": "boolean"
        },
        "physicalDevice": {
          "type": "string"
        },
        "schedRank": {
          "type": "string"
        },
        "schedRequirements": {
          "type": "string"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "virtioQueues": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "dns",
        "gateway",
        "ip",
        "ip6",
        "ip6Global",
        "ip6Link",
        "ip6Ula",
        "mac",
        "method",
        "model",
        "name",
        "network",
        "networkId",
        "networkModeAuto",
        "physicalDevice",
        "schedRank",
        "schedRequirements",
        "securityGroups",
        "virtioQueues"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getTemplateNicAlias:getTemplateNicAlias": {
      "properties": {
        "dns": {
          "type": "string"
        },
        "gateway": {
          "type": "string"
        },
        "ip": {
          "type": "string"
        },
        "ip6": {
          "type": "string"
        },
        "ip6Global": {
          "type": "string"
        },
        "ip6Link": {
          "type": "string"
        },
        "ip6Ula": {
          "type": "string"
        },
        "mac": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "The OpenNebula template to retrieve information for.\n"
        },
        "network": {
          "type": "string"
        },
        "networkId": {
          "type": "number"
        },
        "parent": {
          "type": "string"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          }
        }
      },
      "type": "object",
      "required": [
        "dns",
        "gateway",
        "ip",
        "ip6",
        "ip6Global",
        "ip6Link",
        "ip6Ula",
        "mac",
        "name",
        "network",
        "networkId",
        "parent",
        "securityGroups"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getTemplateVmgroup:getTemplateVmgroup": {
      "properties": {
        "role": {
          "type": "string"
        },
        "vmgroupId": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "role",
        "vmgroupId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getTemplatesTemplate:getTemplatesTemplate": {
      "properties": {
        "cpu": {
          "type": "number",
          "description": "Amount of CPU shares assigned to the VM.\n"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FgetTemplatesTemplateDisk:getTemplatesTemplateDisk"
          }
        },
        "id": {
          "type": "number"
        },
        "memory": {
          "type": "number",
          "description": "Amount of RAM assigned to the VM in MB.\n"
        },
        "name": {
          "type": "string"
        },
        "nicAliases": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FgetTemplatesTemplateNicAlias:getTemplatesTemplateNicAlias"
          }
        },
        "nics": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FgetTemplatesTemplateNic:getTemplatesTemplateNic"
          }
        },
        "registerDate": {
          "type": "number"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Template tags (Key = Value).\n"
        },
        "vcpu": {
          "type": "number",
          "description": "Number of CPU cores presented to the VM.\n"
        },
        "vmgroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FgetTemplatesTemplateVmgroup:getTemplatesTemplateVmgroup"
          }
        }
      },
      "type": "object",
      "required": [
        "cpu",
        "disks",
        "id",
        "memory",
        "name",
        "nicAliases",
        "nics",
        "registerDate",
        "tags",
        "vcpu",
        "vmgroups"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getTemplatesTemplateDisk:getTemplatesTemplateDisk": {
      "properties": {
        "cache": {
          "type": "string"
        },
        "devPrefix": {
          "type": "string"
        },
        "discard": {
          "type": "string"
        },
        "driver": {
          "type": "string"
        },
        "imageId": {
          "type": "number"
        },
        "io": {
          "type": "string"
        },
        "size": {
          "type": "number"
        },
        "target": {
          "type": "string"
        },
        "volatileFormat": {
          "type": "string"
        },
        "volatileType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "cache",
        "devPrefix",
        "discard",
        "driver",
        "imageId",
        "io",
        "size",
        "target",
        "volatileFormat",
        "volatileType"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getTemplatesTemplateNic:getTemplatesTemplateNic": {
      "properties": {
        "dns": {
          "type": "string"
        },
        "gateway": {
          "type": "string"
        },
        "ip": {
          "type": "string"
        },
        "ip6": {
          "type": "string"
        },
        "ip6Global": {
          "type": "string"
        },
        "ip6Link": {
          "type": "string"
        },
        "ip6Ula": {
          "type": "string"
        },
        "mac": {
          "type": "string"
        },
        "method": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "networkId": {
          "type": "number"
        },
        "networkModeAuto": {
          "type": "boolean"
        },
        "physicalDevice": {
          "type": "string"
        },
        "schedRank": {
          "type": "string"
        },
        "schedRequirements": {
          "type": "string"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "virtioQueues": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "dns",
        "gateway",
        "ip",
        "ip6",
        "ip6Global",
        "ip6Link",
        "ip6Ula",
        "mac",
        "method",
        "model",
        "name",
        "network",
        "networkId",
        "networkModeAuto",
        "physicalDevice",
        "schedRank",
        "schedRequirements",
        "securityGroups",
        "virtioQueues"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getTemplatesTemplateNicAlias:getTemplatesTemplateNicAlias": {
      "properties": {
        "dns": {
          "type": "string"
        },
        "gateway": {
          "type": "string"
        },
        "ip": {
          "type": "string"
        },
        "ip6": {
          "type": "string"
        },
        "ip6Global": {
          "type": "string"
        },
        "ip6Link": {
          "type": "string"
        },
        "ip6Ula": {
          "type": "string"
        },
        "mac": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "networkId": {
          "type": "number"
        },
        "parent": {
          "type": "string"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          }
        }
      },
      "type": "object",
      "required": [
        "dns",
        "gateway",
        "ip",
        "ip6",
        "ip6Global",
        "ip6Link",
        "ip6Ula",
        "mac",
        "name",
        "network",
        "networkId",
        "parent",
        "securityGroups"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getTemplatesTemplateVmgroup:getTemplatesTemplateVmgroup": {
      "properties": {
        "role": {
          "type": "string"
        },
        "vmgroupId": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "role",
        "vmgroupId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getVirtualMachinesVirtualMachine:getVirtualMachinesVirtualMachine": {
      "properties": {
        "cpu": {
          "type": "number",
          "description": "Amount of CPU shares assigned to the VM.\n"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FgetVirtualMachinesVirtualMachineDisk:getVirtualMachinesVirtualMachineDisk"
          }
        },
        "id": {
          "type": "number"
        },
        "memory": {
          "type": "number",
          "description": "Amount of RAM assigned to the VM in MB.\n"
        },
        "name": {
          "type": "string"
        },
        "nicAliases": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FgetVirtualMachinesVirtualMachineNicAlias:getVirtualMachinesVirtualMachineNicAlias"
          }
        },
        "nics": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FgetVirtualMachinesVirtualMachineNic:getVirtualMachinesVirtualMachineNic"
          }
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "virtual machine tags (Key = Value).\n"
        },
        "vcpu": {
          "type": "number",
          "description": "Number of CPU cores presented to the VM.\n"
        },
        "vmgroups": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FgetVirtualMachinesVirtualMachineVmgroup:getVirtualMachinesVirtualMachineVmgroup"
          }
        }
      },
      "type": "object",
      "required": [
        "cpu",
        "disks",
        "id",
        "memory",
        "name",
        "nicAliases",
        "nics",
        "tags",
        "vcpu",
        "vmgroups"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getVirtualMachinesVirtualMachineDisk:getVirtualMachinesVirtualMachineDisk": {
      "properties": {
        "cache": {
          "type": "string"
        },
        "devPrefix": {
          "type": "string"
        },
        "discard": {
          "type": "string"
        },
        "driver": {
          "type": "string"
        },
        "imageId": {
          "type": "number"
        },
        "io": {
          "type": "string"
        },
        "size": {
          "type": "number"
        },
        "target": {
          "type": "string"
        },
        "volatileFormat": {
          "type": "string"
        },
        "volatileType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "cache",
        "devPrefix",
        "discard",
        "driver",
        "imageId",
        "io",
        "size",
        "target",
        "volatileFormat",
        "volatileType"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getVirtualMachinesVirtualMachineNic:getVirtualMachinesVirtualMachineNic": {
      "properties": {
        "dns": {
          "type": "string"
        },
        "gateway": {
          "type": "string"
        },
        "ip": {
          "type": "string"
        },
        "ip6": {
          "type": "string"
        },
        "ip6Global": {
          "type": "string"
        },
        "ip6Link": {
          "type": "string"
        },
        "ip6Ula": {
          "type": "string"
        },
        "mac": {
          "type": "string"
        },
        "method": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "networkId": {
          "type": "number"
        },
        "networkModeAuto": {
          "type": "boolean"
        },
        "physicalDevice": {
          "type": "string"
        },
        "schedRank": {
          "type": "string"
        },
        "schedRequirements": {
          "type": "string"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "virtioQueues": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "dns",
        "gateway",
        "ip",
        "ip6",
        "ip6Global",
        "ip6Link",
        "ip6Ula",
        "mac",
        "method",
        "model",
        "name",
        "network",
        "networkId",
        "networkModeAuto",
        "physicalDevice",
        "schedRank",
        "schedRequirements",
        "securityGroups",
        "virtioQueues"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getVirtualMachinesVirtualMachineNicAlias:getVirtualMachinesVirtualMachineNicAlias": {
      "properties": {
        "dns": {
          "type": "string"
        },
        "gateway": {
          "type": "string"
        },
        "ip": {
          "type": "string"
        },
        "ip6": {
          "type": "string"
        },
        "ip6Global": {
          "type": "string"
        },
        "ip6Link": {
          "type": "string"
        },
        "ip6Ula": {
          "type": "string"
        },
        "mac": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "network": {
          "type": "string"
        },
        "networkId": {
          "type": "number"
        },
        "parent": {
          "type": "string"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          }
        }
      },
      "type": "object",
      "required": [
        "dns",
        "gateway",
        "ip",
        "ip6",
        "ip6Global",
        "ip6Link",
        "ip6Ula",
        "mac",
        "name",
        "network",
        "networkId",
        "parent",
        "securityGroups"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getVirtualMachinesVirtualMachineVmgroup:getVirtualMachinesVirtualMachineVmgroup": {
      "properties": {
        "role": {
          "type": "string"
        },
        "vmgroupId": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "role",
        "vmgroupId"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "opennebula:index/getVirtualNetworkAddressRangesAddressRange:getVirtualNetworkAddressRangesAddressRange": {
      "properties": {
        "arType": {
          "type": "string",
          "description": "Type of the Address Range: `IP4`, `IP6`, `IP4_6`. Default is `IP4`.\n"
        },
        "custom": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Custom attributes for the address range.\n"
        },
        "globalPrefix": {
          "type": "string",
          "description": "Global prefix for `IP6` or `IP4_6`.\n"
        },
        "heldIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of IPs held in this address range.\n"
        },
        "id": {
          "type": "string",
          "description": "The ID of the address range.\n"
        },
        "ip4": {
          "type": "string",
          "description": "Start IPv4 of the allocated range.\n"
        },
        "ip4End": {
          "type": "string",
          "description": "End IPv4 of the allocated range.\n"
        },
        "ip6": {
          "type": "string",
          "description": "Start IPv6 of the allocated range.\n"
        },
        "ip6End": {
          "type": "string",
          "description": "End IPv6 of the allocated range.\n"
        },
        "ip6Global": {
          "type": "string",
          "description": "Global IPv6 of the allocated range.\n"
        },
        "ip6GlobalEnd": {
          "type": "string",
          "description": "End Global IPv6 of the allocated range.\n"
        },
        "ip6Ula": {
          "type": "string",
          "description": "ULA IPv6 of the allocated range.\n"
        },
        "ip6UlaEnd": {
          "type": "string",
          "description": "End ULA IPv6 of the allocated range.\n"
        },
        "mac": {
          "type": "string",
          "description": "Start MAC of the allocated range.\n"
        },
        "macEnd": {
          "type": "string",
          "description": "End MAC of the allocated range.\n"
        },
        "size": {
          "type": "number",
          "description": "Count of addresses in the IP range.\n"
        },
        "ulaPrefix": {
          "type": "string",
          "description": "ULA prefix for `IP6` or `IP4_6`.\n"
        }
      },
      "type": "object",
      "required": [
        "arType",
        "custom",
        "globalPrefix",
        "heldIps",
        "id",
        "ip4",
        "ip4End",
        "ip6",
        "ip6End",
        "ip6Global",
        "ip6GlobalEnd",
        "ip6Ula",
        "ip6UlaEnd",
        "mac",
        "macEnd",
        "size",
        "ulaPrefix"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    }
  },
  "provider": {
    "description": "The provider type for the opennebula 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": {
      "endpoint": {
        "type": "string",
        "description": "The URL to your public or private OpenNebula\n"
      },
      "flowEndpoint": {
        "type": "string",
        "description": "The URL to your public or private OpenNebula Flow server\n"
      },
      "password": {
        "type": "string",
        "description": "The password for the user\n"
      },
      "username": {
        "type": "string",
        "description": "The ID of the user to identify as\n"
      }
    },
    "type": "object",
    "required": [
      "endpoint",
      "password",
      "username"
    ],
    "inputProperties": {
      "defaultTags": {
        "type": "array",
        "items": {
          "$ref": "#/types/opennebula:index%2FProviderDefaultTag:ProviderDefaultTag"
        },
        "description": "Add default tags to the resources\n"
      },
      "endpoint": {
        "type": "string",
        "description": "The URL to your public or private OpenNebula\n"
      },
      "flowEndpoint": {
        "type": "string",
        "description": "The URL to your public or private OpenNebula Flow server\n"
      },
      "insecure": {
        "type": "boolean",
        "description": "Disable TLS validation\n"
      },
      "password": {
        "type": "string",
        "description": "The password for the user\n"
      },
      "username": {
        "type": "string",
        "description": "The ID of the user to identify as\n"
      }
    },
    "requiredInputs": [
      "endpoint",
      "password",
      "username"
    ]
  },
  "resources": {
    "opennebula:index/acl:Acl": {
      "description": "Provides an OpenNebula ACL resource.\n\nThis resource allows you to manage ACLs on your OpenNebula clusters. When applied,\na new ACL is created. When destroyed, this ACL is removed. Note that ACLs currently cannot be changed, hence they are deleted and re-created upon change.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.Acl(\"example\", {\n    resource: \"HOST+CLUSTER+DATASTORE/*\",\n    rights: \"USE+MANAGE+ADMIN\",\n    user: \"@1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.Acl(\"example\",\n    resource=\"HOST+CLUSTER+DATASTORE/*\",\n    rights=\"USE+MANAGE+ADMIN\",\n    user=\"@1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.Acl(\"example\", new()\n    {\n        Resource = \"HOST+CLUSTER+DATASTORE/*\",\n        Rights = \"USE+MANAGE+ADMIN\",\n        User = \"@1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewAcl(ctx, \"example\", &opennebula.AclArgs{\n\t\t\tResource: pulumi.String(\"HOST+CLUSTER+DATASTORE/*\"),\n\t\t\tRights:   pulumi.String(\"USE+MANAGE+ADMIN\"),\n\t\t\tUser:     pulumi.String(\"@1\"),\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.opennebula.Acl;\nimport com.pulumi.opennebula.AclArgs;\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 example = new Acl(\"example\", AclArgs.builder()\n            .resource(\"HOST+CLUSTER+DATASTORE/*\")\n            .rights(\"USE+MANAGE+ADMIN\")\n            .user(\"@1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:Acl\n    properties:\n      resource: HOST+CLUSTER+DATASTORE/*\n      rights: USE+MANAGE+ADMIN\n      user: '@1'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_acl` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/acl:Acl example 123\n```\n\n",
      "properties": {
        "aclId": {
          "type": "string"
        },
        "resource": {
          "type": "string",
          "description": "Resource component of the new rule. Any combination of valid resources, separated by a `+`.\n\n**Must contain a slash for resource subset.**\nResource subset string uses the same syntax as the User-string, and additionally supports `%<id>` to limit by Cluster ID.\n\nThe following objects are valid:\n* VM\n* HOST\n* NET\n* IMAGE\n* USER\n* TEMPLATE\n* GROUP\n* DATASTORE\n* CLUSTER\n* DOCUMENT\n* ZONE\n* SECGROUP\n* VDC\n* VROUTER\n* MARKETPLACE\n* MARKETPLACEAPP\n* VMGROUP\n* VNTEMPLATE\n"
        },
        "rights": {
          "type": "string",
          "description": "Rights component of the new rule. Any combination of valid Rights, separated by a `+`.\n\nThe following rights are valid:\n* USE\n* MANAGE\n* ADMIN\n* CREATE\n"
        },
        "user": {
          "type": "string",
          "description": "User component of the new rule.\n* `#<id>` matches a single user id\n* `@<id>` matches a group id\n* `*` matches everything.\n"
        },
        "zone": {
          "type": "string",
          "description": "Zone component of the new rule.\n* `#<id>` matches a single zone id\n* `*` matches everything.\n"
        }
      },
      "type": "object",
      "required": [
        "aclId",
        "resource",
        "rights",
        "user"
      ],
      "inputProperties": {
        "aclId": {
          "type": "string"
        },
        "resource": {
          "type": "string",
          "description": "Resource component of the new rule. Any combination of valid resources, separated by a `+`.\n\n**Must contain a slash for resource subset.**\nResource subset string uses the same syntax as the User-string, and additionally supports `%<id>` to limit by Cluster ID.\n\nThe following objects are valid:\n* VM\n* HOST\n* NET\n* IMAGE\n* USER\n* TEMPLATE\n* GROUP\n* DATASTORE\n* CLUSTER\n* DOCUMENT\n* ZONE\n* SECGROUP\n* VDC\n* VROUTER\n* MARKETPLACE\n* MARKETPLACEAPP\n* VMGROUP\n* VNTEMPLATE\n"
        },
        "rights": {
          "type": "string",
          "description": "Rights component of the new rule. Any combination of valid Rights, separated by a `+`.\n\nThe following rights are valid:\n* USE\n* MANAGE\n* ADMIN\n* CREATE\n"
        },
        "user": {
          "type": "string",
          "description": "User component of the new rule.\n* `#<id>` matches a single user id\n* `@<id>` matches a group id\n* `*` matches everything.\n"
        },
        "zone": {
          "type": "string",
          "description": "Zone component of the new rule.\n* `#<id>` matches a single zone id\n* `*` matches everything.\n"
        }
      },
      "requiredInputs": [
        "resource",
        "rights",
        "user"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Acl resources.\n",
        "properties": {
          "aclId": {
            "type": "string"
          },
          "resource": {
            "type": "string",
            "description": "Resource component of the new rule. Any combination of valid resources, separated by a `+`.\n\n**Must contain a slash for resource subset.**\nResource subset string uses the same syntax as the User-string, and additionally supports `%<id>` to limit by Cluster ID.\n\nThe following objects are valid:\n* VM\n* HOST\n* NET\n* IMAGE\n* USER\n* TEMPLATE\n* GROUP\n* DATASTORE\n* CLUSTER\n* DOCUMENT\n* ZONE\n* SECGROUP\n* VDC\n* VROUTER\n* MARKETPLACE\n* MARKETPLACEAPP\n* VMGROUP\n* VNTEMPLATE\n"
          },
          "rights": {
            "type": "string",
            "description": "Rights component of the new rule. Any combination of valid Rights, separated by a `+`.\n\nThe following rights are valid:\n* USE\n* MANAGE\n* ADMIN\n* CREATE\n"
          },
          "user": {
            "type": "string",
            "description": "User component of the new rule.\n* `#<id>` matches a single user id\n* `@<id>` matches a group id\n* `*` matches everything.\n"
          },
          "zone": {
            "type": "string",
            "description": "Zone component of the new rule.\n* `#<id>` matches a single zone id\n* `*` matches everything.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/cluster:Cluster": {
      "description": "Provides an OpenNebula cluster resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.Cluster(\"example\", {\n    tags: {\n        environment: \"example\",\n    },\n    templateSections: [{\n        elements: {\n            tag1: \"value\",\n        },\n        name: \"example\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.Cluster(\"example\",\n    tags={\n        \"environment\": \"example\",\n    },\n    template_sections=[{\n        \"elements\": {\n            \"tag1\": \"value\",\n        },\n        \"name\": \"example\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.Cluster(\"example\", new()\n    {\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        TemplateSections = new[]\n        {\n            new Opennebula.Inputs.ClusterTemplateSectionArgs\n            {\n                Elements = \n                {\n                    { \"tag1\", \"value\" },\n                },\n                Name = \"example\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewCluster(ctx, \"example\", &opennebula.ClusterArgs{\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tTemplateSections: opennebula.ClusterTemplateSectionArray{\n\t\t\t\t&opennebula.ClusterTemplateSectionArgs{\n\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\"tag1\": pulumi.String(\"value\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"example\"),\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\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.opennebula.Cluster;\nimport com.pulumi.opennebula.ClusterArgs;\nimport com.pulumi.opennebula.inputs.ClusterTemplateSectionArgs;\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 example = new Cluster(\"example\", ClusterArgs.builder()\n            .tags(Map.of(\"environment\", \"example\"))\n            .templateSections(ClusterTemplateSectionArgs.builder()\n                .elements(Map.of(\"tag1\", \"value\"))\n                .name(\"example\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:Cluster\n    properties:\n      tags:\n        environment: example\n      templateSections:\n        - elements:\n            tag1: value\n          name: example\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_cluster` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/cluster:Cluster example 123\n```\n\n<https://registry.terraform.io/docs/providers/aws/r/iam_service_linked_role.html>\n\n/docs/providers/aws/r/iam_service_linked_role.html\n\n",
      "properties": {
        "clusterId": {
          "type": "string",
          "description": "ID of the cluster.\n"
        },
        "datastores": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of hosts user IDs part of the cluster.\n",
          "deprecationMessage": "Deprecated"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "hosts": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of hosts user IDs part of the cluster.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the cluster.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FClusterTemplateSection:ClusterTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "virtualNetworks": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of hosts user IDs part of the cluster.\n",
          "deprecationMessage": "Deprecated"
        }
      },
      "type": "object",
      "required": [
        "clusterId",
        "datastores",
        "defaultTags",
        "hosts",
        "name",
        "tagsAll",
        "virtualNetworks"
      ],
      "inputProperties": {
        "clusterId": {
          "type": "string",
          "description": "ID of the cluster.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the cluster.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FClusterTemplateSection:ClusterTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Cluster resources.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "ID of the cluster.\n"
          },
          "datastores": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of hosts user IDs part of the cluster.\n",
            "deprecationMessage": "Deprecated"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "hosts": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of hosts user IDs part of the cluster.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the cluster.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FClusterTemplateSection:ClusterTemplateSection"
            },
            "description": "Allow to add a custom vector. See Template section parameters\n"
          },
          "virtualNetworks": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of hosts user IDs part of the cluster.\n",
            "deprecationMessage": "Deprecated"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/datastore:Datastore": {
      "description": "Provides an OpenNebula datastore resource.\n\nThis resource allows you to manage datastores.\n\n## Example Usage\n\nCreate a custom datastore:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.Datastore(\"example\", {\n    customs: [{\n        datastore: \"dummy\",\n        transfer: \"dummy\",\n    }],\n    tags: {\n        environment: \"example\",\n    },\n    type: \"image\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.Datastore(\"example\",\n    customs=[{\n        \"datastore\": \"dummy\",\n        \"transfer\": \"dummy\",\n    }],\n    tags={\n        \"environment\": \"example\",\n    },\n    type=\"image\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.Datastore(\"example\", new()\n    {\n        Customs = new[]\n        {\n            new Opennebula.Inputs.DatastoreCustomArgs\n            {\n                Datastore = \"dummy\",\n                Transfer = \"dummy\",\n            },\n        },\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        Type = \"image\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewDatastore(ctx, \"example\", &opennebula.DatastoreArgs{\n\t\t\tCustoms: opennebula.DatastoreCustomArray{\n\t\t\t\t&opennebula.DatastoreCustomArgs{\n\t\t\t\t\tDatastore: pulumi.String(\"dummy\"),\n\t\t\t\t\tTransfer:  pulumi.String(\"dummy\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"image\"),\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.opennebula.Datastore;\nimport com.pulumi.opennebula.DatastoreArgs;\nimport com.pulumi.opennebula.inputs.DatastoreCustomArgs;\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 example = new Datastore(\"example\", DatastoreArgs.builder()\n            .customs(DatastoreCustomArgs.builder()\n                .datastore(\"dummy\")\n                .transfer(\"dummy\")\n                .build())\n            .tags(Map.of(\"environment\", \"example\"))\n            .type(\"image\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:Datastore\n    properties:\n      customs:\n        - datastore: dummy\n          transfer: dummy\n      tags:\n        environment: example\n      type: image\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_datastore` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/datastore:Datastore example 123\n```\n\n",
      "properties": {
        "bridgeLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of hosts that have access to the storage to add new images to the datastore.\n"
        },
        "cephs": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FDatastoreCeph:DatastoreCeph"
          },
          "description": "See Ceph section for details.\n"
        },
        "checkAvailableCapacity": {
          "type": "boolean",
          "description": "If yes, the available capacity of the Datastore is checked before creating a new image.\n"
        },
        "clusterIds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "IDs of the clusters the datastore is part of. Minimum 1 item.\n"
        },
        "compatibleSystemDatastores": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specify the compatible system datastores.\n"
        },
        "customs": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FDatastoreCustom:DatastoreCustom"
          },
          "description": "See Custom section for details.\n"
        },
        "datastoreId": {
          "type": "string",
          "description": "ID of the datastore.\n"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "driver": {
          "type": "string",
          "description": "Specific image mapping driver enforcement. If present it overrides image DRIVER set in the image attributes and VM template.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the datastore.\n"
        },
        "noDecompress": {
          "type": "boolean",
          "description": "Boolean, do not try to untar or decompress the file to be registered.\n"
        },
        "restrictedDirectories": {
          "type": "string",
          "description": "Paths that cannot be used to register images. A space separated list of paths.\n"
        },
        "safeDirectories": {
          "type": "string",
          "description": "If you need to allow a directory listed under RESTRICTED_DIRS. A space separated list of paths.\n"
        },
        "stagingDir": {
          "type": "string",
          "description": "Path in the storage bridge host to copy an Image before moving it to its final destination.\n"
        },
        "storageUsageLimit": {
          "type": "number",
          "description": "The maximum capacity allowed for the Datastore in MB.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "transferBandwithLimit": {
          "type": "number",
          "description": "Specify the maximum transfer rate in bytes/second when downloading images from a http/https URL. Suffixes K, M or G can be used.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of the new datastore: image, system, file.\n"
        }
      },
      "type": "object",
      "required": [
        "datastoreId",
        "defaultTags",
        "driver",
        "name",
        "restrictedDirectories",
        "safeDirectories",
        "tagsAll",
        "type"
      ],
      "inputProperties": {
        "bridgeLists": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of hosts that have access to the storage to add new images to the datastore.\n"
        },
        "cephs": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FDatastoreCeph:DatastoreCeph"
          },
          "description": "See Ceph section for details.\n"
        },
        "checkAvailableCapacity": {
          "type": "boolean",
          "description": "If yes, the available capacity of the Datastore is checked before creating a new image.\n"
        },
        "clusterIds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "IDs of the clusters the datastore is part of. Minimum 1 item.\n"
        },
        "compatibleSystemDatastores": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Specify the compatible system datastores.\n"
        },
        "customs": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FDatastoreCustom:DatastoreCustom"
          },
          "description": "See Custom section for details.\n"
        },
        "datastoreId": {
          "type": "string",
          "description": "ID of the datastore.\n"
        },
        "driver": {
          "type": "string",
          "description": "Specific image mapping driver enforcement. If present it overrides image DRIVER set in the image attributes and VM template.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the datastore.\n"
        },
        "noDecompress": {
          "type": "boolean",
          "description": "Boolean, do not try to untar or decompress the file to be registered.\n"
        },
        "restrictedDirectories": {
          "type": "string",
          "description": "Paths that cannot be used to register images. A space separated list of paths.\n"
        },
        "safeDirectories": {
          "type": "string",
          "description": "If you need to allow a directory listed under RESTRICTED_DIRS. A space separated list of paths.\n"
        },
        "stagingDir": {
          "type": "string",
          "description": "Path in the storage bridge host to copy an Image before moving it to its final destination.\n"
        },
        "storageUsageLimit": {
          "type": "number",
          "description": "The maximum capacity allowed for the Datastore in MB.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "transferBandwithLimit": {
          "type": "number",
          "description": "Specify the maximum transfer rate in bytes/second when downloading images from a http/https URL. Suffixes K, M or G can be used.\n"
        },
        "type": {
          "type": "string",
          "description": "Type of the new datastore: image, system, file.\n"
        }
      },
      "requiredInputs": [
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Datastore resources.\n",
        "properties": {
          "bridgeLists": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of hosts that have access to the storage to add new images to the datastore.\n"
          },
          "cephs": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FDatastoreCeph:DatastoreCeph"
            },
            "description": "See Ceph section for details.\n"
          },
          "checkAvailableCapacity": {
            "type": "boolean",
            "description": "If yes, the available capacity of the Datastore is checked before creating a new image.\n"
          },
          "clusterIds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "IDs of the clusters the datastore is part of. Minimum 1 item.\n"
          },
          "compatibleSystemDatastores": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Specify the compatible system datastores.\n"
          },
          "customs": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FDatastoreCustom:DatastoreCustom"
            },
            "description": "See Custom section for details.\n"
          },
          "datastoreId": {
            "type": "string",
            "description": "ID of the datastore.\n"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "driver": {
            "type": "string",
            "description": "Specific image mapping driver enforcement. If present it overrides image DRIVER set in the image attributes and VM template.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the datastore.\n"
          },
          "noDecompress": {
            "type": "boolean",
            "description": "Boolean, do not try to untar or decompress the file to be registered.\n"
          },
          "restrictedDirectories": {
            "type": "string",
            "description": "Paths that cannot be used to register images. A space separated list of paths.\n"
          },
          "safeDirectories": {
            "type": "string",
            "description": "If you need to allow a directory listed under RESTRICTED_DIRS. A space separated list of paths.\n"
          },
          "stagingDir": {
            "type": "string",
            "description": "Path in the storage bridge host to copy an Image before moving it to its final destination.\n"
          },
          "storageUsageLimit": {
            "type": "number",
            "description": "The maximum capacity allowed for the Datastore in MB.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "transferBandwithLimit": {
            "type": "number",
            "description": "Specify the maximum transfer rate in bytes/second when downloading images from a http/https URL. Suffixes K, M or G can be used.\n"
          },
          "type": {
            "type": "string",
            "description": "Type of the new datastore: image, system, file.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/group:Group": {
      "description": "Provides an OpenNebula group resource.\n\nThis resource allows you to manage groups on your OpenNebula clusters. When applied,\na new group is created. When destroyed, it is removed.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst exampleGroup = new opennebula.Group(\"exampleGroup\", {\n    tags: {\n        environment: \"example\",\n    },\n    templateSections: [{\n        name: \"example\",\n        elements: {\n            key1: \"value1\",\n        },\n    }],\n});\nconst exampleGroupQuotas = new opennebula.GroupQuotas(\"exampleGroupQuotas\", {\n    groupId: exampleGroup.groupId,\n    datastores: [{\n        id: 1,\n        images: 3,\n        size: 10000,\n    }],\n    vms: [{\n        cpu: 3,\n        runningCpu: 3,\n        memory: 2048,\n        runningMemory: 2048,\n    }],\n    networks: [\n        {\n            id: 10,\n            leases: 6,\n        },\n        {\n            id: 11,\n            leases: 4,\n        },\n    ],\n    images: [\n        {\n            id: 8,\n            runningVms: 1,\n        },\n        {\n            id: 9,\n            runningVms: 1,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample_group = opennebula.Group(\"exampleGroup\",\n    tags={\n        \"environment\": \"example\",\n    },\n    template_sections=[{\n        \"name\": \"example\",\n        \"elements\": {\n            \"key1\": \"value1\",\n        },\n    }])\nexample_group_quotas = opennebula.GroupQuotas(\"exampleGroupQuotas\",\n    group_id=example_group.group_id,\n    datastores=[{\n        \"id\": 1,\n        \"images\": 3,\n        \"size\": 10000,\n    }],\n    vms=[{\n        \"cpu\": 3,\n        \"running_cpu\": 3,\n        \"memory\": 2048,\n        \"running_memory\": 2048,\n    }],\n    networks=[\n        {\n            \"id\": 10,\n            \"leases\": 6,\n        },\n        {\n            \"id\": 11,\n            \"leases\": 4,\n        },\n    ],\n    images=[\n        {\n            \"id\": 8,\n            \"running_vms\": 1,\n        },\n        {\n            \"id\": 9,\n            \"running_vms\": 1,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleGroup = new Opennebula.Group(\"exampleGroup\", new()\n    {\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        TemplateSections = new[]\n        {\n            new Opennebula.Inputs.GroupTemplateSectionArgs\n            {\n                Name = \"example\",\n                Elements = \n                {\n                    { \"key1\", \"value1\" },\n                },\n            },\n        },\n    });\n\n    var exampleGroupQuotas = new Opennebula.GroupQuotas(\"exampleGroupQuotas\", new()\n    {\n        GroupId = exampleGroup.GroupId,\n        Datastores = new[]\n        {\n            new Opennebula.Inputs.GroupQuotasDatastoreArgs\n            {\n                Id = 1,\n                Images = 3,\n                Size = 10000,\n            },\n        },\n        Vms = new[]\n        {\n            new Opennebula.Inputs.GroupQuotasVmArgs\n            {\n                Cpu = 3,\n                RunningCpu = 3,\n                Memory = 2048,\n                RunningMemory = 2048,\n            },\n        },\n        Networks = new[]\n        {\n            new Opennebula.Inputs.GroupQuotasNetworkArgs\n            {\n                Id = 10,\n                Leases = 6,\n            },\n            new Opennebula.Inputs.GroupQuotasNetworkArgs\n            {\n                Id = 11,\n                Leases = 4,\n            },\n        },\n        Images = new[]\n        {\n            new Opennebula.Inputs.GroupQuotasImageArgs\n            {\n                Id = 8,\n                RunningVms = 1,\n            },\n            new Opennebula.Inputs.GroupQuotasImageArgs\n            {\n                Id = 9,\n                RunningVms = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleGroup, err := opennebula.NewGroup(ctx, \"exampleGroup\", &opennebula.GroupArgs{\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tTemplateSections: opennebula.GroupTemplateSectionArray{\n\t\t\t\t&opennebula.GroupTemplateSectionArgs{\n\t\t\t\t\tName: pulumi.String(\"example\"),\n\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\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\t_, err = opennebula.NewGroupQuotas(ctx, \"exampleGroupQuotas\", &opennebula.GroupQuotasArgs{\n\t\t\tGroupId: exampleGroup.GroupId,\n\t\t\tDatastores: opennebula.GroupQuotasDatastoreArray{\n\t\t\t\t&opennebula.GroupQuotasDatastoreArgs{\n\t\t\t\t\tId:     pulumi.Float64(1),\n\t\t\t\t\tImages: pulumi.Float64(3),\n\t\t\t\t\tSize:   pulumi.Float64(10000),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVms: opennebula.GroupQuotasVmArray{\n\t\t\t\t&opennebula.GroupQuotasVmArgs{\n\t\t\t\t\tCpu:           pulumi.Float64(3),\n\t\t\t\t\tRunningCpu:    pulumi.Float64(3),\n\t\t\t\t\tMemory:        pulumi.Float64(2048),\n\t\t\t\t\tRunningMemory: pulumi.Float64(2048),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworks: opennebula.GroupQuotasNetworkArray{\n\t\t\t\t&opennebula.GroupQuotasNetworkArgs{\n\t\t\t\t\tId:     pulumi.Float64(10),\n\t\t\t\t\tLeases: pulumi.Float64(6),\n\t\t\t\t},\n\t\t\t\t&opennebula.GroupQuotasNetworkArgs{\n\t\t\t\t\tId:     pulumi.Float64(11),\n\t\t\t\t\tLeases: pulumi.Float64(4),\n\t\t\t\t},\n\t\t\t},\n\t\t\tImages: opennebula.GroupQuotasImageArray{\n\t\t\t\t&opennebula.GroupQuotasImageArgs{\n\t\t\t\t\tId:         pulumi.Float64(8),\n\t\t\t\t\tRunningVms: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t\t&opennebula.GroupQuotasImageArgs{\n\t\t\t\t\tId:         pulumi.Float64(9),\n\t\t\t\t\tRunningVms: pulumi.Float64(1),\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\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.opennebula.Group;\nimport com.pulumi.opennebula.GroupArgs;\nimport com.pulumi.opennebula.inputs.GroupTemplateSectionArgs;\nimport com.pulumi.opennebula.GroupQuotas;\nimport com.pulumi.opennebula.GroupQuotasArgs;\nimport com.pulumi.opennebula.inputs.GroupQuotasDatastoreArgs;\nimport com.pulumi.opennebula.inputs.GroupQuotasVmArgs;\nimport com.pulumi.opennebula.inputs.GroupQuotasNetworkArgs;\nimport com.pulumi.opennebula.inputs.GroupQuotasImageArgs;\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 exampleGroup = new Group(\"exampleGroup\", GroupArgs.builder()\n            .tags(Map.of(\"environment\", \"example\"))\n            .templateSections(GroupTemplateSectionArgs.builder()\n                .name(\"example\")\n                .elements(Map.of(\"key1\", \"value1\"))\n                .build())\n            .build());\n\n        var exampleGroupQuotas = new GroupQuotas(\"exampleGroupQuotas\", GroupQuotasArgs.builder()\n            .groupId(exampleGroup.groupId())\n            .datastores(GroupQuotasDatastoreArgs.builder()\n                .id(1)\n                .images(3)\n                .size(10000)\n                .build())\n            .vms(GroupQuotasVmArgs.builder()\n                .cpu(3)\n                .runningCpu(3)\n                .memory(2048)\n                .runningMemory(2048)\n                .build())\n            .networks(            \n                GroupQuotasNetworkArgs.builder()\n                    .id(10)\n                    .leases(6)\n                    .build(),\n                GroupQuotasNetworkArgs.builder()\n                    .id(11)\n                    .leases(4)\n                    .build())\n            .images(            \n                GroupQuotasImageArgs.builder()\n                    .id(8)\n                    .runningVms(1)\n                    .build(),\n                GroupQuotasImageArgs.builder()\n                    .id(9)\n                    .runningVms(1)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleGroup:\n    type: opennebula:Group\n    properties:\n      tags:\n        environment: example\n      templateSections:\n        - name: example\n          elements:\n            key1: value1\n  exampleGroupQuotas:\n    type: opennebula:GroupQuotas\n    properties:\n      groupId: ${exampleGroup.groupId}\n      datastores:\n        - id: 1\n          images: 3\n          size: 10000\n      vms:\n        - cpu: 3\n          runningCpu: 3\n          memory: 2048\n          runningMemory: 2048\n      networks:\n        - id: 10\n          leases: 6\n        - id: 11\n          leases: 4\n      images:\n        - id: 8\n          runningVms: 1\n        - id: 9\n          runningVms: 1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_group` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/group:Group example 123\n```\n\n",
      "properties": {
        "admins": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of Administrator user IDs part of the group.\n",
          "deprecationMessage": "Deprecated"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "groupId": {
          "type": "string",
          "description": "ID of the group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the group.\n"
        },
        "opennebulas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupOpennebula:GroupOpennebula"
          },
          "description": "OpenNebula core configuration. See Opennebula parameters below for details\n"
        },
        "quotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuota:GroupQuota"
          },
          "description": "See Quotas parameters below for details. Use `resource_opennebula_group_quotas` instead.\n",
          "deprecationMessage": "Deprecated"
        },
        "sunstones": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupSunstone:GroupSunstone"
          },
          "description": "Allow users and group admins to access specific views. See Sunstone parameters below for details\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupTemplateSection:GroupTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "users": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of user IDs part of the group\n",
          "deprecationMessage": "Deprecated"
        }
      },
      "type": "object",
      "required": [
        "admins",
        "defaultTags",
        "groupId",
        "name",
        "tagsAll"
      ],
      "inputProperties": {
        "admins": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of Administrator user IDs part of the group.\n",
          "deprecationMessage": "Deprecated"
        },
        "groupId": {
          "type": "string",
          "description": "ID of the group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the group.\n"
        },
        "opennebulas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupOpennebula:GroupOpennebula"
          },
          "description": "OpenNebula core configuration. See Opennebula parameters below for details\n"
        },
        "quotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuota:GroupQuota"
          },
          "description": "See Quotas parameters below for details. Use `resource_opennebula_group_quotas` instead.\n",
          "deprecationMessage": "Deprecated"
        },
        "sunstones": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupSunstone:GroupSunstone"
          },
          "description": "Allow users and group admins to access specific views. See Sunstone parameters below for details\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupTemplateSection:GroupTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "users": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of user IDs part of the group\n",
          "deprecationMessage": "Deprecated"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Group resources.\n",
        "properties": {
          "admins": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of Administrator user IDs part of the group.\n",
            "deprecationMessage": "Deprecated"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "groupId": {
            "type": "string",
            "description": "ID of the group.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the group.\n"
          },
          "opennebulas": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FGroupOpennebula:GroupOpennebula"
            },
            "description": "OpenNebula core configuration. See Opennebula parameters below for details\n"
          },
          "quotas": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FGroupQuota:GroupQuota"
            },
            "description": "See Quotas parameters below for details. Use `resource_opennebula_group_quotas` instead.\n",
            "deprecationMessage": "Deprecated"
          },
          "sunstones": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FGroupSunstone:GroupSunstone"
            },
            "description": "Allow users and group admins to access specific views. See Sunstone parameters below for details\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FGroupTemplateSection:GroupTemplateSection"
            },
            "description": "Allow to add a custom vector. See Template section parameters\n"
          },
          "users": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of user IDs part of the group\n",
            "deprecationMessage": "Deprecated"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/groupAdmins:GroupAdmins": {
      "description": "Provides an OpenNebula group administrators resource.\n\nThis resource allows you to manage group administrators on OpenNebula. When applied,\nadminstrator are added or removed from the group. When destroyed, all adminstrators are removed from the group.\n\n## Import\n\n`opennebula_group_admins` can be imported using the group ID:\n\n```sh\n$ pulumi import opennebula:index/groupAdmins:GroupAdmins example 123\n```\n\n",
      "properties": {
        "groupAdminsId": {
          "type": "string"
        },
        "groupId": {
          "type": "number",
          "description": "The id of the related group.\n"
        },
        "usersIds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of users ids\n"
        }
      },
      "type": "object",
      "required": [
        "groupAdminsId",
        "groupId",
        "usersIds"
      ],
      "inputProperties": {
        "groupAdminsId": {
          "type": "string"
        },
        "groupId": {
          "type": "number",
          "description": "The id of the related group.\n"
        },
        "usersIds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of users ids\n"
        }
      },
      "requiredInputs": [
        "groupId",
        "usersIds"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GroupAdmins resources.\n",
        "properties": {
          "groupAdminsId": {
            "type": "string"
          },
          "groupId": {
            "type": "number",
            "description": "The id of the related group.\n"
          },
          "usersIds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of users ids\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/groupQuotas:GroupQuotas": {
      "description": "Provides an OpenNebula group quotas resource.\n\nThis resource allows you to manage the quotas for a group.\n\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst exampleGroupQuotas = new opennebula.GroupQuotas(\"exampleGroupQuotas\", {\n    groupId: opennebula_group.example.id,\n    datastores: [{\n        id: 1,\n        images: 5,\n        size: 10000,\n    }],\n});\nconst exampleIndex_groupQuotasGroupQuotas = new opennebula.GroupQuotas(\"exampleIndex/groupQuotasGroupQuotas\", {\n    groupId: opennebula_group.example.id,\n    vms: [{\n        cpu: 3,\n        runningCpu: 3,\n        memory: 2048,\n        runningMemory: 2048,\n    }],\n});\nconst exampleOpennebulaIndex_groupQuotasGroupQuotas = new opennebula.GroupQuotas(\"exampleOpennebulaIndex/groupQuotasGroupQuotas\", {\n    groupId: opennebula_group.example.id,\n    networks: [\n        {\n            id: 10,\n            leases: 6,\n        },\n        {\n            id: 11,\n            leases: 4,\n        },\n    ],\n});\nconst exampleOpennebulaIndex_groupQuotasGroupQuotas1 = new opennebula.GroupQuotas(\"exampleOpennebulaIndex/groupQuotasGroupQuotas1\", {\n    groupId: opennebula_group.example.id,\n    images: [\n        {\n            id: 8,\n            runningVms: 1,\n        },\n        {\n            id: 9,\n            runningVms: 1,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample_group_quotas = opennebula.GroupQuotas(\"exampleGroupQuotas\",\n    group_id=opennebula_group[\"example\"][\"id\"],\n    datastores=[{\n        \"id\": 1,\n        \"images\": 5,\n        \"size\": 10000,\n    }])\nexample_index_group_quotas_group_quotas = opennebula.GroupQuotas(\"exampleIndex/groupQuotasGroupQuotas\",\n    group_id=opennebula_group[\"example\"][\"id\"],\n    vms=[{\n        \"cpu\": 3,\n        \"running_cpu\": 3,\n        \"memory\": 2048,\n        \"running_memory\": 2048,\n    }])\nexample_opennebula_index_group_quotas_group_quotas = opennebula.GroupQuotas(\"exampleOpennebulaIndex/groupQuotasGroupQuotas\",\n    group_id=opennebula_group[\"example\"][\"id\"],\n    networks=[\n        {\n            \"id\": 10,\n            \"leases\": 6,\n        },\n        {\n            \"id\": 11,\n            \"leases\": 4,\n        },\n    ])\nexample_opennebula_index_group_quotas_group_quotas1 = opennebula.GroupQuotas(\"exampleOpennebulaIndex/groupQuotasGroupQuotas1\",\n    group_id=opennebula_group[\"example\"][\"id\"],\n    images=[\n        {\n            \"id\": 8,\n            \"running_vms\": 1,\n        },\n        {\n            \"id\": 9,\n            \"running_vms\": 1,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleGroupQuotas = new Opennebula.GroupQuotas(\"exampleGroupQuotas\", new()\n    {\n        GroupId = opennebula_group.Example.Id,\n        Datastores = new[]\n        {\n            new Opennebula.Inputs.GroupQuotasDatastoreArgs\n            {\n                Id = 1,\n                Images = 5,\n                Size = 10000,\n            },\n        },\n    });\n\n    var exampleIndex_groupQuotasGroupQuotas = new Opennebula.GroupQuotas(\"exampleIndex/groupQuotasGroupQuotas\", new()\n    {\n        GroupId = opennebula_group.Example.Id,\n        Vms = new[]\n        {\n            new Opennebula.Inputs.GroupQuotasVmArgs\n            {\n                Cpu = 3,\n                RunningCpu = 3,\n                Memory = 2048,\n                RunningMemory = 2048,\n            },\n        },\n    });\n\n    var exampleOpennebulaIndex_groupQuotasGroupQuotas = new Opennebula.GroupQuotas(\"exampleOpennebulaIndex/groupQuotasGroupQuotas\", new()\n    {\n        GroupId = opennebula_group.Example.Id,\n        Networks = new[]\n        {\n            new Opennebula.Inputs.GroupQuotasNetworkArgs\n            {\n                Id = 10,\n                Leases = 6,\n            },\n            new Opennebula.Inputs.GroupQuotasNetworkArgs\n            {\n                Id = 11,\n                Leases = 4,\n            },\n        },\n    });\n\n    var exampleOpennebulaIndex_groupQuotasGroupQuotas1 = new Opennebula.GroupQuotas(\"exampleOpennebulaIndex/groupQuotasGroupQuotas1\", new()\n    {\n        GroupId = opennebula_group.Example.Id,\n        Images = new[]\n        {\n            new Opennebula.Inputs.GroupQuotasImageArgs\n            {\n                Id = 8,\n                RunningVms = 1,\n            },\n            new Opennebula.Inputs.GroupQuotasImageArgs\n            {\n                Id = 9,\n                RunningVms = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewGroupQuotas(ctx, \"exampleGroupQuotas\", &opennebula.GroupQuotasArgs{\n\t\t\tGroupId: pulumi.Any(opennebula_group.Example.Id),\n\t\t\tDatastores: opennebula.GroupQuotasDatastoreArray{\n\t\t\t\t&opennebula.GroupQuotasDatastoreArgs{\n\t\t\t\t\tId:     pulumi.Float64(1),\n\t\t\t\t\tImages: pulumi.Float64(5),\n\t\t\t\t\tSize:   pulumi.Float64(10000),\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\t_, err = opennebula.NewGroupQuotas(ctx, \"exampleIndex/groupQuotasGroupQuotas\", &opennebula.GroupQuotasArgs{\n\t\t\tGroupId: pulumi.Any(opennebula_group.Example.Id),\n\t\t\tVms: opennebula.GroupQuotasVmArray{\n\t\t\t\t&opennebula.GroupQuotasVmArgs{\n\t\t\t\t\tCpu:           pulumi.Float64(3),\n\t\t\t\t\tRunningCpu:    pulumi.Float64(3),\n\t\t\t\t\tMemory:        pulumi.Float64(2048),\n\t\t\t\t\tRunningMemory: pulumi.Float64(2048),\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\t_, err = opennebula.NewGroupQuotas(ctx, \"exampleOpennebulaIndex/groupQuotasGroupQuotas\", &opennebula.GroupQuotasArgs{\n\t\t\tGroupId: pulumi.Any(opennebula_group.Example.Id),\n\t\t\tNetworks: opennebula.GroupQuotasNetworkArray{\n\t\t\t\t&opennebula.GroupQuotasNetworkArgs{\n\t\t\t\t\tId:     pulumi.Float64(10),\n\t\t\t\t\tLeases: pulumi.Float64(6),\n\t\t\t\t},\n\t\t\t\t&opennebula.GroupQuotasNetworkArgs{\n\t\t\t\t\tId:     pulumi.Float64(11),\n\t\t\t\t\tLeases: pulumi.Float64(4),\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\t_, err = opennebula.NewGroupQuotas(ctx, \"exampleOpennebulaIndex/groupQuotasGroupQuotas1\", &opennebula.GroupQuotasArgs{\n\t\t\tGroupId: pulumi.Any(opennebula_group.Example.Id),\n\t\t\tImages: opennebula.GroupQuotasImageArray{\n\t\t\t\t&opennebula.GroupQuotasImageArgs{\n\t\t\t\t\tId:         pulumi.Float64(8),\n\t\t\t\t\tRunningVms: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t\t&opennebula.GroupQuotasImageArgs{\n\t\t\t\t\tId:         pulumi.Float64(9),\n\t\t\t\t\tRunningVms: pulumi.Float64(1),\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\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.opennebula.GroupQuotas;\nimport com.pulumi.opennebula.GroupQuotasArgs;\nimport com.pulumi.opennebula.inputs.GroupQuotasDatastoreArgs;\nimport com.pulumi.opennebula.inputs.GroupQuotasVmArgs;\nimport com.pulumi.opennebula.inputs.GroupQuotasNetworkArgs;\nimport com.pulumi.opennebula.inputs.GroupQuotasImageArgs;\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 exampleGroupQuotas = new GroupQuotas(\"exampleGroupQuotas\", GroupQuotasArgs.builder()\n            .groupId(opennebula_group.example().id())\n            .datastores(GroupQuotasDatastoreArgs.builder()\n                .id(1)\n                .images(5)\n                .size(10000)\n                .build())\n            .build());\n\n        var exampleIndex_groupQuotasGroupQuotas = new GroupQuotas(\"exampleIndex/groupQuotasGroupQuotas\", GroupQuotasArgs.builder()\n            .groupId(opennebula_group.example().id())\n            .vms(GroupQuotasVmArgs.builder()\n                .cpu(3)\n                .runningCpu(3)\n                .memory(2048)\n                .runningMemory(2048)\n                .build())\n            .build());\n\n        var exampleOpennebulaIndex_groupQuotasGroupQuotas = new GroupQuotas(\"exampleOpennebulaIndex/groupQuotasGroupQuotas\", GroupQuotasArgs.builder()\n            .groupId(opennebula_group.example().id())\n            .networks(            \n                GroupQuotasNetworkArgs.builder()\n                    .id(10)\n                    .leases(6)\n                    .build(),\n                GroupQuotasNetworkArgs.builder()\n                    .id(11)\n                    .leases(4)\n                    .build())\n            .build());\n\n        var exampleOpennebulaIndex_groupQuotasGroupQuotas1 = new GroupQuotas(\"exampleOpennebulaIndex/groupQuotasGroupQuotas1\", GroupQuotasArgs.builder()\n            .groupId(opennebula_group.example().id())\n            .images(            \n                GroupQuotasImageArgs.builder()\n                    .id(8)\n                    .runningVms(1)\n                    .build(),\n                GroupQuotasImageArgs.builder()\n                    .id(9)\n                    .runningVms(1)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleGroupQuotas:\n    type: opennebula:GroupQuotas\n    properties:\n      groupId: ${opennebula_group.example.id}\n      datastores:\n        - id: 1\n          images: 5\n          size: 10000\n  exampleIndex/groupQuotasGroupQuotas:\n    type: opennebula:GroupQuotas\n    properties:\n      groupId: ${opennebula_group.example.id}\n      vms:\n        - cpu: 3\n          runningCpu: 3\n          memory: 2048\n          runningMemory: 2048\n  exampleOpennebulaIndex/groupQuotasGroupQuotas:\n    type: opennebula:GroupQuotas\n    properties:\n      groupId: ${opennebula_group.example.id}\n      networks:\n        - id: 10\n          leases: 6\n        - id: 11\n          leases: 4\n  exampleOpennebulaIndex/groupQuotasGroupQuotas1:\n    type: opennebula:GroupQuotas\n    properties:\n      groupId: ${opennebula_group.example.id}\n      images:\n        - id: 8\n          runningVms: 1\n        - id: 9\n          runningVms: 1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_group_quotas` can be imported using the group ID and the quota section to import:\n\n```sh\n$ pulumi import opennebula:index/groupQuotas:GroupQuotas example 123:image\n```\n\n",
      "properties": {
        "datastores": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuotasDatastore:GroupQuotasDatastore"
          },
          "description": "List of datastore quotas. See Datastore quotas parameters below for details. Conflicts with `network`, `image`, `vm`.\n"
        },
        "groupId": {
          "type": "number",
          "description": "The related group ID.\n"
        },
        "groupQuotasId": {
          "type": "string"
        },
        "images": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuotasImage:GroupQuotasImage"
          },
          "description": "List of image quotas. See Image quotas parameters below for details. Conflicts with `datastore`, `network`, `vm`.\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuotasNetwork:GroupQuotasNetwork"
          },
          "description": "List of network quotas. See Network quotas parameters below for details. Conflicts with `datastore`, `image`, `vm`.\n"
        },
        "type": {
          "type": "string"
        },
        "vms": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuotasVm:GroupQuotasVm"
          },
          "description": "See Virtual Machine quotas parameters below for details. Conflicts with `datastore`, `network`, `image`.\n"
        }
      },
      "type": "object",
      "required": [
        "groupId",
        "groupQuotasId",
        "type"
      ],
      "inputProperties": {
        "datastores": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuotasDatastore:GroupQuotasDatastore"
          },
          "description": "List of datastore quotas. See Datastore quotas parameters below for details. Conflicts with `network`, `image`, `vm`.\n"
        },
        "groupId": {
          "type": "number",
          "description": "The related group ID.\n"
        },
        "groupQuotasId": {
          "type": "string"
        },
        "images": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuotasImage:GroupQuotasImage"
          },
          "description": "List of image quotas. See Image quotas parameters below for details. Conflicts with `datastore`, `network`, `vm`.\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuotasNetwork:GroupQuotasNetwork"
          },
          "description": "List of network quotas. See Network quotas parameters below for details. Conflicts with `datastore`, `image`, `vm`.\n"
        },
        "vms": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FGroupQuotasVm:GroupQuotasVm"
          },
          "description": "See Virtual Machine quotas parameters below for details. Conflicts with `datastore`, `network`, `image`.\n"
        }
      },
      "requiredInputs": [
        "groupId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering GroupQuotas resources.\n",
        "properties": {
          "datastores": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FGroupQuotasDatastore:GroupQuotasDatastore"
            },
            "description": "List of datastore quotas. See Datastore quotas parameters below for details. Conflicts with `network`, `image`, `vm`.\n"
          },
          "groupId": {
            "type": "number",
            "description": "The related group ID.\n"
          },
          "groupQuotasId": {
            "type": "string"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FGroupQuotasImage:GroupQuotasImage"
            },
            "description": "List of image quotas. See Image quotas parameters below for details. Conflicts with `datastore`, `network`, `vm`.\n"
          },
          "networks": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FGroupQuotasNetwork:GroupQuotasNetwork"
            },
            "description": "List of network quotas. See Network quotas parameters below for details. Conflicts with `datastore`, `image`, `vm`.\n"
          },
          "type": {
            "type": "string"
          },
          "vms": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FGroupQuotasVm:GroupQuotasVm"
            },
            "description": "See Virtual Machine quotas parameters below for details. Conflicts with `datastore`, `network`, `image`.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/host:Host": {
      "description": "Provides an OpenNebula host resource.\n\nThis resource allows you to manage hosts on your OpenNebula clusters. When applied,\na new host is created. When destroyed, this host is removed.\n\n## Example Usage\n\nCreate a KVM host with overcommit:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.Host(\"example\", {\n    clusterId: 0,\n    overcommits: [{\n        cpu: 3200,\n        memory: 1048576,\n    }],\n    tags: {\n        environment: \"example\",\n    },\n    type: \"kvm\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.Host(\"example\",\n    cluster_id=0,\n    overcommits=[{\n        \"cpu\": 3200,\n        \"memory\": 1048576,\n    }],\n    tags={\n        \"environment\": \"example\",\n    },\n    type=\"kvm\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.Host(\"example\", new()\n    {\n        ClusterId = 0,\n        Overcommits = new[]\n        {\n            new Opennebula.Inputs.HostOvercommitArgs\n            {\n                Cpu = 3200,\n                Memory = 1048576,\n            },\n        },\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        Type = \"kvm\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewHost(ctx, \"example\", &opennebula.HostArgs{\n\t\t\tClusterId: pulumi.Float64(0),\n\t\t\tOvercommits: opennebula.HostOvercommitArray{\n\t\t\t\t&opennebula.HostOvercommitArgs{\n\t\t\t\t\tCpu:    pulumi.Float64(3200),\n\t\t\t\t\tMemory: pulumi.Float64(1048576),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"kvm\"),\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.opennebula.Host;\nimport com.pulumi.opennebula.HostArgs;\nimport com.pulumi.opennebula.inputs.HostOvercommitArgs;\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 example = new Host(\"example\", HostArgs.builder()\n            .clusterId(0)\n            .overcommits(HostOvercommitArgs.builder()\n                .cpu(3200)\n                .memory(1048576)\n                .build())\n            .tags(Map.of(\"environment\", \"example\"))\n            .type(\"kvm\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:Host\n    properties:\n      clusterId: 0\n      overcommits:\n        - cpu: 3200\n          memory: 1.048576e+06\n      tags:\n        environment: example\n      type: kvm\n```\n<!--End PulumiCodeChooser -->\n\nCreate a custom host:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.Host(\"example\", {\n    clusterId: 0,\n    customs: [{\n        information: \"custom\",\n        virtualization: \"custom\",\n    }],\n    tags: {\n        environment: \"example\",\n    },\n    type: \"custom\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.Host(\"example\",\n    cluster_id=0,\n    customs=[{\n        \"information\": \"custom\",\n        \"virtualization\": \"custom\",\n    }],\n    tags={\n        \"environment\": \"example\",\n    },\n    type=\"custom\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.Host(\"example\", new()\n    {\n        ClusterId = 0,\n        Customs = new[]\n        {\n            new Opennebula.Inputs.HostCustomArgs\n            {\n                Information = \"custom\",\n                Virtualization = \"custom\",\n            },\n        },\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        Type = \"custom\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewHost(ctx, \"example\", &opennebula.HostArgs{\n\t\t\tClusterId: pulumi.Float64(0),\n\t\t\tCustoms: opennebula.HostCustomArray{\n\t\t\t\t&opennebula.HostCustomArgs{\n\t\t\t\t\tInformation:    pulumi.String(\"custom\"),\n\t\t\t\t\tVirtualization: pulumi.String(\"custom\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"custom\"),\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.opennebula.Host;\nimport com.pulumi.opennebula.HostArgs;\nimport com.pulumi.opennebula.inputs.HostCustomArgs;\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 example = new Host(\"example\", HostArgs.builder()\n            .clusterId(0)\n            .customs(HostCustomArgs.builder()\n                .information(\"custom\")\n                .virtualization(\"custom\")\n                .build())\n            .tags(Map.of(\"environment\", \"example\"))\n            .type(\"custom\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:Host\n    properties:\n      clusterId: 0\n      customs:\n        - information: custom\n          virtualization: custom\n      tags:\n        environment: example\n      type: custom\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_host` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/host:Host example 123\n```\n\n",
      "properties": {
        "clusterId": {
          "type": "number",
          "description": "ID of the cluster the host is part of.\n"
        },
        "customs": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FHostCustom:HostCustom"
          },
          "description": "If `type=\"custom\"` this section should be defined, see Custom section for details.\n"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "hostId": {
          "type": "string",
          "description": "ID of the host.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the host.\n"
        },
        "overcommits": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FHostOvercommit:HostOvercommit"
          },
          "description": "This section allow to increase the allocatable capacity of the host. See Overcommit\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FHostTimeouts:HostTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Type of the new host: kvm, qemu, lxd, lxc, firecracker, custom. For now vcenter type is not managed by the provider.\n"
        }
      },
      "type": "object",
      "required": [
        "defaultTags",
        "hostId",
        "name",
        "tagsAll",
        "type"
      ],
      "inputProperties": {
        "clusterId": {
          "type": "number",
          "description": "ID of the cluster the host is part of.\n"
        },
        "customs": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FHostCustom:HostCustom"
          },
          "description": "If `type=\"custom\"` this section should be defined, see Custom section for details.\n"
        },
        "hostId": {
          "type": "string",
          "description": "ID of the host.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the host.\n"
        },
        "overcommits": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FHostOvercommit:HostOvercommit"
          },
          "description": "This section allow to increase the allocatable capacity of the host. See Overcommit\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FHostTimeouts:HostTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Type of the new host: kvm, qemu, lxd, lxc, firecracker, custom. For now vcenter type is not managed by the provider.\n"
        }
      },
      "requiredInputs": [
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Host resources.\n",
        "properties": {
          "clusterId": {
            "type": "number",
            "description": "ID of the cluster the host is part of.\n"
          },
          "customs": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FHostCustom:HostCustom"
            },
            "description": "If `type=\"custom\"` this section should be defined, see Custom section for details.\n"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "hostId": {
            "type": "string",
            "description": "ID of the host.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the host.\n"
          },
          "overcommits": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FHostOvercommit:HostOvercommit"
            },
            "description": "This section allow to increase the allocatable capacity of the host. See Overcommit\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "timeouts": {
            "$ref": "#/types/opennebula:index%2FHostTimeouts:HostTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Type of the new host: kvm, qemu, lxd, lxc, firecracker, custom. For now vcenter type is not managed by the provider.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/image:Image": {
      "description": "Provides an OpenNebula image resource.\n\nThis resource allows you to manage images on your OpenNebula clusters. When applied,\na new image is created. When destroyed, this image is removed.\n\n## Example Usage\n\nClone an existing image and make it persistent:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.Image(\"example\", {\n    cloneFromImage: \"12937\",\n    datastoreId: 113,\n    group: \"terraform\",\n    permissions: \"660\",\n    persistent: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.Image(\"example\",\n    clone_from_image=\"12937\",\n    datastore_id=113,\n    group=\"terraform\",\n    permissions=\"660\",\n    persistent=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.Image(\"example\", new()\n    {\n        CloneFromImage = \"12937\",\n        DatastoreId = 113,\n        Group = \"terraform\",\n        Permissions = \"660\",\n        Persistent = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewImage(ctx, \"example\", &opennebula.ImageArgs{\n\t\t\tCloneFromImage: pulumi.String(\"12937\"),\n\t\t\tDatastoreId:    pulumi.Float64(113),\n\t\t\tGroup:          pulumi.String(\"terraform\"),\n\t\t\tPermissions:    pulumi.String(\"660\"),\n\t\t\tPersistent:     pulumi.Bool(true),\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.opennebula.Image;\nimport com.pulumi.opennebula.ImageArgs;\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 example = new Image(\"example\", ImageArgs.builder()\n            .cloneFromImage(12937)\n            .datastoreId(113)\n            .group(\"terraform\")\n            .permissions(\"660\")\n            .persistent(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:Image\n    properties:\n      cloneFromImage: 12937\n      datastoreId: 113\n      group: terraform\n      permissions: '660'\n      persistent: true\n```\n<!--End PulumiCodeChooser -->\n\nAllocate a new OS image using a URL:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.Image(\"example\", {\n    datastoreId: 103,\n    description: \"Terraform image\",\n    devPrefix: \"vd\",\n    driver: \"qcow2\",\n    group: \"terraform\",\n    lock: \"MANAGE\",\n    path: \"http://marketplace.opennebula.org/appliance/ca5c3632-359a-429c-ac5b-b86178ee2390/download/0\",\n    permissions: \"660\",\n    persistent: false,\n    tags: {\n        environment: \"example\",\n    },\n    templateSections: [{\n        elements: {\n            key1: \"value1\",\n        },\n        name: \"example\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.Image(\"example\",\n    datastore_id=103,\n    description=\"Terraform image\",\n    dev_prefix=\"vd\",\n    driver=\"qcow2\",\n    group=\"terraform\",\n    lock=\"MANAGE\",\n    path=\"http://marketplace.opennebula.org/appliance/ca5c3632-359a-429c-ac5b-b86178ee2390/download/0\",\n    permissions=\"660\",\n    persistent=False,\n    tags={\n        \"environment\": \"example\",\n    },\n    template_sections=[{\n        \"elements\": {\n            \"key1\": \"value1\",\n        },\n        \"name\": \"example\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.Image(\"example\", new()\n    {\n        DatastoreId = 103,\n        Description = \"Terraform image\",\n        DevPrefix = \"vd\",\n        Driver = \"qcow2\",\n        Group = \"terraform\",\n        Lock = \"MANAGE\",\n        Path = \"http://marketplace.opennebula.org/appliance/ca5c3632-359a-429c-ac5b-b86178ee2390/download/0\",\n        Permissions = \"660\",\n        Persistent = false,\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        TemplateSections = new[]\n        {\n            new Opennebula.Inputs.ImageTemplateSectionArgs\n            {\n                Elements = \n                {\n                    { \"key1\", \"value1\" },\n                },\n                Name = \"example\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewImage(ctx, \"example\", &opennebula.ImageArgs{\n\t\t\tDatastoreId: pulumi.Float64(103),\n\t\t\tDescription: pulumi.String(\"Terraform image\"),\n\t\t\tDevPrefix:   pulumi.String(\"vd\"),\n\t\t\tDriver:      pulumi.String(\"qcow2\"),\n\t\t\tGroup:       pulumi.String(\"terraform\"),\n\t\t\tLock:        pulumi.String(\"MANAGE\"),\n\t\t\tPath:        pulumi.String(\"http://marketplace.opennebula.org/appliance/ca5c3632-359a-429c-ac5b-b86178ee2390/download/0\"),\n\t\t\tPermissions: pulumi.String(\"660\"),\n\t\t\tPersistent:  pulumi.Bool(false),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tTemplateSections: opennebula.ImageTemplateSectionArray{\n\t\t\t\t&opennebula.ImageTemplateSectionArgs{\n\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"example\"),\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\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.opennebula.Image;\nimport com.pulumi.opennebula.ImageArgs;\nimport com.pulumi.opennebula.inputs.ImageTemplateSectionArgs;\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 example = new Image(\"example\", ImageArgs.builder()\n            .datastoreId(103)\n            .description(\"Terraform image\")\n            .devPrefix(\"vd\")\n            .driver(\"qcow2\")\n            .group(\"terraform\")\n            .lock(\"MANAGE\")\n            .path(\"http://marketplace.opennebula.org/appliance/ca5c3632-359a-429c-ac5b-b86178ee2390/download/0\")\n            .permissions(\"660\")\n            .persistent(false)\n            .tags(Map.of(\"environment\", \"example\"))\n            .templateSections(ImageTemplateSectionArgs.builder()\n                .elements(Map.of(\"key1\", \"value1\"))\n                .name(\"example\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:Image\n    properties:\n      datastoreId: 103\n      description: Terraform image\n      devPrefix: vd\n      driver: qcow2\n      group: terraform\n      lock: MANAGE\n      path: http://marketplace.opennebula.org/appliance/ca5c3632-359a-429c-ac5b-b86178ee2390/download/0\n      permissions: '660'\n      persistent: false\n      tags:\n        environment: example\n      templateSections:\n        - elements:\n            key1: value1\n          name: example\n```\n<!--End PulumiCodeChooser -->\n\nAllocate a new persistent 1GB datablock image:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.Image(\"example\", {\n    datastoreId: 103,\n    description: \"Terraform datablock\",\n    devPrefix: \"vd\",\n    driver: \"qcow2\",\n    group: \"terraform\",\n    persistent: true,\n    size: 1024,\n    tags: {\n        environment: \"example\",\n    },\n    templateSections: [{\n        elements: {\n            key1: \"value\",\n        },\n        name: \"example\",\n    }],\n    type: \"DATABLOCK\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.Image(\"example\",\n    datastore_id=103,\n    description=\"Terraform datablock\",\n    dev_prefix=\"vd\",\n    driver=\"qcow2\",\n    group=\"terraform\",\n    persistent=True,\n    size=1024,\n    tags={\n        \"environment\": \"example\",\n    },\n    template_sections=[{\n        \"elements\": {\n            \"key1\": \"value\",\n        },\n        \"name\": \"example\",\n    }],\n    type=\"DATABLOCK\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.Image(\"example\", new()\n    {\n        DatastoreId = 103,\n        Description = \"Terraform datablock\",\n        DevPrefix = \"vd\",\n        Driver = \"qcow2\",\n        Group = \"terraform\",\n        Persistent = true,\n        Size = 1024,\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        TemplateSections = new[]\n        {\n            new Opennebula.Inputs.ImageTemplateSectionArgs\n            {\n                Elements = \n                {\n                    { \"key1\", \"value\" },\n                },\n                Name = \"example\",\n            },\n        },\n        Type = \"DATABLOCK\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewImage(ctx, \"example\", &opennebula.ImageArgs{\n\t\t\tDatastoreId: pulumi.Float64(103),\n\t\t\tDescription: pulumi.String(\"Terraform datablock\"),\n\t\t\tDevPrefix:   pulumi.String(\"vd\"),\n\t\t\tDriver:      pulumi.String(\"qcow2\"),\n\t\t\tGroup:       pulumi.String(\"terraform\"),\n\t\t\tPersistent:  pulumi.Bool(true),\n\t\t\tSize:        pulumi.Float64(1024),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tTemplateSections: opennebula.ImageTemplateSectionArray{\n\t\t\t\t&opennebula.ImageTemplateSectionArgs{\n\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"example\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tType: pulumi.String(\"DATABLOCK\"),\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.opennebula.Image;\nimport com.pulumi.opennebula.ImageArgs;\nimport com.pulumi.opennebula.inputs.ImageTemplateSectionArgs;\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 example = new Image(\"example\", ImageArgs.builder()\n            .datastoreId(103)\n            .description(\"Terraform datablock\")\n            .devPrefix(\"vd\")\n            .driver(\"qcow2\")\n            .group(\"terraform\")\n            .persistent(true)\n            .size(\"1024\")\n            .tags(Map.of(\"environment\", \"example\"))\n            .templateSections(ImageTemplateSectionArgs.builder()\n                .elements(Map.of(\"key1\", \"value\"))\n                .name(\"example\")\n                .build())\n            .type(\"DATABLOCK\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:Image\n    properties:\n      datastoreId: 103\n      description: Terraform datablock\n      devPrefix: vd\n      driver: qcow2\n      group: terraform\n      persistent: true\n      size: '1024'\n      tags:\n        environment: example\n      templateSections:\n        - elements:\n            key1: value\n          name: example\n      type: DATABLOCK\n```\n<!--End PulumiCodeChooser -->\n\nAllocate a new context file:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.Image(\"example\", {\n    datastoreId: 2,\n    description: \"Terraform context\",\n    path: \"http://server/myscript.sh\",\n    tags: {\n        environment: \"example\",\n    },\n    type: \"CONTEXT\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.Image(\"example\",\n    datastore_id=2,\n    description=\"Terraform context\",\n    path=\"http://server/myscript.sh\",\n    tags={\n        \"environment\": \"example\",\n    },\n    type=\"CONTEXT\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.Image(\"example\", new()\n    {\n        DatastoreId = 2,\n        Description = \"Terraform context\",\n        Path = \"http://server/myscript.sh\",\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        Type = \"CONTEXT\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewImage(ctx, \"example\", &opennebula.ImageArgs{\n\t\t\tDatastoreId: pulumi.Float64(2),\n\t\t\tDescription: pulumi.String(\"Terraform context\"),\n\t\t\tPath:        pulumi.String(\"http://server/myscript.sh\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"CONTEXT\"),\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.opennebula.Image;\nimport com.pulumi.opennebula.ImageArgs;\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 example = new Image(\"example\", ImageArgs.builder()\n            .datastoreId(2)\n            .description(\"Terraform context\")\n            .path(\"http://server/myscript.sh\")\n            .tags(Map.of(\"environment\", \"example\"))\n            .type(\"CONTEXT\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:Image\n    properties:\n      datastoreId: 2\n      description: Terraform context\n      path: http://server/myscript.sh\n      tags:\n        environment: example\n      type: CONTEXT\n```\n<!--End PulumiCodeChooser -->\n\nAllocate a new CDROM image:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.Image(\"example\", {\n    datastoreId: 103,\n    description: \"Terraform cdrom\",\n    path: \"http://example.com/example_amd64.iso\",\n    tags: {\n        environment: \"example\",\n    },\n    type: \"CDROM\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.Image(\"example\",\n    datastore_id=103,\n    description=\"Terraform cdrom\",\n    path=\"http://example.com/example_amd64.iso\",\n    tags={\n        \"environment\": \"example\",\n    },\n    type=\"CDROM\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.Image(\"example\", new()\n    {\n        DatastoreId = 103,\n        Description = \"Terraform cdrom\",\n        Path = \"http://example.com/example_amd64.iso\",\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        Type = \"CDROM\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewImage(ctx, \"example\", &opennebula.ImageArgs{\n\t\t\tDatastoreId: pulumi.Float64(103),\n\t\t\tDescription: pulumi.String(\"Terraform cdrom\"),\n\t\t\tPath:        pulumi.String(\"http://example.com/example_amd64.iso\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"CDROM\"),\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.opennebula.Image;\nimport com.pulumi.opennebula.ImageArgs;\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 example = new Image(\"example\", ImageArgs.builder()\n            .datastoreId(103)\n            .description(\"Terraform cdrom\")\n            .path(\"http://example.com/example_amd64.iso\")\n            .tags(Map.of(\"environment\", \"example\"))\n            .type(\"CDROM\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:Image\n    properties:\n      datastoreId: 103\n      description: Terraform cdrom\n      path: http://example.com/example_amd64.iso\n      tags:\n        environment: example\n      type: CDROM\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_image` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/image:Image example 123\n```\n\n",
      "properties": {
        "cloneFromImage": {
          "type": "string",
          "description": "ID or name of the image to clone from. Conflicts with `path`, `size` and `type`.\n"
        },
        "datastoreId": {
          "type": "number",
          "description": "ID of the datastore used to store the image. The `datastore_id` must be an active `IMAGE` datastore.\n"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the image.\n"
        },
        "devPrefix": {
          "type": "string",
          "description": "Device prefix on Virtual Machine. Usually one of these: `hd`, `sd` or `vd`.\n"
        },
        "driver": {
          "type": "string",
          "description": "OpenNebula Driver to use.\n"
        },
        "format": {
          "type": "string",
          "description": "Image format. Example: `raw`, `qcow2`.\n"
        },
        "gid": {
          "type": "number",
          "description": "Group ID which owns the image.\n"
        },
        "gname": {
          "type": "string",
          "description": "Group Name which owns the image.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the image. Defaults to the caller primary group.\n"
        },
        "imageId": {
          "type": "string",
          "description": "ID of the image.\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock the image with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the image.\n"
        },
        "path": {
          "type": "string",
          "description": "Path or URL of the original image to use. Conflicts with `clone_from_image`.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied to the image. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "persistent": {
          "type": "boolean",
          "description": "Flag which indicates if the Image has to be persistent. Defaults to `false`.\n"
        },
        "size": {
          "type": "number",
          "description": "Size of the image in MB. Conflicts with `clone_from_image`.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "target": {
          "type": "string",
          "description": "Device target on Virtual Machine.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FImageTemplateSection:ImageTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "timeout": {
          "type": "number",
          "description": "Timeout (in Minutes) for Image availability. Defaults to 10 minutes.\n",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FImageTimeouts:ImageTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Type of the image. Supported values: `OS`, `CDROM`, `DATABLOCK`, `KERNEL`, `RAMDISK` or `CONTEXT`. Conflicts with `clone_from_image`.\n"
        },
        "uid": {
          "type": "number",
          "description": "User ID whom owns the image.\n"
        },
        "uname": {
          "type": "string",
          "description": "User Name whom owns the image.\n"
        }
      },
      "type": "object",
      "required": [
        "datastoreId",
        "defaultTags",
        "devPrefix",
        "driver",
        "format",
        "gid",
        "gname",
        "imageId",
        "name",
        "path",
        "permissions",
        "size",
        "tagsAll",
        "target",
        "type",
        "uid",
        "uname"
      ],
      "inputProperties": {
        "cloneFromImage": {
          "type": "string",
          "description": "ID or name of the image to clone from. Conflicts with `path`, `size` and `type`.\n"
        },
        "datastoreId": {
          "type": "number",
          "description": "ID of the datastore used to store the image. The `datastore_id` must be an active `IMAGE` datastore.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the image.\n"
        },
        "devPrefix": {
          "type": "string",
          "description": "Device prefix on Virtual Machine. Usually one of these: `hd`, `sd` or `vd`.\n"
        },
        "driver": {
          "type": "string",
          "description": "OpenNebula Driver to use.\n"
        },
        "format": {
          "type": "string",
          "description": "Image format. Example: `raw`, `qcow2`.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the image. Defaults to the caller primary group.\n"
        },
        "imageId": {
          "type": "string",
          "description": "ID of the image.\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock the image with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the image.\n"
        },
        "path": {
          "type": "string",
          "description": "Path or URL of the original image to use. Conflicts with `clone_from_image`.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied to the image. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "persistent": {
          "type": "boolean",
          "description": "Flag which indicates if the Image has to be persistent. Defaults to `false`.\n"
        },
        "size": {
          "type": "number",
          "description": "Size of the image in MB. Conflicts with `clone_from_image`.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "target": {
          "type": "string",
          "description": "Device target on Virtual Machine.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FImageTemplateSection:ImageTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "timeout": {
          "type": "number",
          "description": "Timeout (in Minutes) for Image availability. Defaults to 10 minutes.\n",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FImageTimeouts:ImageTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Type of the image. Supported values: `OS`, `CDROM`, `DATABLOCK`, `KERNEL`, `RAMDISK` or `CONTEXT`. Conflicts with `clone_from_image`.\n"
        }
      },
      "requiredInputs": [
        "datastoreId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Image resources.\n",
        "properties": {
          "cloneFromImage": {
            "type": "string",
            "description": "ID or name of the image to clone from. Conflicts with `path`, `size` and `type`.\n"
          },
          "datastoreId": {
            "type": "number",
            "description": "ID of the datastore used to store the image. The `datastore_id` must be an active `IMAGE` datastore.\n"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the image.\n"
          },
          "devPrefix": {
            "type": "string",
            "description": "Device prefix on Virtual Machine. Usually one of these: `hd`, `sd` or `vd`.\n"
          },
          "driver": {
            "type": "string",
            "description": "OpenNebula Driver to use.\n"
          },
          "format": {
            "type": "string",
            "description": "Image format. Example: `raw`, `qcow2`.\n"
          },
          "gid": {
            "type": "number",
            "description": "Group ID which owns the image.\n"
          },
          "gname": {
            "type": "string",
            "description": "Group Name which owns the image.\n"
          },
          "group": {
            "type": "string",
            "description": "Name of the group which owns the image. Defaults to the caller primary group.\n"
          },
          "imageId": {
            "type": "string",
            "description": "ID of the image.\n"
          },
          "lock": {
            "type": "string",
            "description": "Lock the image with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the image.\n"
          },
          "path": {
            "type": "string",
            "description": "Path or URL of the original image to use. Conflicts with `clone_from_image`.\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions applied to the image. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
          },
          "persistent": {
            "type": "boolean",
            "description": "Flag which indicates if the Image has to be persistent. Defaults to `false`.\n"
          },
          "size": {
            "type": "number",
            "description": "Size of the image in MB. Conflicts with `clone_from_image`.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "target": {
            "type": "string",
            "description": "Device target on Virtual Machine.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FImageTemplateSection:ImageTemplateSection"
            },
            "description": "Allow to add a custom vector. See Template section parameters\n"
          },
          "timeout": {
            "type": "number",
            "description": "Timeout (in Minutes) for Image availability. Defaults to 10 minutes.\n",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/opennebula:index%2FImageTimeouts:ImageTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Type of the image. Supported values: `OS`, `CDROM`, `DATABLOCK`, `KERNEL`, `RAMDISK` or `CONTEXT`. Conflicts with `clone_from_image`.\n"
          },
          "uid": {
            "type": "number",
            "description": "User ID whom owns the image.\n"
          },
          "uname": {
            "type": "string",
            "description": "User Name whom owns the image.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/marketplace:Marketplace": {
      "description": "Provides an OpenNebula marketplace resource.\n\nThis resource allows you to manage marketplaces.\n\n## Example Usage\n\nCreate a custom marketplace:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.Marketplace(\"example\", {\n    s3s: [{\n        accessKeyId: \"XXX\",\n        bucket: \"123\",\n        region: \"us\",\n        secretAccessKey: \"XXX\",\n        type: \"aws\",\n    }],\n    tags: {\n        environment: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.Marketplace(\"example\",\n    s3s=[{\n        \"access_key_id\": \"XXX\",\n        \"bucket\": \"123\",\n        \"region\": \"us\",\n        \"secret_access_key\": \"XXX\",\n        \"type\": \"aws\",\n    }],\n    tags={\n        \"environment\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.Marketplace(\"example\", new()\n    {\n        S3s = new[]\n        {\n            new Opennebula.Inputs.MarketplaceS3Args\n            {\n                AccessKeyId = \"XXX\",\n                Bucket = \"123\",\n                Region = \"us\",\n                SecretAccessKey = \"XXX\",\n                Type = \"aws\",\n            },\n        },\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewMarketplace(ctx, \"example\", &opennebula.MarketplaceArgs{\n\t\t\tS3s: opennebula.MarketplaceS3Array{\n\t\t\t\t&opennebula.MarketplaceS3Args{\n\t\t\t\t\tAccessKeyId:     pulumi.String(\"XXX\"),\n\t\t\t\t\tBucket:          pulumi.String(\"123\"),\n\t\t\t\t\tRegion:          pulumi.String(\"us\"),\n\t\t\t\t\tSecretAccessKey: pulumi.String(\"XXX\"),\n\t\t\t\t\tType:            pulumi.String(\"aws\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\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.opennebula.Marketplace;\nimport com.pulumi.opennebula.MarketplaceArgs;\nimport com.pulumi.opennebula.inputs.MarketplaceS3Args;\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 example = new Marketplace(\"example\", MarketplaceArgs.builder()\n            .s3s(MarketplaceS3Args.builder()\n                .accessKeyId(\"XXX\")\n                .bucket(\"123\")\n                .region(\"us\")\n                .secretAccessKey(\"XXX\")\n                .type(\"aws\")\n                .build())\n            .tags(Map.of(\"environment\", \"example\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:Marketplace\n    properties:\n      s3s:\n        - accessKeyId: XXX\n          bucket: '123'\n          region: us\n          secretAccessKey: XXX\n          type: aws\n      tags:\n        environment: example\n```\n<!--End PulumiCodeChooser -->\n\n## Turnkey\n\nThe following arguments are supported:\n\n* `endpoint_url` - (Optional) The base URL of the Market.\n* `roofs_image_size` - (Optional) Size in MB for the image holding the rootfs.\n* `filesystem` - (Optional) Filesystem used for the image.\n* `image_block_file_format` - (Optional) Image block file format.\n* `skip_untested` - (Optional) Include only apps with support for context.\n\n## Import\n\n`opennebula_marketplace` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/marketplace:Marketplace example 123\n```\n\n",
      "properties": {
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the marketplace.\n"
        },
        "disabled": {
          "type": "boolean",
          "description": "Allow to enable or disable the market place\n"
        },
        "dockerhub": {
          "type": "boolean",
          "description": "Flag as a dockerhub marketplace, this provide access to DockerHub Official Images.\n"
        },
        "gid": {
          "type": "number",
          "description": "ID of the group that will own the marketplace\n"
        },
        "gname": {
          "type": "string",
          "description": "Name of the group that will own the marketplace\n"
        },
        "https": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceHttp:MarketplaceHttp"
          },
          "description": "See Http section for details.\n"
        },
        "lxcs": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceLxc:MarketplaceLxc"
          },
          "description": "See LXC section for details.\n"
        },
        "marketplaceId": {
          "type": "string",
          "description": "ID of the marketplace.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the marketplace.\n"
        },
        "ones": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceOne:MarketplaceOne"
          },
          "description": "See One section for details.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied to the appliance. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "s3s": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceS3:MarketplaceS3"
          },
          "description": "See S3 section for details.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Marketplace tags (Key = value).\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceTemplateSection:MarketplaceTemplateSection"
          },
          "description": "Add custom section to the resource\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FMarketplaceTimeouts:MarketplaceTimeouts"
        },
        "turnkeys": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceTurnkey:MarketplaceTurnkey"
          },
          "description": "See Turnkey section for details.\n"
        },
        "uid": {
          "type": "number",
          "description": "ID of the user that will own the marketplace\n"
        },
        "uname": {
          "type": "string",
          "description": "Name of the user that will own the marketplace\n"
        }
      },
      "type": "object",
      "required": [
        "defaultTags",
        "gid",
        "gname",
        "marketplaceId",
        "name",
        "permissions",
        "tagsAll",
        "uid",
        "uname"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "The description of the marketplace.\n"
        },
        "disabled": {
          "type": "boolean",
          "description": "Allow to enable or disable the market place\n"
        },
        "dockerhub": {
          "type": "boolean",
          "description": "Flag as a dockerhub marketplace, this provide access to DockerHub Official Images.\n"
        },
        "https": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceHttp:MarketplaceHttp"
          },
          "description": "See Http section for details.\n"
        },
        "lxcs": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceLxc:MarketplaceLxc"
          },
          "description": "See LXC section for details.\n"
        },
        "marketplaceId": {
          "type": "string",
          "description": "ID of the marketplace.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the marketplace.\n"
        },
        "ones": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceOne:MarketplaceOne"
          },
          "description": "See One section for details.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied to the appliance. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "s3s": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceS3:MarketplaceS3"
          },
          "description": "See S3 section for details.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Marketplace tags (Key = value).\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceTemplateSection:MarketplaceTemplateSection"
          },
          "description": "Add custom section to the resource\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FMarketplaceTimeouts:MarketplaceTimeouts"
        },
        "turnkeys": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceTurnkey:MarketplaceTurnkey"
          },
          "description": "See Turnkey section for details.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Marketplace resources.\n",
        "properties": {
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of the marketplace.\n"
          },
          "disabled": {
            "type": "boolean",
            "description": "Allow to enable or disable the market place\n"
          },
          "dockerhub": {
            "type": "boolean",
            "description": "Flag as a dockerhub marketplace, this provide access to DockerHub Official Images.\n"
          },
          "gid": {
            "type": "number",
            "description": "ID of the group that will own the marketplace\n"
          },
          "gname": {
            "type": "string",
            "description": "Name of the group that will own the marketplace\n"
          },
          "https": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FMarketplaceHttp:MarketplaceHttp"
            },
            "description": "See Http section for details.\n"
          },
          "lxcs": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FMarketplaceLxc:MarketplaceLxc"
            },
            "description": "See LXC section for details.\n"
          },
          "marketplaceId": {
            "type": "string",
            "description": "ID of the marketplace.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the marketplace.\n"
          },
          "ones": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FMarketplaceOne:MarketplaceOne"
            },
            "description": "See One section for details.\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions applied to the appliance. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
          },
          "s3s": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FMarketplaceS3:MarketplaceS3"
            },
            "description": "See S3 section for details.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Marketplace tags (Key = value).\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FMarketplaceTemplateSection:MarketplaceTemplateSection"
            },
            "description": "Add custom section to the resource\n"
          },
          "timeouts": {
            "$ref": "#/types/opennebula:index%2FMarketplaceTimeouts:MarketplaceTimeouts"
          },
          "turnkeys": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FMarketplaceTurnkey:MarketplaceTurnkey"
            },
            "description": "See Turnkey section for details.\n"
          },
          "uid": {
            "type": "number",
            "description": "ID of the user that will own the marketplace\n"
          },
          "uname": {
            "type": "string",
            "description": "Name of the user that will own the marketplace\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/marketplaceAppliance:MarketplaceAppliance": {
      "properties": {
        "apptemplate64": {
          "type": "string",
          "description": "Associated template that will be added to the registered object\n"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration\n"
        },
        "description": {
          "type": "string",
          "description": "Text description of the appliance\n"
        },
        "disabled": {
          "type": "boolean",
          "description": "Allow to enable or disable the appliance\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group owning the appliance\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock level of the new resource: USE, MANAGE, ADMIN, ALL, UNLOCK\n"
        },
        "marketId": {
          "type": "number",
          "description": "The ID of the market to host the appliance\n"
        },
        "marketplaceApplianceId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Name of the appliance\n"
        },
        "originId": {
          "type": "number",
          "description": "The ID of the source image\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions for the appliance (in Unix format, owner-group-other, use-manage-admin)\n"
        },
        "publisher": {
          "type": "string",
          "description": "Publisher of the appliance\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Add custom tags to the resource\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied default_tags and resource tags\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceApplianceTemplateSection:MarketplaceApplianceTemplateSection"
          },
          "description": "Add custom section to the resource\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FMarketplaceApplianceTimeouts:MarketplaceApplianceTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Type of the app: IMAGE, VMTEMPLATE, SERVICE_TEMPLATE\n"
        },
        "version": {
          "type": "string",
          "description": "A string indicating the appliance version\n"
        },
        "vmtemplate64": {
          "type": "string",
          "description": "Creates this template pointing to the base image\n"
        }
      },
      "type": "object",
      "required": [
        "defaultTags",
        "marketId",
        "marketplaceApplianceId",
        "name",
        "permissions",
        "tagsAll",
        "type"
      ],
      "inputProperties": {
        "apptemplate64": {
          "type": "string",
          "description": "Associated template that will be added to the registered object\n"
        },
        "description": {
          "type": "string",
          "description": "Text description of the appliance\n"
        },
        "disabled": {
          "type": "boolean",
          "description": "Allow to enable or disable the appliance\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group owning the appliance\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock level of the new resource: USE, MANAGE, ADMIN, ALL, UNLOCK\n"
        },
        "marketId": {
          "type": "number",
          "description": "The ID of the market to host the appliance\n"
        },
        "marketplaceApplianceId": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "description": "Name of the appliance\n"
        },
        "originId": {
          "type": "number",
          "description": "The ID of the source image\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions for the appliance (in Unix format, owner-group-other, use-manage-admin)\n"
        },
        "publisher": {
          "type": "string",
          "description": "Publisher of the appliance\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Add custom tags to the resource\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FMarketplaceApplianceTemplateSection:MarketplaceApplianceTemplateSection"
          },
          "description": "Add custom section to the resource\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FMarketplaceApplianceTimeouts:MarketplaceApplianceTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Type of the app: IMAGE, VMTEMPLATE, SERVICE_TEMPLATE\n"
        },
        "version": {
          "type": "string",
          "description": "A string indicating the appliance version\n"
        },
        "vmtemplate64": {
          "type": "string",
          "description": "Creates this template pointing to the base image\n"
        }
      },
      "requiredInputs": [
        "marketId",
        "type"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering MarketplaceAppliance resources.\n",
        "properties": {
          "apptemplate64": {
            "type": "string",
            "description": "Associated template that will be added to the registered object\n"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration\n"
          },
          "description": {
            "type": "string",
            "description": "Text description of the appliance\n"
          },
          "disabled": {
            "type": "boolean",
            "description": "Allow to enable or disable the appliance\n"
          },
          "group": {
            "type": "string",
            "description": "Name of the group owning the appliance\n"
          },
          "lock": {
            "type": "string",
            "description": "Lock level of the new resource: USE, MANAGE, ADMIN, ALL, UNLOCK\n"
          },
          "marketId": {
            "type": "number",
            "description": "The ID of the market to host the appliance\n"
          },
          "marketplaceApplianceId": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Name of the appliance\n"
          },
          "originId": {
            "type": "number",
            "description": "The ID of the source image\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions for the appliance (in Unix format, owner-group-other, use-manage-admin)\n"
          },
          "publisher": {
            "type": "string",
            "description": "Publisher of the appliance\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Add custom tags to the resource\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied default_tags and resource tags\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FMarketplaceApplianceTemplateSection:MarketplaceApplianceTemplateSection"
            },
            "description": "Add custom section to the resource\n"
          },
          "timeouts": {
            "$ref": "#/types/opennebula:index%2FMarketplaceApplianceTimeouts:MarketplaceApplianceTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Type of the app: IMAGE, VMTEMPLATE, SERVICE_TEMPLATE\n"
          },
          "version": {
            "type": "string",
            "description": "A string indicating the appliance version\n"
          },
          "vmtemplate64": {
            "type": "string",
            "description": "Creates this template pointing to the base image\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/securityGroup:SecurityGroup": {
      "description": "Provides an OpenNebula security group resource.\n\nThis resource allows you to manage security groups on your OpenNebula clusters. When applied,\na new security group is created. When destroyed, this security group is removed.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.SecurityGroup(\"example\", {\n    description: \"Terraform security group\",\n    group: \"terraform\",\n    rules: [\n        {\n            protocol: \"ALL\",\n            ruleType: \"OUTBOUND\",\n        },\n        {\n            protocol: \"TCP\",\n            range: \"22\",\n            ruleType: \"INBOUND\",\n        },\n        {\n            protocol: \"ICMP\",\n            ruleType: \"INBOUND\",\n        },\n    ],\n    tags: {\n        environment: \"example\",\n    },\n    templateSections: [{\n        elements: {\n            key1: \"value1\",\n        },\n        name: \"example\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.SecurityGroup(\"example\",\n    description=\"Terraform security group\",\n    group=\"terraform\",\n    rules=[\n        {\n            \"protocol\": \"ALL\",\n            \"rule_type\": \"OUTBOUND\",\n        },\n        {\n            \"protocol\": \"TCP\",\n            \"range\": \"22\",\n            \"rule_type\": \"INBOUND\",\n        },\n        {\n            \"protocol\": \"ICMP\",\n            \"rule_type\": \"INBOUND\",\n        },\n    ],\n    tags={\n        \"environment\": \"example\",\n    },\n    template_sections=[{\n        \"elements\": {\n            \"key1\": \"value1\",\n        },\n        \"name\": \"example\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.SecurityGroup(\"example\", new()\n    {\n        Description = \"Terraform security group\",\n        Group = \"terraform\",\n        Rules = new[]\n        {\n            new Opennebula.Inputs.SecurityGroupRuleArgs\n            {\n                Protocol = \"ALL\",\n                RuleType = \"OUTBOUND\",\n            },\n            new Opennebula.Inputs.SecurityGroupRuleArgs\n            {\n                Protocol = \"TCP\",\n                Range = \"22\",\n                RuleType = \"INBOUND\",\n            },\n            new Opennebula.Inputs.SecurityGroupRuleArgs\n            {\n                Protocol = \"ICMP\",\n                RuleType = \"INBOUND\",\n            },\n        },\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        TemplateSections = new[]\n        {\n            new Opennebula.Inputs.SecurityGroupTemplateSectionArgs\n            {\n                Elements = \n                {\n                    { \"key1\", \"value1\" },\n                },\n                Name = \"example\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewSecurityGroup(ctx, \"example\", &opennebula.SecurityGroupArgs{\n\t\t\tDescription: pulumi.String(\"Terraform security group\"),\n\t\t\tGroup:       pulumi.String(\"terraform\"),\n\t\t\tRules: opennebula.SecurityGroupRuleArray{\n\t\t\t\t&opennebula.SecurityGroupRuleArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"ALL\"),\n\t\t\t\t\tRuleType: pulumi.String(\"OUTBOUND\"),\n\t\t\t\t},\n\t\t\t\t&opennebula.SecurityGroupRuleArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\t\t\tRange:    pulumi.String(\"22\"),\n\t\t\t\t\tRuleType: pulumi.String(\"INBOUND\"),\n\t\t\t\t},\n\t\t\t\t&opennebula.SecurityGroupRuleArgs{\n\t\t\t\t\tProtocol: pulumi.String(\"ICMP\"),\n\t\t\t\t\tRuleType: pulumi.String(\"INBOUND\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tTemplateSections: opennebula.SecurityGroupTemplateSectionArray{\n\t\t\t\t&opennebula.SecurityGroupTemplateSectionArgs{\n\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"example\"),\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\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.opennebula.SecurityGroup;\nimport com.pulumi.opennebula.SecurityGroupArgs;\nimport com.pulumi.opennebula.inputs.SecurityGroupRuleArgs;\nimport com.pulumi.opennebula.inputs.SecurityGroupTemplateSectionArgs;\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 example = new SecurityGroup(\"example\", SecurityGroupArgs.builder()\n            .description(\"Terraform security group\")\n            .group(\"terraform\")\n            .rules(            \n                SecurityGroupRuleArgs.builder()\n                    .protocol(\"ALL\")\n                    .ruleType(\"OUTBOUND\")\n                    .build(),\n                SecurityGroupRuleArgs.builder()\n                    .protocol(\"TCP\")\n                    .range(\"22\")\n                    .ruleType(\"INBOUND\")\n                    .build(),\n                SecurityGroupRuleArgs.builder()\n                    .protocol(\"ICMP\")\n                    .ruleType(\"INBOUND\")\n                    .build())\n            .tags(Map.of(\"environment\", \"example\"))\n            .templateSections(SecurityGroupTemplateSectionArgs.builder()\n                .elements(Map.of(\"key1\", \"value1\"))\n                .name(\"example\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:SecurityGroup\n    properties:\n      description: Terraform security group\n      group: terraform\n      rules:\n        - protocol: ALL\n          ruleType: OUTBOUND\n        - protocol: TCP\n          range: '22'\n          ruleType: INBOUND\n        - protocol: ICMP\n          ruleType: INBOUND\n      tags:\n        environment: example\n      templateSections:\n        - elements:\n            key1: value1\n          name: example\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_security_group` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/securityGroup:SecurityGroup example 123\n```\n\n",
      "properties": {
        "commit": {
          "type": "boolean",
          "description": "Flag to commit changes on Virtual Machine on security group update. Defaults to `true`.\n"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the security group.\n"
        },
        "gid": {
          "type": "number",
          "description": "Group ID which owns the security group.\n"
        },
        "gname": {
          "type": "string",
          "description": "Group Name which owns the security group.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the security group. Defaults to the caller primary group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the security group.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on security group. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FSecurityGroupRule:SecurityGroupRule"
          },
          "description": "List of rules. See Rule parameters below for details\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "ID of the security group.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FSecurityGroupTemplateSection:SecurityGroupTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "uid": {
          "type": "number",
          "description": "User ID whom owns the security group.\n"
        },
        "uname": {
          "type": "string",
          "description": "User Name whom owns the security group.\n"
        }
      },
      "type": "object",
      "required": [
        "defaultTags",
        "description",
        "gid",
        "gname",
        "name",
        "permissions",
        "rules",
        "securityGroupId",
        "tagsAll",
        "uid",
        "uname"
      ],
      "inputProperties": {
        "commit": {
          "type": "boolean",
          "description": "Flag to commit changes on Virtual Machine on security group update. Defaults to `true`.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the security group.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the security group. Defaults to the caller primary group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the security group.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on security group. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "rules": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FSecurityGroupRule:SecurityGroupRule"
          },
          "description": "List of rules. See Rule parameters below for details\n"
        },
        "securityGroupId": {
          "type": "string",
          "description": "ID of the security group.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FSecurityGroupTemplateSection:SecurityGroupTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        }
      },
      "requiredInputs": [
        "rules"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SecurityGroup resources.\n",
        "properties": {
          "commit": {
            "type": "boolean",
            "description": "Flag to commit changes on Virtual Machine on security group update. Defaults to `true`.\n"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the security group.\n"
          },
          "gid": {
            "type": "number",
            "description": "Group ID which owns the security group.\n"
          },
          "gname": {
            "type": "string",
            "description": "Group Name which owns the security group.\n"
          },
          "group": {
            "type": "string",
            "description": "Name of the group which owns the security group. Defaults to the caller primary group.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the security group.\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions applied on security group. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FSecurityGroupRule:SecurityGroupRule"
            },
            "description": "List of rules. See Rule parameters below for details\n"
          },
          "securityGroupId": {
            "type": "string",
            "description": "ID of the security group.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FSecurityGroupTemplateSection:SecurityGroupTemplateSection"
            },
            "description": "Allow to add a custom vector. See Template section parameters\n"
          },
          "uid": {
            "type": "number",
            "description": "User ID whom owns the security group.\n"
          },
          "uname": {
            "type": "string",
            "description": "User Name whom owns the security group.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/service:Service": {
      "description": "Provides an OpenNebula service resource.\n\nThis resource allows you to manage services on your OpenNebula clusters. When applied,\na new service will be created. When destroyed, that service will be removed.\n\n## Import\n\n`opennebula_service` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/service:Service example 123\n```\n\n",
      "properties": {
        "extraTemplate": {
          "type": "string",
          "description": "Service information to be merged with the template during instantiate.\n"
        },
        "gid": {
          "type": "number",
          "description": "Set the id of the group owner of the newly created service. The corresponding `gname` will be computed.\n"
        },
        "gname": {
          "type": "string",
          "description": "Set the name of the group owner of the newly created service. The corresponding `gid` will be computed.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the service.\n"
        },
        "networks": {
          "type": "object",
          "additionalProperties": {
            "type": "number"
          },
          "description": "Map with the service name of each networks along with the id of the network.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on service. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "roles": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FServiceRole:ServiceRole"
          },
          "description": "Array with roles information containing: `cardinality`, `name`, `nodes` and `state`.\n"
        },
        "serviceId": {
          "type": "string",
          "description": "ID of the service.\n"
        },
        "state": {
          "type": "number",
          "description": "State of the service.\n"
        },
        "templateId": {
          "type": "number",
          "description": "Service will be instantiated from the template ID.\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FServiceTimeouts:ServiceTimeouts"
        },
        "uid": {
          "type": "number",
          "description": "Set the id of the user owner of the newly created service. The corresponding `uname` will be computed.\n"
        },
        "uname": {
          "type": "string",
          "description": "Set the name of the user owner of the newly created service. The corresponding `uid` will be computed.\n"
        }
      },
      "type": "object",
      "required": [
        "gid",
        "gname",
        "name",
        "networks",
        "permissions",
        "roles",
        "serviceId",
        "state",
        "templateId",
        "uid",
        "uname"
      ],
      "inputProperties": {
        "extraTemplate": {
          "type": "string",
          "description": "Service information to be merged with the template during instantiate.\n"
        },
        "gid": {
          "type": "number",
          "description": "Set the id of the group owner of the newly created service. The corresponding `gname` will be computed.\n"
        },
        "gname": {
          "type": "string",
          "description": "Set the name of the group owner of the newly created service. The corresponding `gid` will be computed.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the service.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on service. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "serviceId": {
          "type": "string",
          "description": "ID of the service.\n"
        },
        "templateId": {
          "type": "number",
          "description": "Service will be instantiated from the template ID.\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FServiceTimeouts:ServiceTimeouts"
        },
        "uid": {
          "type": "number",
          "description": "Set the id of the user owner of the newly created service. The corresponding `uname` will be computed.\n"
        },
        "uname": {
          "type": "string",
          "description": "Set the name of the user owner of the newly created service. The corresponding `uid` will be computed.\n"
        }
      },
      "requiredInputs": [
        "templateId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Service resources.\n",
        "properties": {
          "extraTemplate": {
            "type": "string",
            "description": "Service information to be merged with the template during instantiate.\n"
          },
          "gid": {
            "type": "number",
            "description": "Set the id of the group owner of the newly created service. The corresponding `gname` will be computed.\n"
          },
          "gname": {
            "type": "string",
            "description": "Set the name of the group owner of the newly created service. The corresponding `gid` will be computed.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the service.\n"
          },
          "networks": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            },
            "description": "Map with the service name of each networks along with the id of the network.\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions applied on service. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FServiceRole:ServiceRole"
            },
            "description": "Array with roles information containing: `cardinality`, `name`, `nodes` and `state`.\n"
          },
          "serviceId": {
            "type": "string",
            "description": "ID of the service.\n"
          },
          "state": {
            "type": "number",
            "description": "State of the service.\n"
          },
          "templateId": {
            "type": "number",
            "description": "Service will be instantiated from the template ID.\n"
          },
          "timeouts": {
            "$ref": "#/types/opennebula:index%2FServiceTimeouts:ServiceTimeouts"
          },
          "uid": {
            "type": "number",
            "description": "Set the id of the user owner of the newly created service. The corresponding `uname` will be computed.\n"
          },
          "uname": {
            "type": "string",
            "description": "Set the name of the user owner of the newly created service. The corresponding `uid` will be computed.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/serviceTemplate:ServiceTemplate": {
      "description": "Provides an OpenNebula service template resource.\n\nThis resource allows you to manage service templates on your OpenNebula clusters. When applied,\na new service template will be created. When destroyed, that service template will be removed.\n\n## Import\n\n`opennebula_security_group` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/serviceTemplate:ServiceTemplate example 123\n```\n\n",
      "properties": {
        "gid": {
          "type": "number",
          "description": "Set the id of the group owner of the newly created service template. The corresponding `gname` will be computed.\n"
        },
        "gname": {
          "type": "string",
          "description": "Set the name of the group owner of the newly created service template. The corresponding `gid` will be computed.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the service template.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on service template. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "serviceTemplateId": {
          "type": "string",
          "description": "ID of the service.\n"
        },
        "template": {
          "type": "string",
          "description": "Service template definition in JSON format.\n"
        },
        "uid": {
          "type": "number",
          "description": "Set the id of the user owner of the newly created service template. The corresponding `uname` will be computed.\n"
        },
        "uname": {
          "type": "string",
          "description": "Set the name of the user owner of the newly created service template. The corresponding `uid` will be computed.\n"
        }
      },
      "type": "object",
      "required": [
        "gid",
        "gname",
        "name",
        "permissions",
        "serviceTemplateId",
        "template",
        "uid",
        "uname"
      ],
      "inputProperties": {
        "gid": {
          "type": "number",
          "description": "Set the id of the group owner of the newly created service template. The corresponding `gname` will be computed.\n"
        },
        "gname": {
          "type": "string",
          "description": "Set the name of the group owner of the newly created service template. The corresponding `gid` will be computed.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the service template.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on service template. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "serviceTemplateId": {
          "type": "string",
          "description": "ID of the service.\n"
        },
        "template": {
          "type": "string",
          "description": "Service template definition in JSON format.\n"
        },
        "uid": {
          "type": "number",
          "description": "Set the id of the user owner of the newly created service template. The corresponding `uname` will be computed.\n"
        },
        "uname": {
          "type": "string",
          "description": "Set the name of the user owner of the newly created service template. The corresponding `uid` will be computed.\n"
        }
      },
      "requiredInputs": [
        "template"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ServiceTemplate resources.\n",
        "properties": {
          "gid": {
            "type": "number",
            "description": "Set the id of the group owner of the newly created service template. The corresponding `gname` will be computed.\n"
          },
          "gname": {
            "type": "string",
            "description": "Set the name of the group owner of the newly created service template. The corresponding `gid` will be computed.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the service template.\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions applied on service template. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
          },
          "serviceTemplateId": {
            "type": "string",
            "description": "ID of the service.\n"
          },
          "template": {
            "type": "string",
            "description": "Service template definition in JSON format.\n"
          },
          "uid": {
            "type": "number",
            "description": "Set the id of the user owner of the newly created service template. The corresponding `uname` will be computed.\n"
          },
          "uname": {
            "type": "string",
            "description": "Set the name of the user owner of the newly created service template. The corresponding `uid` will be computed.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/template:Template": {
      "description": "Provides an OpenNebula template resource.\n\nThis resource allows you to manage templates on your OpenNebula clusters. When applied,\na new template is created. When destroyed, this template is removed.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.Template(\"example\", {\n    description: \"VM template\",\n    cpu: 1,\n    vcpu: 1,\n    memory: 1024,\n    group: \"terraform\",\n    permissions: \"660\",\n    context: {\n        NETWORK: \"YES\",\n        HOSTNAME: \"$NAME\",\n        START_SCRIPT: \"yum upgrade\",\n    },\n    graphics: {\n        type: \"VNC\",\n        listen: \"0.0.0.0\",\n        keymap: \"fr\",\n    },\n    os: {\n        arch: \"x86_64\",\n        boot: \"disk0\",\n    },\n    cpumodel: {\n        model: \"host-passthrough\",\n    },\n    disks: [{\n        imageId: opennebula_image.example.id,\n        size: 10000,\n        target: \"vda\",\n        driver: \"qcow2\",\n    }],\n    nics: [{\n        model: \"virtio\",\n        networkId: _var.vnetid,\n        securityGroups: [opennebula_security_group.example.id],\n    }],\n    vmgroup: {\n        vmgroupId: 42,\n        role: \"vmgroup-role\",\n    },\n    schedRequirements: \"FREE_CPU > 60\",\n    userInputs: {\n        BLOG_TITLE: \"M|text|Blog Title\",\n    },\n    tags: {\n        environment: \"example\",\n    },\n    templateSections: [{\n        name: \"example\",\n        elements: {\n            key1: \"value1\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.Template(\"example\",\n    description=\"VM template\",\n    cpu=1,\n    vcpu=1,\n    memory=1024,\n    group=\"terraform\",\n    permissions=\"660\",\n    context={\n        \"NETWORK\": \"YES\",\n        \"HOSTNAME\": \"$NAME\",\n        \"START_SCRIPT\": \"yum upgrade\",\n    },\n    graphics={\n        \"type\": \"VNC\",\n        \"listen\": \"0.0.0.0\",\n        \"keymap\": \"fr\",\n    },\n    os={\n        \"arch\": \"x86_64\",\n        \"boot\": \"disk0\",\n    },\n    cpumodel={\n        \"model\": \"host-passthrough\",\n    },\n    disks=[{\n        \"image_id\": opennebula_image[\"example\"][\"id\"],\n        \"size\": 10000,\n        \"target\": \"vda\",\n        \"driver\": \"qcow2\",\n    }],\n    nics=[{\n        \"model\": \"virtio\",\n        \"network_id\": var[\"vnetid\"],\n        \"security_groups\": [opennebula_security_group[\"example\"][\"id\"]],\n    }],\n    vmgroup={\n        \"vmgroup_id\": 42,\n        \"role\": \"vmgroup-role\",\n    },\n    sched_requirements=\"FREE_CPU > 60\",\n    user_inputs={\n        \"BLOG_TITLE\": \"M|text|Blog Title\",\n    },\n    tags={\n        \"environment\": \"example\",\n    },\n    template_sections=[{\n        \"name\": \"example\",\n        \"elements\": {\n            \"key1\": \"value1\",\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.Template(\"example\", new()\n    {\n        Description = \"VM template\",\n        Cpu = 1,\n        Vcpu = 1,\n        Memory = 1024,\n        Group = \"terraform\",\n        Permissions = \"660\",\n        Context = \n        {\n            { \"NETWORK\", \"YES\" },\n            { \"HOSTNAME\", \"$NAME\" },\n            { \"START_SCRIPT\", \"yum upgrade\" },\n        },\n        Graphics = new Opennebula.Inputs.TemplateGraphicsArgs\n        {\n            Type = \"VNC\",\n            Listen = \"0.0.0.0\",\n            Keymap = \"fr\",\n        },\n        Os = new Opennebula.Inputs.TemplateOsArgs\n        {\n            Arch = \"x86_64\",\n            Boot = \"disk0\",\n        },\n        Cpumodel = new Opennebula.Inputs.TemplateCpumodelArgs\n        {\n            Model = \"host-passthrough\",\n        },\n        Disks = new[]\n        {\n            new Opennebula.Inputs.TemplateDiskArgs\n            {\n                ImageId = opennebula_image.Example.Id,\n                Size = 10000,\n                Target = \"vda\",\n                Driver = \"qcow2\",\n            },\n        },\n        Nics = new[]\n        {\n            new Opennebula.Inputs.TemplateNicArgs\n            {\n                Model = \"virtio\",\n                NetworkId = @var.Vnetid,\n                SecurityGroups = new[]\n                {\n                    opennebula_security_group.Example.Id,\n                },\n            },\n        },\n        Vmgroup = new Opennebula.Inputs.TemplateVmgroupArgs\n        {\n            VmgroupId = 42,\n            Role = \"vmgroup-role\",\n        },\n        SchedRequirements = \"FREE_CPU > 60\",\n        UserInputs = \n        {\n            { \"BLOG_TITLE\", \"M|text|Blog Title\" },\n        },\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        TemplateSections = new[]\n        {\n            new Opennebula.Inputs.TemplateTemplateSectionArgs\n            {\n                Name = \"example\",\n                Elements = \n                {\n                    { \"key1\", \"value1\" },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewTemplate(ctx, \"example\", &opennebula.TemplateArgs{\n\t\t\tDescription: pulumi.String(\"VM template\"),\n\t\t\tCpu:         pulumi.Float64(1),\n\t\t\tVcpu:        pulumi.Float64(1),\n\t\t\tMemory:      pulumi.Float64(1024),\n\t\t\tGroup:       pulumi.String(\"terraform\"),\n\t\t\tPermissions: pulumi.String(\"660\"),\n\t\t\tContext: pulumi.StringMap{\n\t\t\t\t\"NETWORK\":      pulumi.String(\"YES\"),\n\t\t\t\t\"HOSTNAME\":     pulumi.String(\"$NAME\"),\n\t\t\t\t\"START_SCRIPT\": pulumi.String(\"yum upgrade\"),\n\t\t\t},\n\t\t\tGraphics: &opennebula.TemplateGraphicsArgs{\n\t\t\t\tType:   pulumi.String(\"VNC\"),\n\t\t\t\tListen: pulumi.String(\"0.0.0.0\"),\n\t\t\t\tKeymap: pulumi.String(\"fr\"),\n\t\t\t},\n\t\t\tOs: &opennebula.TemplateOsArgs{\n\t\t\t\tArch: pulumi.String(\"x86_64\"),\n\t\t\t\tBoot: pulumi.String(\"disk0\"),\n\t\t\t},\n\t\t\tCpumodel: &opennebula.TemplateCpumodelArgs{\n\t\t\t\tModel: pulumi.String(\"host-passthrough\"),\n\t\t\t},\n\t\t\tDisks: opennebula.TemplateDiskArray{\n\t\t\t\t&opennebula.TemplateDiskArgs{\n\t\t\t\t\tImageId: pulumi.Any(opennebula_image.Example.Id),\n\t\t\t\t\tSize:    pulumi.Float64(10000),\n\t\t\t\t\tTarget:  pulumi.String(\"vda\"),\n\t\t\t\t\tDriver:  pulumi.String(\"qcow2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNics: opennebula.TemplateNicArray{\n\t\t\t\t&opennebula.TemplateNicArgs{\n\t\t\t\t\tModel:     pulumi.String(\"virtio\"),\n\t\t\t\t\tNetworkId: pulumi.Any(_var.Vnetid),\n\t\t\t\t\tSecurityGroups: pulumi.Float64Array{\n\t\t\t\t\t\topennebula_security_group.Example.Id,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tVmgroup: &opennebula.TemplateVmgroupArgs{\n\t\t\t\tVmgroupId: pulumi.Float64(42),\n\t\t\t\tRole:      pulumi.String(\"vmgroup-role\"),\n\t\t\t},\n\t\t\tSchedRequirements: pulumi.String(\"FREE_CPU > 60\"),\n\t\t\tUserInputs: pulumi.StringMap{\n\t\t\t\t\"BLOG_TITLE\": pulumi.String(\"M|text|Blog Title\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tTemplateSections: opennebula.TemplateTemplateSectionArray{\n\t\t\t\t&opennebula.TemplateTemplateSectionArgs{\n\t\t\t\t\tName: pulumi.String(\"example\"),\n\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\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\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.opennebula.Template;\nimport com.pulumi.opennebula.TemplateArgs;\nimport com.pulumi.opennebula.inputs.TemplateGraphicsArgs;\nimport com.pulumi.opennebula.inputs.TemplateOsArgs;\nimport com.pulumi.opennebula.inputs.TemplateCpumodelArgs;\nimport com.pulumi.opennebula.inputs.TemplateDiskArgs;\nimport com.pulumi.opennebula.inputs.TemplateNicArgs;\nimport com.pulumi.opennebula.inputs.TemplateVmgroupArgs;\nimport com.pulumi.opennebula.inputs.TemplateTemplateSectionArgs;\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 example = new Template(\"example\", TemplateArgs.builder()\n            .description(\"VM template\")\n            .cpu(1)\n            .vcpu(1)\n            .memory(1024)\n            .group(\"terraform\")\n            .permissions(\"660\")\n            .context(Map.ofEntries(\n                Map.entry(\"NETWORK\", \"YES\"),\n                Map.entry(\"HOSTNAME\", \"$NAME\"),\n                Map.entry(\"START_SCRIPT\", \"yum upgrade\")\n            ))\n            .graphics(TemplateGraphicsArgs.builder()\n                .type(\"VNC\")\n                .listen(\"0.0.0.0\")\n                .keymap(\"fr\")\n                .build())\n            .os(TemplateOsArgs.builder()\n                .arch(\"x86_64\")\n                .boot(\"disk0\")\n                .build())\n            .cpumodel(TemplateCpumodelArgs.builder()\n                .model(\"host-passthrough\")\n                .build())\n            .disks(TemplateDiskArgs.builder()\n                .imageId(opennebula_image.example().id())\n                .size(10000)\n                .target(\"vda\")\n                .driver(\"qcow2\")\n                .build())\n            .nics(TemplateNicArgs.builder()\n                .model(\"virtio\")\n                .networkId(var_.vnetid())\n                .securityGroups(opennebula_security_group.example().id())\n                .build())\n            .vmgroup(TemplateVmgroupArgs.builder()\n                .vmgroupId(42)\n                .role(\"vmgroup-role\")\n                .build())\n            .schedRequirements(\"FREE_CPU > 60\")\n            .userInputs(Map.of(\"BLOG_TITLE\", \"M|text|Blog Title\"))\n            .tags(Map.of(\"environment\", \"example\"))\n            .templateSections(TemplateTemplateSectionArgs.builder()\n                .name(\"example\")\n                .elements(Map.of(\"key1\", \"value1\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:Template\n    properties:\n      description: VM template\n      cpu: 1\n      vcpu: 1\n      memory: 1024\n      group: terraform\n      permissions: '660'\n      context:\n        NETWORK: YES\n        HOSTNAME: $NAME\n        START_SCRIPT: yum upgrade\n      graphics:\n        type: VNC\n        listen: 0.0.0.0\n        keymap: fr\n      os:\n        arch: x86_64\n        boot: disk0\n      cpumodel:\n        model: host-passthrough\n      disks:\n        - imageId: ${opennebula_image.example.id}\n          size: 10000\n          target: vda\n          driver: qcow2\n      nics:\n        - model: virtio\n          networkId: ${var.vnetid}\n          securityGroups:\n            - ${opennebula_security_group.example.id}\n      vmgroup:\n        vmgroupId: 42\n        role: vmgroup-role\n      schedRequirements: FREE_CPU > 60\n      userInputs:\n        BLOG_TITLE: M|text|Blog Title\n      tags:\n        environment: example\n      templateSections:\n        - name: example\n          elements:\n            key1: value1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_template` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/template:Template example 123\n```\n\n",
      "properties": {
        "context": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Array of free form key=value pairs, rendered and added to the CONTEXT variables for the VM. Recommended to include: `NETWORK = \"YES\"` and `SET_HOSTNAME = \"$NAME\"`.\n"
        },
        "cpu": {
          "type": "number",
          "description": "Amount of CPU shares assigned to the VM. **Mandatory if `template_****id` is not set**.\n"
        },
        "cpumodel": {
          "$ref": "#/types/opennebula:index%2FTemplateCpumodel:TemplateCpumodel",
          "description": "See CPUmodel parameters below for details.\n"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the template.\n"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FTemplateDisk:TemplateDisk"
          },
          "description": "Can be specified multiple times to attach several disks. See Disks parameters below for details.\n"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FTemplateFeature:TemplateFeature"
          },
          "description": "See Features parameters below for details.\n"
        },
        "gid": {
          "type": "number",
          "description": "Group ID which owns the template.\n"
        },
        "gname": {
          "type": "string",
          "description": "Group Name which owns the template.\n"
        },
        "graphics": {
          "$ref": "#/types/opennebula:index%2FTemplateGraphics:TemplateGraphics",
          "description": "See Graphics parameters below for details.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the template. Defaults to the caller primary group.\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock the template with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "memory": {
          "type": "number",
          "description": "Amount of RAM assigned to the VM in MB. **Mandatory if `template_****id` is not set**.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual machine template.\n"
        },
        "nicAliases": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FTemplateNicAlias:TemplateNicAlias"
          },
          "description": "Can be specified multiple times to attach several NIC Aliases. See Nic alias parameters below for details.\n"
        },
        "nics": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FTemplateNic:TemplateNic"
          },
          "description": "Can be specified multiple times to attach several NICs. See Nic parameters below for details.\n"
        },
        "os": {
          "$ref": "#/types/opennebula:index%2FTemplateOs:TemplateOs",
          "description": "See OS parameters below for details.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on template. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "raw": {
          "$ref": "#/types/opennebula:index%2FTemplateRaw:TemplateRaw",
          "description": "Allow to pass hypervisor level tuning content. See Raw parameters below for details.\n"
        },
        "regTime": {
          "type": "number",
          "description": "Registration time of the template.\n"
        },
        "schedDsRequirements": {
          "type": "string",
          "description": "Storage placement requirements to deploy the resource following specific rule.\n"
        },
        "schedRequirements": {
          "type": "string",
          "description": "Scheduling requirements to deploy the resource following specific rule\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "templateId": {
          "type": "string",
          "description": "ID of the template.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FTemplateTemplateSection:TemplateTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "uid": {
          "type": "number",
          "description": "User ID whom owns the template.\n"
        },
        "uname": {
          "type": "string",
          "description": "User Name whom owns the template.\n"
        },
        "userInputs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Ask the user instantiating the template to define the values described.\n"
        },
        "vcpu": {
          "type": "number",
          "description": "Number of CPU cores presented to the VM.\n"
        },
        "vmgroup": {
          "$ref": "#/types/opennebula:index%2FTemplateVmgroup:TemplateVmgroup",
          "description": "See VM group parameters below for details. Changing this argument triggers a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "cpu",
        "defaultTags",
        "gid",
        "gname",
        "memory",
        "name",
        "permissions",
        "regTime",
        "tagsAll",
        "templateId",
        "uid",
        "uname",
        "vcpu"
      ],
      "inputProperties": {
        "context": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Array of free form key=value pairs, rendered and added to the CONTEXT variables for the VM. Recommended to include: `NETWORK = \"YES\"` and `SET_HOSTNAME = \"$NAME\"`.\n"
        },
        "cpu": {
          "type": "number",
          "description": "Amount of CPU shares assigned to the VM. **Mandatory if `template_****id` is not set**.\n"
        },
        "cpumodel": {
          "$ref": "#/types/opennebula:index%2FTemplateCpumodel:TemplateCpumodel",
          "description": "See CPUmodel parameters below for details.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the template.\n"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FTemplateDisk:TemplateDisk"
          },
          "description": "Can be specified multiple times to attach several disks. See Disks parameters below for details.\n"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FTemplateFeature:TemplateFeature"
          },
          "description": "See Features parameters below for details.\n"
        },
        "graphics": {
          "$ref": "#/types/opennebula:index%2FTemplateGraphics:TemplateGraphics",
          "description": "See Graphics parameters below for details.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the template. Defaults to the caller primary group.\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock the template with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "memory": {
          "type": "number",
          "description": "Amount of RAM assigned to the VM in MB. **Mandatory if `template_****id` is not set**.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual machine template.\n"
        },
        "nicAliases": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FTemplateNicAlias:TemplateNicAlias"
          },
          "description": "Can be specified multiple times to attach several NIC Aliases. See Nic alias parameters below for details.\n"
        },
        "nics": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FTemplateNic:TemplateNic"
          },
          "description": "Can be specified multiple times to attach several NICs. See Nic parameters below for details.\n"
        },
        "os": {
          "$ref": "#/types/opennebula:index%2FTemplateOs:TemplateOs",
          "description": "See OS parameters below for details.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on template. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "raw": {
          "$ref": "#/types/opennebula:index%2FTemplateRaw:TemplateRaw",
          "description": "Allow to pass hypervisor level tuning content. See Raw parameters below for details.\n"
        },
        "schedDsRequirements": {
          "type": "string",
          "description": "Storage placement requirements to deploy the resource following specific rule.\n"
        },
        "schedRequirements": {
          "type": "string",
          "description": "Scheduling requirements to deploy the resource following specific rule\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "templateId": {
          "type": "string",
          "description": "ID of the template.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FTemplateTemplateSection:TemplateTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "userInputs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Ask the user instantiating the template to define the values described.\n"
        },
        "vcpu": {
          "type": "number",
          "description": "Number of CPU cores presented to the VM.\n"
        },
        "vmgroup": {
          "$ref": "#/types/opennebula:index%2FTemplateVmgroup:TemplateVmgroup",
          "description": "See VM group parameters below for details. Changing this argument triggers a new resource.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Template resources.\n",
        "properties": {
          "context": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Array of free form key=value pairs, rendered and added to the CONTEXT variables for the VM. Recommended to include: `NETWORK = \"YES\"` and `SET_HOSTNAME = \"$NAME\"`.\n"
          },
          "cpu": {
            "type": "number",
            "description": "Amount of CPU shares assigned to the VM. **Mandatory if `template_****id` is not set**.\n"
          },
          "cpumodel": {
            "$ref": "#/types/opennebula:index%2FTemplateCpumodel:TemplateCpumodel",
            "description": "See CPUmodel parameters below for details.\n"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of the template.\n"
          },
          "disks": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FTemplateDisk:TemplateDisk"
            },
            "description": "Can be specified multiple times to attach several disks. See Disks parameters below for details.\n"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FTemplateFeature:TemplateFeature"
            },
            "description": "See Features parameters below for details.\n"
          },
          "gid": {
            "type": "number",
            "description": "Group ID which owns the template.\n"
          },
          "gname": {
            "type": "string",
            "description": "Group Name which owns the template.\n"
          },
          "graphics": {
            "$ref": "#/types/opennebula:index%2FTemplateGraphics:TemplateGraphics",
            "description": "See Graphics parameters below for details.\n"
          },
          "group": {
            "type": "string",
            "description": "Name of the group which owns the template. Defaults to the caller primary group.\n"
          },
          "lock": {
            "type": "string",
            "description": "Lock the template with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
          },
          "memory": {
            "type": "number",
            "description": "Amount of RAM assigned to the VM in MB. **Mandatory if `template_****id` is not set**.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the virtual machine template.\n"
          },
          "nicAliases": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FTemplateNicAlias:TemplateNicAlias"
            },
            "description": "Can be specified multiple times to attach several NIC Aliases. See Nic alias parameters below for details.\n"
          },
          "nics": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FTemplateNic:TemplateNic"
            },
            "description": "Can be specified multiple times to attach several NICs. See Nic parameters below for details.\n"
          },
          "os": {
            "$ref": "#/types/opennebula:index%2FTemplateOs:TemplateOs",
            "description": "See OS parameters below for details.\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions applied on template. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
          },
          "raw": {
            "$ref": "#/types/opennebula:index%2FTemplateRaw:TemplateRaw",
            "description": "Allow to pass hypervisor level tuning content. See Raw parameters below for details.\n"
          },
          "regTime": {
            "type": "number",
            "description": "Registration time of the template.\n"
          },
          "schedDsRequirements": {
            "type": "string",
            "description": "Storage placement requirements to deploy the resource following specific rule.\n"
          },
          "schedRequirements": {
            "type": "string",
            "description": "Scheduling requirements to deploy the resource following specific rule\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "templateId": {
            "type": "string",
            "description": "ID of the template.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FTemplateTemplateSection:TemplateTemplateSection"
            },
            "description": "Allow to add a custom vector. See Template section parameters\n"
          },
          "uid": {
            "type": "number",
            "description": "User ID whom owns the template.\n"
          },
          "uname": {
            "type": "string",
            "description": "User Name whom owns the template.\n"
          },
          "userInputs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Ask the user instantiating the template to define the values described.\n"
          },
          "vcpu": {
            "type": "number",
            "description": "Number of CPU cores presented to the VM.\n"
          },
          "vmgroup": {
            "$ref": "#/types/opennebula:index%2FTemplateVmgroup:TemplateVmgroup",
            "description": "See VM group parameters below for details. Changing this argument triggers a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/user:User": {
      "description": "Provides an OpenNebula user resource.\n\nThis resource allows you to manage users on your OpenNebula clusters. When applied,\na new user is created. When destroyed, it is removed.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst exampleUser = new opennebula.User(\"exampleUser\", {\n    password: \"randomp4ss\",\n    authDriver: \"core\",\n    primaryGroup: 100,\n    groups: [\n        101,\n        102,\n    ],\n    tags: {\n        environment: \"example\",\n    },\n    templateSections: [{\n        name: \"example\",\n        elements: {\n            key1: \"value1\",\n        },\n    }],\n});\nconst exampleUserQuotas = new opennebula.UserQuotas(\"exampleUserQuotas\", {\n    userId: exampleUser.userId,\n    datastores: [{\n        id: 1,\n        images: 3,\n        size: 10000,\n    }],\n    vms: [{\n        cpu: 3,\n        runningCpu: 3,\n        memory: 2048,\n        runningMemory: 2048,\n    }],\n    networks: [\n        {\n            id: 10,\n            leases: 6,\n        },\n        {\n            id: 11,\n            leases: 4,\n        },\n    ],\n    images: [\n        {\n            id: 8,\n            runningVms: 1,\n        },\n        {\n            id: 9,\n            runningVms: 1,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample_user = opennebula.User(\"exampleUser\",\n    password=\"randomp4ss\",\n    auth_driver=\"core\",\n    primary_group=100,\n    groups=[\n        101,\n        102,\n    ],\n    tags={\n        \"environment\": \"example\",\n    },\n    template_sections=[{\n        \"name\": \"example\",\n        \"elements\": {\n            \"key1\": \"value1\",\n        },\n    }])\nexample_user_quotas = opennebula.UserQuotas(\"exampleUserQuotas\",\n    user_id=example_user.user_id,\n    datastores=[{\n        \"id\": 1,\n        \"images\": 3,\n        \"size\": 10000,\n    }],\n    vms=[{\n        \"cpu\": 3,\n        \"running_cpu\": 3,\n        \"memory\": 2048,\n        \"running_memory\": 2048,\n    }],\n    networks=[\n        {\n            \"id\": 10,\n            \"leases\": 6,\n        },\n        {\n            \"id\": 11,\n            \"leases\": 4,\n        },\n    ],\n    images=[\n        {\n            \"id\": 8,\n            \"running_vms\": 1,\n        },\n        {\n            \"id\": 9,\n            \"running_vms\": 1,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleUser = new Opennebula.User(\"exampleUser\", new()\n    {\n        Password = \"randomp4ss\",\n        AuthDriver = \"core\",\n        PrimaryGroup = 100,\n        Groups = new[]\n        {\n            101,\n            102,\n        },\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        TemplateSections = new[]\n        {\n            new Opennebula.Inputs.UserTemplateSectionArgs\n            {\n                Name = \"example\",\n                Elements = \n                {\n                    { \"key1\", \"value1\" },\n                },\n            },\n        },\n    });\n\n    var exampleUserQuotas = new Opennebula.UserQuotas(\"exampleUserQuotas\", new()\n    {\n        UserId = exampleUser.UserId,\n        Datastores = new[]\n        {\n            new Opennebula.Inputs.UserQuotasDatastoreArgs\n            {\n                Id = 1,\n                Images = 3,\n                Size = 10000,\n            },\n        },\n        Vms = new[]\n        {\n            new Opennebula.Inputs.UserQuotasVmArgs\n            {\n                Cpu = 3,\n                RunningCpu = 3,\n                Memory = 2048,\n                RunningMemory = 2048,\n            },\n        },\n        Networks = new[]\n        {\n            new Opennebula.Inputs.UserQuotasNetworkArgs\n            {\n                Id = 10,\n                Leases = 6,\n            },\n            new Opennebula.Inputs.UserQuotasNetworkArgs\n            {\n                Id = 11,\n                Leases = 4,\n            },\n        },\n        Images = new[]\n        {\n            new Opennebula.Inputs.UserQuotasImageArgs\n            {\n                Id = 8,\n                RunningVms = 1,\n            },\n            new Opennebula.Inputs.UserQuotasImageArgs\n            {\n                Id = 9,\n                RunningVms = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleUser, err := opennebula.NewUser(ctx, \"exampleUser\", &opennebula.UserArgs{\n\t\t\tPassword:     pulumi.String(\"randomp4ss\"),\n\t\t\tAuthDriver:   pulumi.String(\"core\"),\n\t\t\tPrimaryGroup: pulumi.Float64(100),\n\t\t\tGroups: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(101),\n\t\t\t\tpulumi.Float64(102),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tTemplateSections: opennebula.UserTemplateSectionArray{\n\t\t\t\t&opennebula.UserTemplateSectionArgs{\n\t\t\t\t\tName: pulumi.String(\"example\"),\n\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\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\t_, err = opennebula.NewUserQuotas(ctx, \"exampleUserQuotas\", &opennebula.UserQuotasArgs{\n\t\t\tUserId: exampleUser.UserId,\n\t\t\tDatastores: opennebula.UserQuotasDatastoreArray{\n\t\t\t\t&opennebula.UserQuotasDatastoreArgs{\n\t\t\t\t\tId:     pulumi.Float64(1),\n\t\t\t\t\tImages: pulumi.Float64(3),\n\t\t\t\t\tSize:   pulumi.Float64(10000),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVms: opennebula.UserQuotasVmArray{\n\t\t\t\t&opennebula.UserQuotasVmArgs{\n\t\t\t\t\tCpu:           pulumi.Float64(3),\n\t\t\t\t\tRunningCpu:    pulumi.Float64(3),\n\t\t\t\t\tMemory:        pulumi.Float64(2048),\n\t\t\t\t\tRunningMemory: pulumi.Float64(2048),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworks: opennebula.UserQuotasNetworkArray{\n\t\t\t\t&opennebula.UserQuotasNetworkArgs{\n\t\t\t\t\tId:     pulumi.Float64(10),\n\t\t\t\t\tLeases: pulumi.Float64(6),\n\t\t\t\t},\n\t\t\t\t&opennebula.UserQuotasNetworkArgs{\n\t\t\t\t\tId:     pulumi.Float64(11),\n\t\t\t\t\tLeases: pulumi.Float64(4),\n\t\t\t\t},\n\t\t\t},\n\t\t\tImages: opennebula.UserQuotasImageArray{\n\t\t\t\t&opennebula.UserQuotasImageArgs{\n\t\t\t\t\tId:         pulumi.Float64(8),\n\t\t\t\t\tRunningVms: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t\t&opennebula.UserQuotasImageArgs{\n\t\t\t\t\tId:         pulumi.Float64(9),\n\t\t\t\t\tRunningVms: pulumi.Float64(1),\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\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.opennebula.User;\nimport com.pulumi.opennebula.UserArgs;\nimport com.pulumi.opennebula.inputs.UserTemplateSectionArgs;\nimport com.pulumi.opennebula.UserQuotas;\nimport com.pulumi.opennebula.UserQuotasArgs;\nimport com.pulumi.opennebula.inputs.UserQuotasDatastoreArgs;\nimport com.pulumi.opennebula.inputs.UserQuotasVmArgs;\nimport com.pulumi.opennebula.inputs.UserQuotasNetworkArgs;\nimport com.pulumi.opennebula.inputs.UserQuotasImageArgs;\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 exampleUser = new User(\"exampleUser\", UserArgs.builder()\n            .password(\"randomp4ss\")\n            .authDriver(\"core\")\n            .primaryGroup(\"100\")\n            .groups(            \n                101,\n                102)\n            .tags(Map.of(\"environment\", \"example\"))\n            .templateSections(UserTemplateSectionArgs.builder()\n                .name(\"example\")\n                .elements(Map.of(\"key1\", \"value1\"))\n                .build())\n            .build());\n\n        var exampleUserQuotas = new UserQuotas(\"exampleUserQuotas\", UserQuotasArgs.builder()\n            .userId(exampleUser.userId())\n            .datastores(UserQuotasDatastoreArgs.builder()\n                .id(1)\n                .images(3)\n                .size(10000)\n                .build())\n            .vms(UserQuotasVmArgs.builder()\n                .cpu(3)\n                .runningCpu(3)\n                .memory(2048)\n                .runningMemory(2048)\n                .build())\n            .networks(            \n                UserQuotasNetworkArgs.builder()\n                    .id(10)\n                    .leases(6)\n                    .build(),\n                UserQuotasNetworkArgs.builder()\n                    .id(11)\n                    .leases(4)\n                    .build())\n            .images(            \n                UserQuotasImageArgs.builder()\n                    .id(8)\n                    .runningVms(1)\n                    .build(),\n                UserQuotasImageArgs.builder()\n                    .id(9)\n                    .runningVms(1)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleUser:\n    type: opennebula:User\n    properties:\n      password: randomp4ss\n      authDriver: core\n      primaryGroup: '100'\n      groups:\n        - 101\n        - 102\n      tags:\n        environment: example\n      templateSections:\n        - name: example\n          elements:\n            key1: value1\n  exampleUserQuotas:\n    type: opennebula:UserQuotas\n    properties:\n      userId: ${exampleUser.userId}\n      datastores:\n        - id: 1\n          images: 3\n          size: 10000\n      vms:\n        - cpu: 3\n          runningCpu: 3\n          memory: 2048\n          runningMemory: 2048\n      networks:\n        - id: 10\n          leases: 6\n        - id: 11\n          leases: 4\n      images:\n        - id: 8\n          runningVms: 1\n        - id: 9\n          runningVms: 1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_user` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/user:User example 123\n```\n\n",
      "properties": {
        "authDriver": {
          "type": "string",
          "description": "Authentication Driver for User management. DEfaults to 'core'.\n"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "groups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of secondary groups ID of the user.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the user.\n"
        },
        "password": {
          "type": "string",
          "description": "Password of the user. It is required for all `auth_driver` excepted 'ldap'\n"
        },
        "primaryGroup": {
          "type": "number",
          "description": "Primary group ID of the User. Defaults to 0 (oneadmin).\n"
        },
        "quotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuota:UserQuota"
          },
          "description": "See Quotas parameters below for details. Use `resource_opennebula_user_quotas` instead.\n",
          "deprecationMessage": "Deprecated"
        },
        "sshPublicKey": {
          "type": "string",
          "description": "SSH public key.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserTemplateSection:UserTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "userId": {
          "type": "string",
          "description": "ID of the user.\n"
        }
      },
      "type": "object",
      "required": [
        "defaultTags",
        "name",
        "tagsAll",
        "userId"
      ],
      "inputProperties": {
        "authDriver": {
          "type": "string",
          "description": "Authentication Driver for User management. DEfaults to 'core'.\n"
        },
        "groups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of secondary groups ID of the user.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the user.\n"
        },
        "password": {
          "type": "string",
          "description": "Password of the user. It is required for all `auth_driver` excepted 'ldap'\n"
        },
        "primaryGroup": {
          "type": "number",
          "description": "Primary group ID of the User. Defaults to 0 (oneadmin).\n"
        },
        "quotas": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuota:UserQuota"
          },
          "description": "See Quotas parameters below for details. Use `resource_opennebula_user_quotas` instead.\n",
          "deprecationMessage": "Deprecated"
        },
        "sshPublicKey": {
          "type": "string",
          "description": "SSH public key.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserTemplateSection:UserTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "userId": {
          "type": "string",
          "description": "ID of the user.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering User resources.\n",
        "properties": {
          "authDriver": {
            "type": "string",
            "description": "Authentication Driver for User management. DEfaults to 'core'.\n"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of secondary groups ID of the user.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the user.\n"
          },
          "password": {
            "type": "string",
            "description": "Password of the user. It is required for all `auth_driver` excepted 'ldap'\n"
          },
          "primaryGroup": {
            "type": "number",
            "description": "Primary group ID of the User. Defaults to 0 (oneadmin).\n"
          },
          "quotas": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FUserQuota:UserQuota"
            },
            "description": "See Quotas parameters below for details. Use `resource_opennebula_user_quotas` instead.\n",
            "deprecationMessage": "Deprecated"
          },
          "sshPublicKey": {
            "type": "string",
            "description": "SSH public key.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FUserTemplateSection:UserTemplateSection"
            },
            "description": "Allow to add a custom vector. See Template section parameters\n"
          },
          "userId": {
            "type": "string",
            "description": "ID of the user.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/userQuotas:UserQuotas": {
      "description": "Provides an OpenNebula user quotas resource.\n\nThis resource allows you to manage the quotas for an user.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst datastoreExample = new opennebula.UserQuotas(\"datastoreExample\", {\n    userId: opennebula_user.example.id,\n    datastores: [{\n        id: 1,\n        images: 5,\n        size: 10000,\n    }],\n});\nconst vmExample = new opennebula.UserQuotas(\"vmExample\", {\n    userId: opennebula_user.example.id,\n    vms: [{\n        cpu: 3,\n        runningCpu: 3,\n        memory: 2048,\n        runningMemory: 2048,\n    }],\n});\nconst networkExample = new opennebula.UserQuotas(\"networkExample\", {\n    userId: opennebula_user.example.id,\n    networks: [\n        {\n            id: 10,\n            leases: 6,\n        },\n        {\n            id: 11,\n            leases: 4,\n        },\n    ],\n});\nconst imageExample = new opennebula.UserQuotas(\"imageExample\", {\n    userId: opennebula_user.example.id,\n    images: [\n        {\n            id: 8,\n            runningVms: 1,\n        },\n        {\n            id: 9,\n            runningVms: 1,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\ndatastore_example = opennebula.UserQuotas(\"datastoreExample\",\n    user_id=opennebula_user[\"example\"][\"id\"],\n    datastores=[{\n        \"id\": 1,\n        \"images\": 5,\n        \"size\": 10000,\n    }])\nvm_example = opennebula.UserQuotas(\"vmExample\",\n    user_id=opennebula_user[\"example\"][\"id\"],\n    vms=[{\n        \"cpu\": 3,\n        \"running_cpu\": 3,\n        \"memory\": 2048,\n        \"running_memory\": 2048,\n    }])\nnetwork_example = opennebula.UserQuotas(\"networkExample\",\n    user_id=opennebula_user[\"example\"][\"id\"],\n    networks=[\n        {\n            \"id\": 10,\n            \"leases\": 6,\n        },\n        {\n            \"id\": 11,\n            \"leases\": 4,\n        },\n    ])\nimage_example = opennebula.UserQuotas(\"imageExample\",\n    user_id=opennebula_user[\"example\"][\"id\"],\n    images=[\n        {\n            \"id\": 8,\n            \"running_vms\": 1,\n        },\n        {\n            \"id\": 9,\n            \"running_vms\": 1,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var datastoreExample = new Opennebula.UserQuotas(\"datastoreExample\", new()\n    {\n        UserId = opennebula_user.Example.Id,\n        Datastores = new[]\n        {\n            new Opennebula.Inputs.UserQuotasDatastoreArgs\n            {\n                Id = 1,\n                Images = 5,\n                Size = 10000,\n            },\n        },\n    });\n\n    var vmExample = new Opennebula.UserQuotas(\"vmExample\", new()\n    {\n        UserId = opennebula_user.Example.Id,\n        Vms = new[]\n        {\n            new Opennebula.Inputs.UserQuotasVmArgs\n            {\n                Cpu = 3,\n                RunningCpu = 3,\n                Memory = 2048,\n                RunningMemory = 2048,\n            },\n        },\n    });\n\n    var networkExample = new Opennebula.UserQuotas(\"networkExample\", new()\n    {\n        UserId = opennebula_user.Example.Id,\n        Networks = new[]\n        {\n            new Opennebula.Inputs.UserQuotasNetworkArgs\n            {\n                Id = 10,\n                Leases = 6,\n            },\n            new Opennebula.Inputs.UserQuotasNetworkArgs\n            {\n                Id = 11,\n                Leases = 4,\n            },\n        },\n    });\n\n    var imageExample = new Opennebula.UserQuotas(\"imageExample\", new()\n    {\n        UserId = opennebula_user.Example.Id,\n        Images = new[]\n        {\n            new Opennebula.Inputs.UserQuotasImageArgs\n            {\n                Id = 8,\n                RunningVms = 1,\n            },\n            new Opennebula.Inputs.UserQuotasImageArgs\n            {\n                Id = 9,\n                RunningVms = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewUserQuotas(ctx, \"datastoreExample\", &opennebula.UserQuotasArgs{\n\t\t\tUserId: pulumi.Any(opennebula_user.Example.Id),\n\t\t\tDatastores: opennebula.UserQuotasDatastoreArray{\n\t\t\t\t&opennebula.UserQuotasDatastoreArgs{\n\t\t\t\t\tId:     pulumi.Float64(1),\n\t\t\t\t\tImages: pulumi.Float64(5),\n\t\t\t\t\tSize:   pulumi.Float64(10000),\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\t_, err = opennebula.NewUserQuotas(ctx, \"vmExample\", &opennebula.UserQuotasArgs{\n\t\t\tUserId: pulumi.Any(opennebula_user.Example.Id),\n\t\t\tVms: opennebula.UserQuotasVmArray{\n\t\t\t\t&opennebula.UserQuotasVmArgs{\n\t\t\t\t\tCpu:           pulumi.Float64(3),\n\t\t\t\t\tRunningCpu:    pulumi.Float64(3),\n\t\t\t\t\tMemory:        pulumi.Float64(2048),\n\t\t\t\t\tRunningMemory: pulumi.Float64(2048),\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\t_, err = opennebula.NewUserQuotas(ctx, \"networkExample\", &opennebula.UserQuotasArgs{\n\t\t\tUserId: pulumi.Any(opennebula_user.Example.Id),\n\t\t\tNetworks: opennebula.UserQuotasNetworkArray{\n\t\t\t\t&opennebula.UserQuotasNetworkArgs{\n\t\t\t\t\tId:     pulumi.Float64(10),\n\t\t\t\t\tLeases: pulumi.Float64(6),\n\t\t\t\t},\n\t\t\t\t&opennebula.UserQuotasNetworkArgs{\n\t\t\t\t\tId:     pulumi.Float64(11),\n\t\t\t\t\tLeases: pulumi.Float64(4),\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\t_, err = opennebula.NewUserQuotas(ctx, \"imageExample\", &opennebula.UserQuotasArgs{\n\t\t\tUserId: pulumi.Any(opennebula_user.Example.Id),\n\t\t\tImages: opennebula.UserQuotasImageArray{\n\t\t\t\t&opennebula.UserQuotasImageArgs{\n\t\t\t\t\tId:         pulumi.Float64(8),\n\t\t\t\t\tRunningVms: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t\t&opennebula.UserQuotasImageArgs{\n\t\t\t\t\tId:         pulumi.Float64(9),\n\t\t\t\t\tRunningVms: pulumi.Float64(1),\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\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.opennebula.UserQuotas;\nimport com.pulumi.opennebula.UserQuotasArgs;\nimport com.pulumi.opennebula.inputs.UserQuotasDatastoreArgs;\nimport com.pulumi.opennebula.inputs.UserQuotasVmArgs;\nimport com.pulumi.opennebula.inputs.UserQuotasNetworkArgs;\nimport com.pulumi.opennebula.inputs.UserQuotasImageArgs;\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 datastoreExample = new UserQuotas(\"datastoreExample\", UserQuotasArgs.builder()\n            .userId(opennebula_user.example().id())\n            .datastores(UserQuotasDatastoreArgs.builder()\n                .id(1)\n                .images(5)\n                .size(10000)\n                .build())\n            .build());\n\n        var vmExample = new UserQuotas(\"vmExample\", UserQuotasArgs.builder()\n            .userId(opennebula_user.example().id())\n            .vms(UserQuotasVmArgs.builder()\n                .cpu(3)\n                .runningCpu(3)\n                .memory(2048)\n                .runningMemory(2048)\n                .build())\n            .build());\n\n        var networkExample = new UserQuotas(\"networkExample\", UserQuotasArgs.builder()\n            .userId(opennebula_user.example().id())\n            .networks(            \n                UserQuotasNetworkArgs.builder()\n                    .id(10)\n                    .leases(6)\n                    .build(),\n                UserQuotasNetworkArgs.builder()\n                    .id(11)\n                    .leases(4)\n                    .build())\n            .build());\n\n        var imageExample = new UserQuotas(\"imageExample\", UserQuotasArgs.builder()\n            .userId(opennebula_user.example().id())\n            .images(            \n                UserQuotasImageArgs.builder()\n                    .id(8)\n                    .runningVms(1)\n                    .build(),\n                UserQuotasImageArgs.builder()\n                    .id(9)\n                    .runningVms(1)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  datastoreExample:\n    type: opennebula:UserQuotas\n    properties:\n      userId: ${opennebula_user.example.id}\n      datastores:\n        - id: 1\n          images: 5\n          size: 10000\n  vmExample:\n    type: opennebula:UserQuotas\n    properties:\n      userId: ${opennebula_user.example.id}\n      vms:\n        - cpu: 3\n          runningCpu: 3\n          memory: 2048\n          runningMemory: 2048\n  networkExample:\n    type: opennebula:UserQuotas\n    properties:\n      userId: ${opennebula_user.example.id}\n      networks:\n        - id: 10\n          leases: 6\n        - id: 11\n          leases: 4\n  imageExample:\n    type: opennebula:UserQuotas\n    properties:\n      userId: ${opennebula_user.example.id}\n      images:\n        - id: 8\n          runningVms: 1\n        - id: 9\n          runningVms: 1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_user_quotas` can be imported using the user ID and the quotas section to import:\n\n```sh\n$ pulumi import opennebula:index/userQuotas:UserQuotas example 123:datastore\n```\n\n",
      "properties": {
        "datastores": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuotasDatastore:UserQuotasDatastore"
          },
          "description": "List of datastore quotas. See Datastore quotas parameters below for details. Conflicts with `network`, `image`, `vm`.\n"
        },
        "images": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuotasImage:UserQuotasImage"
          },
          "description": "List of image quotas. See Image quotas parameters below for details. Conflicts with `datastore`, `network`, `vm`.\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuotasNetwork:UserQuotasNetwork"
          },
          "description": "List of network quotas. See Network quotas parameters below for details. Conflicts with `datastore`, `image`, `vm`.\n"
        },
        "type": {
          "type": "string"
        },
        "userId": {
          "type": "number",
          "description": "The related user ID.\n"
        },
        "userQuotasId": {
          "type": "string"
        },
        "vms": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuotasVm:UserQuotasVm"
          },
          "description": "See Virtual Machine quotas parameters below for details. Conflicts with `datastore`, `network`, `image`.\n"
        }
      },
      "type": "object",
      "required": [
        "type",
        "userId",
        "userQuotasId"
      ],
      "inputProperties": {
        "datastores": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuotasDatastore:UserQuotasDatastore"
          },
          "description": "List of datastore quotas. See Datastore quotas parameters below for details. Conflicts with `network`, `image`, `vm`.\n"
        },
        "images": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuotasImage:UserQuotasImage"
          },
          "description": "List of image quotas. See Image quotas parameters below for details. Conflicts with `datastore`, `network`, `vm`.\n"
        },
        "networks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuotasNetwork:UserQuotasNetwork"
          },
          "description": "List of network quotas. See Network quotas parameters below for details. Conflicts with `datastore`, `image`, `vm`.\n"
        },
        "userId": {
          "type": "number",
          "description": "The related user ID.\n"
        },
        "userQuotasId": {
          "type": "string"
        },
        "vms": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FUserQuotasVm:UserQuotasVm"
          },
          "description": "See Virtual Machine quotas parameters below for details. Conflicts with `datastore`, `network`, `image`.\n"
        }
      },
      "requiredInputs": [
        "userId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering UserQuotas resources.\n",
        "properties": {
          "datastores": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FUserQuotasDatastore:UserQuotasDatastore"
            },
            "description": "List of datastore quotas. See Datastore quotas parameters below for details. Conflicts with `network`, `image`, `vm`.\n"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FUserQuotasImage:UserQuotasImage"
            },
            "description": "List of image quotas. See Image quotas parameters below for details. Conflicts with `datastore`, `network`, `vm`.\n"
          },
          "networks": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FUserQuotasNetwork:UserQuotasNetwork"
            },
            "description": "List of network quotas. See Network quotas parameters below for details. Conflicts with `datastore`, `image`, `vm`.\n"
          },
          "type": {
            "type": "string"
          },
          "userId": {
            "type": "number",
            "description": "The related user ID.\n"
          },
          "userQuotasId": {
            "type": "string"
          },
          "vms": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FUserQuotasVm:UserQuotasVm"
            },
            "description": "See Virtual Machine quotas parameters below for details. Conflicts with `datastore`, `network`, `image`.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/virtualDataCenter:VirtualDataCenter": {
      "description": "Provides an OpenNebula virtual data center resource.\n\nThis resource allows you to manage virtual data centers on your OpenNebula organization. When applied,\na new virtual data center is created. When destroyed, this virtual data center is removed.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.VirtualDataCenter(\"example\", {\n    groupIds: [opennebula_group.example.id],\n    zones: [{\n        id: 0,\n        hostIds: [\n            0,\n            1,\n        ],\n        datastoreIds: [\n            0,\n            1,\n            2,\n        ],\n        vnetIds: [opennebula_virtual_network.example.id],\n        clusterIds: [\n            0,\n            100,\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.VirtualDataCenter(\"example\",\n    group_ids=[opennebula_group[\"example\"][\"id\"]],\n    zones=[{\n        \"id\": 0,\n        \"host_ids\": [\n            0,\n            1,\n        ],\n        \"datastore_ids\": [\n            0,\n            1,\n            2,\n        ],\n        \"vnet_ids\": [opennebula_virtual_network[\"example\"][\"id\"]],\n        \"cluster_ids\": [\n            0,\n            100,\n        ],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.VirtualDataCenter(\"example\", new()\n    {\n        GroupIds = new[]\n        {\n            opennebula_group.Example.Id,\n        },\n        Zones = new[]\n        {\n            new Opennebula.Inputs.VirtualDataCenterZoneArgs\n            {\n                Id = 0,\n                HostIds = new[]\n                {\n                    0,\n                    1,\n                },\n                DatastoreIds = new[]\n                {\n                    0,\n                    1,\n                    2,\n                },\n                VnetIds = new[]\n                {\n                    opennebula_virtual_network.Example.Id,\n                },\n                ClusterIds = new[]\n                {\n                    0,\n                    100,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewVirtualDataCenter(ctx, \"example\", &opennebula.VirtualDataCenterArgs{\n\t\t\tGroupIds: pulumi.Float64Array{\n\t\t\t\topennebula_group.Example.Id,\n\t\t\t},\n\t\t\tZones: opennebula.VirtualDataCenterZoneArray{\n\t\t\t\t&opennebula.VirtualDataCenterZoneArgs{\n\t\t\t\t\tId: pulumi.Float64(0),\n\t\t\t\t\tHostIds: pulumi.Float64Array{\n\t\t\t\t\t\tpulumi.Float64(0),\n\t\t\t\t\t\tpulumi.Float64(1),\n\t\t\t\t\t},\n\t\t\t\t\tDatastoreIds: pulumi.Float64Array{\n\t\t\t\t\t\tpulumi.Float64(0),\n\t\t\t\t\t\tpulumi.Float64(1),\n\t\t\t\t\t\tpulumi.Float64(2),\n\t\t\t\t\t},\n\t\t\t\t\tVnetIds: pulumi.Float64Array{\n\t\t\t\t\t\topennebula_virtual_network.Example.Id,\n\t\t\t\t\t},\n\t\t\t\t\tClusterIds: pulumi.Float64Array{\n\t\t\t\t\t\tpulumi.Float64(0),\n\t\t\t\t\t\tpulumi.Float64(100),\n\t\t\t\t\t},\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\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.opennebula.VirtualDataCenter;\nimport com.pulumi.opennebula.VirtualDataCenterArgs;\nimport com.pulumi.opennebula.inputs.VirtualDataCenterZoneArgs;\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 example = new VirtualDataCenter(\"example\", VirtualDataCenterArgs.builder()\n            .groupIds(opennebula_group.example().id())\n            .zones(VirtualDataCenterZoneArgs.builder()\n                .id(0)\n                .hostIds(                \n                    0,\n                    1)\n                .datastoreIds(                \n                    0,\n                    1,\n                    2)\n                .vnetIds(opennebula_virtual_network.example().id())\n                .clusterIds(                \n                    0,\n                    100)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:VirtualDataCenter\n    properties:\n      groupIds:\n        - ${opennebula_group.example.id}\n      zones:\n        - id: 0\n          hostIds:\n            - 0\n            - 1\n          datastoreIds:\n            - 0\n            - 1\n            - 2\n          vnetIds:\n            - ${opennebula_virtual_network.example.id}\n          clusterIds:\n            - 0\n            - 100\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_virtual_data_center` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/virtualDataCenter:VirtualDataCenter example 123\n```\n\n",
      "properties": {
        "groupIds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of Group IDs to be added into the VDC\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual data center.\n"
        },
        "virtualDataCenterId": {
          "type": "string",
          "description": "ID of the virtual data center.\n"
        },
        "zones": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualDataCenterZone:VirtualDataCenterZone"
          },
          "description": "List of zones. See Zones parameters below for details\n"
        }
      },
      "type": "object",
      "required": [
        "groupIds",
        "name",
        "virtualDataCenterId"
      ],
      "inputProperties": {
        "groupIds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of Group IDs to be added into the VDC\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual data center.\n"
        },
        "virtualDataCenterId": {
          "type": "string",
          "description": "ID of the virtual data center.\n"
        },
        "zones": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualDataCenterZone:VirtualDataCenterZone"
          },
          "description": "List of zones. See Zones parameters below for details\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualDataCenter resources.\n",
        "properties": {
          "groupIds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of Group IDs to be added into the VDC\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the virtual data center.\n"
          },
          "virtualDataCenterId": {
            "type": "string",
            "description": "ID of the virtual data center.\n"
          },
          "zones": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualDataCenterZone:VirtualDataCenterZone"
            },
            "description": "List of zones. See Zones parameters below for details\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/virtualMachine:VirtualMachine": {
      "description": "Provides an OpenNebula virtual machine resource.\n\nThis resource allows you to manage virtual machines on your OpenNebula clusters. When applied,\na new virtual machine is created. When destroyed, this virtual machine is removed.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example: opennebula.VirtualMachine[] = [];\nfor (const range = {value: 0}; range.value < 2; range.value++) {\n    example.push(new opennebula.VirtualMachine(`example-${range.value}`, {\n        description: \"VM\",\n        cpu: 1,\n        vcpu: 1,\n        memory: 1024,\n        group: \"terraform\",\n        permissions: \"660\",\n        context: {\n            NETWORK: \"YES\",\n            HOSTNAME: \"$NAME\",\n            START_SCRIPT: \"yum upgrade\",\n        },\n        graphics: {\n            type: \"VNC\",\n            listen: \"0.0.0.0\",\n            keymap: \"fr\",\n        },\n        os: {\n            arch: \"x86_64\",\n            boot: \"disk0\",\n        },\n        disks: [{\n            imageId: opennebula_image.example.id,\n            size: 10000,\n            target: \"vda\",\n            driver: \"qcow2\",\n        }],\n        onDiskChange: \"RECREATE\",\n        nics: [{\n            name: \"vm-nic-1\",\n            model: \"virtio\",\n            networkId: _var.vnetid,\n            securityGroups: [opennebula_security_group.example.id],\n            dns: \"1.1.1.1\",\n        }],\n        nicAliases: [{\n            parent: \"vm-nic-1\",\n            networkId: _var.vnetid,\n            ip: \"172.20.0.45\",\n        }],\n        vmgroup: {\n            vmgroupId: 42,\n            role: \"vmgroup-role\",\n        },\n        schedRequirements: \"FREE_CPU > 60\",\n        tags: {\n            environment: \"example\",\n        },\n        templateSections: [{\n            name: \"example\",\n            elements: {\n                key1: \"value1\",\n            },\n        }],\n    }));\n}\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n    example.append(opennebula.VirtualMachine(f\"example-{range['value']}\",\n        description=\"VM\",\n        cpu=1,\n        vcpu=1,\n        memory=1024,\n        group=\"terraform\",\n        permissions=\"660\",\n        context={\n            \"NETWORK\": \"YES\",\n            \"HOSTNAME\": \"$NAME\",\n            \"START_SCRIPT\": \"yum upgrade\",\n        },\n        graphics={\n            \"type\": \"VNC\",\n            \"listen\": \"0.0.0.0\",\n            \"keymap\": \"fr\",\n        },\n        os={\n            \"arch\": \"x86_64\",\n            \"boot\": \"disk0\",\n        },\n        disks=[{\n            \"image_id\": opennebula_image[\"example\"][\"id\"],\n            \"size\": 10000,\n            \"target\": \"vda\",\n            \"driver\": \"qcow2\",\n        }],\n        on_disk_change=\"RECREATE\",\n        nics=[{\n            \"name\": \"vm-nic-1\",\n            \"model\": \"virtio\",\n            \"network_id\": var[\"vnetid\"],\n            \"security_groups\": [opennebula_security_group[\"example\"][\"id\"]],\n            \"dns\": \"1.1.1.1\",\n        }],\n        nic_aliases=[{\n            \"parent\": \"vm-nic-1\",\n            \"network_id\": var[\"vnetid\"],\n            \"ip\": \"172.20.0.45\",\n        }],\n        vmgroup={\n            \"vmgroup_id\": 42,\n            \"role\": \"vmgroup-role\",\n        },\n        sched_requirements=\"FREE_CPU > 60\",\n        tags={\n            \"environment\": \"example\",\n        },\n        template_sections=[{\n            \"name\": \"example\",\n            \"elements\": {\n                \"key1\": \"value1\",\n            },\n        }]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new List<Opennebula.VirtualMachine>();\n    for (var rangeIndex = 0; rangeIndex < 2; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        example.Add(new Opennebula.VirtualMachine($\"example-{range.Value}\", new()\n        {\n            Description = \"VM\",\n            Cpu = 1,\n            Vcpu = 1,\n            Memory = 1024,\n            Group = \"terraform\",\n            Permissions = \"660\",\n            Context = \n            {\n                { \"NETWORK\", \"YES\" },\n                { \"HOSTNAME\", \"$NAME\" },\n                { \"START_SCRIPT\", \"yum upgrade\" },\n            },\n            Graphics = new Opennebula.Inputs.VirtualMachineGraphicsArgs\n            {\n                Type = \"VNC\",\n                Listen = \"0.0.0.0\",\n                Keymap = \"fr\",\n            },\n            Os = new Opennebula.Inputs.VirtualMachineOsArgs\n            {\n                Arch = \"x86_64\",\n                Boot = \"disk0\",\n            },\n            Disks = new[]\n            {\n                new Opennebula.Inputs.VirtualMachineDiskArgs\n                {\n                    ImageId = opennebula_image.Example.Id,\n                    Size = 10000,\n                    Target = \"vda\",\n                    Driver = \"qcow2\",\n                },\n            },\n            OnDiskChange = \"RECREATE\",\n            Nics = new[]\n            {\n                new Opennebula.Inputs.VirtualMachineNicArgs\n                {\n                    Name = \"vm-nic-1\",\n                    Model = \"virtio\",\n                    NetworkId = @var.Vnetid,\n                    SecurityGroups = new[]\n                    {\n                        opennebula_security_group.Example.Id,\n                    },\n                    Dns = \"1.1.1.1\",\n                },\n            },\n            NicAliases = new[]\n            {\n                new Opennebula.Inputs.VirtualMachineNicAliasArgs\n                {\n                    Parent = \"vm-nic-1\",\n                    NetworkId = @var.Vnetid,\n                    Ip = \"172.20.0.45\",\n                },\n            },\n            Vmgroup = new Opennebula.Inputs.VirtualMachineVmgroupArgs\n            {\n                VmgroupId = 42,\n                Role = \"vmgroup-role\",\n            },\n            SchedRequirements = \"FREE_CPU > 60\",\n            Tags = \n            {\n                { \"environment\", \"example\" },\n            },\n            TemplateSections = new[]\n            {\n                new Opennebula.Inputs.VirtualMachineTemplateSectionArgs\n                {\n                    Name = \"example\",\n                    Elements = \n                    {\n                        { \"key1\", \"value1\" },\n                    },\n                },\n            },\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvar example []*opennebula.VirtualMachine\n\t\tfor index := 0; index < 2; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := opennebula.NewVirtualMachine(ctx, fmt.Sprintf(\"example-%v\", key0), &opennebula.VirtualMachineArgs{\n\t\t\t\tDescription: pulumi.String(\"VM\"),\n\t\t\t\tCpu:         pulumi.Float64(1),\n\t\t\t\tVcpu:        pulumi.Float64(1),\n\t\t\t\tMemory:      pulumi.Float64(1024),\n\t\t\t\tGroup:       pulumi.String(\"terraform\"),\n\t\t\t\tPermissions: pulumi.String(\"660\"),\n\t\t\t\tContext: pulumi.StringMap{\n\t\t\t\t\t\"NETWORK\":      pulumi.String(\"YES\"),\n\t\t\t\t\t\"HOSTNAME\":     pulumi.String(\"$NAME\"),\n\t\t\t\t\t\"START_SCRIPT\": pulumi.String(\"yum upgrade\"),\n\t\t\t\t},\n\t\t\t\tGraphics: &opennebula.VirtualMachineGraphicsArgs{\n\t\t\t\t\tType:   pulumi.String(\"VNC\"),\n\t\t\t\t\tListen: pulumi.String(\"0.0.0.0\"),\n\t\t\t\t\tKeymap: pulumi.String(\"fr\"),\n\t\t\t\t},\n\t\t\t\tOs: &opennebula.VirtualMachineOsArgs{\n\t\t\t\t\tArch: pulumi.String(\"x86_64\"),\n\t\t\t\t\tBoot: pulumi.String(\"disk0\"),\n\t\t\t\t},\n\t\t\t\tDisks: opennebula.VirtualMachineDiskArray{\n\t\t\t\t\t&opennebula.VirtualMachineDiskArgs{\n\t\t\t\t\t\tImageId: pulumi.Any(opennebula_image.Example.Id),\n\t\t\t\t\t\tSize:    pulumi.Float64(10000),\n\t\t\t\t\t\tTarget:  pulumi.String(\"vda\"),\n\t\t\t\t\t\tDriver:  pulumi.String(\"qcow2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tOnDiskChange: pulumi.String(\"RECREATE\"),\n\t\t\t\tNics: opennebula.VirtualMachineNicArray{\n\t\t\t\t\t&opennebula.VirtualMachineNicArgs{\n\t\t\t\t\t\tName:      pulumi.String(\"vm-nic-1\"),\n\t\t\t\t\t\tModel:     pulumi.String(\"virtio\"),\n\t\t\t\t\t\tNetworkId: pulumi.Any(_var.Vnetid),\n\t\t\t\t\t\tSecurityGroups: pulumi.Float64Array{\n\t\t\t\t\t\t\topennebula_security_group.Example.Id,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tDns: pulumi.String(\"1.1.1.1\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tNicAliases: opennebula.VirtualMachineNicAliasArray{\n\t\t\t\t\t&opennebula.VirtualMachineNicAliasArgs{\n\t\t\t\t\t\tParent:    pulumi.String(\"vm-nic-1\"),\n\t\t\t\t\t\tNetworkId: pulumi.Any(_var.Vnetid),\n\t\t\t\t\t\tIp:        pulumi.String(\"172.20.0.45\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tVmgroup: &opennebula.VirtualMachineVmgroupArgs{\n\t\t\t\t\tVmgroupId: pulumi.Float64(42),\n\t\t\t\t\tRole:      pulumi.String(\"vmgroup-role\"),\n\t\t\t\t},\n\t\t\t\tSchedRequirements: pulumi.String(\"FREE_CPU > 60\"),\n\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t\t},\n\t\t\t\tTemplateSections: opennebula.VirtualMachineTemplateSectionArray{\n\t\t\t\t\t&opennebula.VirtualMachineTemplateSectionArgs{\n\t\t\t\t\t\tName: pulumi.String(\"example\"),\n\t\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texample = append(example, __res)\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.opennebula.VirtualMachine;\nimport com.pulumi.opennebula.VirtualMachineArgs;\nimport com.pulumi.opennebula.inputs.VirtualMachineGraphicsArgs;\nimport com.pulumi.opennebula.inputs.VirtualMachineOsArgs;\nimport com.pulumi.opennebula.inputs.VirtualMachineDiskArgs;\nimport com.pulumi.opennebula.inputs.VirtualMachineNicArgs;\nimport com.pulumi.opennebula.inputs.VirtualMachineNicAliasArgs;\nimport com.pulumi.opennebula.inputs.VirtualMachineVmgroupArgs;\nimport com.pulumi.opennebula.inputs.VirtualMachineTemplateSectionArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\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        for (var i = 0; i < 2; i++) {\n            new VirtualMachine(\"example-\" + i, VirtualMachineArgs.builder()\n                .description(\"VM\")\n                .cpu(1)\n                .vcpu(1)\n                .memory(1024)\n                .group(\"terraform\")\n                .permissions(\"660\")\n                .context(Map.ofEntries(\n                    Map.entry(\"NETWORK\", \"YES\"),\n                    Map.entry(\"HOSTNAME\", \"$NAME\"),\n                    Map.entry(\"START_SCRIPT\", \"yum upgrade\")\n                ))\n                .graphics(VirtualMachineGraphicsArgs.builder()\n                    .type(\"VNC\")\n                    .listen(\"0.0.0.0\")\n                    .keymap(\"fr\")\n                    .build())\n                .os(VirtualMachineOsArgs.builder()\n                    .arch(\"x86_64\")\n                    .boot(\"disk0\")\n                    .build())\n                .disks(VirtualMachineDiskArgs.builder()\n                    .imageId(opennebula_image.example().id())\n                    .size(10000)\n                    .target(\"vda\")\n                    .driver(\"qcow2\")\n                    .build())\n                .onDiskChange(\"RECREATE\")\n                .nics(VirtualMachineNicArgs.builder()\n                    .name(\"vm-nic-1\")\n                    .model(\"virtio\")\n                    .networkId(var_.vnetid())\n                    .securityGroups(opennebula_security_group.example().id())\n                    .dns(\"1.1.1.1\")\n                    .build())\n                .nicAliases(VirtualMachineNicAliasArgs.builder()\n                    .parent(\"vm-nic-1\")\n                    .networkId(var_.vnetid())\n                    .ip(\"172.20.0.45\")\n                    .build())\n                .vmgroup(VirtualMachineVmgroupArgs.builder()\n                    .vmgroupId(42)\n                    .role(\"vmgroup-role\")\n                    .build())\n                .schedRequirements(\"FREE_CPU > 60\")\n                .tags(Map.of(\"environment\", \"example\"))\n                .templateSections(VirtualMachineTemplateSectionArgs.builder()\n                    .name(\"example\")\n                    .elements(Map.of(\"key1\", \"value1\"))\n                    .build())\n                .build());\n\n        \n}\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:VirtualMachine\n    properties:\n      description: VM\n      cpu: 1\n      vcpu: 1\n      memory: 1024\n      group: terraform\n      permissions: '660'\n      context:\n        NETWORK: YES\n        HOSTNAME: $NAME\n        START_SCRIPT: yum upgrade\n      graphics:\n        type: VNC\n        listen: 0.0.0.0\n        keymap: fr\n      os:\n        arch: x86_64\n        boot: disk0\n      disks:\n        - imageId: ${opennebula_image.example.id}\n          size: 10000\n          target: vda\n          driver: qcow2\n      onDiskChange: RECREATE\n      nics:\n        - name: vm-nic-1\n          model: virtio\n          networkId: ${var.vnetid}\n          securityGroups:\n            - ${opennebula_security_group.example.id}\n          dns: 1.1.1.1\n      nicAliases:\n        - parent: vm-nic-1\n          networkId: ${var.vnetid}\n          ip: 172.20.0.45\n      vmgroup:\n        vmgroupId: 42\n        role: vmgroup-role\n      schedRequirements: FREE_CPU > 60\n      tags:\n        environment: example\n      templateSections:\n        - name: example\n          elements:\n            key1: value1\n    options: {}\n```\n<!--End PulumiCodeChooser -->\n\n## Instantiate from a template\n\nWhen the attribute `template_id` is set, here is the behavior:\n\nFor all parameters excepted context: parameters present in VM overrides parameters defined in template.\nFor context: it merges them.\n\nFor disks and NICs defined in the template, if they are not overriden, are described in `template_disk`, `template_nic` and `template_nic_alias` attributes of the instantiated VM and are not modifiable anymore.\n\n## Import\n\n`opennebula_virtual_machine` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/virtualMachine:VirtualMachine example 123\n```\n\n",
      "properties": {
        "context": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Array of free form key=value pairs, rendered and added to the CONTEXT variables for the VM. Recommended to include: `NETWORK = \"YES\"` and `SET_HOSTNAME = \"$NAME\"`. If a `template_id` is set, see Instantiate from a template for details.\n"
        },
        "cpu": {
          "type": "number",
          "description": "Amount of CPU shares assigned to the VM. **Mandatory if** `template_id` **is not set**.\n"
        },
        "cpumodel": {
          "$ref": "#/types/opennebula:index%2FVirtualMachineCpumodel:VirtualMachineCpumodel",
          "description": "Definition of CPU Model type for the Virtual Machine\n"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the template.\n"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineDisk:VirtualMachineDisk"
          },
          "description": "Can be specified multiple times to attach several disks. See Disk parameters below for details.\n"
        },
        "gid": {
          "type": "number",
          "description": "Group ID which owns the virtual machine.\n"
        },
        "gname": {
          "type": "string",
          "description": "Group Name which owns the virtual machine.\n"
        },
        "graphics": {
          "$ref": "#/types/opennebula:index%2FVirtualMachineGraphics:VirtualMachineGraphics",
          "description": "See Graphics parameters below for details.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the virtual machine. Defaults to the caller primary group.\n"
        },
        "hardShutdown": {
          "type": "boolean",
          "description": "If the VM doesn't have ACPI support, it immediately poweroff/terminate/reboot/undeploy the VM. Defaults to false.\n"
        },
        "ip": {
          "type": "string",
          "description": "Primary IPv4 address assigned by OpenNebula\n"
        },
        "ip6": {
          "type": "string",
          "description": "Primary IPv6 address assigned by OpenNebula\n"
        },
        "ip6Global": {
          "type": "string",
          "description": "Global IPv6 address assigned by OpenNebula\n"
        },
        "ip6Link": {
          "type": "string",
          "description": "Link-local IPv6 address assigned by OpenNebula.\n"
        },
        "ip6Ula": {
          "type": "string",
          "description": "Unique local IPv6 address assigned by OpenNebula\n"
        },
        "keepNicOrder": {
          "type": "boolean",
          "description": "Indicates if the provider should keep NIC list ordering at update.\n"
        },
        "lcmstate": {
          "type": "number",
          "description": "LCM State of the virtual machine.\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock the VM with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "memory": {
          "type": "number",
          "description": "Amount of RAM assigned to the VM in MB. **Mandatory if** `template_id` **is not set**.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual machine.\n"
        },
        "nicAliases": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineNicAlias:VirtualMachineNicAlias"
          },
          "description": "Can be specified multiple times to attach several NIC aliases. See Nic alias parameters below for details.\n"
        },
        "nics": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineNic:VirtualMachineNic"
          },
          "description": "Can be specified multiple times to attach several NICs. See Nic parameters below for details.\n"
        },
        "onDiskChange": {
          "type": "string",
          "description": "Select the behavior for changing disk images. Supported values: `RECREATE` or `SWAP` (default). `RECREATE` forces recreation of the vm and `SWAP` adopts the standard behavior of hot-swapping the disks. NOTE: This property does not affect the behavior of adding new disks.\n"
        },
        "os": {
          "$ref": "#/types/opennebula:index%2FVirtualMachineOs:VirtualMachineOs",
          "description": "See OS parameters below for details.\n"
        },
        "pending": {
          "type": "boolean",
          "description": "Pending state during VM creation. Defaults to `false`.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on virtual machine. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "raw": {
          "$ref": "#/types/opennebula:index%2FVirtualMachineRaw:VirtualMachineRaw",
          "description": "Allow to pass hypervisor level tuning content. See Raw parameters below for details.\n"
        },
        "schedDsRequirements": {
          "type": "string",
          "description": "Storage placement requirements to deploy the resource following specific rule.\n"
        },
        "schedRequirements": {
          "type": "string",
          "description": "Scheduling requirements to deploy the resource following specific rule.\n"
        },
        "state": {
          "type": "number",
          "description": "State of the virtual machine.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "templateDisks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineTemplateDisk:VirtualMachineTemplateDisk"
          },
          "description": "when `template_id` is used and the template define some disks, this contains the template disks description.\n"
        },
        "templateId": {
          "type": "number",
          "description": "If set, VM are instantiated from the template ID. See Instantiate from a template for details. Changing this argument triggers a new resource.\n"
        },
        "templateNicAliases": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineTemplateNicAlias:VirtualMachineTemplateNicAlias"
          },
          "description": "Network adapter(s) assigned to the Virtual Machine via a template\n"
        },
        "templateNics": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineTemplateNic:VirtualMachineTemplateNic"
          },
          "description": "when `template_id` is used and the template define some NICs, this contains the template NICs description.\n"
        },
        "templateSectionNames": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "When `template_id` was set this keeps the template section names only.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineTemplateSection:VirtualMachineTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "templateTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "When `template_id` was set this keeps the template tags.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Timeout (in Minutes) for VM availability. Defaults to 3 minutes.\n",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FVirtualMachineTimeouts:VirtualMachineTimeouts"
        },
        "uid": {
          "type": "number",
          "description": "User ID whom owns the virtual machine.\n"
        },
        "uname": {
          "type": "string",
          "description": "User Name whom owns the virtual machine.\n"
        },
        "vcpu": {
          "type": "number",
          "description": "Number of virtual CPUs assigned to the virtual machine\n"
        },
        "virtualMachineId": {
          "type": "string",
          "description": "ID of the virtual machine.\n"
        },
        "vmgroup": {
          "$ref": "#/types/opennebula:index%2FVirtualMachineVmgroup:VirtualMachineVmgroup",
          "description": "See VM group parameters below for details. Changing this argument triggers a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "cpu",
        "defaultTags",
        "gid",
        "gname",
        "ip",
        "ip6",
        "ip6Global",
        "ip6Link",
        "ip6Ula",
        "lcmstate",
        "memory",
        "name",
        "permissions",
        "state",
        "tagsAll",
        "templateDisks",
        "templateNicAliases",
        "templateNics",
        "templateSectionNames",
        "templateTags",
        "uid",
        "uname",
        "vcpu",
        "virtualMachineId"
      ],
      "inputProperties": {
        "context": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Array of free form key=value pairs, rendered and added to the CONTEXT variables for the VM. Recommended to include: `NETWORK = \"YES\"` and `SET_HOSTNAME = \"$NAME\"`. If a `template_id` is set, see Instantiate from a template for details.\n"
        },
        "cpu": {
          "type": "number",
          "description": "Amount of CPU shares assigned to the VM. **Mandatory if** `template_id` **is not set**.\n"
        },
        "cpumodel": {
          "$ref": "#/types/opennebula:index%2FVirtualMachineCpumodel:VirtualMachineCpumodel",
          "description": "Definition of CPU Model type for the Virtual Machine\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the template.\n"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineDisk:VirtualMachineDisk"
          },
          "description": "Can be specified multiple times to attach several disks. See Disk parameters below for details.\n"
        },
        "graphics": {
          "$ref": "#/types/opennebula:index%2FVirtualMachineGraphics:VirtualMachineGraphics",
          "description": "See Graphics parameters below for details.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the virtual machine. Defaults to the caller primary group.\n"
        },
        "hardShutdown": {
          "type": "boolean",
          "description": "If the VM doesn't have ACPI support, it immediately poweroff/terminate/reboot/undeploy the VM. Defaults to false.\n"
        },
        "keepNicOrder": {
          "type": "boolean",
          "description": "Indicates if the provider should keep NIC list ordering at update.\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock the VM with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "memory": {
          "type": "number",
          "description": "Amount of RAM assigned to the VM in MB. **Mandatory if** `template_id` **is not set**.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual machine.\n"
        },
        "nicAliases": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineNicAlias:VirtualMachineNicAlias"
          },
          "description": "Can be specified multiple times to attach several NIC aliases. See Nic alias parameters below for details.\n"
        },
        "nics": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineNic:VirtualMachineNic"
          },
          "description": "Can be specified multiple times to attach several NICs. See Nic parameters below for details.\n"
        },
        "onDiskChange": {
          "type": "string",
          "description": "Select the behavior for changing disk images. Supported values: `RECREATE` or `SWAP` (default). `RECREATE` forces recreation of the vm and `SWAP` adopts the standard behavior of hot-swapping the disks. NOTE: This property does not affect the behavior of adding new disks.\n"
        },
        "os": {
          "$ref": "#/types/opennebula:index%2FVirtualMachineOs:VirtualMachineOs",
          "description": "See OS parameters below for details.\n"
        },
        "pending": {
          "type": "boolean",
          "description": "Pending state during VM creation. Defaults to `false`.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on virtual machine. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "raw": {
          "$ref": "#/types/opennebula:index%2FVirtualMachineRaw:VirtualMachineRaw",
          "description": "Allow to pass hypervisor level tuning content. See Raw parameters below for details.\n"
        },
        "schedDsRequirements": {
          "type": "string",
          "description": "Storage placement requirements to deploy the resource following specific rule.\n"
        },
        "schedRequirements": {
          "type": "string",
          "description": "Scheduling requirements to deploy the resource following specific rule.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "templateId": {
          "type": "number",
          "description": "If set, VM are instantiated from the template ID. See Instantiate from a template for details. Changing this argument triggers a new resource.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineTemplateSection:VirtualMachineTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "timeout": {
          "type": "number",
          "description": "Timeout (in Minutes) for VM availability. Defaults to 3 minutes.\n",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FVirtualMachineTimeouts:VirtualMachineTimeouts"
        },
        "vcpu": {
          "type": "number",
          "description": "Number of virtual CPUs assigned to the virtual machine\n"
        },
        "virtualMachineId": {
          "type": "string",
          "description": "ID of the virtual machine.\n"
        },
        "vmgroup": {
          "$ref": "#/types/opennebula:index%2FVirtualMachineVmgroup:VirtualMachineVmgroup",
          "description": "See VM group parameters below for details. Changing this argument triggers a new resource.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualMachine resources.\n",
        "properties": {
          "context": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Array of free form key=value pairs, rendered and added to the CONTEXT variables for the VM. Recommended to include: `NETWORK = \"YES\"` and `SET_HOSTNAME = \"$NAME\"`. If a `template_id` is set, see Instantiate from a template for details.\n"
          },
          "cpu": {
            "type": "number",
            "description": "Amount of CPU shares assigned to the VM. **Mandatory if** `template_id` **is not set**.\n"
          },
          "cpumodel": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineCpumodel:VirtualMachineCpumodel",
            "description": "Definition of CPU Model type for the Virtual Machine\n"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of the template.\n"
          },
          "disks": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualMachineDisk:VirtualMachineDisk"
            },
            "description": "Can be specified multiple times to attach several disks. See Disk parameters below for details.\n"
          },
          "gid": {
            "type": "number",
            "description": "Group ID which owns the virtual machine.\n"
          },
          "gname": {
            "type": "string",
            "description": "Group Name which owns the virtual machine.\n"
          },
          "graphics": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineGraphics:VirtualMachineGraphics",
            "description": "See Graphics parameters below for details.\n"
          },
          "group": {
            "type": "string",
            "description": "Name of the group which owns the virtual machine. Defaults to the caller primary group.\n"
          },
          "hardShutdown": {
            "type": "boolean",
            "description": "If the VM doesn't have ACPI support, it immediately poweroff/terminate/reboot/undeploy the VM. Defaults to false.\n"
          },
          "ip": {
            "type": "string",
            "description": "Primary IPv4 address assigned by OpenNebula\n"
          },
          "ip6": {
            "type": "string",
            "description": "Primary IPv6 address assigned by OpenNebula\n"
          },
          "ip6Global": {
            "type": "string",
            "description": "Global IPv6 address assigned by OpenNebula\n"
          },
          "ip6Link": {
            "type": "string",
            "description": "Link-local IPv6 address assigned by OpenNebula.\n"
          },
          "ip6Ula": {
            "type": "string",
            "description": "Unique local IPv6 address assigned by OpenNebula\n"
          },
          "keepNicOrder": {
            "type": "boolean",
            "description": "Indicates if the provider should keep NIC list ordering at update.\n"
          },
          "lcmstate": {
            "type": "number",
            "description": "LCM State of the virtual machine.\n"
          },
          "lock": {
            "type": "string",
            "description": "Lock the VM with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
          },
          "memory": {
            "type": "number",
            "description": "Amount of RAM assigned to the VM in MB. **Mandatory if** `template_id` **is not set**.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the virtual machine.\n"
          },
          "nicAliases": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualMachineNicAlias:VirtualMachineNicAlias"
            },
            "description": "Can be specified multiple times to attach several NIC aliases. See Nic alias parameters below for details.\n"
          },
          "nics": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualMachineNic:VirtualMachineNic"
            },
            "description": "Can be specified multiple times to attach several NICs. See Nic parameters below for details.\n"
          },
          "onDiskChange": {
            "type": "string",
            "description": "Select the behavior for changing disk images. Supported values: `RECREATE` or `SWAP` (default). `RECREATE` forces recreation of the vm and `SWAP` adopts the standard behavior of hot-swapping the disks. NOTE: This property does not affect the behavior of adding new disks.\n"
          },
          "os": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineOs:VirtualMachineOs",
            "description": "See OS parameters below for details.\n"
          },
          "pending": {
            "type": "boolean",
            "description": "Pending state during VM creation. Defaults to `false`.\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions applied on virtual machine. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
          },
          "raw": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineRaw:VirtualMachineRaw",
            "description": "Allow to pass hypervisor level tuning content. See Raw parameters below for details.\n"
          },
          "schedDsRequirements": {
            "type": "string",
            "description": "Storage placement requirements to deploy the resource following specific rule.\n"
          },
          "schedRequirements": {
            "type": "string",
            "description": "Scheduling requirements to deploy the resource following specific rule.\n"
          },
          "state": {
            "type": "number",
            "description": "State of the virtual machine.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "templateDisks": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualMachineTemplateDisk:VirtualMachineTemplateDisk"
            },
            "description": "when `template_id` is used and the template define some disks, this contains the template disks description.\n"
          },
          "templateId": {
            "type": "number",
            "description": "If set, VM are instantiated from the template ID. See Instantiate from a template for details. Changing this argument triggers a new resource.\n"
          },
          "templateNicAliases": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualMachineTemplateNicAlias:VirtualMachineTemplateNicAlias"
            },
            "description": "Network adapter(s) assigned to the Virtual Machine via a template\n"
          },
          "templateNics": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualMachineTemplateNic:VirtualMachineTemplateNic"
            },
            "description": "when `template_id` is used and the template define some NICs, this contains the template NICs description.\n"
          },
          "templateSectionNames": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "When `template_id` was set this keeps the template section names only.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualMachineTemplateSection:VirtualMachineTemplateSection"
            },
            "description": "Allow to add a custom vector. See Template section parameters\n"
          },
          "templateTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "When `template_id` was set this keeps the template tags.\n"
          },
          "timeout": {
            "type": "number",
            "description": "Timeout (in Minutes) for VM availability. Defaults to 3 minutes.\n",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineTimeouts:VirtualMachineTimeouts"
          },
          "uid": {
            "type": "number",
            "description": "User ID whom owns the virtual machine.\n"
          },
          "uname": {
            "type": "string",
            "description": "User Name whom owns the virtual machine.\n"
          },
          "vcpu": {
            "type": "number",
            "description": "Number of virtual CPUs assigned to the virtual machine\n"
          },
          "virtualMachineId": {
            "type": "string",
            "description": "ID of the virtual machine.\n"
          },
          "vmgroup": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineVmgroup:VirtualMachineVmgroup",
            "description": "See VM group parameters below for details. Changing this argument triggers a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/virtualMachineGroup:VirtualMachineGroup": {
      "description": "Provides an OpenNebula virtual machine group resource.\n\nThis resource allows you to manage virtual machine groups on your OpenNebula clusters. When applied,\na new virtual machine group is created. When destroyed, this virtual machine group is removed.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.VirtualMachineGroup(\"example\", {\n    group: \"oneadmin\",\n    permissions: \"642\",\n    roles: [{\n        hostAntiAffineds: [0],\n        name: \"anti-aff\",\n        policy: \"ANTI_AFFINED\",\n    }],\n    tags: {\n        environment: \"example\",\n    },\n    templateSections: [{\n        elements: {\n            key1: \"value1\",\n        },\n        name: \"example\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.VirtualMachineGroup(\"example\",\n    group=\"oneadmin\",\n    permissions=\"642\",\n    roles=[{\n        \"host_anti_affineds\": [0],\n        \"name\": \"anti-aff\",\n        \"policy\": \"ANTI_AFFINED\",\n    }],\n    tags={\n        \"environment\": \"example\",\n    },\n    template_sections=[{\n        \"elements\": {\n            \"key1\": \"value1\",\n        },\n        \"name\": \"example\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.VirtualMachineGroup(\"example\", new()\n    {\n        Group = \"oneadmin\",\n        Permissions = \"642\",\n        Roles = new[]\n        {\n            new Opennebula.Inputs.VirtualMachineGroupRoleArgs\n            {\n                HostAntiAffineds = new[]\n                {\n                    0,\n                },\n                Name = \"anti-aff\",\n                Policy = \"ANTI_AFFINED\",\n            },\n        },\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        TemplateSections = new[]\n        {\n            new Opennebula.Inputs.VirtualMachineGroupTemplateSectionArgs\n            {\n                Elements = \n                {\n                    { \"key1\", \"value1\" },\n                },\n                Name = \"example\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewVirtualMachineGroup(ctx, \"example\", &opennebula.VirtualMachineGroupArgs{\n\t\t\tGroup:       pulumi.String(\"oneadmin\"),\n\t\t\tPermissions: pulumi.String(\"642\"),\n\t\t\tRoles: opennebula.VirtualMachineGroupRoleArray{\n\t\t\t\t&opennebula.VirtualMachineGroupRoleArgs{\n\t\t\t\t\tHostAntiAffineds: pulumi.Float64Array{\n\t\t\t\t\t\tpulumi.Float64(0),\n\t\t\t\t\t},\n\t\t\t\t\tName:   pulumi.String(\"anti-aff\"),\n\t\t\t\t\tPolicy: pulumi.String(\"ANTI_AFFINED\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tTemplateSections: opennebula.VirtualMachineGroupTemplateSectionArray{\n\t\t\t\t&opennebula.VirtualMachineGroupTemplateSectionArgs{\n\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"example\"),\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\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.opennebula.VirtualMachineGroup;\nimport com.pulumi.opennebula.VirtualMachineGroupArgs;\nimport com.pulumi.opennebula.inputs.VirtualMachineGroupRoleArgs;\nimport com.pulumi.opennebula.inputs.VirtualMachineGroupTemplateSectionArgs;\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 example = new VirtualMachineGroup(\"example\", VirtualMachineGroupArgs.builder()\n            .group(\"oneadmin\")\n            .permissions(\"642\")\n            .roles(VirtualMachineGroupRoleArgs.builder()\n                .hostAntiAffineds(0)\n                .name(\"anti-aff\")\n                .policy(\"ANTI_AFFINED\")\n                .build())\n            .tags(Map.of(\"environment\", \"example\"))\n            .templateSections(VirtualMachineGroupTemplateSectionArgs.builder()\n                .elements(Map.of(\"key1\", \"value1\"))\n                .name(\"example\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:VirtualMachineGroup\n    properties:\n      group: oneadmin\n      permissions: '642'\n      roles:\n        - hostAntiAffineds:\n            - 0\n          name: anti-aff\n          policy: ANTI_AFFINED\n      tags:\n        environment: example\n      templateSections:\n        - elements:\n            key1: value1\n          name: example\n```\n<!--End PulumiCodeChooser -->\n\n## Role Attribute Reference\n\nThe Following attributes are exported under `role`:\n\n* `id` - ID of the role.\n\n## Import\n\n`opennebula_virtual_machine_group` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/virtualMachineGroup:VirtualMachineGroup example 123\n```\n\n",
      "properties": {
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "gid": {
          "type": "number",
          "description": "Group ID which owns the virtual machine.\n"
        },
        "gname": {
          "type": "string",
          "description": "Group Name which owns the virtual machine.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the virtual machine group. Defaults to the caller primary group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual machine group.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on virtual machine group. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin.\n"
        },
        "roles": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineGroupRole:VirtualMachineGroupRole"
          },
          "description": "List of roles. See Role parameters below for details.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineGroupTemplateSection:VirtualMachineGroupTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "uid": {
          "type": "number",
          "description": "User ID whom owns the virtual machine.\n"
        },
        "uname": {
          "type": "string",
          "description": "User Name whom owns the virtual machine.\n"
        },
        "virtualMachineGroupId": {
          "type": "string",
          "description": "ID of the virtual machine.\n"
        }
      },
      "type": "object",
      "required": [
        "defaultTags",
        "gid",
        "gname",
        "name",
        "permissions",
        "roles",
        "tagsAll",
        "uid",
        "uname",
        "virtualMachineGroupId"
      ],
      "inputProperties": {
        "group": {
          "type": "string",
          "description": "Name of the group which owns the virtual machine group. Defaults to the caller primary group.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual machine group.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on virtual machine group. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin.\n"
        },
        "roles": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineGroupRole:VirtualMachineGroupRole"
          },
          "description": "List of roles. See Role parameters below for details.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualMachineGroupTemplateSection:VirtualMachineGroupTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "virtualMachineGroupId": {
          "type": "string",
          "description": "ID of the virtual machine.\n"
        }
      },
      "requiredInputs": [
        "roles"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualMachineGroup resources.\n",
        "properties": {
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "gid": {
            "type": "number",
            "description": "Group ID which owns the virtual machine.\n"
          },
          "gname": {
            "type": "string",
            "description": "Group Name which owns the virtual machine.\n"
          },
          "group": {
            "type": "string",
            "description": "Name of the group which owns the virtual machine group. Defaults to the caller primary group.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the virtual machine group.\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions applied on virtual machine group. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin.\n"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualMachineGroupRole:VirtualMachineGroupRole"
            },
            "description": "List of roles. See Role parameters below for details.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualMachineGroupTemplateSection:VirtualMachineGroupTemplateSection"
            },
            "description": "Allow to add a custom vector. See Template section parameters\n"
          },
          "uid": {
            "type": "number",
            "description": "User ID whom owns the virtual machine.\n"
          },
          "uname": {
            "type": "string",
            "description": "User Name whom owns the virtual machine.\n"
          },
          "virtualMachineGroupId": {
            "type": "string",
            "description": "ID of the virtual machine.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/virtualNetwork:VirtualNetwork": {
      "description": "Provides an OpenNebula virtual network resource.\n\nThis resource allows you to manage virtual networks on your OpenNebula clusters. When applied,\na new virtual network is created. When destroyed, that virtual network is removed.\n\n## Example Usage\n\n### Reservation of a virtual network\n\nAllocate a new virtual network from the parent virtual network \"394\":\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.VirtualNetwork(\"example\", {\n    description: \"Terraform vnet\",\n    reservationArId: 1,\n    reservationFirstIp: \"172.16.100.105\",\n    reservationSize: 5,\n    reservationVnet: 394,\n    securityGroups: [0],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.VirtualNetwork(\"example\",\n    description=\"Terraform vnet\",\n    reservation_ar_id=1,\n    reservation_first_ip=\"172.16.100.105\",\n    reservation_size=5,\n    reservation_vnet=394,\n    security_groups=[0])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.VirtualNetwork(\"example\", new()\n    {\n        Description = \"Terraform vnet\",\n        ReservationArId = 1,\n        ReservationFirstIp = \"172.16.100.105\",\n        ReservationSize = 5,\n        ReservationVnet = 394,\n        SecurityGroups = new[]\n        {\n            0,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewVirtualNetwork(ctx, \"example\", &opennebula.VirtualNetworkArgs{\n\t\t\tDescription:        pulumi.String(\"Terraform vnet\"),\n\t\t\tReservationArId:    pulumi.Float64(1),\n\t\t\tReservationFirstIp: pulumi.String(\"172.16.100.105\"),\n\t\t\tReservationSize:    pulumi.Float64(5),\n\t\t\tReservationVnet:    pulumi.Float64(394),\n\t\t\tSecurityGroups: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(0),\n\t\t\t},\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.opennebula.VirtualNetwork;\nimport com.pulumi.opennebula.VirtualNetworkArgs;\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 example = new VirtualNetwork(\"example\", VirtualNetworkArgs.builder()\n            .description(\"Terraform vnet\")\n            .reservationArId(1)\n            .reservationFirstIp(\"172.16.100.105\")\n            .reservationSize(5)\n            .reservationVnet(394)\n            .securityGroups(0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:VirtualNetwork\n    properties:\n      description: Terraform vnet\n      reservationArId: 1\n      reservationFirstIp: 172.16.100.105\n      reservationSize: 5\n      reservationVnet: 394\n      securityGroups:\n        - 0\n```\n<!--End PulumiCodeChooser -->\n\n### Virtual network creation\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.VirtualNetwork(\"example\", {\n    permissions: \"660\",\n    group: opennebula_group.example.name,\n    bridge: \"br0\",\n    physicalDevice: \"eth0\",\n    type: \"fw\",\n    mtu: 1500,\n    dns: \"172.16.100.1\",\n    gateway: \"172.16.100.1\",\n    securityGroups: [0],\n    clusterIds: [0],\n    ars: [{\n        arType: \"IP4\",\n        size: 16,\n        ip4: \"172.16.100.101\",\n    }],\n    tags: {\n        environment: \"example\",\n    },\n    templateSections: [{\n        name: \"example\",\n        elements: {\n            key1: \"value1\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.VirtualNetwork(\"example\",\n    permissions=\"660\",\n    group=opennebula_group[\"example\"][\"name\"],\n    bridge=\"br0\",\n    physical_device=\"eth0\",\n    type=\"fw\",\n    mtu=1500,\n    dns=\"172.16.100.1\",\n    gateway=\"172.16.100.1\",\n    security_groups=[0],\n    cluster_ids=[0],\n    ars=[{\n        \"ar_type\": \"IP4\",\n        \"size\": 16,\n        \"ip4\": \"172.16.100.101\",\n    }],\n    tags={\n        \"environment\": \"example\",\n    },\n    template_sections=[{\n        \"name\": \"example\",\n        \"elements\": {\n            \"key1\": \"value1\",\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.VirtualNetwork(\"example\", new()\n    {\n        Permissions = \"660\",\n        Group = opennebula_group.Example.Name,\n        Bridge = \"br0\",\n        PhysicalDevice = \"eth0\",\n        Type = \"fw\",\n        Mtu = 1500,\n        Dns = \"172.16.100.1\",\n        Gateway = \"172.16.100.1\",\n        SecurityGroups = new[]\n        {\n            0,\n        },\n        ClusterIds = new[]\n        {\n            0,\n        },\n        Ars = new[]\n        {\n            new Opennebula.Inputs.VirtualNetworkArArgs\n            {\n                ArType = \"IP4\",\n                Size = 16,\n                Ip4 = \"172.16.100.101\",\n            },\n        },\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        TemplateSections = new[]\n        {\n            new Opennebula.Inputs.VirtualNetworkTemplateSectionArgs\n            {\n                Name = \"example\",\n                Elements = \n                {\n                    { \"key1\", \"value1\" },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewVirtualNetwork(ctx, \"example\", &opennebula.VirtualNetworkArgs{\n\t\t\tPermissions:    pulumi.String(\"660\"),\n\t\t\tGroup:          pulumi.Any(opennebula_group.Example.Name),\n\t\t\tBridge:         pulumi.String(\"br0\"),\n\t\t\tPhysicalDevice: pulumi.String(\"eth0\"),\n\t\t\tType:           pulumi.String(\"fw\"),\n\t\t\tMtu:            pulumi.Float64(1500),\n\t\t\tDns:            pulumi.String(\"172.16.100.1\"),\n\t\t\tGateway:        pulumi.String(\"172.16.100.1\"),\n\t\t\tSecurityGroups: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(0),\n\t\t\t},\n\t\t\tClusterIds: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(0),\n\t\t\t},\n\t\t\tArs: opennebula.VirtualNetworkArArray{\n\t\t\t\t&opennebula.VirtualNetworkArArgs{\n\t\t\t\t\tArType: pulumi.String(\"IP4\"),\n\t\t\t\t\tSize:   pulumi.Float64(16),\n\t\t\t\t\tIp4:    pulumi.String(\"172.16.100.101\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tTemplateSections: opennebula.VirtualNetworkTemplateSectionArray{\n\t\t\t\t&opennebula.VirtualNetworkTemplateSectionArgs{\n\t\t\t\t\tName: pulumi.String(\"example\"),\n\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\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\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.opennebula.VirtualNetwork;\nimport com.pulumi.opennebula.VirtualNetworkArgs;\nimport com.pulumi.opennebula.inputs.VirtualNetworkArArgs;\nimport com.pulumi.opennebula.inputs.VirtualNetworkTemplateSectionArgs;\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 example = new VirtualNetwork(\"example\", VirtualNetworkArgs.builder()\n            .permissions(\"660\")\n            .group(opennebula_group.example().name())\n            .bridge(\"br0\")\n            .physicalDevice(\"eth0\")\n            .type(\"fw\")\n            .mtu(1500)\n            .dns(\"172.16.100.1\")\n            .gateway(\"172.16.100.1\")\n            .securityGroups(0)\n            .clusterIds(0)\n            .ars(VirtualNetworkArArgs.builder()\n                .arType(\"IP4\")\n                .size(16)\n                .ip4(\"172.16.100.101\")\n                .build())\n            .tags(Map.of(\"environment\", \"example\"))\n            .templateSections(VirtualNetworkTemplateSectionArgs.builder()\n                .name(\"example\")\n                .elements(Map.of(\"key1\", \"value1\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:VirtualNetwork\n    properties:\n      permissions: '660'\n      group: ${opennebula_group.example.name}\n      bridge: br0\n      physicalDevice: eth0\n      type: fw\n      mtu: 1500\n      dns: 172.16.100.1\n      gateway: 172.16.100.1\n      securityGroups:\n        - 0\n      clusterIds:\n        - 0\n      ars:\n        - arType: IP4\n          size: 16\n          ip4: 172.16.100.101\n      tags:\n        environment: example\n      templateSections:\n        - name: example\n          elements:\n            key1: value1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_virtual_network` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/virtualNetwork:VirtualNetwork example 123\n```\n\n",
      "properties": {
        "ars": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualNetworkAr:VirtualNetworkAr"
          },
          "description": "List of address ranges. See Address Range Parameters below for more details. Conflicts with `reservation_vnet` and `reservation_size`.\n",
          "deprecationMessage": "Deprecated"
        },
        "automaticVlanId": {
          "type": "boolean",
          "description": "Flag to let OpenNebula scheduler to attribute the VLAN ID. Conflicts with `reservation_vnet`, `reservation_size` and `vlan_id`.\n"
        },
        "bridge": {
          "type": "string",
          "description": "Name of the bridge interface to which the virtual network should be associated. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "clusterIds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of cluster IDs where the virtual network can be use. Conflicts with `reservation_vnet` and `reservation_size`. Minimum 1 item.\n"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the virtual network.\n"
        },
        "dns": {
          "type": "string",
          "description": "Text String containing a space separated list of DNS IPs. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "gateway": {
          "type": "string",
          "description": "IP of the gateway. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "gid": {
          "type": "number",
          "description": "Group ID which owns the virtual network.\n"
        },
        "gname": {
          "type": "string",
          "description": "Group Name which owns the virtual network.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the virtual network. Defaults to the caller primary group.\n"
        },
        "guestMtu": {
          "type": "number",
          "description": "MTU of the network caord on the virtual machine. **Cannot be greater than `mtu`**. Defaults to `1500`. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "holdIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Hold Ips from any Address Range of the Virtual Network. The IP must be available to be held`. Conflicts with`reservation_vnet` and `reservation_size`.\n",
          "deprecationMessage": "Deprecated"
        },
        "lock": {
          "type": "string",
          "description": "Lock the virtual network with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "mtu": {
          "type": "number",
          "description": "Virtual network MTU. Defaults to `1500`. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual network.\n"
        },
        "networkAddress": {
          "type": "string",
          "description": "Base network address. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "networkMask": {
          "type": "string",
          "description": "Network mask. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on virtual network. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "physicalDevice": {
          "type": "string",
          "description": "Name of the physical device interface to which the virtual network should be associated. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "reservationArId": {
          "type": "number",
          "description": "ID of the address range from which to reserve the addresses. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_size`, `reservation_first_ip`, `reservation_first_ip6` and `reservation_vnet`.\n"
        },
        "reservationFirstIp": {
          "type": "string",
          "description": "The first IPv4 address to start the reservation range. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_ar_id`, `reservation_size` and `reservation_vnet`.\n"
        },
        "reservationFirstIp6": {
          "type": "string",
          "description": "The first IPv6 address to start the reservation range. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_ar_id`, `reservation_size` and `reservation_vnet`.\n"
        },
        "reservationSize": {
          "type": "number",
          "description": "Size (in address) reserved. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_ar_id`, `reservation_first_ip`, `reservation_first_ip6` and `reservation_vnet`.\n"
        },
        "reservationVnet": {
          "type": "number",
          "description": "ID of the parent virtual network to reserve from. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_ar_id`, `reservation_first_ip`, `reservation_first_ip6` and `reservation_size`.\n"
        },
        "searchDomain": {
          "type": "string",
          "description": "Default search domains for DNS resolution. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of security group IDs to apply on the virtual network.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualNetworkTemplateSection:VirtualNetworkTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FVirtualNetworkTimeouts:VirtualNetworkTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Virtual network type. One of these: `dummy`, `bridge`'`fw`, `ebtables`, `802.1Q`, `vxlan` or `ovswitch`. Defaults to `bridge`. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "uid": {
          "type": "number",
          "description": "User ID whom owns the virtual network.\n"
        },
        "uname": {
          "type": "string",
          "description": "User Name whom owns the virtual network.\n"
        },
        "user": {
          "type": "string",
          "description": "Name of the user which owns the virtual network.\n"
        },
        "virtualNetworkId": {
          "type": "string",
          "description": "ID of the address range\n"
        },
        "vlanId": {
          "type": "string",
          "description": "ID of VLAN. Only if `type` is `802.1Q`, `vxlan` or `ovswitch`. Conflicts with `reservation_vnet`, `reservation_size` and `automatic_vlan_id`.\n"
        }
      },
      "type": "object",
      "required": [
        "automaticVlanId",
        "bridge",
        "defaultTags",
        "gid",
        "gname",
        "name",
        "permissions",
        "physicalDevice",
        "securityGroups",
        "tagsAll",
        "uid",
        "uname",
        "virtualNetworkId",
        "vlanId"
      ],
      "inputProperties": {
        "ars": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualNetworkAr:VirtualNetworkAr"
          },
          "description": "List of address ranges. See Address Range Parameters below for more details. Conflicts with `reservation_vnet` and `reservation_size`.\n",
          "deprecationMessage": "Deprecated"
        },
        "automaticVlanId": {
          "type": "boolean",
          "description": "Flag to let OpenNebula scheduler to attribute the VLAN ID. Conflicts with `reservation_vnet`, `reservation_size` and `vlan_id`.\n"
        },
        "bridge": {
          "type": "string",
          "description": "Name of the bridge interface to which the virtual network should be associated. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "clusterIds": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of cluster IDs where the virtual network can be use. Conflicts with `reservation_vnet` and `reservation_size`. Minimum 1 item.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the virtual network.\n"
        },
        "dns": {
          "type": "string",
          "description": "Text String containing a space separated list of DNS IPs. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "gateway": {
          "type": "string",
          "description": "IP of the gateway. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the virtual network. Defaults to the caller primary group.\n"
        },
        "guestMtu": {
          "type": "number",
          "description": "MTU of the network caord on the virtual machine. **Cannot be greater than `mtu`**. Defaults to `1500`. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "holdIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Hold Ips from any Address Range of the Virtual Network. The IP must be available to be held`. Conflicts with`reservation_vnet` and `reservation_size`.\n",
          "deprecationMessage": "Deprecated"
        },
        "lock": {
          "type": "string",
          "description": "Lock the virtual network with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "mtu": {
          "type": "number",
          "description": "Virtual network MTU. Defaults to `1500`. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual network.\n"
        },
        "networkAddress": {
          "type": "string",
          "description": "Base network address. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "networkMask": {
          "type": "string",
          "description": "Network mask. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on virtual network. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "physicalDevice": {
          "type": "string",
          "description": "Name of the physical device interface to which the virtual network should be associated. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "reservationArId": {
          "type": "number",
          "description": "ID of the address range from which to reserve the addresses. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_size`, `reservation_first_ip`, `reservation_first_ip6` and `reservation_vnet`.\n"
        },
        "reservationFirstIp": {
          "type": "string",
          "description": "The first IPv4 address to start the reservation range. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_ar_id`, `reservation_size` and `reservation_vnet`.\n"
        },
        "reservationFirstIp6": {
          "type": "string",
          "description": "The first IPv6 address to start the reservation range. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_ar_id`, `reservation_size` and `reservation_vnet`.\n"
        },
        "reservationSize": {
          "type": "number",
          "description": "Size (in address) reserved. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_ar_id`, `reservation_first_ip`, `reservation_first_ip6` and `reservation_vnet`.\n"
        },
        "reservationVnet": {
          "type": "number",
          "description": "ID of the parent virtual network to reserve from. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_ar_id`, `reservation_first_ip`, `reservation_first_ip6` and `reservation_size`.\n"
        },
        "searchDomain": {
          "type": "string",
          "description": "Default search domains for DNS resolution. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of security group IDs to apply on the virtual network.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualNetworkTemplateSection:VirtualNetworkTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FVirtualNetworkTimeouts:VirtualNetworkTimeouts"
        },
        "type": {
          "type": "string",
          "description": "Virtual network type. One of these: `dummy`, `bridge`'`fw`, `ebtables`, `802.1Q`, `vxlan` or `ovswitch`. Defaults to `bridge`. Conflicts with `reservation_vnet` and `reservation_size`.\n"
        },
        "user": {
          "type": "string",
          "description": "Name of the user which owns the virtual network.\n"
        },
        "virtualNetworkId": {
          "type": "string",
          "description": "ID of the address range\n"
        },
        "vlanId": {
          "type": "string",
          "description": "ID of VLAN. Only if `type` is `802.1Q`, `vxlan` or `ovswitch`. Conflicts with `reservation_vnet`, `reservation_size` and `automatic_vlan_id`.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetwork resources.\n",
        "properties": {
          "ars": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualNetworkAr:VirtualNetworkAr"
            },
            "description": "List of address ranges. See Address Range Parameters below for more details. Conflicts with `reservation_vnet` and `reservation_size`.\n",
            "deprecationMessage": "Deprecated"
          },
          "automaticVlanId": {
            "type": "boolean",
            "description": "Flag to let OpenNebula scheduler to attribute the VLAN ID. Conflicts with `reservation_vnet`, `reservation_size` and `vlan_id`.\n"
          },
          "bridge": {
            "type": "string",
            "description": "Name of the bridge interface to which the virtual network should be associated. Conflicts with `reservation_vnet` and `reservation_size`.\n"
          },
          "clusterIds": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of cluster IDs where the virtual network can be use. Conflicts with `reservation_vnet` and `reservation_size`. Minimum 1 item.\n"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the virtual network.\n"
          },
          "dns": {
            "type": "string",
            "description": "Text String containing a space separated list of DNS IPs. Conflicts with `reservation_vnet` and `reservation_size`.\n"
          },
          "gateway": {
            "type": "string",
            "description": "IP of the gateway. Conflicts with `reservation_vnet` and `reservation_size`.\n"
          },
          "gid": {
            "type": "number",
            "description": "Group ID which owns the virtual network.\n"
          },
          "gname": {
            "type": "string",
            "description": "Group Name which owns the virtual network.\n"
          },
          "group": {
            "type": "string",
            "description": "Name of the group which owns the virtual network. Defaults to the caller primary group.\n"
          },
          "guestMtu": {
            "type": "number",
            "description": "MTU of the network caord on the virtual machine. **Cannot be greater than `mtu`**. Defaults to `1500`. Conflicts with `reservation_vnet` and `reservation_size`.\n"
          },
          "holdIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Hold Ips from any Address Range of the Virtual Network. The IP must be available to be held`. Conflicts with`reservation_vnet` and `reservation_size`.\n",
            "deprecationMessage": "Deprecated"
          },
          "lock": {
            "type": "string",
            "description": "Lock the virtual network with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
          },
          "mtu": {
            "type": "number",
            "description": "Virtual network MTU. Defaults to `1500`. Conflicts with `reservation_vnet` and `reservation_size`.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the virtual network.\n"
          },
          "networkAddress": {
            "type": "string",
            "description": "Base network address. Conflicts with `reservation_vnet` and `reservation_size`.\n"
          },
          "networkMask": {
            "type": "string",
            "description": "Network mask. Conflicts with `reservation_vnet` and `reservation_size`.\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions applied on virtual network. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
          },
          "physicalDevice": {
            "type": "string",
            "description": "Name of the physical device interface to which the virtual network should be associated. Conflicts with `reservation_vnet` and `reservation_size`.\n"
          },
          "reservationArId": {
            "type": "number",
            "description": "ID of the address range from which to reserve the addresses. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_size`, `reservation_first_ip`, `reservation_first_ip6` and `reservation_vnet`.\n"
          },
          "reservationFirstIp": {
            "type": "string",
            "description": "The first IPv4 address to start the reservation range. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_ar_id`, `reservation_size` and `reservation_vnet`.\n"
          },
          "reservationFirstIp6": {
            "type": "string",
            "description": "The first IPv6 address to start the reservation range. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_ar_id`, `reservation_size` and `reservation_vnet`.\n"
          },
          "reservationSize": {
            "type": "number",
            "description": "Size (in address) reserved. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_ar_id`, `reservation_first_ip`, `reservation_first_ip6` and `reservation_vnet`.\n"
          },
          "reservationVnet": {
            "type": "number",
            "description": "ID of the parent virtual network to reserve from. Conflicts with all parameters except `name`, `description`, `permissions`, `security_groups`, `group`, `reservation_ar_id`, `reservation_first_ip`, `reservation_first_ip6` and `reservation_size`.\n"
          },
          "searchDomain": {
            "type": "string",
            "description": "Default search domains for DNS resolution. Conflicts with `reservation_vnet` and `reservation_size`.\n"
          },
          "securityGroups": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of security group IDs to apply on the virtual network.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualNetworkTemplateSection:VirtualNetworkTemplateSection"
            },
            "description": "Allow to add a custom vector. See Template section parameters\n"
          },
          "timeouts": {
            "$ref": "#/types/opennebula:index%2FVirtualNetworkTimeouts:VirtualNetworkTimeouts"
          },
          "type": {
            "type": "string",
            "description": "Virtual network type. One of these: `dummy`, `bridge`'`fw`, `ebtables`, `802.1Q`, `vxlan` or `ovswitch`. Defaults to `bridge`. Conflicts with `reservation_vnet` and `reservation_size`.\n"
          },
          "uid": {
            "type": "number",
            "description": "User ID whom owns the virtual network.\n"
          },
          "uname": {
            "type": "string",
            "description": "User Name whom owns the virtual network.\n"
          },
          "user": {
            "type": "string",
            "description": "Name of the user which owns the virtual network.\n"
          },
          "virtualNetworkId": {
            "type": "string",
            "description": "ID of the address range\n"
          },
          "vlanId": {
            "type": "string",
            "description": "ID of VLAN. Only if `type` is `802.1Q`, `vxlan` or `ovswitch`. Conflicts with `reservation_vnet`, `reservation_size` and `automatic_vlan_id`.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/virtualNetworkAddressRange:VirtualNetworkAddressRange": {
      "description": "Provides an OpenNebula virtual network address range resource. When applied, a new address range is added to the virtual network. When destroyed, the address range is removed from the virtual network.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  exampleVirtualNetwork:\n    type: opennebula:VirtualNetwork\n    properties:\n      type: bridge\n      bridge: onebr\n      mtu: 1500\n      gateway: 172.16.100.1\n      dns: 172.16.100.1\n      networkMask: 255.255.255.0\n      # deprecated\n      ars:\n        - arType: IP4\n          size: 15\n          ip4: 172.16.100.170\n      permissions: '642'\n      group: oneadmin\n      securityGroups:\n        - 0\n      clusters:\n        - 0\n      tags:\n        env: prod\n        customer: example\n  exampleVirtualNetworkAddressRange:\n    type: opennebula:VirtualNetworkAddressRange\n    properties:\n      virtualNetworkId: ${exampleVirtualNetwork.virtualNetworkId}\n      arType: IP4\n      mac: 02:00:ac:10:64:6e\n      size: 15\n      ip4: 172.16.100.110\n      holdIps:\n        - 172.16.100.112\n        - 172.16.100.114\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_virtual_network_address_range` can be imported using a composed ID:\n\n```sh\n$ pulumi import opennebula:index/virtualNetworkAddressRange:VirtualNetworkAddressRange example vnet_id:ar_id\n```\n\n",
      "properties": {
        "arType": {
          "type": "string",
          "description": "Address range type. Supported values: `IP4`, `IP6`, `IP6_STATIC`, `IP4_6` or `IP4_6_STATIC` or `ETHER`. Defaults to `IP4`.\n"
        },
        "custom": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Custom attributes to set in the address range.\n"
        },
        "globalPrefix": {
          "type": "string",
          "description": "Global prefix for `IP6` or `IP_4_6`.\n"
        },
        "heldIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of IPs held in this address range, possibly from other resource.\n"
        },
        "holdIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of IPs to be held from this address range.\n"
        },
        "ip4": {
          "type": "string",
          "description": "Starting IPv4 address of the range. Required if `ar_type` is `IP4` or `IP4_6`.\n"
        },
        "ip6": {
          "type": "string",
          "description": "Starting IPv6 address of the range. Required if `ar_type` is `IP6_STATIC` or `IP4_6_STATIC`.\n"
        },
        "ipam": {
          "type": "string",
          "description": "IPAM driver to use for the address range.\n"
        },
        "mac": {
          "type": "string",
          "description": "Starting MAC Address of the range.\n"
        },
        "prefixLength": {
          "type": "string",
          "description": "Prefix length. Only needed for `IP6_STATIC` or `IP4_6_STATIC`\n"
        },
        "size": {
          "type": "number",
          "description": "Address range size.\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FVirtualNetworkAddressRangeTimeouts:VirtualNetworkAddressRangeTimeouts"
        },
        "ulaPrefix": {
          "type": "string",
          "description": "ULA prefix for `IP6` or `IP_4_6`.\n"
        },
        "virtualNetworkAddressRangeId": {
          "type": "string"
        },
        "virtualNetworkId": {
          "type": "number",
          "description": "ID of the virtual network\n"
        }
      },
      "type": "object",
      "required": [
        "heldIps",
        "mac",
        "size",
        "virtualNetworkAddressRangeId",
        "virtualNetworkId"
      ],
      "inputProperties": {
        "arType": {
          "type": "string",
          "description": "Address range type. Supported values: `IP4`, `IP6`, `IP6_STATIC`, `IP4_6` or `IP4_6_STATIC` or `ETHER`. Defaults to `IP4`.\n"
        },
        "custom": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Custom attributes to set in the address range.\n"
        },
        "globalPrefix": {
          "type": "string",
          "description": "Global prefix for `IP6` or `IP_4_6`.\n"
        },
        "holdIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of IPs to be held from this address range.\n"
        },
        "ip4": {
          "type": "string",
          "description": "Starting IPv4 address of the range. Required if `ar_type` is `IP4` or `IP4_6`.\n"
        },
        "ip6": {
          "type": "string",
          "description": "Starting IPv6 address of the range. Required if `ar_type` is `IP6_STATIC` or `IP4_6_STATIC`.\n"
        },
        "ipam": {
          "type": "string",
          "description": "IPAM driver to use for the address range.\n"
        },
        "mac": {
          "type": "string",
          "description": "Starting MAC Address of the range.\n"
        },
        "prefixLength": {
          "type": "string",
          "description": "Prefix length. Only needed for `IP6_STATIC` or `IP4_6_STATIC`\n"
        },
        "size": {
          "type": "number",
          "description": "Address range size.\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FVirtualNetworkAddressRangeTimeouts:VirtualNetworkAddressRangeTimeouts"
        },
        "ulaPrefix": {
          "type": "string",
          "description": "ULA prefix for `IP6` or `IP_4_6`.\n"
        },
        "virtualNetworkAddressRangeId": {
          "type": "string"
        },
        "virtualNetworkId": {
          "type": "number",
          "description": "ID of the virtual network\n"
        }
      },
      "requiredInputs": [
        "size",
        "virtualNetworkId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualNetworkAddressRange resources.\n",
        "properties": {
          "arType": {
            "type": "string",
            "description": "Address range type. Supported values: `IP4`, `IP6`, `IP6_STATIC`, `IP4_6` or `IP4_6_STATIC` or `ETHER`. Defaults to `IP4`.\n"
          },
          "custom": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom attributes to set in the address range.\n"
          },
          "globalPrefix": {
            "type": "string",
            "description": "Global prefix for `IP6` or `IP_4_6`.\n"
          },
          "heldIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of IPs held in this address range, possibly from other resource.\n"
          },
          "holdIps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of IPs to be held from this address range.\n"
          },
          "ip4": {
            "type": "string",
            "description": "Starting IPv4 address of the range. Required if `ar_type` is `IP4` or `IP4_6`.\n"
          },
          "ip6": {
            "type": "string",
            "description": "Starting IPv6 address of the range. Required if `ar_type` is `IP6_STATIC` or `IP4_6_STATIC`.\n"
          },
          "ipam": {
            "type": "string",
            "description": "IPAM driver to use for the address range.\n"
          },
          "mac": {
            "type": "string",
            "description": "Starting MAC Address of the range.\n"
          },
          "prefixLength": {
            "type": "string",
            "description": "Prefix length. Only needed for `IP6_STATIC` or `IP4_6_STATIC`\n"
          },
          "size": {
            "type": "number",
            "description": "Address range size.\n"
          },
          "timeouts": {
            "$ref": "#/types/opennebula:index%2FVirtualNetworkAddressRangeTimeouts:VirtualNetworkAddressRangeTimeouts"
          },
          "ulaPrefix": {
            "type": "string",
            "description": "ULA prefix for `IP6` or `IP_4_6`.\n"
          },
          "virtualNetworkAddressRangeId": {
            "type": "string"
          },
          "virtualNetworkId": {
            "type": "number",
            "description": "ID of the virtual network\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/virtualRouter:VirtualRouter": {
      "description": "Provides an OpenNebula virtual router resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.VirtualRouter(\"example\", {\n    permissions: \"642\",\n    group: \"oneadmin\",\n    description: \"This is an example of virtual router\",\n    instanceTemplateId: opennebula_virtual_router_instance_template.example.id,\n    lock: \"USE\",\n    tags: {\n        environment: \"example\",\n    },\n    templateSections: [{\n        name: \"example\",\n        elements: {\n            key1: \"value1\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.VirtualRouter(\"example\",\n    permissions=\"642\",\n    group=\"oneadmin\",\n    description=\"This is an example of virtual router\",\n    instance_template_id=opennebula_virtual_router_instance_template[\"example\"][\"id\"],\n    lock=\"USE\",\n    tags={\n        \"environment\": \"example\",\n    },\n    template_sections=[{\n        \"name\": \"example\",\n        \"elements\": {\n            \"key1\": \"value1\",\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.VirtualRouter(\"example\", new()\n    {\n        Permissions = \"642\",\n        Group = \"oneadmin\",\n        Description = \"This is an example of virtual router\",\n        InstanceTemplateId = opennebula_virtual_router_instance_template.Example.Id,\n        Lock = \"USE\",\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        TemplateSections = new[]\n        {\n            new Opennebula.Inputs.VirtualRouterTemplateSectionArgs\n            {\n                Name = \"example\",\n                Elements = \n                {\n                    { \"key1\", \"value1\" },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewVirtualRouter(ctx, \"example\", &opennebula.VirtualRouterArgs{\n\t\t\tPermissions:        pulumi.String(\"642\"),\n\t\t\tGroup:              pulumi.String(\"oneadmin\"),\n\t\t\tDescription:        pulumi.String(\"This is an example of virtual router\"),\n\t\t\tInstanceTemplateId: pulumi.Any(opennebula_virtual_router_instance_template.Example.Id),\n\t\t\tLock:               pulumi.String(\"USE\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tTemplateSections: opennebula.VirtualRouterTemplateSectionArray{\n\t\t\t\t&opennebula.VirtualRouterTemplateSectionArgs{\n\t\t\t\t\tName: pulumi.String(\"example\"),\n\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\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\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.opennebula.VirtualRouter;\nimport com.pulumi.opennebula.VirtualRouterArgs;\nimport com.pulumi.opennebula.inputs.VirtualRouterTemplateSectionArgs;\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 example = new VirtualRouter(\"example\", VirtualRouterArgs.builder()\n            .permissions(\"642\")\n            .group(\"oneadmin\")\n            .description(\"This is an example of virtual router\")\n            .instanceTemplateId(opennebula_virtual_router_instance_template.example().id())\n            .lock(\"USE\")\n            .tags(Map.of(\"environment\", \"example\"))\n            .templateSections(VirtualRouterTemplateSectionArgs.builder()\n                .name(\"example\")\n                .elements(Map.of(\"key1\", \"value1\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:VirtualRouter\n    properties:\n      permissions: '642'\n      group: oneadmin\n      description: This is an example of virtual router\n      instanceTemplateId: ${opennebula_virtual_router_instance_template.example.id}\n      lock: USE\n      tags:\n        environment: example\n      templateSections:\n        - name: example\n          elements:\n            key1: value1\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_virtual_router` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/virtualRouter:VirtualRouter example 123\n```\n\n",
      "properties": {
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "description": {
          "type": "string",
          "description": "Description of the virtual router.\n"
        },
        "gid": {
          "type": "number",
          "description": "Group ID which owns the virtual router.\n"
        },
        "gname": {
          "type": "string",
          "description": "Group Name which owns the virtual router.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the virtual router. Defaults to the caller primary group.\n"
        },
        "instanceTemplateId": {
          "type": "number",
          "description": "The ID of the template of the virtual router instances.\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock the VM with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual router.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on virtual router. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterTemplateSection:VirtualRouterTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "uid": {
          "type": "number",
          "description": "User ID whom owns the virtual router.\n"
        },
        "uname": {
          "type": "string",
          "description": "User Name whom owns the virtual router.\n"
        },
        "virtualRouterId": {
          "type": "string",
          "description": "ID of the virtual router.\n"
        }
      },
      "type": "object",
      "required": [
        "defaultTags",
        "gid",
        "gname",
        "instanceTemplateId",
        "name",
        "permissions",
        "tagsAll",
        "uid",
        "uname",
        "virtualRouterId"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the virtual router.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the virtual router. Defaults to the caller primary group.\n"
        },
        "instanceTemplateId": {
          "type": "number",
          "description": "The ID of the template of the virtual router instances.\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock the VM with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual router.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on virtual router. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterTemplateSection:VirtualRouterTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "virtualRouterId": {
          "type": "string",
          "description": "ID of the virtual router.\n"
        }
      },
      "requiredInputs": [
        "instanceTemplateId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualRouter resources.\n",
        "properties": {
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "description": {
            "type": "string",
            "description": "Description of the virtual router.\n"
          },
          "gid": {
            "type": "number",
            "description": "Group ID which owns the virtual router.\n"
          },
          "gname": {
            "type": "string",
            "description": "Group Name which owns the virtual router.\n"
          },
          "group": {
            "type": "string",
            "description": "Name of the group which owns the virtual router. Defaults to the caller primary group.\n"
          },
          "instanceTemplateId": {
            "type": "number",
            "description": "The ID of the template of the virtual router instances.\n"
          },
          "lock": {
            "type": "string",
            "description": "Lock the VM with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the virtual router.\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions applied on virtual router. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualRouterTemplateSection:VirtualRouterTemplateSection"
            },
            "description": "Allow to add a custom vector. See Template section parameters\n"
          },
          "uid": {
            "type": "number",
            "description": "User ID whom owns the virtual router.\n"
          },
          "uname": {
            "type": "string",
            "description": "User Name whom owns the virtual router.\n"
          },
          "virtualRouterId": {
            "type": "string",
            "description": "ID of the virtual router.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/virtualRouterInstance:VirtualRouterInstance": {
      "description": "Provides an OpenNebula virtual router instance resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst exampleVirtualRouterInstanceTemplate = new opennebula.VirtualRouterInstanceTemplate(\"exampleVirtualRouterInstanceTemplate\", {\n    permissions: \"642\",\n    group: \"oneadmin\",\n    cpu: 0.5,\n    vcpu: 1,\n    memory: 512,\n    context: {\n        dns_hostname: \"yes\",\n        network: \"YES\",\n    },\n    graphics: {\n        keymap: \"en-us\",\n        listen: \"0.0.0.0\",\n        type: \"VNC\",\n    },\n    os: {\n        arch: \"x86_64\",\n        boot: \"\",\n    },\n    tags: {\n        environment: \"example\",\n    },\n});\nconst exampleVirtualRouter = new opennebula.VirtualRouter(\"exampleVirtualRouter\", {\n    permissions: \"642\",\n    group: \"oneadmin\",\n    description: \"This is an example of virtual router\",\n    instanceTemplateId: exampleVirtualRouterInstanceTemplate.virtualRouterInstanceTemplateId,\n    lock: \"USE\",\n    tags: {\n        environment: \"example\",\n    },\n});\nconst exampleVirtualRouterInstance = new opennebula.VirtualRouterInstance(\"exampleVirtualRouterInstance\", {\n    group: \"oneadmin\",\n    permissions: \"642\",\n    memory: 128,\n    cpu: 0.1,\n    virtualRouterId: exampleVirtualRouter.virtualRouterId,\n    tags: {\n        environment: \"example\",\n    },\n    templateSections: [{\n        name: \"exmaple\",\n        elements: {\n            key1: \"value1\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample_virtual_router_instance_template = opennebula.VirtualRouterInstanceTemplate(\"exampleVirtualRouterInstanceTemplate\",\n    permissions=\"642\",\n    group=\"oneadmin\",\n    cpu=0.5,\n    vcpu=1,\n    memory=512,\n    context={\n        \"dns_hostname\": \"yes\",\n        \"network\": \"YES\",\n    },\n    graphics={\n        \"keymap\": \"en-us\",\n        \"listen\": \"0.0.0.0\",\n        \"type\": \"VNC\",\n    },\n    os={\n        \"arch\": \"x86_64\",\n        \"boot\": \"\",\n    },\n    tags={\n        \"environment\": \"example\",\n    })\nexample_virtual_router = opennebula.VirtualRouter(\"exampleVirtualRouter\",\n    permissions=\"642\",\n    group=\"oneadmin\",\n    description=\"This is an example of virtual router\",\n    instance_template_id=example_virtual_router_instance_template.virtual_router_instance_template_id,\n    lock=\"USE\",\n    tags={\n        \"environment\": \"example\",\n    })\nexample_virtual_router_instance = opennebula.VirtualRouterInstance(\"exampleVirtualRouterInstance\",\n    group=\"oneadmin\",\n    permissions=\"642\",\n    memory=128,\n    cpu=0.1,\n    virtual_router_id=example_virtual_router.virtual_router_id,\n    tags={\n        \"environment\": \"example\",\n    },\n    template_sections=[{\n        \"name\": \"exmaple\",\n        \"elements\": {\n            \"key1\": \"value1\",\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleVirtualRouterInstanceTemplate = new Opennebula.VirtualRouterInstanceTemplate(\"exampleVirtualRouterInstanceTemplate\", new()\n    {\n        Permissions = \"642\",\n        Group = \"oneadmin\",\n        Cpu = 0.5,\n        Vcpu = 1,\n        Memory = 512,\n        Context = \n        {\n            { \"dns_hostname\", \"yes\" },\n            { \"network\", \"YES\" },\n        },\n        Graphics = new Opennebula.Inputs.VirtualRouterInstanceTemplateGraphicsArgs\n        {\n            Keymap = \"en-us\",\n            Listen = \"0.0.0.0\",\n            Type = \"VNC\",\n        },\n        Os = new Opennebula.Inputs.VirtualRouterInstanceTemplateOsArgs\n        {\n            Arch = \"x86_64\",\n            Boot = \"\",\n        },\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n    });\n\n    var exampleVirtualRouter = new Opennebula.VirtualRouter(\"exampleVirtualRouter\", new()\n    {\n        Permissions = \"642\",\n        Group = \"oneadmin\",\n        Description = \"This is an example of virtual router\",\n        InstanceTemplateId = exampleVirtualRouterInstanceTemplate.VirtualRouterInstanceTemplateId,\n        Lock = \"USE\",\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n    });\n\n    var exampleVirtualRouterInstance = new Opennebula.VirtualRouterInstance(\"exampleVirtualRouterInstance\", new()\n    {\n        Group = \"oneadmin\",\n        Permissions = \"642\",\n        Memory = 128,\n        Cpu = 0.1,\n        VirtualRouterId = exampleVirtualRouter.VirtualRouterId,\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        TemplateSections = new[]\n        {\n            new Opennebula.Inputs.VirtualRouterInstanceTemplateSectionArgs\n            {\n                Name = \"exmaple\",\n                Elements = \n                {\n                    { \"key1\", \"value1\" },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVirtualRouterInstanceTemplate, err := opennebula.NewVirtualRouterInstanceTemplate(ctx, \"exampleVirtualRouterInstanceTemplate\", &opennebula.VirtualRouterInstanceTemplateArgs{\n\t\t\tPermissions: pulumi.String(\"642\"),\n\t\t\tGroup:       pulumi.String(\"oneadmin\"),\n\t\t\tCpu:         pulumi.Float64(0.5),\n\t\t\tVcpu:        pulumi.Float64(1),\n\t\t\tMemory:      pulumi.Float64(512),\n\t\t\tContext: pulumi.StringMap{\n\t\t\t\t\"dns_hostname\": pulumi.String(\"yes\"),\n\t\t\t\t\"network\":      pulumi.String(\"YES\"),\n\t\t\t},\n\t\t\tGraphics: &opennebula.VirtualRouterInstanceTemplateGraphicsArgs{\n\t\t\t\tKeymap: pulumi.String(\"en-us\"),\n\t\t\t\tListen: pulumi.String(\"0.0.0.0\"),\n\t\t\t\tType:   pulumi.String(\"VNC\"),\n\t\t\t},\n\t\t\tOs: &opennebula.VirtualRouterInstanceTemplateOsArgs{\n\t\t\t\tArch: pulumi.String(\"x86_64\"),\n\t\t\t\tBoot: pulumi.String(\"\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualRouter, err := opennebula.NewVirtualRouter(ctx, \"exampleVirtualRouter\", &opennebula.VirtualRouterArgs{\n\t\t\tPermissions:        pulumi.String(\"642\"),\n\t\t\tGroup:              pulumi.String(\"oneadmin\"),\n\t\t\tDescription:        pulumi.String(\"This is an example of virtual router\"),\n\t\t\tInstanceTemplateId: exampleVirtualRouterInstanceTemplate.VirtualRouterInstanceTemplateId,\n\t\t\tLock:               pulumi.String(\"USE\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = opennebula.NewVirtualRouterInstance(ctx, \"exampleVirtualRouterInstance\", &opennebula.VirtualRouterInstanceArgs{\n\t\t\tGroup:           pulumi.String(\"oneadmin\"),\n\t\t\tPermissions:     pulumi.String(\"642\"),\n\t\t\tMemory:          pulumi.Float64(128),\n\t\t\tCpu:             pulumi.Float64(0.1),\n\t\t\tVirtualRouterId: exampleVirtualRouter.VirtualRouterId,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tTemplateSections: opennebula.VirtualRouterInstanceTemplateSectionArray{\n\t\t\t\t&opennebula.VirtualRouterInstanceTemplateSectionArgs{\n\t\t\t\t\tName: pulumi.String(\"exmaple\"),\n\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\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\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.opennebula.VirtualRouterInstanceTemplate;\nimport com.pulumi.opennebula.VirtualRouterInstanceTemplateArgs;\nimport com.pulumi.opennebula.inputs.VirtualRouterInstanceTemplateGraphicsArgs;\nimport com.pulumi.opennebula.inputs.VirtualRouterInstanceTemplateOsArgs;\nimport com.pulumi.opennebula.VirtualRouter;\nimport com.pulumi.opennebula.VirtualRouterArgs;\nimport com.pulumi.opennebula.VirtualRouterInstance;\nimport com.pulumi.opennebula.VirtualRouterInstanceArgs;\nimport com.pulumi.opennebula.inputs.VirtualRouterInstanceTemplateSectionArgs;\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 exampleVirtualRouterInstanceTemplate = new VirtualRouterInstanceTemplate(\"exampleVirtualRouterInstanceTemplate\", VirtualRouterInstanceTemplateArgs.builder()\n            .permissions(\"642\")\n            .group(\"oneadmin\")\n            .cpu(\"0.5\")\n            .vcpu(\"1\")\n            .memory(\"512\")\n            .context(Map.ofEntries(\n                Map.entry(\"dns_hostname\", \"yes\"),\n                Map.entry(\"network\", \"YES\")\n            ))\n            .graphics(VirtualRouterInstanceTemplateGraphicsArgs.builder()\n                .keymap(\"en-us\")\n                .listen(\"0.0.0.0\")\n                .type(\"VNC\")\n                .build())\n            .os(VirtualRouterInstanceTemplateOsArgs.builder()\n                .arch(\"x86_64\")\n                .boot(\"\")\n                .build())\n            .tags(Map.of(\"environment\", \"example\"))\n            .build());\n\n        var exampleVirtualRouter = new VirtualRouter(\"exampleVirtualRouter\", VirtualRouterArgs.builder()\n            .permissions(\"642\")\n            .group(\"oneadmin\")\n            .description(\"This is an example of virtual router\")\n            .instanceTemplateId(exampleVirtualRouterInstanceTemplate.virtualRouterInstanceTemplateId())\n            .lock(\"USE\")\n            .tags(Map.of(\"environment\", \"example\"))\n            .build());\n\n        var exampleVirtualRouterInstance = new VirtualRouterInstance(\"exampleVirtualRouterInstance\", VirtualRouterInstanceArgs.builder()\n            .group(\"oneadmin\")\n            .permissions(\"642\")\n            .memory(128)\n            .cpu(0.1)\n            .virtualRouterId(exampleVirtualRouter.virtualRouterId())\n            .tags(Map.of(\"environment\", \"example\"))\n            .templateSections(VirtualRouterInstanceTemplateSectionArgs.builder()\n                .name(\"exmaple\")\n                .elements(Map.of(\"key1\", \"value1\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleVirtualRouterInstanceTemplate:\n    type: opennebula:VirtualRouterInstanceTemplate\n    properties:\n      permissions: '642'\n      group: oneadmin\n      cpu: '0.5'\n      vcpu: '1'\n      memory: '512'\n      context:\n        dns_hostname: yes\n        network: YES\n      graphics:\n        keymap: en-us\n        listen: 0.0.0.0\n        type: VNC\n      os:\n        arch: x86_64\n        boot: \"\"\n      tags:\n        environment: example\n  exampleVirtualRouter:\n    type: opennebula:VirtualRouter\n    properties:\n      permissions: '642'\n      group: oneadmin\n      description: This is an example of virtual router\n      instanceTemplateId: ${exampleVirtualRouterInstanceTemplate.virtualRouterInstanceTemplateId}\n      lock: USE\n      tags:\n        environment: example\n  exampleVirtualRouterInstance:\n    type: opennebula:VirtualRouterInstance\n    properties:\n      group: oneadmin\n      permissions: '642'\n      memory: 128\n      cpu: 0.1\n      virtualRouterId: ${exampleVirtualRouter.virtualRouterId}\n      tags:\n        environment: example\n      templateSections:\n        - name: exmaple\n          elements:\n            key1: value1\n```\n<!--End PulumiCodeChooser -->\n\n## Instantiate from a template\n\nA virtual router instance is created from a template.\nThe template ID is defined in the virtual router resource.\n\nFor all virtual router instance parameters excepted context: parameters present in instance overrides parameters defined in template.\nFor context: it merges them.\n\nFor disks defined in the template, if they are not overriden, are described in `template_disk` attributes of the instantiated virtual router instance and are not modifiable anymore.\n\n## Import\n\n`opennebula_virtual_router_instance` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/virtualRouterInstance:VirtualRouterInstance example 123\n```\n\n",
      "properties": {
        "context": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Array of free form key=value pairs, rendered and added to the CONTEXT variables for the VM. Recommended to include: `NETWORK = \"YES\"` and `SET_HOSTNAME = \"$NAME\"`.\n"
        },
        "cpu": {
          "type": "number",
          "description": "Amount of CPU shares assigned to the VM.\n"
        },
        "cpumodel": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceCpumodel:VirtualRouterInstanceCpumodel",
          "description": "Definition of CPU Model type for the Virtual Machine\n"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the template.\n"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceDisk:VirtualRouterInstanceDisk"
          },
          "description": "Can be specified multiple times to attach several disks. See Disk parameters below for details.\n"
        },
        "gid": {
          "type": "number",
          "description": "Group ID which owns the virtual router instance.\n"
        },
        "gname": {
          "type": "string",
          "description": "Group Name which owns the virtual router instance.\n"
        },
        "graphics": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceGraphics:VirtualRouterInstanceGraphics",
          "description": "See Graphics parameters below for details.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the virtual router instance. Defaults to the caller primary group.\n"
        },
        "hardShutdown": {
          "type": "boolean",
          "description": "Immediately poweroff/terminate/reboot/undeploy the VM. (default: false)\n"
        },
        "lcmstate": {
          "type": "number",
          "description": "LCM State of the virtual router instance.\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock the VM with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "memory": {
          "type": "number",
          "description": "Amount of RAM assigned to the VM in MB.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual router instance.\n"
        },
        "onDiskChange": {
          "type": "string",
          "description": "Select the behavior for changing disk images. Supported values: `RECREATE` or `SWAP` (default). `RECREATE` forces recreation of the vm and `SWAP` adopts the standard behavior of hot-swapping the disks. NOTE: This property does not affect the behavior of adding new disks.\n"
        },
        "os": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceOs:VirtualRouterInstanceOs",
          "description": "See OS parameters below for details.\n"
        },
        "pending": {
          "type": "boolean",
          "description": "Pending state during VM creation. Defaults to `false`.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on virtual router instance. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "raw": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceRaw:VirtualRouterInstanceRaw",
          "description": "Low-level hypervisor tuning\n"
        },
        "schedDsRequirements": {
          "type": "string",
          "description": "Storage placement requirements to deploy the resource following specific rule.\n"
        },
        "schedRequirements": {
          "type": "string",
          "description": "Scheduling requirements to deploy the resource following specific rule.\n"
        },
        "state": {
          "type": "number",
          "description": "State of the virtual router instance.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "templateDisks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateDisk:VirtualRouterInstanceTemplateDisk"
          },
          "description": "this contains the template disks description.\n"
        },
        "templateSectionNames": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "When `template_id` was set this keeps the template section names only.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateSection:VirtualRouterInstanceTemplateSection"
          },
          "description": "Add custom section to the resource\n"
        },
        "templateTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "When `template_id` was set this keeps the template tags.\n"
        },
        "timeout": {
          "type": "number",
          "description": "Timeout (in minutes) within resource should be available. Default: 3 minutes\n",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTimeouts:VirtualRouterInstanceTimeouts"
        },
        "uid": {
          "type": "number",
          "description": "User ID whom owns the virtual router instance.\n"
        },
        "uname": {
          "type": "string",
          "description": "User Name whom owns the virtual router instance.\n"
        },
        "vcpu": {
          "type": "number",
          "description": "Number of virtual CPUs assigned to the virtual machine\n"
        },
        "virtualRouterId": {
          "type": "number",
          "description": "The ID of the parent virtual router resource.\n"
        },
        "virtualRouterInstanceId": {
          "type": "string",
          "description": "ID of the virtual router instance.\n"
        },
        "vmgroup": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceVmgroup:VirtualRouterInstanceVmgroup",
          "description": "See VM group parameters below for details. Changing this argument triggers a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "cpu",
        "defaultTags",
        "gid",
        "gname",
        "lcmstate",
        "memory",
        "name",
        "permissions",
        "state",
        "tagsAll",
        "templateDisks",
        "templateSectionNames",
        "templateTags",
        "uid",
        "uname",
        "vcpu",
        "virtualRouterId",
        "virtualRouterInstanceId"
      ],
      "inputProperties": {
        "context": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Array of free form key=value pairs, rendered and added to the CONTEXT variables for the VM. Recommended to include: `NETWORK = \"YES\"` and `SET_HOSTNAME = \"$NAME\"`.\n"
        },
        "cpu": {
          "type": "number",
          "description": "Amount of CPU shares assigned to the VM.\n"
        },
        "cpumodel": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceCpumodel:VirtualRouterInstanceCpumodel",
          "description": "Definition of CPU Model type for the Virtual Machine\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the template.\n"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceDisk:VirtualRouterInstanceDisk"
          },
          "description": "Can be specified multiple times to attach several disks. See Disk parameters below for details.\n"
        },
        "graphics": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceGraphics:VirtualRouterInstanceGraphics",
          "description": "See Graphics parameters below for details.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the virtual router instance. Defaults to the caller primary group.\n"
        },
        "hardShutdown": {
          "type": "boolean",
          "description": "Immediately poweroff/terminate/reboot/undeploy the VM. (default: false)\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock the VM with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "memory": {
          "type": "number",
          "description": "Amount of RAM assigned to the VM in MB.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual router instance.\n"
        },
        "onDiskChange": {
          "type": "string",
          "description": "Select the behavior for changing disk images. Supported values: `RECREATE` or `SWAP` (default). `RECREATE` forces recreation of the vm and `SWAP` adopts the standard behavior of hot-swapping the disks. NOTE: This property does not affect the behavior of adding new disks.\n"
        },
        "os": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceOs:VirtualRouterInstanceOs",
          "description": "See OS parameters below for details.\n"
        },
        "pending": {
          "type": "boolean",
          "description": "Pending state during VM creation. Defaults to `false`.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on virtual router instance. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "raw": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceRaw:VirtualRouterInstanceRaw",
          "description": "Low-level hypervisor tuning\n"
        },
        "schedDsRequirements": {
          "type": "string",
          "description": "Storage placement requirements to deploy the resource following specific rule.\n"
        },
        "schedRequirements": {
          "type": "string",
          "description": "Scheduling requirements to deploy the resource following specific rule.\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateSection:VirtualRouterInstanceTemplateSection"
          },
          "description": "Add custom section to the resource\n"
        },
        "timeout": {
          "type": "number",
          "description": "Timeout (in minutes) within resource should be available. Default: 3 minutes\n",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTimeouts:VirtualRouterInstanceTimeouts"
        },
        "vcpu": {
          "type": "number",
          "description": "Number of virtual CPUs assigned to the virtual machine\n"
        },
        "virtualRouterId": {
          "type": "number",
          "description": "The ID of the parent virtual router resource.\n"
        },
        "virtualRouterInstanceId": {
          "type": "string",
          "description": "ID of the virtual router instance.\n"
        },
        "vmgroup": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceVmgroup:VirtualRouterInstanceVmgroup",
          "description": "See VM group parameters below for details. Changing this argument triggers a new resource.\n"
        }
      },
      "requiredInputs": [
        "virtualRouterId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualRouterInstance resources.\n",
        "properties": {
          "context": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Array of free form key=value pairs, rendered and added to the CONTEXT variables for the VM. Recommended to include: `NETWORK = \"YES\"` and `SET_HOSTNAME = \"$NAME\"`.\n"
          },
          "cpu": {
            "type": "number",
            "description": "Amount of CPU shares assigned to the VM.\n"
          },
          "cpumodel": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceCpumodel:VirtualRouterInstanceCpumodel",
            "description": "Definition of CPU Model type for the Virtual Machine\n"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of the template.\n"
          },
          "disks": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceDisk:VirtualRouterInstanceDisk"
            },
            "description": "Can be specified multiple times to attach several disks. See Disk parameters below for details.\n"
          },
          "gid": {
            "type": "number",
            "description": "Group ID which owns the virtual router instance.\n"
          },
          "gname": {
            "type": "string",
            "description": "Group Name which owns the virtual router instance.\n"
          },
          "graphics": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceGraphics:VirtualRouterInstanceGraphics",
            "description": "See Graphics parameters below for details.\n"
          },
          "group": {
            "type": "string",
            "description": "Name of the group which owns the virtual router instance. Defaults to the caller primary group.\n"
          },
          "hardShutdown": {
            "type": "boolean",
            "description": "Immediately poweroff/terminate/reboot/undeploy the VM. (default: false)\n"
          },
          "lcmstate": {
            "type": "number",
            "description": "LCM State of the virtual router instance.\n"
          },
          "lock": {
            "type": "string",
            "description": "Lock the VM with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
          },
          "memory": {
            "type": "number",
            "description": "Amount of RAM assigned to the VM in MB.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the virtual router instance.\n"
          },
          "onDiskChange": {
            "type": "string",
            "description": "Select the behavior for changing disk images. Supported values: `RECREATE` or `SWAP` (default). `RECREATE` forces recreation of the vm and `SWAP` adopts the standard behavior of hot-swapping the disks. NOTE: This property does not affect the behavior of adding new disks.\n"
          },
          "os": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceOs:VirtualRouterInstanceOs",
            "description": "See OS parameters below for details.\n"
          },
          "pending": {
            "type": "boolean",
            "description": "Pending state during VM creation. Defaults to `false`.\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions applied on virtual router instance. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
          },
          "raw": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceRaw:VirtualRouterInstanceRaw",
            "description": "Low-level hypervisor tuning\n"
          },
          "schedDsRequirements": {
            "type": "string",
            "description": "Storage placement requirements to deploy the resource following specific rule.\n"
          },
          "schedRequirements": {
            "type": "string",
            "description": "Scheduling requirements to deploy the resource following specific rule.\n"
          },
          "state": {
            "type": "number",
            "description": "State of the virtual router instance.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "templateDisks": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateDisk:VirtualRouterInstanceTemplateDisk"
            },
            "description": "this contains the template disks description.\n"
          },
          "templateSectionNames": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "When `template_id` was set this keeps the template section names only.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateSection:VirtualRouterInstanceTemplateSection"
            },
            "description": "Add custom section to the resource\n"
          },
          "templateTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "When `template_id` was set this keeps the template tags.\n"
          },
          "timeout": {
            "type": "number",
            "description": "Timeout (in minutes) within resource should be available. Default: 3 minutes\n",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTimeouts:VirtualRouterInstanceTimeouts"
          },
          "uid": {
            "type": "number",
            "description": "User ID whom owns the virtual router instance.\n"
          },
          "uname": {
            "type": "string",
            "description": "User Name whom owns the virtual router instance.\n"
          },
          "vcpu": {
            "type": "number",
            "description": "Number of virtual CPUs assigned to the virtual machine\n"
          },
          "virtualRouterId": {
            "type": "number",
            "description": "The ID of the parent virtual router resource.\n"
          },
          "virtualRouterInstanceId": {
            "type": "string",
            "description": "ID of the virtual router instance.\n"
          },
          "vmgroup": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceVmgroup:VirtualRouterInstanceVmgroup",
            "description": "See VM group parameters below for details. Changing this argument triggers a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/virtualRouterInstanceTemplate:VirtualRouterInstanceTemplate": {
      "description": "Provides an OpenNebula virtual router instance template resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = new opennebula.VirtualRouterInstanceTemplate(\"example\", {\n    context: {\n        dns_hostname: \"yes\",\n        network: \"YES\",\n    },\n    cpu: 0.5,\n    graphics: {\n        keymap: \"en-us\",\n        listen: \"0.0.0.0\",\n        type: \"VNC\",\n    },\n    group: \"oneadmin\",\n    memory: 512,\n    os: {\n        arch: \"x86_64\",\n        boot: \"\",\n    },\n    permissions: \"642\",\n    tags: {\n        environment: \"example\",\n    },\n    templateSections: [{\n        elements: {\n            key1: \"value1\",\n        },\n        name: \"example\",\n    }],\n    vcpu: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.VirtualRouterInstanceTemplate(\"example\",\n    context={\n        \"dns_hostname\": \"yes\",\n        \"network\": \"YES\",\n    },\n    cpu=0.5,\n    graphics={\n        \"keymap\": \"en-us\",\n        \"listen\": \"0.0.0.0\",\n        \"type\": \"VNC\",\n    },\n    group=\"oneadmin\",\n    memory=512,\n    os={\n        \"arch\": \"x86_64\",\n        \"boot\": \"\",\n    },\n    permissions=\"642\",\n    tags={\n        \"environment\": \"example\",\n    },\n    template_sections=[{\n        \"elements\": {\n            \"key1\": \"value1\",\n        },\n        \"name\": \"example\",\n    }],\n    vcpu=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() => \n{\n    var example = new Opennebula.VirtualRouterInstanceTemplate(\"example\", new()\n    {\n        Context = \n        {\n            { \"dns_hostname\", \"yes\" },\n            { \"network\", \"YES\" },\n        },\n        Cpu = 0.5,\n        Graphics = new Opennebula.Inputs.VirtualRouterInstanceTemplateGraphicsArgs\n        {\n            Keymap = \"en-us\",\n            Listen = \"0.0.0.0\",\n            Type = \"VNC\",\n        },\n        Group = \"oneadmin\",\n        Memory = 512,\n        Os = new Opennebula.Inputs.VirtualRouterInstanceTemplateOsArgs\n        {\n            Arch = \"x86_64\",\n            Boot = \"\",\n        },\n        Permissions = \"642\",\n        Tags = \n        {\n            { \"environment\", \"example\" },\n        },\n        TemplateSections = new[]\n        {\n            new Opennebula.Inputs.VirtualRouterInstanceTemplateTemplateSectionArgs\n            {\n                Elements = \n                {\n                    { \"key1\", \"value1\" },\n                },\n                Name = \"example\",\n            },\n        },\n        Vcpu = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.NewVirtualRouterInstanceTemplate(ctx, \"example\", &opennebula.VirtualRouterInstanceTemplateArgs{\n\t\t\tContext: pulumi.StringMap{\n\t\t\t\t\"dns_hostname\": pulumi.String(\"yes\"),\n\t\t\t\t\"network\":      pulumi.String(\"YES\"),\n\t\t\t},\n\t\t\tCpu: pulumi.Float64(0.5),\n\t\t\tGraphics: &opennebula.VirtualRouterInstanceTemplateGraphicsArgs{\n\t\t\t\tKeymap: pulumi.String(\"en-us\"),\n\t\t\t\tListen: pulumi.String(\"0.0.0.0\"),\n\t\t\t\tType:   pulumi.String(\"VNC\"),\n\t\t\t},\n\t\t\tGroup:  pulumi.String(\"oneadmin\"),\n\t\t\tMemory: pulumi.Float64(512),\n\t\t\tOs: &opennebula.VirtualRouterInstanceTemplateOsArgs{\n\t\t\t\tArch: pulumi.String(\"x86_64\"),\n\t\t\t\tBoot: pulumi.String(\"\"),\n\t\t\t},\n\t\t\tPermissions: pulumi.String(\"642\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t\tTemplateSections: opennebula.VirtualRouterInstanceTemplateTemplateSectionArray{\n\t\t\t\t&opennebula.VirtualRouterInstanceTemplateTemplateSectionArgs{\n\t\t\t\t\tElements: pulumi.StringMap{\n\t\t\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"example\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVcpu: pulumi.Float64(1),\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.opennebula.VirtualRouterInstanceTemplate;\nimport com.pulumi.opennebula.VirtualRouterInstanceTemplateArgs;\nimport com.pulumi.opennebula.inputs.VirtualRouterInstanceTemplateGraphicsArgs;\nimport com.pulumi.opennebula.inputs.VirtualRouterInstanceTemplateOsArgs;\nimport com.pulumi.opennebula.inputs.VirtualRouterInstanceTemplateTemplateSectionArgs;\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 example = new VirtualRouterInstanceTemplate(\"example\", VirtualRouterInstanceTemplateArgs.builder()\n            .context(Map.ofEntries(\n                Map.entry(\"dns_hostname\", \"yes\"),\n                Map.entry(\"network\", \"YES\")\n            ))\n            .cpu(\"0.5\")\n            .graphics(VirtualRouterInstanceTemplateGraphicsArgs.builder()\n                .keymap(\"en-us\")\n                .listen(\"0.0.0.0\")\n                .type(\"VNC\")\n                .build())\n            .group(\"oneadmin\")\n            .memory(\"512\")\n            .os(VirtualRouterInstanceTemplateOsArgs.builder()\n                .arch(\"x86_64\")\n                .boot(\"\")\n                .build())\n            .permissions(\"642\")\n            .tags(Map.of(\"environment\", \"example\"))\n            .templateSections(VirtualRouterInstanceTemplateTemplateSectionArgs.builder()\n                .elements(Map.of(\"key1\", \"value1\"))\n                .name(\"example\")\n                .build())\n            .vcpu(\"1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: opennebula:VirtualRouterInstanceTemplate\n    properties:\n      context:\n        dns_hostname: yes\n        network: YES\n      cpu: '0.5'\n      graphics:\n        keymap: en-us\n        listen: 0.0.0.0\n        type: VNC\n      group: oneadmin\n      memory: '512'\n      os:\n        arch: x86_64\n        boot: \"\"\n      permissions: '642'\n      tags:\n        environment: example\n      templateSections:\n        - elements:\n            key1: value1\n          name: example\n      vcpu: '1'\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_virtual_router_instance_template` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/virtualRouterInstanceTemplate:VirtualRouterInstanceTemplate example 123\n```\n\n",
      "properties": {
        "context": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Array of free form key=value pairs, rendered and added to the CONTEXT variables for the VM. Recommended to include: `NETWORK = \"YES\"` and `SET_HOSTNAME = \"$NAME\"`.\n"
        },
        "cpu": {
          "type": "number",
          "description": "Amount of CPU shares assigned to the VM.\n"
        },
        "cpumodel": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateCpumodel:VirtualRouterInstanceTemplateCpumodel",
          "description": "Definition of CPU Model type for the Virtual Machine\n"
        },
        "defaultTags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default tags defined in the provider configuration.\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the template.\n"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateDisk:VirtualRouterInstanceTemplateDisk"
          },
          "description": "Can be specified multiple times to attach several disks. See Disks parameters below for details.\n"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateFeature:VirtualRouterInstanceTemplateFeature"
          },
          "description": "See Features parameters below for details.\n"
        },
        "gid": {
          "type": "number",
          "description": "Group ID which owns the template.\n"
        },
        "gname": {
          "type": "string",
          "description": "Group Name which owns the template.\n"
        },
        "graphics": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateGraphics:VirtualRouterInstanceTemplateGraphics",
          "description": "See Graphics parameters below for details.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the template. Defaults to the caller primary group.\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock the template with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "memory": {
          "type": "number",
          "description": "Amount of RAM assigned to the VM in MB.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual machine template.\n"
        },
        "os": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateOs:VirtualRouterInstanceTemplateOs",
          "description": "See OS parameters below for details.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on template. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "raw": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateRaw:VirtualRouterInstanceTemplateRaw",
          "description": "Allow to pass hypervisor level tuning content. See Raw parameters below for details.\n"
        },
        "regTime": {
          "type": "number",
          "description": "Registration time of the template.\n"
        },
        "schedDsRequirements": {
          "type": "string",
          "description": "Storage placement requirements to deploy the resource following specific rule.\n"
        },
        "schedRequirements": {
          "type": "string",
          "description": "Scheduling requirements to deploy the resource following specific rule\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "tagsAll": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Result of the applied `default_tags` and then resource `tags`.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateTemplateSection:VirtualRouterInstanceTemplateTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "uid": {
          "type": "number",
          "description": "User ID whom owns the template.\n"
        },
        "uname": {
          "type": "string",
          "description": "User Name whom owns the template.\n"
        },
        "userInputs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Ask the user instantiating the template to define the values described.\n"
        },
        "vcpu": {
          "type": "number",
          "description": "Number of virtual CPUs assigned to the virtual machine\n"
        },
        "virtualRouterInstanceTemplateId": {
          "type": "string",
          "description": "ID of the template.\n"
        },
        "vmgroup": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateVmgroup:VirtualRouterInstanceTemplateVmgroup",
          "description": "See VM group parameters below for details. Changing this argument triggers a new resource.\n"
        }
      },
      "type": "object",
      "required": [
        "cpu",
        "defaultTags",
        "gid",
        "gname",
        "memory",
        "name",
        "permissions",
        "regTime",
        "tagsAll",
        "uid",
        "uname",
        "vcpu",
        "virtualRouterInstanceTemplateId"
      ],
      "inputProperties": {
        "context": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Array of free form key=value pairs, rendered and added to the CONTEXT variables for the VM. Recommended to include: `NETWORK = \"YES\"` and `SET_HOSTNAME = \"$NAME\"`.\n"
        },
        "cpu": {
          "type": "number",
          "description": "Amount of CPU shares assigned to the VM.\n"
        },
        "cpumodel": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateCpumodel:VirtualRouterInstanceTemplateCpumodel",
          "description": "Definition of CPU Model type for the Virtual Machine\n"
        },
        "description": {
          "type": "string",
          "description": "The description of the template.\n"
        },
        "disks": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateDisk:VirtualRouterInstanceTemplateDisk"
          },
          "description": "Can be specified multiple times to attach several disks. See Disks parameters below for details.\n"
        },
        "features": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateFeature:VirtualRouterInstanceTemplateFeature"
          },
          "description": "See Features parameters below for details.\n"
        },
        "graphics": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateGraphics:VirtualRouterInstanceTemplateGraphics",
          "description": "See Graphics parameters below for details.\n"
        },
        "group": {
          "type": "string",
          "description": "Name of the group which owns the template. Defaults to the caller primary group.\n"
        },
        "lock": {
          "type": "string",
          "description": "Lock the template with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
        },
        "memory": {
          "type": "number",
          "description": "Amount of RAM assigned to the VM in MB.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the virtual machine template.\n"
        },
        "os": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateOs:VirtualRouterInstanceTemplateOs",
          "description": "See OS parameters below for details.\n"
        },
        "permissions": {
          "type": "string",
          "description": "Permissions applied on template. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
        },
        "raw": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateRaw:VirtualRouterInstanceTemplateRaw",
          "description": "Allow to pass hypervisor level tuning content. See Raw parameters below for details.\n"
        },
        "schedDsRequirements": {
          "type": "string",
          "description": "Storage placement requirements to deploy the resource following specific rule.\n"
        },
        "schedRequirements": {
          "type": "string",
          "description": "Scheduling requirements to deploy the resource following specific rule\n"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
        },
        "templateSections": {
          "type": "array",
          "items": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateTemplateSection:VirtualRouterInstanceTemplateTemplateSection"
          },
          "description": "Allow to add a custom vector. See Template section parameters\n"
        },
        "userInputs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Ask the user instantiating the template to define the values described.\n"
        },
        "vcpu": {
          "type": "number",
          "description": "Number of virtual CPUs assigned to the virtual machine\n"
        },
        "virtualRouterInstanceTemplateId": {
          "type": "string",
          "description": "ID of the template.\n"
        },
        "vmgroup": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateVmgroup:VirtualRouterInstanceTemplateVmgroup",
          "description": "See VM group parameters below for details. Changing this argument triggers a new resource.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualRouterInstanceTemplate resources.\n",
        "properties": {
          "context": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Array of free form key=value pairs, rendered and added to the CONTEXT variables for the VM. Recommended to include: `NETWORK = \"YES\"` and `SET_HOSTNAME = \"$NAME\"`.\n"
          },
          "cpu": {
            "type": "number",
            "description": "Amount of CPU shares assigned to the VM.\n"
          },
          "cpumodel": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateCpumodel:VirtualRouterInstanceTemplateCpumodel",
            "description": "Definition of CPU Model type for the Virtual Machine\n"
          },
          "defaultTags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Default tags defined in the provider configuration.\n"
          },
          "description": {
            "type": "string",
            "description": "The description of the template.\n"
          },
          "disks": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateDisk:VirtualRouterInstanceTemplateDisk"
            },
            "description": "Can be specified multiple times to attach several disks. See Disks parameters below for details.\n"
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateFeature:VirtualRouterInstanceTemplateFeature"
            },
            "description": "See Features parameters below for details.\n"
          },
          "gid": {
            "type": "number",
            "description": "Group ID which owns the template.\n"
          },
          "gname": {
            "type": "string",
            "description": "Group Name which owns the template.\n"
          },
          "graphics": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateGraphics:VirtualRouterInstanceTemplateGraphics",
            "description": "See Graphics parameters below for details.\n"
          },
          "group": {
            "type": "string",
            "description": "Name of the group which owns the template. Defaults to the caller primary group.\n"
          },
          "lock": {
            "type": "string",
            "description": "Lock the template with a specific lock level. Supported values: `USE`, `MANAGE`, `ADMIN`, `ALL` or `UNLOCK`.\n"
          },
          "memory": {
            "type": "number",
            "description": "Amount of RAM assigned to the VM in MB.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the virtual machine template.\n"
          },
          "os": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateOs:VirtualRouterInstanceTemplateOs",
            "description": "See OS parameters below for details.\n"
          },
          "permissions": {
            "type": "string",
            "description": "Permissions applied on template. Defaults to the UMASK in OpenNebula (in UNIX Format: owner-group-other => Use-Manage-Admin).\n"
          },
          "raw": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateRaw:VirtualRouterInstanceTemplateRaw",
            "description": "Allow to pass hypervisor level tuning content. See Raw parameters below for details.\n"
          },
          "regTime": {
            "type": "number",
            "description": "Registration time of the template.\n"
          },
          "schedDsRequirements": {
            "type": "string",
            "description": "Storage placement requirements to deploy the resource following specific rule.\n"
          },
          "schedRequirements": {
            "type": "string",
            "description": "Scheduling requirements to deploy the resource following specific rule\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of tags (`key=value`) assigned to the resource. Override matching tags present in the `default_tags` atribute when configured in the `provider` block. See tags usage related documentation for more information.\n"
          },
          "tagsAll": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the applied `default_tags` and then resource `tags`.\n"
          },
          "templateSections": {
            "type": "array",
            "items": {
              "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateTemplateSection:VirtualRouterInstanceTemplateTemplateSection"
            },
            "description": "Allow to add a custom vector. See Template section parameters\n"
          },
          "uid": {
            "type": "number",
            "description": "User ID whom owns the template.\n"
          },
          "uname": {
            "type": "string",
            "description": "User Name whom owns the template.\n"
          },
          "userInputs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Ask the user instantiating the template to define the values described.\n"
          },
          "vcpu": {
            "type": "number",
            "description": "Number of virtual CPUs assigned to the virtual machine\n"
          },
          "virtualRouterInstanceTemplateId": {
            "type": "string",
            "description": "ID of the template.\n"
          },
          "vmgroup": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterInstanceTemplateVmgroup:VirtualRouterInstanceTemplateVmgroup",
            "description": "See VM group parameters below for details. Changing this argument triggers a new resource.\n"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/virtualRouterNic:VirtualRouterNic": {
      "description": "Provides an OpenNebula virtual router resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```yaml\nresources:\n  exampleVirtualRouterInstanceTemplate:\n    type: opennebula:VirtualRouterInstanceTemplate\n    properties:\n      permissions: '642'\n      group: oneadmin\n      cpu: '0.5'\n      vcpu: '1'\n      memory: '512'\n      context:\n        dns_hostname: yes\n        network: YES\n      graphics:\n        keymap: en-us\n        listen: 0.0.0.0\n        type: VNC\n      os:\n        arch: x86_64\n        boot: \"\"\n      tags:\n        env: prod\n  exampleVirtualRouter:\n    type: opennebula:VirtualRouter\n    properties:\n      permissions: '642'\n      group: oneadmin\n      description: This is an example of virtual router\n      instanceTemplateId: ${exampleVirtualRouterInstanceTemplate.virtualRouterInstanceTemplateId}\n      lock: USE\n      tags:\n        environment: example\n  exampleVirtualRouterInstance:\n    type: opennebula:VirtualRouterInstance\n    properties:\n      group: oneadmin\n      permissions: '642'\n      memory: 128\n      cpu: 0.1\n      virtualRouterId: ${exampleVirtualRouter.virtualRouterId}\n      tags:\n        environment: example\n  exampleVirtualNetwork:\n    type: opennebula:VirtualNetwork\n    properties:\n      type: bridge\n      bridge: onebr\n      mtu: 1500\n      ars:\n        - arType: IP4\n          size: 12\n          ip4: 172.16.100.130\n      permissions: '642'\n      group: oneadmin\n      securityGroups:\n        - 0\n      clusters:\n        - 0\n  example1:\n    type: opennebula:VirtualRouterNic\n    properties:\n      floatingIp: true\n      floatingOnly: true\n      virtualRouterId: ${exampleVirtualRouter.virtualRouterId}\n      networkId: ${exampleVirtualNetwork.virtualNetworkId}\n  example2:\n    type: opennebula:VirtualRouterNic\n    properties:\n      virtualRouterId: ${exampleVirtualRouter.virtualRouterId}\n      networkId: ${exampleVirtualNetwork.virtualNetworkId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\n`opennebula_virtual_router_nic` can be imported using its ID:\n\n```sh\n$ pulumi import opennebula:index/virtualRouterNic:VirtualRouterNic example 123\n```\n\n",
      "properties": {
        "floatingIp": {
          "type": "boolean",
          "description": "Allocate floating IP for the NIC. Defaults to `false`.\n"
        },
        "floatingOnly": {
          "type": "boolean",
          "description": "Do not allocate IP for the NIC. Defaults to `false`.\n"
        },
        "ip": {
          "type": "string"
        },
        "ip6": {
          "type": "string"
        },
        "model": {
          "type": "string",
          "description": "Nic model driver. Example: `virtio`.\n"
        },
        "network": {
          "type": "string",
          "description": "Name of the virtual network to attach.\n"
        },
        "networkId": {
          "type": "number",
          "description": "ID of the virtual network to attach.\n"
        },
        "physicalDevice": {
          "type": "string",
          "description": "Physical device hosting the virtual network.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of security group IDs to use on the virtual network.\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterNicTimeouts:VirtualRouterNicTimeouts"
        },
        "virtioQueues": {
          "type": "string",
          "description": "Virtio multi-queue size. Only if `model` is `virtio`.\n"
        },
        "virtualRouterId": {
          "type": "number",
          "description": "The ID of the parent virtual router resource.\n"
        },
        "virtualRouterNicId": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "ip",
        "ip6",
        "model",
        "network",
        "networkId",
        "physicalDevice",
        "securityGroups",
        "virtioQueues",
        "virtualRouterId",
        "virtualRouterNicId"
      ],
      "inputProperties": {
        "floatingIp": {
          "type": "boolean",
          "description": "Allocate floating IP for the NIC. Defaults to `false`.\n"
        },
        "floatingOnly": {
          "type": "boolean",
          "description": "Do not allocate IP for the NIC. Defaults to `false`.\n"
        },
        "ip": {
          "type": "string"
        },
        "ip6": {
          "type": "string"
        },
        "model": {
          "type": "string",
          "description": "Nic model driver. Example: `virtio`.\n"
        },
        "networkId": {
          "type": "number",
          "description": "ID of the virtual network to attach.\n"
        },
        "physicalDevice": {
          "type": "string",
          "description": "Physical device hosting the virtual network.\n"
        },
        "securityGroups": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "List of security group IDs to use on the virtual network.\n"
        },
        "timeouts": {
          "$ref": "#/types/opennebula:index%2FVirtualRouterNicTimeouts:VirtualRouterNicTimeouts"
        },
        "virtioQueues": {
          "type": "string",
          "description": "Virtio multi-queue size. Only if `model` is `virtio`.\n"
        },
        "virtualRouterId": {
          "type": "number",
          "description": "The ID of the parent virtual router resource.\n"
        },
        "virtualRouterNicId": {
          "type": "string"
        }
      },
      "requiredInputs": [
        "networkId",
        "virtualRouterId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VirtualRouterNic resources.\n",
        "properties": {
          "floatingIp": {
            "type": "boolean",
            "description": "Allocate floating IP for the NIC. Defaults to `false`.\n"
          },
          "floatingOnly": {
            "type": "boolean",
            "description": "Do not allocate IP for the NIC. Defaults to `false`.\n"
          },
          "ip": {
            "type": "string"
          },
          "ip6": {
            "type": "string"
          },
          "model": {
            "type": "string",
            "description": "Nic model driver. Example: `virtio`.\n"
          },
          "network": {
            "type": "string",
            "description": "Name of the virtual network to attach.\n"
          },
          "networkId": {
            "type": "number",
            "description": "ID of the virtual network to attach.\n"
          },
          "physicalDevice": {
            "type": "string",
            "description": "Physical device hosting the virtual network.\n"
          },
          "securityGroups": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of security group IDs to use on the virtual network.\n"
          },
          "timeouts": {
            "$ref": "#/types/opennebula:index%2FVirtualRouterNicTimeouts:VirtualRouterNicTimeouts"
          },
          "virtioQueues": {
            "type": "string",
            "description": "Virtio multi-queue size. Only if `model` is `virtio`.\n"
          },
          "virtualRouterId": {
            "type": "number",
            "description": "The ID of the parent virtual router resource.\n"
          },
          "virtualRouterNicId": {
            "type": "string"
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "opennebula:index/getCluster:getCluster": {
      "description": "Use this data source to retrieve the cluster information from it's name or tags.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getCluster({\n    name: \"My_Cluster\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_cluster(name=\"My_Cluster\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetCluster.Invoke(new()\n    {\n        Name = \"My_Cluster\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupCluster(ctx, \u0026opennebula.LookupClusterArgs{\n\t\t\tName: pulumi.StringRef(\"My_Cluster\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetClusterArgs;\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 example = OpennebulaFunctions.getCluster(GetClusterArgs.builder()\n            .name(\"My_Cluster\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getCluster\n      arguments:\n        name: My_Cluster\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getCluster.\n",
        "properties": {
          "id": {
            "type": "number",
            "description": "ID of the cluster.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula cluster to retrieve information for.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags associated to the cluster.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getCluster.\n",
        "properties": {
          "id": {
            "description": "ID of the cluster.\n",
            "type": "number"
          },
          "name": {
            "description": "The OpenNebula cluster name.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the cluster (Key = Value).\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/getDatastore:getDatastore": {
      "description": "Use this data source to retrieve the datastore information from it's name or tags.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getDatastore({\n    name: \"My_Datastore\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_datastore(name=\"My_Datastore\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetDatastore.Invoke(new()\n    {\n        Name = \"My_Datastore\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupDatastore(ctx, \u0026opennebula.LookupDatastoreArgs{\n\t\t\tName: pulumi.StringRef(\"My_Datastore\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetDatastoreArgs;\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 example = OpennebulaFunctions.getDatastore(GetDatastoreArgs.builder()\n            .name(\"My_Datastore\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getDatastore\n      arguments:\n        name: My_Datastore\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDatastore.\n",
        "properties": {
          "id": {
            "type": "number",
            "description": "ID of the datastore.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula datastore to retrieve information for.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags associated to the datastore.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDatastore.\n",
        "properties": {
          "id": {
            "description": "ID of the datastore.\n",
            "type": "number"
          },
          "name": {
            "description": "The OpenNebula datastore name.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the datastore (Key = Value).\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/getGroup:getGroup": {
      "description": "Use this data source to retrieve the group information for a given name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getGroup({\n    name: \"My_Service_Group\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_group(name=\"My_Service_Group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetGroup.Invoke(new()\n    {\n        Name = \"My_Service_Group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupGroup(ctx, \u0026opennebula.LookupGroupArgs{\n\t\t\tName: pulumi.StringRef(\"My_Service_Group\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetGroupArgs;\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 example = OpennebulaFunctions.getGroup(GetGroupArgs.builder()\n            .name(\"My_Service_Group\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getGroup\n      arguments:\n        name: My_Service_Group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getGroup.\n",
        "properties": {
          "id": {
            "type": "number",
            "description": "ID of the group.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula group to retrieve information for.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags associated to the Image.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getGroup.\n",
        "properties": {
          "admins": {
            "description": "List of Administrator user IDs part of the group.\n",
            "items": {
              "type": "number"
            },
            "type": "array"
          },
          "id": {
            "description": "ID of the group.\n",
            "type": "number"
          },
          "name": {
            "description": "Name of the group.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the group (Key = Value).\n",
            "type": "object"
          }
        },
        "required": [
          "admins"
        ],
        "type": "object"
      }
    },
    "opennebula:index/getHost:getHost": {
      "description": "Use this data source to retrieve the host information for a given name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getHost({\n    name: \"My_Host\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_host(name=\"My_Host\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetHost.Invoke(new()\n    {\n        Name = \"My_Host\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupHost(ctx, \u0026opennebula.LookupHostArgs{\n\t\t\tName: pulumi.StringRef(\"My_Host\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetHostArgs;\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 example = OpennebulaFunctions.getHost(GetHostArgs.builder()\n            .name(\"My_Host\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getHost\n      arguments:\n        name: My_Host\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getHost.\n",
        "properties": {
          "id": {
            "type": "number",
            "description": "ID of the host.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula host to retrieve information for.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags associated to the host.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getHost.\n",
        "properties": {
          "id": {
            "description": "ID of the host.\n",
            "type": "number"
          },
          "name": {
            "description": "Name of the host.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the host (Key = Value).\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/getImage:getImage": {
      "description": "Use this data source to retrieve the image information for a given name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getImage({\n    name: \"My_Image\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_image(name=\"My_Image\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetImage.Invoke(new()\n    {\n        Name = \"My_Image\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupImage(ctx, \u0026opennebula.LookupImageArgs{\n\t\t\tName: pulumi.StringRef(\"My_Image\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetImageArgs;\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 example = OpennebulaFunctions.getImage(GetImageArgs.builder()\n            .name(\"My_Image\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getImage\n      arguments:\n        name: My_Image\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getImage.\n",
        "properties": {
          "id": {
            "type": "number",
            "description": "ID of the image.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula image to retrieve information for.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags associated to the image.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getImage.\n",
        "properties": {
          "id": {
            "description": "ID of the image.\n",
            "type": "number"
          },
          "name": {
            "description": "Name of the image.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the image (Key = Value).\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/getMarketplace:getMarketplace": {
      "description": "Use this data source to retrieve the marketplace information from it's name or tags.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getMarketplace({\n    name: \"My_Marketplace\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_marketplace(name=\"My_Marketplace\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetMarketplace.Invoke(new()\n    {\n        Name = \"My_Marketplace\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupMarketplace(ctx, \u0026opennebula.LookupMarketplaceArgs{\n\t\t\tName: pulumi.StringRef(\"My_Marketplace\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetMarketplaceArgs;\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 example = OpennebulaFunctions.getMarketplace(GetMarketplaceArgs.builder()\n            .name(\"My_Marketplace\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getMarketplace\n      arguments:\n        name: My_Marketplace\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getMarketplace.\n",
        "properties": {
          "id": {
            "type": "number",
            "description": "ID of the marketplace.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula marketplace to retrieve information for.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags associated to the marketplace.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getMarketplace.\n",
        "properties": {
          "id": {
            "description": "ID of the marketplace.\n",
            "type": "number"
          },
          "name": {
            "description": "The OpenNebula marketplace name.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the marketplace (Key = Value).\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/getSecurityGroup:getSecurityGroup": {
      "description": "Use this data source to retrieve the security group information for a given name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getSecurityGroup({\n    name: \"My_Security_Group\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_security_group(name=\"My_Security_Group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetSecurityGroup.Invoke(new()\n    {\n        Name = \"My_Security_Group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupSecurityGroup(ctx, \u0026opennebula.LookupSecurityGroupArgs{\n\t\t\tName: pulumi.StringRef(\"My_Security_Group\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetSecurityGroupArgs;\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 example = OpennebulaFunctions.getSecurityGroup(GetSecurityGroupArgs.builder()\n            .name(\"My_Security_Group\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getSecurityGroup\n      arguments:\n        name: My_Security_Group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSecurityGroup.\n",
        "properties": {
          "id": {
            "type": "number",
            "description": "ID of the security group.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula security group to retrieve information for.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Security group tags.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSecurityGroup.\n",
        "properties": {
          "id": {
            "description": "ID of the security group.\n",
            "type": "number"
          },
          "name": {
            "description": "Name of the security group\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the security group (Key = Value).\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/getTemplate:getTemplate": {
      "description": "Use this data source to retrieve the template information for a given name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getTemplate({\n    name: \"My_Template\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_template(name=\"My_Template\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetTemplate.Invoke(new()\n    {\n        Name = \"My_Template\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupTemplate(ctx, \u0026opennebula.LookupTemplateArgs{\n\t\t\tName: pulumi.StringRef(\"My_Template\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetTemplateArgs;\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 example = OpennebulaFunctions.getTemplate(GetTemplateArgs.builder()\n            .name(\"My_Template\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getTemplate\n      arguments:\n        name: My_Template\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getTemplate.\n",
        "properties": {
          "cpu": {
            "type": "number",
            "description": "Amount of CPU shares assigned to the VM.\n"
          },
          "hasCpu": {
            "type": "boolean",
            "description": "Indicate if a CPU value has been defined.\n"
          },
          "hasMemory": {
            "type": "boolean",
            "description": "Indicate if a memory value has been defined.\n"
          },
          "hasVcpu": {
            "type": "boolean",
            "description": "Indicate if a VCPU value has been defined.\n"
          },
          "id": {
            "type": "number",
            "description": "ID of the template.\n"
          },
          "memory": {
            "type": "number",
            "description": "Amount of RAM assigned to the VM in MB.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula template to retrieve information for.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Template tags (Key = Value).\n"
          },
          "vcpu": {
            "type": "number",
            "description": "Number of CPU cores presented to the VM.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getTemplate.\n",
        "properties": {
          "cpu": {
            "description": "Amount of CPU shares assigned to the VM.\n",
            "type": "number"
          },
          "disks": {
            "description": "Disk parameters.\n",
            "items": {
              "$ref": "#/types/opennebula:index%2FgetTemplateDisk:getTemplateDisk"
            },
            "type": "array"
          },
          "hasCpu": {
            "type": "boolean"
          },
          "hasMemory": {
            "type": "boolean"
          },
          "hasVcpu": {
            "type": "boolean"
          },
          "id": {
            "description": "ID of the template.\n",
            "type": "number"
          },
          "memory": {
            "description": "Amount of RAM assigned to the VM in MB.\n",
            "type": "number"
          },
          "name": {
            "description": "Name of the template.\n",
            "type": "string"
          },
          "nicAliases": {
            "description": "NIC Alias parameters.\n",
            "items": {
              "$ref": "#/types/opennebula:index%2FgetTemplateNicAlias:getTemplateNicAlias"
            },
            "type": "array"
          },
          "nics": {
            "description": "NIC parameters.\n",
            "items": {
              "$ref": "#/types/opennebula:index%2FgetTemplateNic:getTemplateNic"
            },
            "type": "array"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the template (Key = Value).\n",
            "type": "object"
          },
          "vcpu": {
            "description": "Number of CPU cores presented to the VM.\n",
            "type": "number"
          },
          "vmgroups": {
            "description": "VM group parameters.\n",
            "items": {
              "$ref": "#/types/opennebula:index%2FgetTemplateVmgroup:getTemplateVmgroup"
            },
            "type": "array"
          }
        },
        "required": [
          "cpu",
          "disks",
          "memory",
          "nicAliases",
          "nics",
          "vcpu",
          "vmgroups"
        ],
        "type": "object"
      }
    },
    "opennebula:index/getTemplates:getTemplates": {
      "description": "Use this data source to retrieve templates information.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getTemplates({\n    hasCpu: true,\n    nameRegex: \"test.*\",\n    order: \"ASC\",\n    sortOn: \"register_date\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_templates(has_cpu=True,\n    name_regex=\"test.*\",\n    order=\"ASC\",\n    sort_on=\"register_date\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetTemplates.Invoke(new()\n    {\n        HasCpu = true,\n        NameRegex = \"test.*\",\n        Order = \"ASC\",\n        SortOn = \"register_date\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.GetTemplates(ctx, \u0026opennebula.GetTemplatesArgs{\n\t\t\tHasCpu:    pulumi.BoolRef(true),\n\t\t\tNameRegex: pulumi.StringRef(\"test.*\"),\n\t\t\tOrder:     pulumi.StringRef(\"ASC\"),\n\t\t\tSortOn:    pulumi.StringRef(\"register_date\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetTemplatesArgs;\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 example = OpennebulaFunctions.getTemplates(GetTemplatesArgs.builder()\n            .hasCpu(true)\n            .nameRegex(\"test.*\")\n            .order(\"ASC\")\n            .sortOn(\"register_date\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getTemplates\n      arguments:\n        hasCpu: true\n        nameRegex: test.*\n        order: ASC\n        sortOn: register_date\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n## Templates attributes\n\n* `id` - ID of the template.\n* `name` - Name of the template.\n* `cpu` - Amount of CPU shares assigned to the VM.\n* `vcpu` - Number of CPU cores presented to the VM.\n* `memory` - Amount of RAM assigned to the VM in MB.\n* `disk` - Disk parameters.\n* `nic` - NIC parameters.\n* `nic_alias` - NIC Alias parameters.\n* `vmgroup` - VM group parameters.\n* `register_date` - Creation date of the template\n* `tags` - Tags of the template (Key = Value).\n",
      "inputs": {
        "description": "A collection of arguments for invoking getTemplates.\n",
        "properties": {
          "cpu": {
            "type": "number",
            "description": "Amount of CPU shares assigned to the VM.\n"
          },
          "hasCpu": {
            "type": "boolean",
            "description": "Indicate if a CPU value has been defined.\n"
          },
          "hasMemory": {
            "type": "boolean",
            "description": "Indicate if a memory value has been defined.\n"
          },
          "hasVcpu": {
            "type": "boolean",
            "description": "Indicate if a VCPU value has been defined.\n"
          },
          "id": {
            "type": "string"
          },
          "memory": {
            "type": "number",
            "description": "Amount of RAM assigned to the VM in MB.\n"
          },
          "nameRegex": {
            "type": "string",
            "description": "Filter templates by name with a RE2 regular expression.\n"
          },
          "order": {
            "type": "string",
            "description": "Ordering of the sort: ASC or DESC.\n"
          },
          "sortOn": {
            "type": "string",
            "description": "Attribute used to sort the template list among: `id`, `name`, `cpu`, `vcpu`, `memory`, `register_date`.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Template tags (Key = Value).\n"
          },
          "vcpu": {
            "type": "number",
            "description": "Number of CPU cores presented to the VM.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getTemplates.\n",
        "properties": {
          "cpu": {
            "type": "number"
          },
          "hasCpu": {
            "type": "boolean"
          },
          "hasMemory": {
            "type": "boolean"
          },
          "hasVcpu": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "memory": {
            "type": "number"
          },
          "nameRegex": {
            "type": "string"
          },
          "order": {
            "type": "string"
          },
          "sortOn": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "templates": {
            "description": "For each filtered template, this section collect a list of attributes. See templates attributes\n",
            "items": {
              "$ref": "#/types/opennebula:index%2FgetTemplatesTemplate:getTemplatesTemplate"
            },
            "type": "array"
          },
          "vcpu": {
            "type": "number"
          }
        },
        "required": [
          "cpu",
          "id",
          "memory",
          "templates",
          "vcpu"
        ],
        "type": "object"
      }
    },
    "opennebula:index/getUser:getUser": {
      "description": "Use this data source to retrieve the user information for a given name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getUser({\n    name: \"John\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_user(name=\"John\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetUser.Invoke(new()\n    {\n        Name = \"John\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupUser(ctx, \u0026opennebula.LookupUserArgs{\n\t\t\tName: pulumi.StringRef(\"John\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetUserArgs;\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 example = OpennebulaFunctions.getUser(GetUserArgs.builder()\n            .name(\"John\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getUser\n      arguments:\n        name: John\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getUser.\n",
        "properties": {
          "groups": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of secondary groups ID of the user.\n"
          },
          "id": {
            "type": "number",
            "description": "ID of the user.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula user to retrieve information for.\n"
          },
          "primaryGroup": {
            "type": "number",
            "description": "Primary group ID of the user.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the user (Key = Value).\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getUser.\n",
        "properties": {
          "groups": {
            "description": "List of secondary groups ID of the user.\n",
            "items": {
              "type": "number"
            },
            "type": "array"
          },
          "id": {
            "description": "ID of the user.\n",
            "type": "number"
          },
          "name": {
            "description": "Name of the user.\n",
            "type": "string"
          },
          "primaryGroup": {
            "description": "Primary group ID of the user.\n",
            "type": "number"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the user (Key = Value).\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/getVirtualDataCenter:getVirtualDataCenter": {
      "description": "Use this data source to retrieve the virtual data center information for a given name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getVirtualDataCenter({\n    name: \"My_VDC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_virtual_data_center(name=\"My_VDC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetVirtualDataCenter.Invoke(new()\n    {\n        Name = \"My_VDC\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupVirtualDataCenter(ctx, \u0026opennebula.LookupVirtualDataCenterArgs{\n\t\t\tName: pulumi.StringRef(\"My_VDC\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetVirtualDataCenterArgs;\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 example = OpennebulaFunctions.getVirtualDataCenter(GetVirtualDataCenterArgs.builder()\n            .name(\"My_VDC\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getVirtualDataCenter\n      arguments:\n        name: My_VDC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualDataCenter.\n",
        "properties": {
          "id": {
            "type": "number",
            "description": "ID of the virtual data center.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula virtual data center to retrieve information for.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Virtual data center tags (Key = Value).\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualDataCenter.\n",
        "properties": {
          "id": {
            "description": "ID of the virtual data center.\n",
            "type": "number"
          },
          "name": {
            "description": "Name of the virtual data center.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the virtual data center (Key = Value).\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/getVirtualMachineGroup:getVirtualMachineGroup": {
      "description": "Use this data source to retrieve the virtual machine group information for a given name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getVirtualMachineGroup({\n    name: \"My_VMGroup\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_virtual_machine_group(name=\"My_VMGroup\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetVirtualMachineGroup.Invoke(new()\n    {\n        Name = \"My_VMGroup\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupVirtualMachineGroup(ctx, \u0026opennebula.LookupVirtualMachineGroupArgs{\n\t\t\tName: pulumi.StringRef(\"My_VMGroup\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetVirtualMachineGroupArgs;\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 example = OpennebulaFunctions.getVirtualMachineGroup(GetVirtualMachineGroupArgs.builder()\n            .name(\"My_VMGroup\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getVirtualMachineGroup\n      arguments:\n        name: My_VMGroup\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualMachineGroup.\n",
        "properties": {
          "id": {
            "type": "number",
            "description": "ID of the virtual machine group.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula virtual machine group to retrieve information for.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Virtual Machine group tags (Key = Value).\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualMachineGroup.\n",
        "properties": {
          "id": {
            "description": "ID of the virtual machine group.\n",
            "type": "number"
          },
          "name": {
            "description": "Name of the virtual machine group.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the virtual machine group (Key = Value).\n",
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "opennebula:index/getVirtualMachines:getVirtualMachines": {
      "description": "Use this data source to retrieve virtual machines information.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getVirtualMachines({\n    nameRegex: \"test.*\",\n    order: \"ASC\",\n    sortOn: \"id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_virtual_machines(name_regex=\"test.*\",\n    order=\"ASC\",\n    sort_on=\"id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetVirtualMachines.Invoke(new()\n    {\n        NameRegex = \"test.*\",\n        Order = \"ASC\",\n        SortOn = \"id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.GetVirtualMachines(ctx, \u0026opennebula.GetVirtualMachinesArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"test.*\"),\n\t\t\tOrder:     pulumi.StringRef(\"ASC\"),\n\t\t\tSortOn:    pulumi.StringRef(\"id\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetVirtualMachinesArgs;\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 example = OpennebulaFunctions.getVirtualMachines(GetVirtualMachinesArgs.builder()\n            .nameRegex(\"test.*\")\n            .order(\"ASC\")\n            .sortOn(\"id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getVirtualMachines\n      arguments:\n        nameRegex: test.*\n        order: ASC\n        sortOn: id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n## Virtual machines attributes\n\n* `id` - ID of the virtual machine.\n* `name` - Name of the virtual machine.\n* `cpu` - Amount of CPU shares assigned to the VM.\n* `vcpu` - Number of CPU cores presented to the VM.\n* `memory` - Amount of RAM assigned to the VM in MB.\n* `disk` - Disk parameters.\n* `nic` - NIC parameters.\n* `nic_alias` - NIC Alias parameters.\n* `vmgroup` - VM group parameters\n* `tags` - Tags of the virtual machine (Key = Value).\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualMachines.\n",
        "properties": {
          "cpu": {
            "type": "number",
            "description": "Amount of CPU shares assigned to the VM.\n"
          },
          "id": {
            "type": "string"
          },
          "memory": {
            "type": "number",
            "description": "Amount of RAM assigned to the VM in MB.\n"
          },
          "nameRegex": {
            "type": "string",
            "description": "Filter virtual machines by name with a RE2 regular expression.\n"
          },
          "order": {
            "type": "string",
            "description": "Ordering of the sort: ASC or DESC.\n"
          },
          "sortOn": {
            "type": "string",
            "description": "Attribute used to sort the VMs list among: `id`, `name`, `cpu`, `vcpu`, `memory`.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "virtual machine tags (Key = Value).\n"
          },
          "vcpu": {
            "type": "number",
            "description": "Number of CPU cores presented to the VM.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualMachines.\n",
        "properties": {
          "cpu": {
            "type": "number"
          },
          "id": {
            "type": "string"
          },
          "memory": {
            "type": "number"
          },
          "nameRegex": {
            "type": "string"
          },
          "order": {
            "type": "string"
          },
          "sortOn": {
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "vcpu": {
            "type": "number"
          },
          "virtualMachines": {
            "description": "For each filtered virtual machine, this section collect a list of attributes. See virtual-machines-attributes\n",
            "items": {
              "$ref": "#/types/opennebula:index%2FgetVirtualMachinesVirtualMachine:getVirtualMachinesVirtualMachine"
            },
            "type": "array"
          }
        },
        "required": [
          "cpu",
          "id",
          "memory",
          "vcpu",
          "virtualMachines"
        ],
        "type": "object"
      }
    },
    "opennebula:index/getVirtualNetwork:getVirtualNetwork": {
      "description": "Use this data source to retrieve the virtual network information for a given name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getVirtualNetwork({\n    name: \"My_VNet\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_virtual_network(name=\"My_VNet\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetVirtualNetwork.Invoke(new()\n    {\n        Name = \"My_VNet\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupVirtualNetwork(ctx, \u0026opennebula.LookupVirtualNetworkArgs{\n\t\t\tName: pulumi.StringRef(\"My_VNet\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetVirtualNetworkArgs;\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 example = OpennebulaFunctions.getVirtualNetwork(GetVirtualNetworkArgs.builder()\n            .name(\"My_VNet\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getVirtualNetwork\n      arguments:\n        name: My_VNet\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualNetwork.\n",
        "properties": {
          "id": {
            "type": "number",
            "description": "ID of the virtual network.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula virtual network to retrieve information for.\n"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Virtual network tags (Key = Value).\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualNetwork.\n",
        "properties": {
          "id": {
            "description": "ID of the virtual network.\n",
            "type": "number"
          },
          "mtu": {
            "description": "MTU of the virtual network.\n",
            "type": "number"
          },
          "name": {
            "description": "Name of the virtual network.\n",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Tags of the virtual network (Key = Value).\n",
            "type": "object"
          }
        },
        "required": [
          "mtu"
        ],
        "type": "object"
      }
    },
    "opennebula:index/getVirtualNetworkAddressRange:getVirtualNetworkAddressRange": {
      "description": "Use this data source to retrieve address range information for a virtual network in OpenNebula.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getVirtualNetworkAddressRange({\n    id: \"0\",\n    virtualNetworkId: 123,\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_virtual_network_address_range(id=\"0\",\n    virtual_network_id=123)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetVirtualNetworkAddressRange.Invoke(new()\n    {\n        Id = \"0\",\n        VirtualNetworkId = 123,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.LookupVirtualNetworkAddressRange(ctx, \u0026opennebula.LookupVirtualNetworkAddressRangeArgs{\n\t\t\tId:               \"0\",\n\t\t\tVirtualNetworkId: 123,\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetVirtualNetworkAddressRangeArgs;\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 example = OpennebulaFunctions.getVirtualNetworkAddressRange(GetVirtualNetworkAddressRangeArgs.builder()\n            .id(\"0\")\n            .virtualNetworkId(123)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getVirtualNetworkAddressRange\n      arguments:\n        id: '0'\n        virtualNetworkId: 123\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualNetworkAddressRange.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of the address range.\n"
          },
          "virtualNetworkId": {
            "type": "number",
            "description": "ID of the virtual network.\n"
          }
        },
        "type": "object",
        "required": [
          "id",
          "virtualNetworkId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualNetworkAddressRange.\n",
        "properties": {
          "arType": {
            "description": "Type of the Address Range: `IP4`, `IP6`, `IP4_6`. Default is `IP4`.\n",
            "type": "string"
          },
          "custom": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Custom attributes for the address range.\n",
            "type": "object"
          },
          "globalPrefix": {
            "description": "Global prefix for `IP6` or `IP4_6`.\n",
            "type": "string"
          },
          "heldIps": {
            "description": "List of IPs held in this address range.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "ip4": {
            "description": "Start IPv4 of the allocated range.\n",
            "type": "string"
          },
          "ip4End": {
            "description": "End IPv4 of the allocated range.\n",
            "type": "string"
          },
          "ip6": {
            "description": "Start IPv6 of the allocated range.\n",
            "type": "string"
          },
          "ip6End": {
            "description": "End IPv6 of the allocated range.\n",
            "type": "string"
          },
          "ip6Global": {
            "description": "Global IPv6 of the allocated range.\n",
            "type": "string"
          },
          "ip6GlobalEnd": {
            "description": "End Global IPv6 of the allocated range.\n",
            "type": "string"
          },
          "ip6Ula": {
            "description": "ULA IPv6 of the allocated range.\n",
            "type": "string"
          },
          "ip6UlaEnd": {
            "description": "End ULA IPv6 of the allocated range.\n",
            "type": "string"
          },
          "mac": {
            "description": "Start MAC of the allocated range.\n",
            "type": "string"
          },
          "macEnd": {
            "description": "End MAC of the allocated range.\n",
            "type": "string"
          },
          "size": {
            "description": "Count of addresses in the IP range.\n",
            "type": "number"
          },
          "ulaPrefix": {
            "description": "ULA prefix for `IP6` or `IP4_6`.\n",
            "type": "string"
          },
          "virtualNetworkId": {
            "type": "number"
          }
        },
        "required": [
          "arType",
          "custom",
          "globalPrefix",
          "heldIps",
          "id",
          "ip4",
          "ip4End",
          "ip6",
          "ip6End",
          "ip6Global",
          "ip6GlobalEnd",
          "ip6Ula",
          "ip6UlaEnd",
          "mac",
          "macEnd",
          "size",
          "ulaPrefix",
          "virtualNetworkId"
        ],
        "type": "object"
      }
    },
    "opennebula:index/getVirtualNetworkAddressRanges:getVirtualNetworkAddressRanges": {
      "description": "Use this data source to retrieve information about all address ranges for a virtual network in OpenNebula.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getVirtualNetworkAddressRanges({\n    virtualNetworkId: 123,\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_virtual_network_address_ranges(virtual_network_id=123)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetVirtualNetworkAddressRanges.Invoke(new()\n    {\n        VirtualNetworkId = 123,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.GetVirtualNetworkAddressRanges(ctx, \u0026opennebula.GetVirtualNetworkAddressRangesArgs{\n\t\t\tVirtualNetworkId: 123,\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetVirtualNetworkAddressRangesArgs;\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 example = OpennebulaFunctions.getVirtualNetworkAddressRanges(GetVirtualNetworkAddressRangesArgs.builder()\n            .virtualNetworkId(123)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getVirtualNetworkAddressRanges\n      arguments:\n        virtualNetworkId: 123\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVirtualNetworkAddressRanges.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the address range.\n"
          },
          "virtualNetworkId": {
            "type": "number",
            "description": "ID of the virtual network.\n"
          }
        },
        "type": "object",
        "required": [
          "virtualNetworkId"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getVirtualNetworkAddressRanges.\n",
        "properties": {
          "addressRanges": {
            "description": "A list of address ranges for the specified virtual network, each containing the following attributes:\n",
            "items": {
              "$ref": "#/types/opennebula:index%2FgetVirtualNetworkAddressRangesAddressRange:getVirtualNetworkAddressRangesAddressRange"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of the address range.\n",
            "type": "string"
          },
          "virtualNetworkId": {
            "type": "number"
          }
        },
        "required": [
          "addressRanges",
          "id",
          "virtualNetworkId"
        ],
        "type": "object"
      }
    },
    "opennebula:index/getZone:getZone": {
      "description": "Use this data source to retrieve the zone information from it's name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as opennebula from \"@pulumi/opennebula\";\n\nconst example = opennebula.getZone({\n    name: \"My_Zone\",\n});\n```\n```python\nimport pulumi\nimport pulumi_opennebula as opennebula\n\nexample = opennebula.get_zone(name=\"My_Zone\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Opennebula = Pulumi.Opennebula;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Opennebula.GetZone.Invoke(new()\n    {\n        Name = \"My_Zone\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/opennebula/opennebula\"\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 := opennebula.GetZone(ctx, \u0026opennebula.GetZoneArgs{\n\t\t\tName: pulumi.StringRef(\"My_Zone\"),\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.opennebula.OpennebulaFunctions;\nimport com.pulumi.opennebula.inputs.GetZoneArgs;\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 example = OpennebulaFunctions.getZone(GetZoneArgs.builder()\n            .name(\"My_Zone\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: opennebula:getZone\n      arguments:\n        name: My_Zone\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getZone.\n",
        "properties": {
          "id": {
            "type": "number",
            "description": "ID of the zone.\n"
          },
          "name": {
            "type": "string",
            "description": "The OpenNebula zone to retrieve information for.\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getZone.\n",
        "properties": {
          "endpoint": {
            "description": "The endpoint of the zone.\n",
            "type": "string"
          },
          "id": {
            "description": "ID of the zone.\n",
            "type": "number"
          },
          "name": {
            "description": "The OpenNebula zone name.\n",
            "type": "string"
          }
        },
        "required": [
          "endpoint"
        ],
        "type": "object"
      }
    }
  },
  "parameterization": {
    "baseProvider": {
      "name": "terraform-provider",
      "version": "0.10.0"
    },
    "parameter": "eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL29wZW5uZWJ1bGEvb3Blbm5lYnVsYSIsInZlcnNpb24iOiIxLjUuMCJ9fQ=="
  }
}
