{"name":"netaddr","version":"0.6.0","description":"A Pulumi provider dynamically bridged from netaddr.","attribution":"This Pulumi package is based on the [`netaddr` Terraform Provider](https://github.com/ferlab-ste-justine/terraform-provider-netaddr).","repository":"https://github.com/ferlab-ste-justine/terraform-provider-netaddr","publisher":"ferlab-ste-justine","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/netaddr/netaddr","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"netaddr"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from netaddr.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/ferlab-ste-justine/terraform-provider-netaddr)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-netaddr` repo](https://github.com/ferlab-ste-justine/terraform-provider-netaddr/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/ferlab-ste-justine/terraform-provider-netaddr)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-netaddr` repo](https://github.com/ferlab-ste-justine/terraform-provider-netaddr/issues).","respectSchemaVersion":true}},"config":{"variables":{"caCert":{"type":"string","description":"File that contains the CA certificate that signed the etcd servers' certificates. Can alternatively be set with the ETCDCTL_CACERT environment variable. Can also be omitted."},"cert":{"type":"string","description":"File that contains the client certificate used to authentify the user. Can alternatively be set with the ETCDCTL_CERT environment variable. Can be omitted if password authentication is used."},"connectionTimeout":{"type":"number","description":"Timeout to establish the etcd servers connection in seconds. Defaults to 10."},"endpoints":{"type":"string","description":"Endpoints of the etcd servers. The entry of each server should follow the ip:port format and be coma separated. Can alternatively be set with the ETCDCTL_ENDPOINTS environment variable."},"key":{"type":"string","description":"File that contains the client encryption key used to authentify the user. Can alternatively be set with the ETCDCTL_KEY environment variable. Can be omitted if password authentication is used."},"password":{"type":"string","description":"Password of the etcd user that will be used to access etcd. Can alternatively be set with the ETCDCTL_PASSWORD environment variable. Can also be omitted if tls certificate authentication will be used instead.","secret":true},"requestTimeout":{"type":"number","description":"Timeout for individual requests the provider makes on the etcd servers in seconds. Defaults to 10."},"retries":{"type":"number","description":"Number of times operations that result in retriable errors should be re-attempted. Defaults to 10."},"strict":{"type":"boolean"},"username":{"type":"string","description":"Name of the etcd user that will be used to access etcd. Can alternatively be set with the ETCDCTL_USERNAME environment variable. Can also be omitted if tls certificate authentication will be used instead as the username will be infered from the certificate."}}},"types":{"netaddr:index/getAddressListIpv4Address:getAddressListIpv4Address":{"properties":{"address":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredInputs":[]}}},"netaddr:index/getAddressListMacAddress:getAddressListMacAddress":{"properties":{"address":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredInputs":[]}}},"netaddr:index/getRangeKeyspaceIpv4Address:getRangeKeyspaceIpv4Address":{"properties":{"address":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredInputs":[]}}},"netaddr:index/getRangeKeyspaceIpv4DeletedAddress:getRangeKeyspaceIpv4DeletedAddress":{"properties":{"address":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredInputs":[]}}},"netaddr:index/getRangeKeyspaceIpv4GeneratedAddress:getRangeKeyspaceIpv4GeneratedAddress":{"properties":{"address":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredInputs":[]}}},"netaddr:index/getRangeKeyspaceIpv4HardcodedAddress:getRangeKeyspaceIpv4HardcodedAddress":{"properties":{"address":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredInputs":[]}}},"netaddr:index/getRangeKeyspaceMacAddress:getRangeKeyspaceMacAddress":{"properties":{"address":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredInputs":[]}}},"netaddr:index/getRangeKeyspaceMacDeletedAddress:getRangeKeyspaceMacDeletedAddress":{"properties":{"address":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredInputs":[]}}},"netaddr:index/getRangeKeyspaceMacGeneratedAddress:getRangeKeyspaceMacGeneratedAddress":{"properties":{"address":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredInputs":[]}}},"netaddr:index/getRangeKeyspaceMacHardcodedAddress:getRangeKeyspaceMacHardcodedAddress":{"properties":{"address":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["address","name"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the netaddr 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":{"caCert":{"type":"string","description":"File that contains the CA certificate that signed the etcd servers' certificates. Can alternatively be set with the ETCDCTL_CACERT environment variable. Can also be omitted."},"cert":{"type":"string","description":"File that contains the client certificate used to authentify the user. Can alternatively be set with the ETCDCTL_CERT environment variable. Can be omitted if password authentication is used."},"endpoints":{"type":"string","description":"Endpoints of the etcd servers. The entry of each server should follow the ip:port format and be coma separated. Can alternatively be set with the ETCDCTL_ENDPOINTS environment variable."},"key":{"type":"string","description":"File that contains the client encryption key used to authentify the user. Can alternatively be set with the ETCDCTL_KEY environment variable. Can be omitted if password authentication is used."},"password":{"type":"string","description":"Password of the etcd user that will be used to access etcd. Can alternatively be set with the ETCDCTL_PASSWORD environment variable. Can also be omitted if tls certificate authentication will be used instead.","secret":true},"username":{"type":"string","description":"Name of the etcd user that will be used to access etcd. Can alternatively be set with the ETCDCTL_USERNAME environment variable. Can also be omitted if tls certificate authentication will be used instead as the username will be infered from the certificate."}},"type":"object","inputProperties":{"caCert":{"type":"string","description":"File that contains the CA certificate that signed the etcd servers' certificates. Can alternatively be set with the ETCDCTL_CACERT environment variable. Can also be omitted."},"cert":{"type":"string","description":"File that contains the client certificate used to authentify the user. Can alternatively be set with the ETCDCTL_CERT environment variable. Can be omitted if password authentication is used."},"connectionTimeout":{"type":"number","description":"Timeout to establish the etcd servers connection in seconds. Defaults to 10."},"endpoints":{"type":"string","description":"Endpoints of the etcd servers. The entry of each server should follow the ip:port format and be coma separated. Can alternatively be set with the ETCDCTL_ENDPOINTS environment variable."},"key":{"type":"string","description":"File that contains the client encryption key used to authentify the user. Can alternatively be set with the ETCDCTL_KEY environment variable. Can be omitted if password authentication is used."},"password":{"type":"string","description":"Password of the etcd user that will be used to access etcd. Can alternatively be set with the ETCDCTL_PASSWORD environment variable. Can also be omitted if tls certificate authentication will be used instead.","secret":true},"requestTimeout":{"type":"number","description":"Timeout for individual requests the provider makes on the etcd servers in seconds. Defaults to 10."},"retries":{"type":"number","description":"Number of times operations that result in retriable errors should be re-attempted. Defaults to 10."},"strict":{"type":"boolean"},"username":{"type":"string","description":"Name of the etcd user that will be used to access etcd. Can alternatively be set with the ETCDCTL_USERNAME environment variable. Can also be omitted if tls certificate authentication will be used instead as the username will be infered from the certificate."}},"methods":{"terraformConfig":"pulumi:providers:netaddr/terraformConfig"}},"resources":{"netaddr:index/addressIpv4:AddressIpv4":{"description":"Ipv4 address.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as netaddr from \"@pulumi/netaddr\";\n\nconst test = new netaddr.RangeIpv4(\"test\", {\n    keyPrefix: \"/test/ipv4/\",\n    firstAddress: \"192.168.0.1\",\n    lastAddress: \"192.168.0.254\",\n});\nconst testAddressIpv4 = new netaddr.AddressIpv4(\"test\", {\n    rangeId: test.rangeIpv4Id,\n    name: \"test\",\n    hardcodedAddress: \"192.168.0.5\",\n});\nconst test2 = new netaddr.AddressIpv4(\"test2\", {\n    rangeId: test.rangeIpv4Id,\n    name: \"test2\",\n});\nexport const testAddr = testAddressIpv4.address;\nexport const test2Addr = test2.address;\n```\n```python\nimport pulumi\nimport pulumi_netaddr as netaddr\n\ntest = netaddr.RangeIpv4(\"test\",\n    key_prefix=\"/test/ipv4/\",\n    first_address=\"192.168.0.1\",\n    last_address=\"192.168.0.254\")\ntest_address_ipv4 = netaddr.AddressIpv4(\"test\",\n    range_id=test.range_ipv4_id,\n    name=\"test\",\n    hardcoded_address=\"192.168.0.5\")\ntest2 = netaddr.AddressIpv4(\"test2\",\n    range_id=test.range_ipv4_id,\n    name=\"test2\")\npulumi.export(\"testAddr\", test_address_ipv4.address)\npulumi.export(\"test2Addr\", test2.address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Netaddr = Pulumi.Netaddr;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Netaddr.RangeIpv4(\"test\", new()\n    {\n        KeyPrefix = \"/test/ipv4/\",\n        FirstAddress = \"192.168.0.1\",\n        LastAddress = \"192.168.0.254\",\n    });\n\n    var testAddressIpv4 = new Netaddr.AddressIpv4(\"test\", new()\n    {\n        RangeId = test.RangeIpv4Id,\n        Name = \"test\",\n        HardcodedAddress = \"192.168.0.5\",\n    });\n\n    var test2 = new Netaddr.AddressIpv4(\"test2\", new()\n    {\n        RangeId = test.RangeIpv4Id,\n        Name = \"test2\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"testAddr\"] = testAddressIpv4.Address,\n        [\"test2Addr\"] = test2.Address,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/netaddr/netaddr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := netaddr.NewRangeIpv4(ctx, \"test\", \u0026netaddr.RangeIpv4Args{\n\t\t\tKeyPrefix:    pulumi.String(\"/test/ipv4/\"),\n\t\t\tFirstAddress: pulumi.String(\"192.168.0.1\"),\n\t\t\tLastAddress:  pulumi.String(\"192.168.0.254\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestAddressIpv4, err := netaddr.NewAddressIpv4(ctx, \"test\", \u0026netaddr.AddressIpv4Args{\n\t\t\tRangeId:          test.RangeIpv4Id,\n\t\t\tName:             pulumi.String(\"test\"),\n\t\t\tHardcodedAddress: pulumi.String(\"192.168.0.5\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest2, err := netaddr.NewAddressIpv4(ctx, \"test2\", \u0026netaddr.AddressIpv4Args{\n\t\t\tRangeId: test.RangeIpv4Id,\n\t\t\tName:    pulumi.String(\"test2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"testAddr\", testAddressIpv4.Address)\n\t\tctx.Export(\"test2Addr\", test2.Address)\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.netaddr.RangeIpv4;\nimport com.pulumi.netaddr.RangeIpv4Args;\nimport com.pulumi.netaddr.AddressIpv4;\nimport com.pulumi.netaddr.AddressIpv4Args;\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 test = new RangeIpv4(\"test\", RangeIpv4Args.builder()\n            .keyPrefix(\"/test/ipv4/\")\n            .firstAddress(\"192.168.0.1\")\n            .lastAddress(\"192.168.0.254\")\n            .build());\n\n        var testAddressIpv4 = new AddressIpv4(\"testAddressIpv4\", AddressIpv4Args.builder()\n            .rangeId(test.rangeIpv4Id())\n            .name(\"test\")\n            .hardcodedAddress(\"192.168.0.5\")\n            .build());\n\n        var test2 = new AddressIpv4(\"test2\", AddressIpv4Args.builder()\n            .rangeId(test.rangeIpv4Id())\n            .name(\"test2\")\n            .build());\n\n        ctx.export(\"testAddr\", testAddressIpv4.address());\n        ctx.export(\"test2Addr\", test2.address());\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: netaddr:RangeIpv4\n    properties:\n      keyPrefix: /test/ipv4/\n      firstAddress: 192.168.0.1\n      lastAddress: 192.168.0.254\n  testAddressIpv4:\n    type: netaddr:AddressIpv4\n    name: test\n    properties:\n      rangeId: ${test.rangeIpv4Id}\n      name: test\n      hardcodedAddress: 192.168.0.5\n  test2:\n    type: netaddr:AddressIpv4\n    properties:\n      rangeId: ${test.rangeIpv4Id}\n      name: test2\noutputs:\n  testAddr: ${testAddressIpv4.address}\n  test2Addr: ${test2.address}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"address":{"type":"string","description":"The address that got assigned to the resource.\n"},"addressIpv4Id":{"type":"string","description":"The ID of this resource.\n"},"hardcodedAddress":{"type":"string","description":"An optional input to fixate the address to a specific value.\n"},"manageExisting":{"type":"boolean","description":"Whether the address is possibly present when the resource is created. Setting this to true allows you to import the existing address without error.\n"},"name":{"type":"string","description":"Name to associate with the address.\n"},"rangeId":{"type":"string","description":"Identifier of the address range the address is tied to.\n"},"retainOnDelete":{"type":"boolean"}},"type":"object","required":["address","addressIpv4Id","name","rangeId"],"inputProperties":{"addressIpv4Id":{"type":"string","description":"The ID of this resource.\n"},"hardcodedAddress":{"type":"string","description":"An optional input to fixate the address to a specific value.\n"},"manageExisting":{"type":"boolean","description":"Whether the address is possibly present when the resource is created. Setting this to true allows you to import the existing address without error.\n"},"name":{"type":"string","description":"Name to associate with the address.\n"},"rangeId":{"type":"string","description":"Identifier of the address range the address is tied to.\n"},"retainOnDelete":{"type":"boolean"}},"requiredInputs":["rangeId"],"stateInputs":{"description":"Input properties used for looking up and filtering AddressIpv4 resources.\n","properties":{"address":{"type":"string","description":"The address that got assigned to the resource.\n"},"addressIpv4Id":{"type":"string","description":"The ID of this resource.\n"},"hardcodedAddress":{"type":"string","description":"An optional input to fixate the address to a specific value.\n"},"manageExisting":{"type":"boolean","description":"Whether the address is possibly present when the resource is created. Setting this to true allows you to import the existing address without error.\n"},"name":{"type":"string","description":"Name to associate with the address.\n"},"rangeId":{"type":"string","description":"Identifier of the address range the address is tied to.\n"},"retainOnDelete":{"type":"boolean"}},"type":"object"}},"netaddr:index/addressIpv4V2:AddressIpv4V2":{"description":"Ipv4 address. Version 2 adds support for assignment from multiple ranges (useful if you get an extra range of ips from the same subnet later on).\n\n","properties":{"address":{"type":"string","description":"The address that got assigned to the resource.\n"},"addressIpv4V2Id":{"type":"string","description":"The ID of this resource.\n"},"foundInRange":{"type":"string","description":"Id of the range the address is in.\n"},"hardcodedAddress":{"type":"string","description":"An optional input to fixate the address to a specific value.\n"},"manageExisting":{"type":"boolean","description":"Whether the address is possibly present when the resource is created. Setting this to true allows you to import the existing address without error.\n"},"name":{"type":"string","description":"Name to associate with the address.\n"},"rangeIds":{"type":"array","items":{"type":"string"},"description":"Identifiers of the address ranges the address is tied to.\n"},"retainOnDelete":{"type":"boolean"}},"type":"object","required":["address","addressIpv4V2Id","foundInRange","name","rangeIds"],"inputProperties":{"addressIpv4V2Id":{"type":"string","description":"The ID of this resource.\n"},"hardcodedAddress":{"type":"string","description":"An optional input to fixate the address to a specific value.\n"},"manageExisting":{"type":"boolean","description":"Whether the address is possibly present when the resource is created. Setting this to true allows you to import the existing address without error.\n"},"name":{"type":"string","description":"Name to associate with the address.\n"},"rangeIds":{"type":"array","items":{"type":"string"},"description":"Identifiers of the address ranges the address is tied to.\n"},"retainOnDelete":{"type":"boolean"}},"requiredInputs":["rangeIds"],"stateInputs":{"description":"Input properties used for looking up and filtering AddressIpv4V2 resources.\n","properties":{"address":{"type":"string","description":"The address that got assigned to the resource.\n"},"addressIpv4V2Id":{"type":"string","description":"The ID of this resource.\n"},"foundInRange":{"type":"string","description":"Id of the range the address is in.\n"},"hardcodedAddress":{"type":"string","description":"An optional input to fixate the address to a specific value.\n"},"manageExisting":{"type":"boolean","description":"Whether the address is possibly present when the resource is created. Setting this to true allows you to import the existing address without error.\n"},"name":{"type":"string","description":"Name to associate with the address.\n"},"rangeIds":{"type":"array","items":{"type":"string"},"description":"Identifiers of the address ranges the address is tied to.\n"},"retainOnDelete":{"type":"boolean"}},"type":"object"}},"netaddr:index/addressMac:AddressMac":{"description":"Mac address.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as netaddr from \"@pulumi/netaddr\";\n\nconst test = new netaddr.RangeMac(\"test\", {\n    keyPrefix: \"/test/mac/\",\n    firstAddress: \"52:54:00:00:00:00\",\n    lastAddress: \"52:54:00:ff:ff:ff\",\n});\nconst testAddressMac = new netaddr.AddressMac(\"test\", {\n    rangeId: test.rangeMacId,\n    name: \"test\",\n    hardcodedAddress: \"52:54:00:00:00:02\",\n});\nconst test2 = new netaddr.AddressMac(\"test2\", {\n    rangeId: test.rangeMacId,\n    name: \"test2\",\n});\nexport const testAddr = testAddressMac.address;\nexport const test2Addr = test2.address;\n```\n```python\nimport pulumi\nimport pulumi_netaddr as netaddr\n\ntest = netaddr.RangeMac(\"test\",\n    key_prefix=\"/test/mac/\",\n    first_address=\"52:54:00:00:00:00\",\n    last_address=\"52:54:00:ff:ff:ff\")\ntest_address_mac = netaddr.AddressMac(\"test\",\n    range_id=test.range_mac_id,\n    name=\"test\",\n    hardcoded_address=\"52:54:00:00:00:02\")\ntest2 = netaddr.AddressMac(\"test2\",\n    range_id=test.range_mac_id,\n    name=\"test2\")\npulumi.export(\"testAddr\", test_address_mac.address)\npulumi.export(\"test2Addr\", test2.address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Netaddr = Pulumi.Netaddr;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Netaddr.RangeMac(\"test\", new()\n    {\n        KeyPrefix = \"/test/mac/\",\n        FirstAddress = \"52:54:00:00:00:00\",\n        LastAddress = \"52:54:00:ff:ff:ff\",\n    });\n\n    var testAddressMac = new Netaddr.AddressMac(\"test\", new()\n    {\n        RangeId = test.RangeMacId,\n        Name = \"test\",\n        HardcodedAddress = \"52:54:00:00:00:02\",\n    });\n\n    var test2 = new Netaddr.AddressMac(\"test2\", new()\n    {\n        RangeId = test.RangeMacId,\n        Name = \"test2\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"testAddr\"] = testAddressMac.Address,\n        [\"test2Addr\"] = test2.Address,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/netaddr/netaddr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := netaddr.NewRangeMac(ctx, \"test\", \u0026netaddr.RangeMacArgs{\n\t\t\tKeyPrefix:    pulumi.String(\"/test/mac/\"),\n\t\t\tFirstAddress: pulumi.String(\"52:54:00:00:00:00\"),\n\t\t\tLastAddress:  pulumi.String(\"52:54:00:ff:ff:ff\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestAddressMac, err := netaddr.NewAddressMac(ctx, \"test\", \u0026netaddr.AddressMacArgs{\n\t\t\tRangeId:          test.RangeMacId,\n\t\t\tName:             pulumi.String(\"test\"),\n\t\t\tHardcodedAddress: pulumi.String(\"52:54:00:00:00:02\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest2, err := netaddr.NewAddressMac(ctx, \"test2\", \u0026netaddr.AddressMacArgs{\n\t\t\tRangeId: test.RangeMacId,\n\t\t\tName:    pulumi.String(\"test2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"testAddr\", testAddressMac.Address)\n\t\tctx.Export(\"test2Addr\", test2.Address)\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.netaddr.RangeMac;\nimport com.pulumi.netaddr.RangeMacArgs;\nimport com.pulumi.netaddr.AddressMac;\nimport com.pulumi.netaddr.AddressMacArgs;\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 test = new RangeMac(\"test\", RangeMacArgs.builder()\n            .keyPrefix(\"/test/mac/\")\n            .firstAddress(\"52:54:00:00:00:00\")\n            .lastAddress(\"52:54:00:ff:ff:ff\")\n            .build());\n\n        var testAddressMac = new AddressMac(\"testAddressMac\", AddressMacArgs.builder()\n            .rangeId(test.rangeMacId())\n            .name(\"test\")\n            .hardcodedAddress(\"52:54:00:00:00:02\")\n            .build());\n\n        var test2 = new AddressMac(\"test2\", AddressMacArgs.builder()\n            .rangeId(test.rangeMacId())\n            .name(\"test2\")\n            .build());\n\n        ctx.export(\"testAddr\", testAddressMac.address());\n        ctx.export(\"test2Addr\", test2.address());\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: netaddr:RangeMac\n    properties:\n      keyPrefix: /test/mac/\n      firstAddress: 52:54:00:00:00:00\n      lastAddress: 52:54:00:ff:ff:ff\n  testAddressMac:\n    type: netaddr:AddressMac\n    name: test\n    properties:\n      rangeId: ${test.rangeMacId}\n      name: test\n      hardcodedAddress: 52:54:00:00:00:02\n  test2:\n    type: netaddr:AddressMac\n    properties:\n      rangeId: ${test.rangeMacId}\n      name: test2\noutputs:\n  testAddr: ${testAddressMac.address}\n  test2Addr: ${test2.address}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"address":{"type":"string","description":"The address that got assigned to the resource.\n"},"addressMacId":{"type":"string","description":"The ID of this resource.\n"},"hardcodedAddress":{"type":"string","description":"An optional input to fixate the address to a specific value.\n"},"manageExisting":{"type":"boolean","description":"Whether the address is possibly present when the resource is created. Setting this to true allows you to import the existing address without error.\n"},"name":{"type":"string","description":"Name to associate with the address.\n"},"rangeId":{"type":"string","description":"Identifier of the address range the address is tied to.\n"},"retainOnDelete":{"type":"boolean"}},"type":"object","required":["address","addressMacId","name","rangeId"],"inputProperties":{"addressMacId":{"type":"string","description":"The ID of this resource.\n"},"hardcodedAddress":{"type":"string","description":"An optional input to fixate the address to a specific value.\n"},"manageExisting":{"type":"boolean","description":"Whether the address is possibly present when the resource is created. Setting this to true allows you to import the existing address without error.\n"},"name":{"type":"string","description":"Name to associate with the address.\n"},"rangeId":{"type":"string","description":"Identifier of the address range the address is tied to.\n"},"retainOnDelete":{"type":"boolean"}},"requiredInputs":["rangeId"],"stateInputs":{"description":"Input properties used for looking up and filtering AddressMac resources.\n","properties":{"address":{"type":"string","description":"The address that got assigned to the resource.\n"},"addressMacId":{"type":"string","description":"The ID of this resource.\n"},"hardcodedAddress":{"type":"string","description":"An optional input to fixate the address to a specific value.\n"},"manageExisting":{"type":"boolean","description":"Whether the address is possibly present when the resource is created. Setting this to true allows you to import the existing address without error.\n"},"name":{"type":"string","description":"Name to associate with the address.\n"},"rangeId":{"type":"string","description":"Identifier of the address range the address is tied to.\n"},"retainOnDelete":{"type":"boolean"}},"type":"object"}},"netaddr:index/rangeIpv4:RangeIpv4":{"description":"Address range to create ipv4 addresses on.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as netaddr from \"@pulumi/netaddr\";\n\nconst test = new netaddr.RangeIpv4(\"test\", {\n    keyPrefix: \"/test/ipv4/\",\n    firstAddress: \"192.168.0.1\",\n    lastAddress: \"192.168.0.254\",\n});\n```\n```python\nimport pulumi\nimport pulumi_netaddr as netaddr\n\ntest = netaddr.RangeIpv4(\"test\",\n    key_prefix=\"/test/ipv4/\",\n    first_address=\"192.168.0.1\",\n    last_address=\"192.168.0.254\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Netaddr = Pulumi.Netaddr;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Netaddr.RangeIpv4(\"test\", new()\n    {\n        KeyPrefix = \"/test/ipv4/\",\n        FirstAddress = \"192.168.0.1\",\n        LastAddress = \"192.168.0.254\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/netaddr/netaddr\"\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 := netaddr.NewRangeIpv4(ctx, \"test\", \u0026netaddr.RangeIpv4Args{\n\t\t\tKeyPrefix:    pulumi.String(\"/test/ipv4/\"),\n\t\t\tFirstAddress: pulumi.String(\"192.168.0.1\"),\n\t\t\tLastAddress:  pulumi.String(\"192.168.0.254\"),\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.netaddr.RangeIpv4;\nimport com.pulumi.netaddr.RangeIpv4Args;\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 test = new RangeIpv4(\"test\", RangeIpv4Args.builder()\n            .keyPrefix(\"/test/ipv4/\")\n            .firstAddress(\"192.168.0.1\")\n            .lastAddress(\"192.168.0.254\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: netaddr:RangeIpv4\n    properties:\n      keyPrefix: /test/ipv4/\n      firstAddress: 192.168.0.1\n      lastAddress: 192.168.0.254\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"firstAddress":{"type":"string","description":"First assignable address in the range.\n"},"keyPrefix":{"type":"string","description":"Etcd key prefix for all the keys related to the range.\n"},"lastAddress":{"type":"string","description":"Last assignable address in the range.\n"},"rangeIpv4Id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["firstAddress","keyPrefix","lastAddress","rangeIpv4Id"],"inputProperties":{"firstAddress":{"type":"string","description":"First assignable address in the range.\n"},"keyPrefix":{"type":"string","description":"Etcd key prefix for all the keys related to the range.\n"},"lastAddress":{"type":"string","description":"Last assignable address in the range.\n"},"rangeIpv4Id":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["firstAddress","keyPrefix","lastAddress"],"stateInputs":{"description":"Input properties used for looking up and filtering RangeIpv4 resources.\n","properties":{"firstAddress":{"type":"string","description":"First assignable address in the range.\n"},"keyPrefix":{"type":"string","description":"Etcd key prefix for all the keys related to the range.\n"},"lastAddress":{"type":"string","description":"Last assignable address in the range.\n"},"rangeIpv4Id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"netaddr:index/rangeMac:RangeMac":{"description":"Address range to create mac addresses on.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as netaddr from \"@pulumi/netaddr\";\n\nconst test = new netaddr.RangeMac(\"test\", {\n    keyPrefix: \"/test/mac/\",\n    firstAddress: \"52:54:00:00:00:00\",\n    lastAddress: \"52:54:00:ff:ff:ff\",\n});\n```\n```python\nimport pulumi\nimport pulumi_netaddr as netaddr\n\ntest = netaddr.RangeMac(\"test\",\n    key_prefix=\"/test/mac/\",\n    first_address=\"52:54:00:00:00:00\",\n    last_address=\"52:54:00:ff:ff:ff\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Netaddr = Pulumi.Netaddr;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Netaddr.RangeMac(\"test\", new()\n    {\n        KeyPrefix = \"/test/mac/\",\n        FirstAddress = \"52:54:00:00:00:00\",\n        LastAddress = \"52:54:00:ff:ff:ff\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/netaddr/netaddr\"\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 := netaddr.NewRangeMac(ctx, \"test\", \u0026netaddr.RangeMacArgs{\n\t\t\tKeyPrefix:    pulumi.String(\"/test/mac/\"),\n\t\t\tFirstAddress: pulumi.String(\"52:54:00:00:00:00\"),\n\t\t\tLastAddress:  pulumi.String(\"52:54:00:ff:ff:ff\"),\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.netaddr.RangeMac;\nimport com.pulumi.netaddr.RangeMacArgs;\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 test = new RangeMac(\"test\", RangeMacArgs.builder()\n            .keyPrefix(\"/test/mac/\")\n            .firstAddress(\"52:54:00:00:00:00\")\n            .lastAddress(\"52:54:00:ff:ff:ff\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: netaddr:RangeMac\n    properties:\n      keyPrefix: /test/mac/\n      firstAddress: 52:54:00:00:00:00\n      lastAddress: 52:54:00:ff:ff:ff\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"firstAddress":{"type":"string","description":"First assignable address in the range.\n"},"keyPrefix":{"type":"string","description":"Etcd key prefix for all the keys related to the range.\n"},"lastAddress":{"type":"string","description":"Last assignable address in the range.\n"},"rangeMacId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["firstAddress","keyPrefix","lastAddress","rangeMacId"],"inputProperties":{"firstAddress":{"type":"string","description":"First assignable address in the range.\n"},"keyPrefix":{"type":"string","description":"Etcd key prefix for all the keys related to the range.\n"},"lastAddress":{"type":"string","description":"Last assignable address in the range.\n"},"rangeMacId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["firstAddress","keyPrefix","lastAddress"],"stateInputs":{"description":"Input properties used for looking up and filtering RangeMac resources.\n","properties":{"firstAddress":{"type":"string","description":"First assignable address in the range.\n"},"keyPrefix":{"type":"string","description":"Etcd key prefix for all the keys related to the range.\n"},"lastAddress":{"type":"string","description":"Last assignable address in the range.\n"},"rangeMacId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}}},"functions":{"netaddr:index/getAddressIpv4:getAddressIpv4":{"description":"Retrieves data on an existing ipv4 address.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as netaddr from \"@pulumi/netaddr\";\n\nconst test = netaddr.getRangeIpv4({\n    keyPrefix: \"/test/ipv4/\",\n});\nconst testGetAddressIpv4 = test.then(test =\u003e netaddr.getAddressIpv4({\n    rangeId: test.id,\n    name: \"test\",\n}));\nexport const dataIpv4Test = testGetAddressIpv4.then(testGetAddressIpv4 =\u003e testGetAddressIpv4.address);\n```\n```python\nimport pulumi\nimport pulumi_netaddr as netaddr\n\ntest = netaddr.get_range_ipv4(key_prefix=\"/test/ipv4/\")\ntest_get_address_ipv4 = netaddr.get_address_ipv4(range_id=test.id,\n    name=\"test\")\npulumi.export(\"dataIpv4Test\", test_get_address_ipv4.address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Netaddr = Pulumi.Netaddr;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Netaddr.GetRangeIpv4.Invoke(new()\n    {\n        KeyPrefix = \"/test/ipv4/\",\n    });\n\n    var testGetAddressIpv4 = Netaddr.GetAddressIpv4.Invoke(new()\n    {\n        RangeId = test.Apply(getRangeIpv4Result =\u003e getRangeIpv4Result.Id),\n        Name = \"test\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dataIpv4Test\"] = testGetAddressIpv4.Apply(getAddressIpv4Result =\u003e getAddressIpv4Result.Address),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/netaddr/netaddr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := netaddr.LookupRangeIpv4(ctx, \u0026netaddr.LookupRangeIpv4Args{\n\t\t\tKeyPrefix: \"/test/ipv4/\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestGetAddressIpv4, err := netaddr.LookupAddressIpv4(ctx, \u0026netaddr.LookupAddressIpv4Args{\n\t\t\tRangeId: test.Id,\n\t\t\tName:    \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataIpv4Test\", testGetAddressIpv4.Address)\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.netaddr.NetaddrFunctions;\nimport com.pulumi.netaddr.inputs.GetRangeIpv4Args;\nimport com.pulumi.netaddr.inputs.GetAddressIpv4Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = NetaddrFunctions.getRangeIpv4(GetRangeIpv4Args.builder()\n            .keyPrefix(\"/test/ipv4/\")\n            .build());\n\n        final var testGetAddressIpv4 = NetaddrFunctions.getAddressIpv4(GetAddressIpv4Args.builder()\n            .rangeId(test.id())\n            .name(\"test\")\n            .build());\n\n        ctx.export(\"dataIpv4Test\", testGetAddressIpv4.address());\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: netaddr:getRangeIpv4\n      arguments:\n        keyPrefix: /test/ipv4/\n  testGetAddressIpv4:\n    fn::invoke:\n      function: netaddr:getAddressIpv4\n      arguments:\n        rangeId: ${test.id}\n        name: test\noutputs:\n  dataIpv4Test: ${testGetAddressIpv4.address}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAddressIpv4.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Name of the address.\n"},"rangeId":{"type":"string","description":"Identifier of the address range the address is tied to.\n"}},"type":"object","required":["name","rangeId"]},"outputs":{"description":"A collection of values returned by getAddressIpv4.\n","properties":{"address":{"description":"The address that got assigned to the resource.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"Name of the address.\n","type":"string"},"rangeId":{"description":"Identifier of the address range the address is tied to.\n","type":"string"}},"required":["address","id","name","rangeId"],"type":"object"}},"netaddr:index/getAddressIpv4V2:getAddressIpv4V2":{"description":"Retrieves data on an existing ipv4 address. Version 2 adds support for an ip address assigned from multiple ranges (useful if you get an extra range of ips from the same subnet later on).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as netaddr from \"@pulumi/netaddr\";\n\nconst range1 = netaddr.getRangeIpv4({\n    keyPrefix: \"/test/ipv4/\",\n});\nconst range2 = netaddr.getRangeIpv4({\n    keyPrefix: \"/test/ipv4-extras/\",\n});\nconst test = Promise.all([range1, range2]).then(([range1, range2]) =\u003e netaddr.getAddressIpv4V2({\n    rangeIds: [\n        range1.id,\n        range2.id,\n    ],\n    name: \"test\",\n}));\nexport const dataIpv4Test = testNetaddrAddressIpv4.address;\n```\n```python\nimport pulumi\nimport pulumi_netaddr as netaddr\n\nrange1 = netaddr.get_range_ipv4(key_prefix=\"/test/ipv4/\")\nrange2 = netaddr.get_range_ipv4(key_prefix=\"/test/ipv4-extras/\")\ntest = netaddr.get_address_ipv4_v2(range_ids=[\n        range1.id,\n        range2.id,\n    ],\n    name=\"test\")\npulumi.export(\"dataIpv4Test\", test_netaddr_address_ipv4[\"address\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Netaddr = Pulumi.Netaddr;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var range1 = Netaddr.GetRangeIpv4.Invoke(new()\n    {\n        KeyPrefix = \"/test/ipv4/\",\n    });\n\n    var range2 = Netaddr.GetRangeIpv4.Invoke(new()\n    {\n        KeyPrefix = \"/test/ipv4-extras/\",\n    });\n\n    var test = Netaddr.GetAddressIpv4V2.Invoke(new()\n    {\n        RangeIds = new[]\n        {\n            range1.Apply(getRangeIpv4Result =\u003e getRangeIpv4Result.Id),\n            range2.Apply(getRangeIpv4Result =\u003e getRangeIpv4Result.Id),\n        },\n        Name = \"test\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dataIpv4Test\"] = testNetaddrAddressIpv4.Address,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/netaddr/netaddr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nrange1, err := netaddr.LookupRangeIpv4(ctx, \u0026netaddr.LookupRangeIpv4Args{\nKeyPrefix: \"/test/ipv4/\",\n}, nil);\nif err != nil {\nreturn err\n}\nrange2, err := netaddr.LookupRangeIpv4(ctx, \u0026netaddr.LookupRangeIpv4Args{\nKeyPrefix: \"/test/ipv4-extras/\",\n}, nil);\nif err != nil {\nreturn err\n}\n_, err = netaddr.LookupAddressIpv4V2(ctx, \u0026netaddr.LookupAddressIpv4V2Args{\nRangeIds: interface{}{\nrange1.Id,\nrange2.Id,\n},\nName: \"test\",\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"dataIpv4Test\", testNetaddrAddressIpv4.Address)\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.netaddr.NetaddrFunctions;\nimport com.pulumi.netaddr.inputs.GetRangeIpv4Args;\nimport com.pulumi.netaddr.inputs.GetAddressIpv4V2Args;\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 range1 = NetaddrFunctions.getRangeIpv4(GetRangeIpv4Args.builder()\n            .keyPrefix(\"/test/ipv4/\")\n            .build());\n\n        final var range2 = NetaddrFunctions.getRangeIpv4(GetRangeIpv4Args.builder()\n            .keyPrefix(\"/test/ipv4-extras/\")\n            .build());\n\n        final var test = NetaddrFunctions.getAddressIpv4V2(GetAddressIpv4V2Args.builder()\n            .rangeIds(            \n                range1.id(),\n                range2.id())\n            .name(\"test\")\n            .build());\n\n        ctx.export(\"dataIpv4Test\", testNetaddrAddressIpv4.address());\n    }\n}\n```\n```yaml\nvariables:\n  range1:\n    fn::invoke:\n      function: netaddr:getRangeIpv4\n      arguments:\n        keyPrefix: /test/ipv4/\n  range2:\n    fn::invoke:\n      function: netaddr:getRangeIpv4\n      arguments:\n        keyPrefix: /test/ipv4-extras/\n  test:\n    fn::invoke:\n      function: netaddr:getAddressIpv4V2\n      arguments:\n        rangeIds:\n          - ${range1.id}\n          - ${range2.id}\n        name: test\noutputs:\n  dataIpv4Test: ${testNetaddrAddressIpv4.address}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAddressIpv4V2.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Name of the address.\n"},"rangeIds":{"type":"array","items":{"type":"string"},"description":"Identifiers of the address ranges the address is tied to.\n"}},"type":"object","required":["name","rangeIds"]},"outputs":{"description":"A collection of values returned by getAddressIpv4V2.\n","properties":{"address":{"description":"The address that got assigned to the resource.\n","type":"string"},"foundInRange":{"description":"Id of the range the address is in.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"Name of the address.\n","type":"string"},"rangeIds":{"description":"Identifiers of the address ranges the address is tied to.\n","items":{"type":"string"},"type":"array"}},"required":["address","foundInRange","id","name","rangeIds"],"type":"object"}},"netaddr:index/getAddressListIpv4:getAddressListIpv4":{"description":"Retrieves all ipv4 addresses in a range.\n","inputs":{"description":"A collection of arguments for invoking getAddressListIpv4.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"rangeId":{"type":"string","description":"Identifier of the address range to get the addresses from.\n"}},"type":"object","required":["rangeId"]},"outputs":{"description":"A collection of values returned by getAddressListIpv4.\n","properties":{"addresses":{"description":"List of addresses in the range.\n","items":{"$ref":"#/types/netaddr:index%2FgetAddressListIpv4Address:getAddressListIpv4Address"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"},"rangeId":{"description":"Identifier of the address range to get the addresses from.\n","type":"string"}},"required":["addresses","id","rangeId"],"type":"object"}},"netaddr:index/getAddressListMac:getAddressListMac":{"description":"Retrieves all mac addresses in a range.\n","inputs":{"description":"A collection of arguments for invoking getAddressListMac.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"rangeId":{"type":"string","description":"Identifier of the address range to get the addresses from.\n"}},"type":"object","required":["rangeId"]},"outputs":{"description":"A collection of values returned by getAddressListMac.\n","properties":{"addresses":{"description":"List of addresses in the range.\n","items":{"$ref":"#/types/netaddr:index%2FgetAddressListMacAddress:getAddressListMacAddress"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"},"rangeId":{"description":"Identifier of the address range to get the addresses from.\n","type":"string"}},"required":["addresses","id","rangeId"],"type":"object"}},"netaddr:index/getAddressMac:getAddressMac":{"description":"Retrieves data on an existing mac address.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as netaddr from \"@pulumi/netaddr\";\n\nconst test = netaddr.getRangeMac({\n    keyPrefix: \"/test/mac/\",\n});\nconst testGetAddressMac = test.then(test =\u003e netaddr.getAddressMac({\n    rangeId: test.id,\n    name: \"test\",\n}));\nexport const dataMacTest = testGetAddressMac.then(testGetAddressMac =\u003e testGetAddressMac.address);\n```\n```python\nimport pulumi\nimport pulumi_netaddr as netaddr\n\ntest = netaddr.get_range_mac(key_prefix=\"/test/mac/\")\ntest_get_address_mac = netaddr.get_address_mac(range_id=test.id,\n    name=\"test\")\npulumi.export(\"dataMacTest\", test_get_address_mac.address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Netaddr = Pulumi.Netaddr;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Netaddr.GetRangeMac.Invoke(new()\n    {\n        KeyPrefix = \"/test/mac/\",\n    });\n\n    var testGetAddressMac = Netaddr.GetAddressMac.Invoke(new()\n    {\n        RangeId = test.Apply(getRangeMacResult =\u003e getRangeMacResult.Id),\n        Name = \"test\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dataMacTest\"] = testGetAddressMac.Apply(getAddressMacResult =\u003e getAddressMacResult.Address),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/netaddr/netaddr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := netaddr.LookupRangeMac(ctx, \u0026netaddr.LookupRangeMacArgs{\n\t\t\tKeyPrefix: \"/test/mac/\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestGetAddressMac, err := netaddr.LookupAddressMac(ctx, \u0026netaddr.LookupAddressMacArgs{\n\t\t\tRangeId: test.Id,\n\t\t\tName:    \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataMacTest\", testGetAddressMac.Address)\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.netaddr.NetaddrFunctions;\nimport com.pulumi.netaddr.inputs.GetRangeMacArgs;\nimport com.pulumi.netaddr.inputs.GetAddressMacArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = NetaddrFunctions.getRangeMac(GetRangeMacArgs.builder()\n            .keyPrefix(\"/test/mac/\")\n            .build());\n\n        final var testGetAddressMac = NetaddrFunctions.getAddressMac(GetAddressMacArgs.builder()\n            .rangeId(test.id())\n            .name(\"test\")\n            .build());\n\n        ctx.export(\"dataMacTest\", testGetAddressMac.address());\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: netaddr:getRangeMac\n      arguments:\n        keyPrefix: /test/mac/\n  testGetAddressMac:\n    fn::invoke:\n      function: netaddr:getAddressMac\n      arguments:\n        rangeId: ${test.id}\n        name: test\noutputs:\n  dataMacTest: ${testGetAddressMac.address}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAddressMac.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Name of the address.\n"},"rangeId":{"type":"string","description":"Identifier of the address range the address is tied to.\n"}},"type":"object","required":["name","rangeId"]},"outputs":{"description":"A collection of values returned by getAddressMac.\n","properties":{"address":{"description":"The address that got assigned to the resource.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"Name of the address.\n","type":"string"},"rangeId":{"description":"Identifier of the address range the address is tied to.\n","type":"string"}},"required":["address","id","name","rangeId"],"type":"object"}},"netaddr:index/getRangeIpv4:getRangeIpv4":{"description":"Retrieves data on an existing ipv4 address range.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as netaddr from \"@pulumi/netaddr\";\n\nconst test = netaddr.getRangeIpv4({\n    keyPrefix: \"/test/ipv4/\",\n});\nexport const dataRangeIpv4Test = Promise.all([test, test]).then(([test, test1]) =\u003e `first_address: ${test.firstAddress}, last_address: ${test1.lastAddress}`);\n```\n```python\nimport pulumi\nimport pulumi_netaddr as netaddr\n\ntest = netaddr.get_range_ipv4(key_prefix=\"/test/ipv4/\")\npulumi.export(\"dataRangeIpv4Test\", f\"first_address: {test.first_address}, last_address: {test.last_address}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Netaddr = Pulumi.Netaddr;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Netaddr.GetRangeIpv4.Invoke(new()\n    {\n        KeyPrefix = \"/test/ipv4/\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dataRangeIpv4Test\"] = Output.Tuple(test, test).Apply(values =\u003e\n        {\n            var test = values.Item1;\n            var test1 = values.Item2;\n            return $\"first_address: {test.Apply(getRangeIpv4Result =\u003e getRangeIpv4Result.FirstAddress)}, last_address: {test1.LastAddress}\";\n        }),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/netaddr/netaddr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := netaddr.LookupRangeIpv4(ctx, \u0026netaddr.LookupRangeIpv4Args{\n\t\t\tKeyPrefix: \"/test/ipv4/\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataRangeIpv4Test\", pulumi.Sprintf(\"first_address: %v, last_address: %v\", test.FirstAddress, test.LastAddress))\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.netaddr.NetaddrFunctions;\nimport com.pulumi.netaddr.inputs.GetRangeIpv4Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = NetaddrFunctions.getRangeIpv4(GetRangeIpv4Args.builder()\n            .keyPrefix(\"/test/ipv4/\")\n            .build());\n\n        ctx.export(\"dataRangeIpv4Test\", String.format(\"first_address: %s, last_address: %s\", test.firstAddress(),test.lastAddress()));\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: netaddr:getRangeIpv4\n      arguments:\n        keyPrefix: /test/ipv4/\noutputs:\n  dataRangeIpv4Test: 'first_address: ${test.firstAddress}, last_address: ${test.lastAddress}'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRangeIpv4.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"keyPrefix":{"type":"string","description":"Etcd key prefix for address range.\n"}},"type":"object","required":["keyPrefix"]},"outputs":{"description":"A collection of values returned by getRangeIpv4.\n","properties":{"firstAddress":{"description":"First assignable address in the range.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"keyPrefix":{"description":"Etcd key prefix for address range.\n","type":"string"},"lastAddress":{"description":"Last assignable address in the range.\n","type":"string"}},"required":["firstAddress","id","keyPrefix","lastAddress"],"type":"object"}},"netaddr:index/getRangeKeyspaceIpv4:getRangeKeyspaceIpv4":{"description":"Retrieves the lower level keyspace details of an ipv4 addresses space. See github repo README for details about the keyspace\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as netaddr from \"@pulumi/netaddr\";\n\nconst test = netaddr.getRangeIpv4({\n    keyPrefix: \"/test/ipv4/\",\n});\nconst testGetRangeKeyspaceIpv4 = test.then(test =\u003e netaddr.getRangeKeyspaceIpv4({\n    rangeId: test.id,\n}));\nexport const firstAddress = testGetRangeKeyspaceIpv4.then(testGetRangeKeyspaceIpv4 =\u003e testGetRangeKeyspaceIpv4.firstAddress);\nexport const lastAddress = testGetRangeKeyspaceIpv4.then(testGetRangeKeyspaceIpv4 =\u003e testGetRangeKeyspaceIpv4.lastAddress);\nexport const nextAddress = testGetRangeKeyspaceIpv4.then(testGetRangeKeyspaceIpv4 =\u003e testGetRangeKeyspaceIpv4.nextAddress);\nexport const addresses = testGetRangeKeyspaceIpv4.then(testGetRangeKeyspaceIpv4 =\u003e testGetRangeKeyspaceIpv4.addresses);\nexport const generatedAddresses = testGetRangeKeyspaceIpv4.then(testGetRangeKeyspaceIpv4 =\u003e testGetRangeKeyspaceIpv4.generatedAddresses);\nexport const hardcodedAddresses = testGetRangeKeyspaceIpv4.then(testGetRangeKeyspaceIpv4 =\u003e testGetRangeKeyspaceIpv4.hardcodedAddresses);\nexport const deletedAddresses = testGetRangeKeyspaceIpv4.then(testGetRangeKeyspaceIpv4 =\u003e testGetRangeKeyspaceIpv4.deletedAddresses);\n```\n```python\nimport pulumi\nimport pulumi_netaddr as netaddr\n\ntest = netaddr.get_range_ipv4(key_prefix=\"/test/ipv4/\")\ntest_get_range_keyspace_ipv4 = netaddr.get_range_keyspace_ipv4(range_id=test.id)\npulumi.export(\"firstAddress\", test_get_range_keyspace_ipv4.first_address)\npulumi.export(\"lastAddress\", test_get_range_keyspace_ipv4.last_address)\npulumi.export(\"nextAddress\", test_get_range_keyspace_ipv4.next_address)\npulumi.export(\"addresses\", test_get_range_keyspace_ipv4.addresses)\npulumi.export(\"generatedAddresses\", test_get_range_keyspace_ipv4.generated_addresses)\npulumi.export(\"hardcodedAddresses\", test_get_range_keyspace_ipv4.hardcoded_addresses)\npulumi.export(\"deletedAddresses\", test_get_range_keyspace_ipv4.deleted_addresses)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Netaddr = Pulumi.Netaddr;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Netaddr.GetRangeIpv4.Invoke(new()\n    {\n        KeyPrefix = \"/test/ipv4/\",\n    });\n\n    var testGetRangeKeyspaceIpv4 = Netaddr.GetRangeKeyspaceIpv4.Invoke(new()\n    {\n        RangeId = test.Apply(getRangeIpv4Result =\u003e getRangeIpv4Result.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstAddress\"] = testGetRangeKeyspaceIpv4.Apply(getRangeKeyspaceIpv4Result =\u003e getRangeKeyspaceIpv4Result.FirstAddress),\n        [\"lastAddress\"] = testGetRangeKeyspaceIpv4.Apply(getRangeKeyspaceIpv4Result =\u003e getRangeKeyspaceIpv4Result.LastAddress),\n        [\"nextAddress\"] = testGetRangeKeyspaceIpv4.Apply(getRangeKeyspaceIpv4Result =\u003e getRangeKeyspaceIpv4Result.NextAddress),\n        [\"addresses\"] = testGetRangeKeyspaceIpv4.Apply(getRangeKeyspaceIpv4Result =\u003e getRangeKeyspaceIpv4Result.Addresses),\n        [\"generatedAddresses\"] = testGetRangeKeyspaceIpv4.Apply(getRangeKeyspaceIpv4Result =\u003e getRangeKeyspaceIpv4Result.GeneratedAddresses),\n        [\"hardcodedAddresses\"] = testGetRangeKeyspaceIpv4.Apply(getRangeKeyspaceIpv4Result =\u003e getRangeKeyspaceIpv4Result.HardcodedAddresses),\n        [\"deletedAddresses\"] = testGetRangeKeyspaceIpv4.Apply(getRangeKeyspaceIpv4Result =\u003e getRangeKeyspaceIpv4Result.DeletedAddresses),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/netaddr/netaddr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := netaddr.LookupRangeIpv4(ctx, \u0026netaddr.LookupRangeIpv4Args{\n\t\t\tKeyPrefix: \"/test/ipv4/\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestGetRangeKeyspaceIpv4, err := netaddr.GetRangeKeyspaceIpv4(ctx, \u0026netaddr.GetRangeKeyspaceIpv4Args{\n\t\t\tRangeId: test.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstAddress\", testGetRangeKeyspaceIpv4.FirstAddress)\n\t\tctx.Export(\"lastAddress\", testGetRangeKeyspaceIpv4.LastAddress)\n\t\tctx.Export(\"nextAddress\", testGetRangeKeyspaceIpv4.NextAddress)\n\t\tctx.Export(\"addresses\", testGetRangeKeyspaceIpv4.Addresses)\n\t\tctx.Export(\"generatedAddresses\", testGetRangeKeyspaceIpv4.GeneratedAddresses)\n\t\tctx.Export(\"hardcodedAddresses\", testGetRangeKeyspaceIpv4.HardcodedAddresses)\n\t\tctx.Export(\"deletedAddresses\", testGetRangeKeyspaceIpv4.DeletedAddresses)\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.netaddr.NetaddrFunctions;\nimport com.pulumi.netaddr.inputs.GetRangeIpv4Args;\nimport com.pulumi.netaddr.inputs.GetRangeKeyspaceIpv4Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = NetaddrFunctions.getRangeIpv4(GetRangeIpv4Args.builder()\n            .keyPrefix(\"/test/ipv4/\")\n            .build());\n\n        final var testGetRangeKeyspaceIpv4 = NetaddrFunctions.getRangeKeyspaceIpv4(GetRangeKeyspaceIpv4Args.builder()\n            .rangeId(test.id())\n            .build());\n\n        ctx.export(\"firstAddress\", testGetRangeKeyspaceIpv4.firstAddress());\n        ctx.export(\"lastAddress\", testGetRangeKeyspaceIpv4.lastAddress());\n        ctx.export(\"nextAddress\", testGetRangeKeyspaceIpv4.nextAddress());\n        ctx.export(\"addresses\", testGetRangeKeyspaceIpv4.addresses());\n        ctx.export(\"generatedAddresses\", testGetRangeKeyspaceIpv4.generatedAddresses());\n        ctx.export(\"hardcodedAddresses\", testGetRangeKeyspaceIpv4.hardcodedAddresses());\n        ctx.export(\"deletedAddresses\", testGetRangeKeyspaceIpv4.deletedAddresses());\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: netaddr:getRangeIpv4\n      arguments:\n        keyPrefix: /test/ipv4/\n  testGetRangeKeyspaceIpv4:\n    fn::invoke:\n      function: netaddr:getRangeKeyspaceIpv4\n      arguments:\n        rangeId: ${test.id}\noutputs:\n  firstAddress: ${testGetRangeKeyspaceIpv4.firstAddress}\n  lastAddress: ${testGetRangeKeyspaceIpv4.lastAddress}\n  nextAddress: ${testGetRangeKeyspaceIpv4.nextAddress}\n  addresses: ${testGetRangeKeyspaceIpv4.addresses}\n  generatedAddresses: ${testGetRangeKeyspaceIpv4.generatedAddresses}\n  hardcodedAddresses: ${testGetRangeKeyspaceIpv4.hardcodedAddresses}\n  deletedAddresses: ${testGetRangeKeyspaceIpv4.deletedAddresses}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRangeKeyspaceIpv4.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"rangeId":{"type":"string","description":"Identifier of the address range to get the key space from.\n"}},"type":"object","required":["rangeId"]},"outputs":{"description":"A collection of values returned by getRangeKeyspaceIpv4.\n","properties":{"addresses":{"description":"List of all addresses in the range.\n","items":{"$ref":"#/types/netaddr:index%2FgetRangeKeyspaceIpv4Address:getRangeKeyspaceIpv4Address"},"type":"array"},"deletedAddresses":{"description":"List of all addresses that were deleted and are available to be reclaimed in the range.\n","items":{"$ref":"#/types/netaddr:index%2FgetRangeKeyspaceIpv4DeletedAddress:getRangeKeyspaceIpv4DeletedAddress"},"type":"array"},"firstAddress":{"description":"First assignable address in the range.\n","type":"string"},"generatedAddresses":{"description":"List of all addresses that are flagged as generated in the range.\n","items":{"$ref":"#/types/netaddr:index%2FgetRangeKeyspaceIpv4GeneratedAddress:getRangeKeyspaceIpv4GeneratedAddress"},"type":"array"},"hardcodedAddresses":{"description":"List of all addresses that are flagged as hardcoded in the range.\n","items":{"$ref":"#/types/netaddr:index%2FgetRangeKeyspaceIpv4HardcodedAddress:getRangeKeyspaceIpv4HardcodedAddress"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"},"lastAddress":{"description":"Last assignable address in the range.\n","type":"string"},"nextAddress":{"description":"Next assignable new address in the range.\n","type":"string"},"rangeId":{"description":"Identifier of the address range to get the key space from.\n","type":"string"}},"required":["addresses","deletedAddresses","firstAddress","generatedAddresses","hardcodedAddresses","id","lastAddress","nextAddress","rangeId"],"type":"object"}},"netaddr:index/getRangeKeyspaceMac:getRangeKeyspaceMac":{"description":"Retrieves the lower level keyspace details of an mac addresses space. See github repo README for details about the keyspace\n","inputs":{"description":"A collection of arguments for invoking getRangeKeyspaceMac.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"rangeId":{"type":"string","description":"Identifier of the address range to get the key space from.\n"}},"type":"object","required":["rangeId"]},"outputs":{"description":"A collection of values returned by getRangeKeyspaceMac.\n","properties":{"addresses":{"description":"List of all addresses in the range.\n","items":{"$ref":"#/types/netaddr:index%2FgetRangeKeyspaceMacAddress:getRangeKeyspaceMacAddress"},"type":"array"},"deletedAddresses":{"description":"List of all addresses that were deleted and are available to be reclaimed in the range.\n","items":{"$ref":"#/types/netaddr:index%2FgetRangeKeyspaceMacDeletedAddress:getRangeKeyspaceMacDeletedAddress"},"type":"array"},"firstAddress":{"description":"First assignable address in the range.\n","type":"string"},"generatedAddresses":{"description":"List of all addresses that are flagged as generated in the range.\n","items":{"$ref":"#/types/netaddr:index%2FgetRangeKeyspaceMacGeneratedAddress:getRangeKeyspaceMacGeneratedAddress"},"type":"array"},"hardcodedAddresses":{"description":"List of all addresses that are flagged as hardcoded in the range.\n","items":{"$ref":"#/types/netaddr:index%2FgetRangeKeyspaceMacHardcodedAddress:getRangeKeyspaceMacHardcodedAddress"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"},"lastAddress":{"description":"Last assignable address in the range.\n","type":"string"},"nextAddress":{"description":"Next assignable new address in the range.\n","type":"string"},"rangeId":{"description":"Identifier of the address range to get the key space from.\n","type":"string"}},"required":["addresses","deletedAddresses","firstAddress","generatedAddresses","hardcodedAddresses","id","lastAddress","nextAddress","rangeId"],"type":"object"}},"netaddr:index/getRangeMac:getRangeMac":{"description":"Retrieves data on an existing mac address range.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as netaddr from \"@pulumi/netaddr\";\n\nconst test = netaddr.getRangeMac({\n    keyPrefix: \"/test/mac/\",\n});\nexport const dataRangeMacTest = Promise.all([test, test]).then(([test, test1]) =\u003e `first_address: ${test.firstAddress}, last_address: ${test1.lastAddress}`);\n```\n```python\nimport pulumi\nimport pulumi_netaddr as netaddr\n\ntest = netaddr.get_range_mac(key_prefix=\"/test/mac/\")\npulumi.export(\"dataRangeMacTest\", f\"first_address: {test.first_address}, last_address: {test.last_address}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Netaddr = Pulumi.Netaddr;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Netaddr.GetRangeMac.Invoke(new()\n    {\n        KeyPrefix = \"/test/mac/\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"dataRangeMacTest\"] = Output.Tuple(test, test).Apply(values =\u003e\n        {\n            var test = values.Item1;\n            var test1 = values.Item2;\n            return $\"first_address: {test.Apply(getRangeMacResult =\u003e getRangeMacResult.FirstAddress)}, last_address: {test1.LastAddress}\";\n        }),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/netaddr/netaddr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := netaddr.LookupRangeMac(ctx, \u0026netaddr.LookupRangeMacArgs{\n\t\t\tKeyPrefix: \"/test/mac/\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"dataRangeMacTest\", pulumi.Sprintf(\"first_address: %v, last_address: %v\", test.FirstAddress, test.LastAddress))\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.netaddr.NetaddrFunctions;\nimport com.pulumi.netaddr.inputs.GetRangeMacArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = NetaddrFunctions.getRangeMac(GetRangeMacArgs.builder()\n            .keyPrefix(\"/test/mac/\")\n            .build());\n\n        ctx.export(\"dataRangeMacTest\", String.format(\"first_address: %s, last_address: %s\", test.firstAddress(),test.lastAddress()));\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: netaddr:getRangeMac\n      arguments:\n        keyPrefix: /test/mac/\noutputs:\n  dataRangeMacTest: 'first_address: ${test.firstAddress}, last_address: ${test.lastAddress}'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRangeMac.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"keyPrefix":{"type":"string","description":"Etcd key prefix for address range.\n"}},"type":"object","required":["keyPrefix"]},"outputs":{"description":"A collection of values returned by getRangeMac.\n","properties":{"firstAddress":{"description":"First assignable address in the range.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"keyPrefix":{"description":"Etcd key prefix for address range.\n","type":"string"},"lastAddress":{"description":"Last assignable address in the range.\n","type":"string"}},"required":["firstAddress","id","keyPrefix","lastAddress"],"type":"object"}},"netaddr:index/getRangeUsageIpv4:getRangeUsageIpv4":{"description":"Retrieves ipv4 addresses utilisation data on an address range.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as netaddr from \"@pulumi/netaddr\";\n\nconst test = netaddr.getRangeIpv4({\n    keyPrefix: \"/test/ipv4/\",\n});\nconst testGetRangeUsageIpv4 = test.then(test =\u003e netaddr.getRangeUsageIpv4({\n    rangeId: test.id,\n}));\nexport const rangeCapacity = testGetRangeUsageIpv4.then(testGetRangeUsageIpv4 =\u003e testGetRangeUsageIpv4.capacity);\nexport const rangeUsedCapacity = testGetRangeUsageIpv4.then(testGetRangeUsageIpv4 =\u003e testGetRangeUsageIpv4.usedCapacity);\nexport const rangeFreeCapacity = testGetRangeUsageIpv4.then(testGetRangeUsageIpv4 =\u003e testGetRangeUsageIpv4.freeCapacity);\n```\n```python\nimport pulumi\nimport pulumi_netaddr as netaddr\n\ntest = netaddr.get_range_ipv4(key_prefix=\"/test/ipv4/\")\ntest_get_range_usage_ipv4 = netaddr.get_range_usage_ipv4(range_id=test.id)\npulumi.export(\"rangeCapacity\", test_get_range_usage_ipv4.capacity)\npulumi.export(\"rangeUsedCapacity\", test_get_range_usage_ipv4.used_capacity)\npulumi.export(\"rangeFreeCapacity\", test_get_range_usage_ipv4.free_capacity)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Netaddr = Pulumi.Netaddr;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Netaddr.GetRangeIpv4.Invoke(new()\n    {\n        KeyPrefix = \"/test/ipv4/\",\n    });\n\n    var testGetRangeUsageIpv4 = Netaddr.GetRangeUsageIpv4.Invoke(new()\n    {\n        RangeId = test.Apply(getRangeIpv4Result =\u003e getRangeIpv4Result.Id),\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rangeCapacity\"] = testGetRangeUsageIpv4.Apply(getRangeUsageIpv4Result =\u003e getRangeUsageIpv4Result.Capacity),\n        [\"rangeUsedCapacity\"] = testGetRangeUsageIpv4.Apply(getRangeUsageIpv4Result =\u003e getRangeUsageIpv4Result.UsedCapacity),\n        [\"rangeFreeCapacity\"] = testGetRangeUsageIpv4.Apply(getRangeUsageIpv4Result =\u003e getRangeUsageIpv4Result.FreeCapacity),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/netaddr/netaddr\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := netaddr.LookupRangeIpv4(ctx, \u0026netaddr.LookupRangeIpv4Args{\n\t\t\tKeyPrefix: \"/test/ipv4/\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestGetRangeUsageIpv4, err := netaddr.GetRangeUsageIpv4(ctx, \u0026netaddr.GetRangeUsageIpv4Args{\n\t\t\tRangeId: test.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"rangeCapacity\", testGetRangeUsageIpv4.Capacity)\n\t\tctx.Export(\"rangeUsedCapacity\", testGetRangeUsageIpv4.UsedCapacity)\n\t\tctx.Export(\"rangeFreeCapacity\", testGetRangeUsageIpv4.FreeCapacity)\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.netaddr.NetaddrFunctions;\nimport com.pulumi.netaddr.inputs.GetRangeIpv4Args;\nimport com.pulumi.netaddr.inputs.GetRangeUsageIpv4Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = NetaddrFunctions.getRangeIpv4(GetRangeIpv4Args.builder()\n            .keyPrefix(\"/test/ipv4/\")\n            .build());\n\n        final var testGetRangeUsageIpv4 = NetaddrFunctions.getRangeUsageIpv4(GetRangeUsageIpv4Args.builder()\n            .rangeId(test.id())\n            .build());\n\n        ctx.export(\"rangeCapacity\", testGetRangeUsageIpv4.capacity());\n        ctx.export(\"rangeUsedCapacity\", testGetRangeUsageIpv4.usedCapacity());\n        ctx.export(\"rangeFreeCapacity\", testGetRangeUsageIpv4.freeCapacity());\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: netaddr:getRangeIpv4\n      arguments:\n        keyPrefix: /test/ipv4/\n  testGetRangeUsageIpv4:\n    fn::invoke:\n      function: netaddr:getRangeUsageIpv4\n      arguments:\n        rangeId: ${test.id}\noutputs:\n  rangeCapacity: ${testGetRangeUsageIpv4.capacity}\n  rangeUsedCapacity: ${testGetRangeUsageIpv4.usedCapacity}\n  rangeFreeCapacity: ${testGetRangeUsageIpv4.freeCapacity}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRangeUsageIpv4.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"rangeId":{"type":"string","description":"Identifier of the address range to get the capacity from.\n"}},"type":"object","required":["rangeId"]},"outputs":{"description":"A collection of values returned by getRangeUsageIpv4.\n","properties":{"capacity":{"description":"Number of addresses in the range.\n","type":"number"},"freeCapacity":{"description":"Number of free addresses in the range.\n","type":"number"},"id":{"description":"The ID of this resource.\n","type":"string"},"rangeId":{"description":"Identifier of the address range to get the capacity from.\n","type":"string"},"usedCapacity":{"description":"Number of used addresses in the range.\n","type":"number"}},"required":["capacity","freeCapacity","id","rangeId","usedCapacity"],"type":"object"}},"pulumi:providers:netaddr/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"$ref":"#/resources/pulumi:providers:netaddr"}},"type":"object","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}},"parameterization":{"baseProvider":{"name":"terraform-provider","version":"1.0.1"},"parameter":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2ZlcmxhYi1zdGUtanVzdGluZS9uZXRhZGRyIiwidmVyc2lvbiI6IjAuNi4wIn19"}}