{"name":"ns1","version":"3.8.2","description":"A Pulumi package for creating and managing ns1 cloud resources.","keywords":["pulumi","ns1"],"homepage":"https://pulumi.io","license":"Apache-2.0","attribution":"This Pulumi package is based on the [`ns1` Terraform Provider](https://github.com/ns1-terraform/terraform-provider-ns1).","repository":"https://github.com/pulumi/pulumi-ns1","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"packageReferences":{"Pulumi":"3.*"},"compatibility":"tfbridge20","respectSchemaVersion":true},"go":{"importBasePath":"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1","generateResourceContainerTypes":true,"generateExtraInputTypes":true,"respectSchemaVersion":true},"nodejs":{"packageDescription":"A Pulumi package for creating and managing ns1 cloud resources.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/ns1-terraform/terraform-provider-ns1)\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 first check the [`pulumi-ns1` repo](https://github.com/pulumi/pulumi-ns1/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-ns1` repo](https://github.com/ns1-terraform/terraform-provider-ns1/issues).","devDependencies":{"@types/mime":"^2.0.0","@types/node":"^10.0.0"},"compatibility":"tfbridge20","disableUnionOutputTypes":true,"respectSchemaVersion":true},"python":{"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/ns1-terraform/terraform-provider-ns1)\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 first check the [`pulumi-ns1` repo](https://github.com/pulumi/pulumi-ns1/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-ns1` repo](https://github.com/ns1-terraform/terraform-provider-ns1/issues).","compatibility":"tfbridge20","respectSchemaVersion":true,"pyproject":{"enabled":true}}},"config":{"variables":{"apikey":{"type":"string","description":"The ns1 API key (required)"},"endpoint":{"type":"string","description":"URL prefix (including version) for API calls"},"ignoreSsl":{"type":"boolean","description":"Don't validate server SSL/TLS certificate"},"rateLimitParallelism":{"type":"integer","description":"Tune response to rate limits, see docs"},"retryMax":{"type":"integer","description":"Maximum retries for 50x errors (-1 to disable)"},"userAgent":{"type":"string","description":"User-Agent string to use in NS1 API requests"}}},"types":{"ns1:index/APIKeyDnsRecordsAllow:APIKeyDnsRecordsAllow":{"properties":{"domain":{"type":"string"},"includeSubdomains":{"type":"boolean"},"type":{"type":"string"},"zone":{"type":"string"}},"type":"object","required":["domain","includeSubdomains","type","zone"]},"ns1:index/APIKeyDnsRecordsDeny:APIKeyDnsRecordsDeny":{"properties":{"domain":{"type":"string"},"includeSubdomains":{"type":"boolean"},"type":{"type":"string"},"zone":{"type":"string"}},"type":"object","required":["domain","includeSubdomains","type","zone"]},"ns1:index/AlertData:AlertData":{"properties":{"alertAtPercent":{"type":"integer","description":"required by the account/usage alerts, with a value between 1 and 100\n"}},"type":"object"},"ns1:index/ApplicationDefaultConfig:ApplicationDefaultConfig":{"properties":{"http":{"type":"boolean","description":"Indicates whether or not to use HTTP in measurements.\n"},"https":{"type":"boolean","description":"Indicates whether or not to use HTTPS in measurements.\n"},"jobTimeoutMillis":{"type":"integer","description":"Maximum timeout per job\n0, the primary NSONE Global Network. Normally, you should not have to worry about this.\n"},"requestTimeoutMillis":{"type":"integer","description":"Maximum timeout per request.\n"},"staticValues":{"type":"boolean","description":"Indicates whether or not to skip aggregation for this job's measurements\n"},"useXhr":{"type":"boolean","description":"Whether to use XMLHttpRequest (XHR) when taking measurements.\n"}},"type":"object","required":["http"]},"ns1:index/DatasetDatatype:DatasetDatatype":{"properties":{"data":{"type":"object","additionalProperties":{"type":"string"}},"scope":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["data","scope","type"]},"ns1:index/DatasetRepeat:DatasetRepeat":{"properties":{"endAfterN":{"type":"integer"},"repeatsEvery":{"type":"string"},"start":{"type":"integer"}},"type":"object","required":["endAfterN","repeatsEvery","start"]},"ns1:index/DatasetReport:DatasetReport":{"properties":{"createdAt":{"type":"integer"},"end":{"type":"integer"},"id":{"type":"string"},"start":{"type":"integer"},"status":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createdAt","end","id","start","status"]}}},"ns1:index/DatasetTimeframe:DatasetTimeframe":{"properties":{"aggregation":{"type":"string"},"cycles":{"type":"integer"},"from":{"type":"integer"},"to":{"type":"integer"}},"type":"object","required":["aggregation"]},"ns1:index/MonitoringJobRule:MonitoringJobRule":{"properties":{"comparison":{"type":"string"},"key":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["comparison","key","value"]},"ns1:index/NotifyListNotification:NotifyListNotification":{"properties":{"config":{"type":"object","additionalProperties":{"type":"string"},"description":"Configuration details for the given notifier type.\n"},"type":{"type":"string","description":"The type of notifier. Available notifiers are indicated in /notifytypes endpoint.\n"}},"type":"object","required":["config","type"]},"ns1:index/PulsarJobBlendMetricWeights:PulsarJobBlendMetricWeights":{"properties":{"timestamp":{"type":"integer"}},"type":"object","required":["timestamp"]},"ns1:index/PulsarJobConfig:PulsarJobConfig":{"properties":{"host":{"type":"string"},"http":{"type":"boolean"},"https":{"type":"boolean"},"jobTimeoutMillis":{"type":"integer"},"requestTimeoutMillis":{"type":"integer"},"staticValues":{"type":"boolean"},"urlPath":{"type":"string"},"useXhr":{"type":"boolean"}},"type":"object"},"ns1:index/PulsarJobWeight:PulsarJobWeight":{"properties":{"defaultValue":{"type":"number"},"maximize":{"type":"boolean"},"name":{"type":"string"},"weight":{"type":"integer"}},"type":"object","required":["defaultValue","name","weight"]},"ns1:index/RecordAnswer:RecordAnswer":{"properties":{"answer":{"type":"string","description":"Space delimited string of RDATA fields dependent on the record type.\n\nA:\n\nanswer = \"1.2.3.4\"\n\nCNAME:\n\nanswer = \"www.example.com\"\n\nMX:\n\nanswer = \"5 mail.example.com\"\n\nSRV:\n\nanswer = \"10 0 2380 node-1.example.com\"\n\nSPF:\n\nanswer = \"v=DKIM1; k=rsa; p=XXXXXXXX\"\n\nOptionally, the individual parts of the answer can be expressed as a list in the field \u003cspan pulumi-lang-nodejs=\"`answerParts`\" pulumi-lang-dotnet=\"`AnswerParts`\" pulumi-lang-go=\"`answerParts`\" pulumi-lang-python=\"`answer_parts`\" pulumi-lang-yaml=\"`answerParts`\" pulumi-lang-java=\"`answerParts`\"\u003e`answer_parts`\u003c/span\u003e.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`answer`\" pulumi-lang-dotnet=\"`Answer`\" pulumi-lang-go=\"`answer`\" pulumi-lang-python=\"`answer`\" pulumi-lang-yaml=\"`answer`\" pulumi-lang-java=\"`answer`\"\u003e`answer`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`answerParts`\" pulumi-lang-dotnet=\"`AnswerParts`\" pulumi-lang-go=\"`answerParts`\" pulumi-lang-python=\"`answer_parts`\" pulumi-lang-yaml=\"`answerParts`\" pulumi-lang-java=\"`answerParts`\"\u003e`answer_parts`\u003c/span\u003e can be specified.\n"},"answerParts":{"type":"array","items":{"type":"string"},"description":"A list of individual RDATA fields. This field cannot be set together with \u003cspan pulumi-lang-nodejs=\"`answer`\" pulumi-lang-dotnet=\"`Answer`\" pulumi-lang-go=\"`answer`\" pulumi-lang-python=\"`answer`\" pulumi-lang-yaml=\"`answer`\" pulumi-lang-java=\"`answer`\"\u003e`answer`\u003c/span\u003e\n"},"meta":{"type":"object","additionalProperties":{"type":"string"},"description":"meta is supported at the \u003cspan pulumi-lang-nodejs=\"`regions`\" pulumi-lang-dotnet=\"`Regions`\" pulumi-lang-go=\"`regions`\" pulumi-lang-python=\"`regions`\" pulumi-lang-yaml=\"`regions`\" pulumi-lang-java=\"`regions`\"\u003e`regions`\u003c/span\u003e level. Meta\nis documented below.\nNote that `Meta` values for \u003cspan pulumi-lang-nodejs=\"`country`\" pulumi-lang-dotnet=\"`Country`\" pulumi-lang-go=\"`country`\" pulumi-lang-python=\"`country`\" pulumi-lang-yaml=\"`country`\" pulumi-lang-java=\"`country`\"\u003e`country`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`caProvince`\" pulumi-lang-dotnet=\"`CaProvince`\" pulumi-lang-go=\"`caProvince`\" pulumi-lang-python=\"`ca_province`\" pulumi-lang-yaml=\"`caProvince`\" pulumi-lang-java=\"`caProvince`\"\u003e`ca_province`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`georegion`\" pulumi-lang-dotnet=\"`Georegion`\" pulumi-lang-go=\"`georegion`\" pulumi-lang-python=\"`georegion`\" pulumi-lang-yaml=\"`georegion`\" pulumi-lang-java=\"`georegion`\"\u003e`georegion`\u003c/span\u003e, and\n\u003cspan pulumi-lang-nodejs=\"`usState`\" pulumi-lang-dotnet=\"`UsState`\" pulumi-lang-go=\"`usState`\" pulumi-lang-python=\"`us_state`\" pulumi-lang-yaml=\"`usState`\" pulumi-lang-java=\"`usState`\"\u003e`us_state`\u003c/span\u003e should be comma separated strings, and changes in ordering will not\nlead to terraform detecting a change.\n\nNote: regions **must** be sorted lexically by their \"name\" argument in the\nTerraform configuration file, otherwise Terraform will detect changes to the\nrecord when none actually exist.\n"},"region":{"type":"string","description":"The region (Answer Group really) that this answer\nbelongs to. This should be one of the names specified in \u003cspan pulumi-lang-nodejs=\"`regions`\" pulumi-lang-dotnet=\"`Regions`\" pulumi-lang-go=\"`regions`\" pulumi-lang-python=\"`regions`\" pulumi-lang-yaml=\"`regions`\" pulumi-lang-java=\"`regions`\"\u003e`regions`\u003c/span\u003e. Only a\nsingle \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e per answer is currently supported. If you want an answer in\nmultiple regions, duplicating the answer (including metadata) is the correct\napproach.\n* ` meta` - (Optional) meta is supported at the \u003cspan pulumi-lang-nodejs=\"`answer`\" pulumi-lang-dotnet=\"`Answer`\" pulumi-lang-go=\"`answer`\" pulumi-lang-python=\"`answer`\" pulumi-lang-yaml=\"`answer`\" pulumi-lang-java=\"`answer`\"\u003e`answer`\u003c/span\u003e level. Meta\nis documented below.\n"}},"type":"object"},"ns1:index/RecordFilter:RecordFilter":{"properties":{"config":{"type":"object","additionalProperties":{"type":"string"},"description":"The filters' configuration. Simple key/value pairs determined by the filter type.\n"},"disabled":{"type":"boolean","description":"Determines whether the filter is applied in the filter chain.\n"},"filter":{"type":"string","description":"The type of filter.\n"}},"type":"object","required":["filter"]},"ns1:index/RecordRegion:RecordRegion":{"properties":{"meta":{"type":"object","additionalProperties":{"type":"string"},"description":"meta is supported at the \u003cspan pulumi-lang-nodejs=\"`regions`\" pulumi-lang-dotnet=\"`Regions`\" pulumi-lang-go=\"`regions`\" pulumi-lang-python=\"`regions`\" pulumi-lang-yaml=\"`regions`\" pulumi-lang-java=\"`regions`\"\u003e`regions`\u003c/span\u003e level. Meta\nis documented below.\nNote that `Meta` values for \u003cspan pulumi-lang-nodejs=\"`country`\" pulumi-lang-dotnet=\"`Country`\" pulumi-lang-go=\"`country`\" pulumi-lang-python=\"`country`\" pulumi-lang-yaml=\"`country`\" pulumi-lang-java=\"`country`\"\u003e`country`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`caProvince`\" pulumi-lang-dotnet=\"`CaProvince`\" pulumi-lang-go=\"`caProvince`\" pulumi-lang-python=\"`ca_province`\" pulumi-lang-yaml=\"`caProvince`\" pulumi-lang-java=\"`caProvince`\"\u003e`ca_province`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`georegion`\" pulumi-lang-dotnet=\"`Georegion`\" pulumi-lang-go=\"`georegion`\" pulumi-lang-python=\"`georegion`\" pulumi-lang-yaml=\"`georegion`\" pulumi-lang-java=\"`georegion`\"\u003e`georegion`\u003c/span\u003e, and\n\u003cspan pulumi-lang-nodejs=\"`usState`\" pulumi-lang-dotnet=\"`UsState`\" pulumi-lang-go=\"`usState`\" pulumi-lang-python=\"`us_state`\" pulumi-lang-yaml=\"`usState`\" pulumi-lang-java=\"`usState`\"\u003e`us_state`\u003c/span\u003e should be comma separated strings, and changes in ordering will not\nlead to terraform detecting a change.\n\nNote: regions **must** be sorted lexically by their \"name\" argument in the\nTerraform configuration file, otherwise Terraform will detect changes to the\nrecord when none actually exist.\n"},"name":{"type":"string","description":"Name of the region (or Answer Group).\n"}},"type":"object","required":["name"]},"ns1:index/TeamDnsRecordsAllow:TeamDnsRecordsAllow":{"properties":{"domain":{"type":"string"},"includeSubdomains":{"type":"boolean"},"type":{"type":"string"},"zone":{"type":"string"}},"type":"object","required":["domain","includeSubdomains","type","zone"]},"ns1:index/TeamDnsRecordsDeny:TeamDnsRecordsDeny":{"properties":{"domain":{"type":"string"},"includeSubdomains":{"type":"boolean"},"type":{"type":"string"},"zone":{"type":"string"}},"type":"object","required":["domain","includeSubdomains","type","zone"]},"ns1:index/TeamIpWhitelist:TeamIpWhitelist":{"properties":{"name":{"type":"string","description":"The free form name of the team.\n"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["name","values"]},"ns1:index/UserDnsRecordsAllow:UserDnsRecordsAllow":{"properties":{"domain":{"type":"string"},"includeSubdomains":{"type":"boolean"},"type":{"type":"string"},"zone":{"type":"string"}},"type":"object","required":["domain","includeSubdomains","type","zone"]},"ns1:index/UserDnsRecordsDeny:UserDnsRecordsDeny":{"properties":{"domain":{"type":"string"},"includeSubdomains":{"type":"boolean"},"type":{"type":"string"},"zone":{"type":"string"}},"type":"object","required":["domain","includeSubdomains","type","zone"]},"ns1:index/ZoneSecondary:ZoneSecondary":{"properties":{"ip":{"type":"string","description":"IPv4 address of the secondary server.\n"},"networks":{"type":"array","items":{"type":"integer"},"description":"List of network IDs (\u003cspan pulumi-lang-nodejs=\"`int`\" pulumi-lang-dotnet=\"`Int`\" pulumi-lang-go=\"`int`\" pulumi-lang-python=\"`int`\" pulumi-lang-yaml=\"`int`\" pulumi-lang-java=\"`int`\"\u003e`int`\u003c/span\u003e) for which the zone\nshould be made available. Default is network 0, the primary NSONE Global\nNetwork. Normally, you should not have to worry about this.\n"},"notify":{"type":"boolean","description":"Whether we send `NOTIFY` messages to the secondary host when the zone changes. Default \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"port":{"type":"integer","description":"Port of the the secondary server.\n"}},"type":"object","required":["ip"],"language":{"nodejs":{"requiredOutputs":["ip","networks","notify","port"]}}},"ns1:index/getBillingUsageByNetwork:getBillingUsageByNetwork":{"properties":{"billableQueries":{"type":"integer","description":"Total billable queries for this network.\n"},"cleanQueries":{"type":"integer","description":"Clean queries for this day.\n"},"dailies":{"type":"array","items":{"$ref":"#/types/ns1:index/getBillingUsageByNetworkDaily:getBillingUsageByNetworkDaily"},"description":"Daily breakdown containing:\n"},"ddosQueries":{"type":"integer","description":"DDoS queries for this day.\n"},"network":{"type":"integer","description":"The network ID.\n"},"nxdResponses":{"type":"integer","description":"NXD responses for this day.\n"}},"type":"object","required":["billableQueries","cleanQueries","dailies","ddosQueries","network","nxdResponses"],"language":{"nodejs":{"requiredInputs":[]}}},"ns1:index/getBillingUsageByNetworkDaily:getBillingUsageByNetworkDaily":{"properties":{"cleanQueries":{"type":"integer","description":"Clean queries for this day.\n"},"ddosQueries":{"type":"integer","description":"DDoS queries for this day.\n"},"nxdResponses":{"type":"integer","description":"NXD responses for this day.\n"},"timestamp":{"type":"integer","description":"The timestamp for the day.\n"}},"type":"object","required":["cleanQueries","ddosQueries","nxdResponses","timestamp"],"language":{"nodejs":{"requiredInputs":[]}}},"ns1:index/getDNSSecDelegation:getDNSSecDelegation":{"properties":{"dnskeys":{"type":"array","items":{"$ref":"#/types/ns1:index/getDNSSecDelegationDnskey:getDNSSecDelegationDnskey"},"description":"(Computed) List of Keys. Key is documented below.\n"},"ds":{"type":"array","items":{"$ref":"#/types/ns1:index/getDNSSecDelegationD:getDNSSecDelegationD"},"description":"(Computed) List of Keys. Key is documented below.\n"},"ttl":{"type":"integer","description":"(Computed) TTL for the Keys (int).\n"}},"type":"object","required":["dnskeys","ds","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"ns1:index/getDNSSecDelegationD:getDNSSecDelegationD":{"properties":{"algorithm":{"type":"string","description":"(Computed) Algorithm of the key.\n"},"flags":{"type":"string","description":"(Computed) Flags for the key.\n"},"protocol":{"type":"string","description":"(Computed) Protocol of the key.\n"},"publicKey":{"type":"string","description":"(Computed) Public key for the key.\n"}},"type":"object","required":["algorithm","flags","protocol","publicKey"],"language":{"nodejs":{"requiredInputs":[]}}},"ns1:index/getDNSSecDelegationDnskey:getDNSSecDelegationDnskey":{"properties":{"algorithm":{"type":"string","description":"(Computed) Algorithm of the key.\n"},"flags":{"type":"string","description":"(Computed) Flags for the key.\n"},"protocol":{"type":"string","description":"(Computed) Protocol of the key.\n"},"publicKey":{"type":"string","description":"(Computed) Public key for the key.\n"}},"type":"object","required":["algorithm","flags","protocol","publicKey"],"language":{"nodejs":{"requiredInputs":[]}}},"ns1:index/getDNSSecKey:getDNSSecKey":{"properties":{"dnskeys":{"type":"array","items":{"$ref":"#/types/ns1:index/getDNSSecKeyDnskey:getDNSSecKeyDnskey"},"description":"(Computed) List of Keys. Key is documented below.\n"},"ttl":{"type":"integer","description":"(Computed) TTL for the Keys (int).\n"}},"type":"object","required":["dnskeys","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"ns1:index/getDNSSecKeyDnskey:getDNSSecKeyDnskey":{"properties":{"algorithm":{"type":"string","description":"(Computed) Algorithm of the key.\n"},"flags":{"type":"string","description":"(Computed) Flags for the key.\n"},"protocol":{"type":"string","description":"(Computed) Protocol of the key.\n"},"publicKey":{"type":"string","description":"(Computed) Public key for the key.\n"}},"type":"object","required":["algorithm","flags","protocol","publicKey"],"language":{"nodejs":{"requiredInputs":[]}}},"ns1:index/getMonitoringRegionsRegion:getMonitoringRegionsRegion":{"properties":{"code":{"type":"string","description":"3-letter city code identifying the location of the monitor.\n"},"name":{"type":"string","description":"City name identifying the location of the monitor.\n"},"subnets":{"type":"array","items":{"type":"string"},"description":"A list of IPv4 and IPv6 subnets the monitor sources requests from.\n"}},"type":"object"},"ns1:index/getNetworksNetwork:getNetworksNetwork":{"properties":{"label":{"type":"string","description":"Label associated with the network.\n"},"name":{"type":"string","description":"Name of the network.\n"},"networkId":{"type":"integer","description":"network ID (\u003cspan pulumi-lang-nodejs=\"`int`\" pulumi-lang-dotnet=\"`Int`\" pulumi-lang-go=\"`int`\" pulumi-lang-python=\"`int`\" pulumi-lang-yaml=\"`int`\" pulumi-lang-java=\"`int`\"\u003e`int`\u003c/span\u003e). Default is network 0, the primary NS1 Managed DNS Network.\n"}},"type":"object","required":["label","name","networkId"],"language":{"nodejs":{"requiredInputs":[]}}},"ns1:index/getRecordAnswer:getRecordAnswer":{"properties":{"answer":{"type":"string"},"meta":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of metadata\n"},"region":{"type":"string"}},"type":"object","required":["answer","meta","region"],"language":{"nodejs":{"requiredInputs":[]}}},"ns1:index/getRecordFilter:getRecordFilter":{"properties":{"config":{"type":"object","additionalProperties":{"type":"string"}},"disabled":{"type":"boolean"},"filter":{"type":"string"}},"type":"object","required":["config","disabled","filter"],"language":{"nodejs":{"requiredInputs":[]}}},"ns1:index/getRecordRegion:getRecordRegion":{"properties":{"meta":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of metadata\n"},"name":{"type":"string"}},"type":"object","required":["meta","name"],"language":{"nodejs":{"requiredInputs":[]}}},"ns1:index/getZoneSecondary:getZoneSecondary":{"properties":{"ip":{"type":"string","description":"IPv4 address of the secondary server.\n"},"networks":{"type":"array","items":{"type":"integer"},"description":"List of network IDs (\u003cspan pulumi-lang-nodejs=\"`int`\" pulumi-lang-dotnet=\"`Int`\" pulumi-lang-go=\"`int`\" pulumi-lang-python=\"`int`\" pulumi-lang-yaml=\"`int`\" pulumi-lang-java=\"`int`\"\u003e`int`\u003c/span\u003e) for which the zone should be made\navailable. Default is network 0, the primary NSONE Global Network.\n"},"notify":{"type":"boolean","description":"Whether we send `NOTIFY` messages to the secondary host\nwhen the zone changes. Default \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"port":{"type":"integer","description":"Port of the the secondary server. Default \u003cspan pulumi-lang-nodejs=\"`53`\" pulumi-lang-dotnet=\"`53`\" pulumi-lang-go=\"`53`\" pulumi-lang-python=\"`53`\" pulumi-lang-yaml=\"`53`\" pulumi-lang-java=\"`53`\"\u003e`53`\u003c/span\u003e.\n"}},"type":"object","required":["ip","networks","notify","port"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the ns1 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":{"apikey":{"type":"string","description":"The ns1 API key (required)"},"endpoint":{"type":"string","description":"URL prefix (including version) for API calls"},"ignoreSsl":{"type":"boolean","description":"Don't validate server SSL/TLS certificate"},"rateLimitParallelism":{"type":"integer","description":"Tune response to rate limits, see docs"},"retryMax":{"type":"integer","description":"Maximum retries for 50x errors (-1 to disable)"},"userAgent":{"type":"string","description":"User-Agent string to use in NS1 API requests"}},"inputProperties":{"apikey":{"type":"string","description":"The ns1 API key (required)"},"endpoint":{"type":"string","description":"URL prefix (including version) for API calls"},"ignoreSsl":{"type":"boolean","description":"Don't validate server SSL/TLS certificate"},"rateLimitParallelism":{"type":"integer","description":"Tune response to rate limits, see docs"},"retryMax":{"type":"integer","description":"Maximum retries for 50x errors (-1 to disable)"},"userAgent":{"type":"string","description":"User-Agent string to use in NS1 API requests"}},"methods":{"terraformConfig":"pulumi:providers:ns1/terraformConfig"}},"resources":{"ns1:index/aPIKey:APIKey":{"description":"Provides a NS1 Api Key resource. This can be used to create, modify, and delete api keys.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\nconst example = new ns1.Team(\"example\", {name: \"Example team\"});\nconst exampleAPIKey = new ns1.APIKey(\"example\", {\n    name: \"Example key\",\n    teams: [example.id],\n    ipWhitelists: [\n        \"1.1.1.1\",\n        \"2.2.2.2\",\n    ],\n    dnsViewZones: false,\n    accountManageUsers: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\nexample = ns1.Team(\"example\", name=\"Example team\")\nexample_api_key = ns1.APIKey(\"example\",\n    name=\"Example key\",\n    teams=[example.id],\n    ip_whitelists=[\n        \"1.1.1.1\",\n        \"2.2.2.2\",\n    ],\n    dns_view_zones=False,\n    account_manage_users=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Ns1.Team(\"example\", new()\n    {\n        Name = \"Example team\",\n    });\n\n    var exampleAPIKey = new Ns1.APIKey(\"example\", new()\n    {\n        Name = \"Example key\",\n        Teams = new[]\n        {\n            example.Id,\n        },\n        IpWhitelists = new[]\n        {\n            \"1.1.1.1\",\n            \"2.2.2.2\",\n        },\n        DnsViewZones = false,\n        AccountManageUsers = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ns1.NewTeam(ctx, \"example\", \u0026ns1.TeamArgs{\n\t\t\tName: pulumi.String(\"Example team\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ns1.NewAPIKey(ctx, \"example\", \u0026ns1.APIKeyArgs{\n\t\t\tName: pulumi.String(\"Example key\"),\n\t\t\tTeams: pulumi.StringArray{\n\t\t\t\texample.ID(),\n\t\t\t},\n\t\t\tIpWhitelists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t\tpulumi.String(\"2.2.2.2\"),\n\t\t\t},\n\t\t\tDnsViewZones:       pulumi.Bool(false),\n\t\t\tAccountManageUsers: pulumi.Bool(false),\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.ns1.Team;\nimport com.pulumi.ns1.TeamArgs;\nimport com.pulumi.ns1.APIKey;\nimport com.pulumi.ns1.APIKeyArgs;\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 Team(\"example\", TeamArgs.builder()\n            .name(\"Example team\")\n            .build());\n\n        var exampleAPIKey = new APIKey(\"exampleAPIKey\", APIKeyArgs.builder()\n            .name(\"Example key\")\n            .teams(example.id())\n            .ipWhitelists(            \n                \"1.1.1.1\",\n                \"2.2.2.2\")\n            .dnsViewZones(false)\n            .accountManageUsers(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: ns1:Team\n    properties:\n      name: Example team\n  exampleAPIKey:\n    type: ns1:APIKey\n    name: example\n    properties:\n      name: Example key\n      teams:\n        - ${example.id}\n      ipWhitelists:\n        - 1.1.1.1\n        - 2.2.2.2\n      dnsViewZones: false\n      accountManageUsers: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Permissions\n\nAn API key will inherit permissions from the teams it is assigned to.\nIf a key is assigned to a team and also has individual permissions set on the key, the individual permissions\nwill be overridden by the inherited team permissions.\nIn a future release, setting permissions on a key that is part of a team will be explicitly disabled.\n\nWhen a key is removed from all teams completely, it will inherit whatever permissions it had previously.\nIf a key is removed from all it's teams, it will probably be necessary to run `pulumi up` a second time\nto update the keys permissions from it's old team permissions to new key-specific permissions.\n\nSee [the NS1 API docs](https://ns1.com/api#getget-all-account-users) for an overview of permission semantics or for [more details](https://help.ns1.com/hc/en-us/articles/360024409034-Managing-user-permissions) about the individual permission flags.\n\n## NS1 Documentation\n\n[ApiKeys Api Doc](https://ns1.com/api#api-key)\n\n## Import\n\n\u003e Imported keys will not have their key stored in the state file.\n\n`terraform import\u003cspan pulumi-lang-nodejs=\" ns1.APIKey`\" pulumi-lang-dotnet=\" ns1.APIKey`\" pulumi-lang-go=\" APIKey`\" pulumi-lang-python=\" APIKey`\" pulumi-lang-yaml=\" ns1.APIKey`\" pulumi-lang-java=\" ns1.APIKey`\"\u003e ns1.APIKey`\u003c/span\u003e\n\nSo for the example above:\n\n`terraform import ns1_apikey.example \u003cID\u003e`\n\n","properties":{"accountManageAccountSettings":{"type":"boolean","description":"Whether the apikey can modify account settings.\n"},"accountManageApikeys":{"type":"boolean","description":"Whether the apikey can modify account apikeys.\n"},"accountManageIpWhitelist":{"type":"boolean","description":"Whether the apikey can manage ip whitelist.\n"},"accountManagePaymentMethods":{"type":"boolean","description":"Whether the apikey can modify account payment methods.\n"},"accountManagePlan":{"type":"boolean","description":"No longer in use.\n","deprecationMessage":"obsolete, should no longer be used"},"accountManageTeams":{"type":"boolean","description":"Whether the apikey can modify other teams in the account.\n"},"accountManageUsers":{"type":"boolean","description":"Whether the apikey can modify account users.\n"},"accountViewActivityLog":{"type":"boolean","description":"Whether the apikey can view activity logs.\n"},"accountViewInvoices":{"type":"boolean","description":", default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e Whether the apikey can view invoices.\n"},"dataManageDatafeeds":{"type":"boolean","description":"Whether the apikey can modify data feeds.\n"},"dataManageDatasources":{"type":"boolean","description":"Whether the apikey can modify data sources.\n"},"dataPushToDatafeeds":{"type":"boolean","description":"Whether the apikey can publish to data feeds.\n"},"dnsManageZones":{"type":"boolean","description":"Whether the apikey can modify the accounts zones.\n"},"dnsRecordsAllows":{"type":"array","items":{"$ref":"#/types/ns1:index/APIKeyDnsRecordsAllow:APIKeyDnsRecordsAllow"},"description":"List of records that the apikey may access.\n"},"dnsRecordsDenies":{"type":"array","items":{"$ref":"#/types/ns1:index/APIKeyDnsRecordsDeny:APIKeyDnsRecordsDeny"},"description":"List of records that the apikey may not access.\n"},"dnsViewZones":{"type":"boolean","description":"Whether the apikey can view the accounts zones.\n"},"dnsZonesAllowByDefault":{"type":"boolean","description":"If true, enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesAllow`\" pulumi-lang-dotnet=\"`DnsZonesAllow`\" pulumi-lang-go=\"`dnsZonesAllow`\" pulumi-lang-python=\"`dns_zones_allow`\" pulumi-lang-yaml=\"`dnsZonesAllow`\" pulumi-lang-java=\"`dnsZonesAllow`\"\u003e`dns_zones_allow`\u003c/span\u003e list, otherwise enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesDeny`\" pulumi-lang-dotnet=\"`DnsZonesDeny`\" pulumi-lang-go=\"`dnsZonesDeny`\" pulumi-lang-python=\"`dns_zones_deny`\" pulumi-lang-yaml=\"`dnsZonesDeny`\" pulumi-lang-java=\"`dnsZonesDeny`\"\u003e`dns_zones_deny`\u003c/span\u003e list.\n"},"dnsZonesAllows":{"type":"array","items":{"type":"string"},"description":"List of zones that the apikey may access.\n"},"dnsZonesDenies":{"type":"array","items":{"type":"string"},"description":"List of zones that the apikey may not access.\n"},"insightsManageInsights":{"type":"boolean","description":"Whether the apikey can manage DNS insights.\n"},"insightsViewInsights":{"type":"boolean","description":"Whether the apikey can view DNS insights.\n"},"ipWhitelistStrict":{"type":"boolean","description":"Set to true to restrict access to only those IP addresses and networks listed in the **ip_whitelist** field.\n"},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"Array of IP addresses/networks to which to grant the API key access.\n"},"key":{"type":"string","description":"(Computed) The apikeys authentication token.\n","secret":true},"monitoringCreateJobs":{"type":"boolean","description":"Whether the apikey can create monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringDeleteJobs":{"type":"boolean","description":"Whether the apikey can delete monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringManageJobs":{"type":"boolean","description":"Whether the apikey can create, update, and delete monitoring jobs.\n"},"monitoringManageLists":{"type":"boolean","description":"Whether the apikey can modify notification lists.\n"},"monitoringUpdateJobs":{"type":"boolean","description":"Whether the apikey can update monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringViewJobs":{"type":"boolean","description":"Whether the apikey can view monitoring jobs.\n"},"name":{"type":"string","description":"The free form name of the apikey.\n"},"redirectsManageRedirects":{"type":"boolean","description":"Whether the apikey can manage redirects.\n"},"securityManageActiveDirectory":{"type":"boolean","description":"Whether the apikey can manage global active directory. Only relevant for the DDI product.\n"},"securityManageGlobal2fa":{"type":"boolean","description":"Whether the apikey can manage global two factor authentication.\n"},"teams":{"type":"array","items":{"type":"string"},"description":"The teams that the apikey belongs to.\n"}},"required":["key","name"],"inputProperties":{"accountManageAccountSettings":{"type":"boolean","description":"Whether the apikey can modify account settings.\n"},"accountManageApikeys":{"type":"boolean","description":"Whether the apikey can modify account apikeys.\n"},"accountManageIpWhitelist":{"type":"boolean","description":"Whether the apikey can manage ip whitelist.\n"},"accountManagePaymentMethods":{"type":"boolean","description":"Whether the apikey can modify account payment methods.\n"},"accountManagePlan":{"type":"boolean","description":"No longer in use.\n","deprecationMessage":"obsolete, should no longer be used"},"accountManageTeams":{"type":"boolean","description":"Whether the apikey can modify other teams in the account.\n"},"accountManageUsers":{"type":"boolean","description":"Whether the apikey can modify account users.\n"},"accountViewActivityLog":{"type":"boolean","description":"Whether the apikey can view activity logs.\n"},"accountViewInvoices":{"type":"boolean","description":", default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e Whether the apikey can view invoices.\n"},"dataManageDatafeeds":{"type":"boolean","description":"Whether the apikey can modify data feeds.\n"},"dataManageDatasources":{"type":"boolean","description":"Whether the apikey can modify data sources.\n"},"dataPushToDatafeeds":{"type":"boolean","description":"Whether the apikey can publish to data feeds.\n"},"dnsManageZones":{"type":"boolean","description":"Whether the apikey can modify the accounts zones.\n"},"dnsRecordsAllows":{"type":"array","items":{"$ref":"#/types/ns1:index/APIKeyDnsRecordsAllow:APIKeyDnsRecordsAllow"},"description":"List of records that the apikey may access.\n"},"dnsRecordsDenies":{"type":"array","items":{"$ref":"#/types/ns1:index/APIKeyDnsRecordsDeny:APIKeyDnsRecordsDeny"},"description":"List of records that the apikey may not access.\n"},"dnsViewZones":{"type":"boolean","description":"Whether the apikey can view the accounts zones.\n"},"dnsZonesAllowByDefault":{"type":"boolean","description":"If true, enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesAllow`\" pulumi-lang-dotnet=\"`DnsZonesAllow`\" pulumi-lang-go=\"`dnsZonesAllow`\" pulumi-lang-python=\"`dns_zones_allow`\" pulumi-lang-yaml=\"`dnsZonesAllow`\" pulumi-lang-java=\"`dnsZonesAllow`\"\u003e`dns_zones_allow`\u003c/span\u003e list, otherwise enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesDeny`\" pulumi-lang-dotnet=\"`DnsZonesDeny`\" pulumi-lang-go=\"`dnsZonesDeny`\" pulumi-lang-python=\"`dns_zones_deny`\" pulumi-lang-yaml=\"`dnsZonesDeny`\" pulumi-lang-java=\"`dnsZonesDeny`\"\u003e`dns_zones_deny`\u003c/span\u003e list.\n"},"dnsZonesAllows":{"type":"array","items":{"type":"string"},"description":"List of zones that the apikey may access.\n"},"dnsZonesDenies":{"type":"array","items":{"type":"string"},"description":"List of zones that the apikey may not access.\n"},"insightsManageInsights":{"type":"boolean","description":"Whether the apikey can manage DNS insights.\n"},"insightsViewInsights":{"type":"boolean","description":"Whether the apikey can view DNS insights.\n"},"ipWhitelistStrict":{"type":"boolean","description":"Set to true to restrict access to only those IP addresses and networks listed in the **ip_whitelist** field.\n"},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"Array of IP addresses/networks to which to grant the API key access.\n"},"monitoringCreateJobs":{"type":"boolean","description":"Whether the apikey can create monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringDeleteJobs":{"type":"boolean","description":"Whether the apikey can delete monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringManageJobs":{"type":"boolean","description":"Whether the apikey can create, update, and delete monitoring jobs.\n"},"monitoringManageLists":{"type":"boolean","description":"Whether the apikey can modify notification lists.\n"},"monitoringUpdateJobs":{"type":"boolean","description":"Whether the apikey can update monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringViewJobs":{"type":"boolean","description":"Whether the apikey can view monitoring jobs.\n"},"name":{"type":"string","description":"The free form name of the apikey.\n"},"redirectsManageRedirects":{"type":"boolean","description":"Whether the apikey can manage redirects.\n"},"securityManageActiveDirectory":{"type":"boolean","description":"Whether the apikey can manage global active directory. Only relevant for the DDI product.\n"},"securityManageGlobal2fa":{"type":"boolean","description":"Whether the apikey can manage global two factor authentication.\n"},"teams":{"type":"array","items":{"type":"string"},"description":"The teams that the apikey belongs to.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering APIKey resources.\n","properties":{"accountManageAccountSettings":{"type":"boolean","description":"Whether the apikey can modify account settings.\n"},"accountManageApikeys":{"type":"boolean","description":"Whether the apikey can modify account apikeys.\n"},"accountManageIpWhitelist":{"type":"boolean","description":"Whether the apikey can manage ip whitelist.\n"},"accountManagePaymentMethods":{"type":"boolean","description":"Whether the apikey can modify account payment methods.\n"},"accountManagePlan":{"type":"boolean","description":"No longer in use.\n","deprecationMessage":"obsolete, should no longer be used"},"accountManageTeams":{"type":"boolean","description":"Whether the apikey can modify other teams in the account.\n"},"accountManageUsers":{"type":"boolean","description":"Whether the apikey can modify account users.\n"},"accountViewActivityLog":{"type":"boolean","description":"Whether the apikey can view activity logs.\n"},"accountViewInvoices":{"type":"boolean","description":", default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e Whether the apikey can view invoices.\n"},"dataManageDatafeeds":{"type":"boolean","description":"Whether the apikey can modify data feeds.\n"},"dataManageDatasources":{"type":"boolean","description":"Whether the apikey can modify data sources.\n"},"dataPushToDatafeeds":{"type":"boolean","description":"Whether the apikey can publish to data feeds.\n"},"dnsManageZones":{"type":"boolean","description":"Whether the apikey can modify the accounts zones.\n"},"dnsRecordsAllows":{"type":"array","items":{"$ref":"#/types/ns1:index/APIKeyDnsRecordsAllow:APIKeyDnsRecordsAllow"},"description":"List of records that the apikey may access.\n"},"dnsRecordsDenies":{"type":"array","items":{"$ref":"#/types/ns1:index/APIKeyDnsRecordsDeny:APIKeyDnsRecordsDeny"},"description":"List of records that the apikey may not access.\n"},"dnsViewZones":{"type":"boolean","description":"Whether the apikey can view the accounts zones.\n"},"dnsZonesAllowByDefault":{"type":"boolean","description":"If true, enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesAllow`\" pulumi-lang-dotnet=\"`DnsZonesAllow`\" pulumi-lang-go=\"`dnsZonesAllow`\" pulumi-lang-python=\"`dns_zones_allow`\" pulumi-lang-yaml=\"`dnsZonesAllow`\" pulumi-lang-java=\"`dnsZonesAllow`\"\u003e`dns_zones_allow`\u003c/span\u003e list, otherwise enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesDeny`\" pulumi-lang-dotnet=\"`DnsZonesDeny`\" pulumi-lang-go=\"`dnsZonesDeny`\" pulumi-lang-python=\"`dns_zones_deny`\" pulumi-lang-yaml=\"`dnsZonesDeny`\" pulumi-lang-java=\"`dnsZonesDeny`\"\u003e`dns_zones_deny`\u003c/span\u003e list.\n"},"dnsZonesAllows":{"type":"array","items":{"type":"string"},"description":"List of zones that the apikey may access.\n"},"dnsZonesDenies":{"type":"array","items":{"type":"string"},"description":"List of zones that the apikey may not access.\n"},"insightsManageInsights":{"type":"boolean","description":"Whether the apikey can manage DNS insights.\n"},"insightsViewInsights":{"type":"boolean","description":"Whether the apikey can view DNS insights.\n"},"ipWhitelistStrict":{"type":"boolean","description":"Set to true to restrict access to only those IP addresses and networks listed in the **ip_whitelist** field.\n"},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"Array of IP addresses/networks to which to grant the API key access.\n"},"key":{"type":"string","description":"(Computed) The apikeys authentication token.\n","secret":true},"monitoringCreateJobs":{"type":"boolean","description":"Whether the apikey can create monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringDeleteJobs":{"type":"boolean","description":"Whether the apikey can delete monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringManageJobs":{"type":"boolean","description":"Whether the apikey can create, update, and delete monitoring jobs.\n"},"monitoringManageLists":{"type":"boolean","description":"Whether the apikey can modify notification lists.\n"},"monitoringUpdateJobs":{"type":"boolean","description":"Whether the apikey can update monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringViewJobs":{"type":"boolean","description":"Whether the apikey can view monitoring jobs.\n"},"name":{"type":"string","description":"The free form name of the apikey.\n"},"redirectsManageRedirects":{"type":"boolean","description":"Whether the apikey can manage redirects.\n"},"securityManageActiveDirectory":{"type":"boolean","description":"Whether the apikey can manage global active directory. Only relevant for the DDI product.\n"},"securityManageGlobal2fa":{"type":"boolean","description":"Whether the apikey can manage global two factor authentication.\n"},"teams":{"type":"array","items":{"type":"string"},"description":"The teams that the apikey belongs to.\n"}},"type":"object"}},"ns1:index/accountWhitelist:AccountWhitelist":{"description":"Provides a NS1 Global IP Whitelist resource.\n\nThis can be used to create, modify, and delete Global IP Whitelists.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\nconst example = new ns1.AccountWhitelist(\"example\", {\n    name: \"Example Whitelist\",\n    values: [\n        \"1.1.1.1\",\n        \"2.2.2.2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\nexample = ns1.AccountWhitelist(\"example\",\n    name=\"Example Whitelist\",\n    values=[\n        \"1.1.1.1\",\n        \"2.2.2.2\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Ns1.AccountWhitelist(\"example\", new()\n    {\n        Name = \"Example Whitelist\",\n        Values = new[]\n        {\n            \"1.1.1.1\",\n            \"2.2.2.2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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 := ns1.NewAccountWhitelist(ctx, \"example\", \u0026ns1.AccountWhitelistArgs{\n\t\t\tName: pulumi.String(\"Example Whitelist\"),\n\t\t\tValues: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t\tpulumi.String(\"2.2.2.2\"),\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.ns1.AccountWhitelist;\nimport com.pulumi.ns1.AccountWhitelistArgs;\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 AccountWhitelist(\"example\", AccountWhitelistArgs.builder()\n            .name(\"Example Whitelist\")\n            .values(            \n                \"1.1.1.1\",\n                \"2.2.2.2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: ns1:AccountWhitelist\n    properties:\n      name: Example Whitelist\n      values:\n        - 1.1.1.1\n        - 2.2.2.2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e You current source IP must be present in one of the whitelists to prevent locking yourself out.\n\n## NS1 Documentation\n\n[Global IP Whitelist Doc](https://ns1.com/api?docId=2282)\n\n## Import\n\n`terraform import ns1_account_whitelist.example \u003cID\u003e`\n\n","properties":{"name":{"type":"string","description":"The free form name of the whitelist.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Array of IP addresses/networks from which to allow access.\n"}},"required":["name","values"],"inputProperties":{"name":{"type":"string","description":"The free form name of the whitelist.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Array of IP addresses/networks from which to allow access.\n"}},"requiredInputs":["values"],"stateInputs":{"description":"Input properties used for looking up and filtering AccountWhitelist resources.\n","properties":{"name":{"type":"string","description":"The free form name of the whitelist.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Array of IP addresses/networks from which to allow access.\n"}},"type":"object"}},"ns1:index/alert:Alert":{"description":"Provides a NS1 Alert resource. This can be used to create, modify, and delete alerts.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\nconst exampleZoneAlert = new ns1.Alert(\"example_zone_alert\", {\n    name: \"Example Zone Alert\",\n    type: \"zone\",\n    subtype: \"transfer_failed\",\n    notificationLists: [],\n    zoneNames: [\n        \"a.b.c.com\",\n        \"myzone\",\n    ],\n    recordIds: [],\n});\nconst exampleUsageAlert = new ns1.Alert(\"example_usage_alert\", {\n    name: \"Example Usage Alert\",\n    type: \"account\",\n    subtype: \"record_usage\",\n    datas: [{\n        alertAtPercent: 80,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\nexample_zone_alert = ns1.Alert(\"example_zone_alert\",\n    name=\"Example Zone Alert\",\n    type=\"zone\",\n    subtype=\"transfer_failed\",\n    notification_lists=[],\n    zone_names=[\n        \"a.b.c.com\",\n        \"myzone\",\n    ],\n    record_ids=[])\nexample_usage_alert = ns1.Alert(\"example_usage_alert\",\n    name=\"Example Usage Alert\",\n    type=\"account\",\n    subtype=\"record_usage\",\n    datas=[{\n        \"alert_at_percent\": 80,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleZoneAlert = new Ns1.Alert(\"example_zone_alert\", new()\n    {\n        Name = \"Example Zone Alert\",\n        Type = \"zone\",\n        Subtype = \"transfer_failed\",\n        NotificationLists = new[] {},\n        ZoneNames = new[]\n        {\n            \"a.b.c.com\",\n            \"myzone\",\n        },\n        RecordIds = new[] {},\n    });\n\n    var exampleUsageAlert = new Ns1.Alert(\"example_usage_alert\", new()\n    {\n        Name = \"Example Usage Alert\",\n        Type = \"account\",\n        Subtype = \"record_usage\",\n        Datas = new[]\n        {\n            new Ns1.Inputs.AlertDataArgs\n            {\n                AlertAtPercent = 80,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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 := ns1.NewAlert(ctx, \"example_zone_alert\", \u0026ns1.AlertArgs{\n\t\t\tName:              pulumi.String(\"Example Zone Alert\"),\n\t\t\tType:              pulumi.String(\"zone\"),\n\t\t\tSubtype:           pulumi.String(\"transfer_failed\"),\n\t\t\tNotificationLists: pulumi.StringArray{},\n\t\t\tZoneNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"a.b.c.com\"),\n\t\t\t\tpulumi.String(\"myzone\"),\n\t\t\t},\n\t\t\tRecordIds: pulumi.StringArray{},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ns1.NewAlert(ctx, \"example_usage_alert\", \u0026ns1.AlertArgs{\n\t\t\tName:    pulumi.String(\"Example Usage Alert\"),\n\t\t\tType:    pulumi.String(\"account\"),\n\t\t\tSubtype: pulumi.String(\"record_usage\"),\n\t\t\tDatas: ns1.AlertDataArray{\n\t\t\t\t\u0026ns1.AlertDataArgs{\n\t\t\t\t\tAlertAtPercent: pulumi.Int(80),\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.ns1.Alert;\nimport com.pulumi.ns1.AlertArgs;\nimport com.pulumi.ns1.inputs.AlertDataArgs;\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 exampleZoneAlert = new Alert(\"exampleZoneAlert\", AlertArgs.builder()\n            .name(\"Example Zone Alert\")\n            .type(\"zone\")\n            .subtype(\"transfer_failed\")\n            .notificationLists()\n            .zoneNames(            \n                \"a.b.c.com\",\n                \"myzone\")\n            .recordIds()\n            .build());\n\n        var exampleUsageAlert = new Alert(\"exampleUsageAlert\", AlertArgs.builder()\n            .name(\"Example Usage Alert\")\n            .type(\"account\")\n            .subtype(\"record_usage\")\n            .datas(AlertDataArgs.builder()\n                .alertAtPercent(80)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleZoneAlert:\n    type: ns1:Alert\n    name: example_zone_alert\n    properties:\n      name: Example Zone Alert\n      type: zone\n      subtype: transfer_failed\n      notificationLists: []\n      zoneNames:\n        - a.b.c.com\n        - myzone\n      recordIds: []\n  exampleUsageAlert:\n    type: ns1:Alert\n    name: example_usage_alert\n    properties:\n      name: Example Usage Alert\n      type: account\n      subtype: record_usage\n      datas:\n        - alertAtPercent: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## NS1 Documentation\n\n[Alerts Api Doc](https://ns1.com/api#alerts)\n\n## Import\n\n`terraform import ns1_alert.\u003cname\u003e \u003calert_id\u003e`\n\n","properties":{"createdAt":{"type":"integer","description":"(Read Only) The Unix timestamp representing when the alert configuration was created.\n"},"createdBy":{"type":"string","description":"(Read Only) The user or apikey that created this alert.\n"},"datas":{"type":"array","items":{"$ref":"#/types/ns1:index/AlertData:AlertData"},"description":"A resource block with additional settings: the name and type of them vary based on the alert type.\n"},"name":{"type":"string","description":"The free-form display name for the alert.\n"},"notificationLists":{"type":"array","items":{"type":"string"},"description":"A list of id's for notification lists whose notifiers will be triggered by the alert.\n"},"recordIds":{"type":"array","items":{"type":"string"},"description":"A list of record id's this alert applies to.\n"},"subtype":{"type":"string","description":"The type of the alert.\n"},"type":{"type":"string","description":"The type of the alert.\n"},"updatedAt":{"type":"integer","description":"(Read Only) The Unix timestamp representing when the alert configuration was last modified.\n"},"updatedBy":{"type":"string","description":"(Read Only) The user or apikey that last modified this alert.\n"},"zoneNames":{"type":"array","items":{"type":"string"},"description":"A list of zones this alert applies to.\n"}},"required":["createdAt","createdBy","name","subtype","type","updatedAt","updatedBy"],"inputProperties":{"datas":{"type":"array","items":{"$ref":"#/types/ns1:index/AlertData:AlertData"},"description":"A resource block with additional settings: the name and type of them vary based on the alert type.\n"},"name":{"type":"string","description":"The free-form display name for the alert.\n"},"notificationLists":{"type":"array","items":{"type":"string"},"description":"A list of id's for notification lists whose notifiers will be triggered by the alert.\n"},"recordIds":{"type":"array","items":{"type":"string"},"description":"A list of record id's this alert applies to.\n"},"subtype":{"type":"string","description":"The type of the alert.\n"},"type":{"type":"string","description":"The type of the alert.\n"},"zoneNames":{"type":"array","items":{"type":"string"},"description":"A list of zones this alert applies to.\n"}},"requiredInputs":["subtype","type"],"stateInputs":{"description":"Input properties used for looking up and filtering Alert resources.\n","properties":{"createdAt":{"type":"integer","description":"(Read Only) The Unix timestamp representing when the alert configuration was created.\n"},"createdBy":{"type":"string","description":"(Read Only) The user or apikey that created this alert.\n"},"datas":{"type":"array","items":{"$ref":"#/types/ns1:index/AlertData:AlertData"},"description":"A resource block with additional settings: the name and type of them vary based on the alert type.\n"},"name":{"type":"string","description":"The free-form display name for the alert.\n"},"notificationLists":{"type":"array","items":{"type":"string"},"description":"A list of id's for notification lists whose notifiers will be triggered by the alert.\n"},"recordIds":{"type":"array","items":{"type":"string"},"description":"A list of record id's this alert applies to.\n"},"subtype":{"type":"string","description":"The type of the alert.\n"},"type":{"type":"string","description":"The type of the alert.\n"},"updatedAt":{"type":"integer","description":"(Read Only) The Unix timestamp representing when the alert configuration was last modified.\n"},"updatedBy":{"type":"string","description":"(Read Only) The user or apikey that last modified this alert.\n"},"zoneNames":{"type":"array","items":{"type":"string"},"description":"A list of zones this alert applies to.\n"}},"type":"object"}},"ns1:index/application:Application":{"description":"Provides a NS1 Pulsar application resource. This can be used to create, modify, and delete applications.\n\n","properties":{"active":{"type":"boolean","description":"Indicates whether or not this application is currently active and usable for traffic\nsteering.\n"},"browserWaitMillis":{"type":"integer","description":"The amount of time (in milliseconds) the browser should wait before running\nmeasurements.\n"},"defaultConfig":{"$ref":"#/types/ns1:index/ApplicationDefaultConfig:ApplicationDefaultConfig","description":"Default job configuration. If a field is present here and not on a specific job\nassociated with this application, the default value specified here is used..\n"},"jobsPerTransaction":{"type":"integer","description":"Number of jobs to measure per user impression.\n"},"name":{"type":"string","description":"Descriptive name for this Pulsar app.\n"}},"required":["defaultConfig","name"],"inputProperties":{"active":{"type":"boolean","description":"Indicates whether or not this application is currently active and usable for traffic\nsteering.\n"},"browserWaitMillis":{"type":"integer","description":"The amount of time (in milliseconds) the browser should wait before running\nmeasurements.\n"},"defaultConfig":{"$ref":"#/types/ns1:index/ApplicationDefaultConfig:ApplicationDefaultConfig","description":"Default job configuration. If a field is present here and not on a specific job\nassociated with this application, the default value specified here is used..\n"},"jobsPerTransaction":{"type":"integer","description":"Number of jobs to measure per user impression.\n"},"name":{"type":"string","description":"Descriptive name for this Pulsar app.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Application resources.\n","properties":{"active":{"type":"boolean","description":"Indicates whether or not this application is currently active and usable for traffic\nsteering.\n"},"browserWaitMillis":{"type":"integer","description":"The amount of time (in milliseconds) the browser should wait before running\nmeasurements.\n"},"defaultConfig":{"$ref":"#/types/ns1:index/ApplicationDefaultConfig:ApplicationDefaultConfig","description":"Default job configuration. If a field is present here and not on a specific job\nassociated with this application, the default value specified here is used..\n"},"jobsPerTransaction":{"type":"integer","description":"Number of jobs to measure per user impression.\n"},"name":{"type":"string","description":"Descriptive name for this Pulsar app.\n"}},"type":"object"}},"ns1:index/dataFeed:DataFeed":{"description":"Provides a NS1 Data Feed resource. This can be used to create, modify, and delete data feeds.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\nconst example = new ns1.DataSource(\"example\", {\n    name: \"example\",\n    sourcetype: \"nsone_v1\",\n});\nconst exampleMonitoring = new ns1.DataSource(\"example_monitoring\", {\n    name: \"example_monitoring\",\n    sourcetype: \"nsone_monitoring\",\n});\nconst uswestFeed = new ns1.DataFeed(\"uswest_feed\", {\n    name: \"uswest_feed\",\n    sourceId: example.id,\n    config: {\n        label: \"uswest\",\n    },\n});\nconst useastFeed = new ns1.DataFeed(\"useast_feed\", {\n    name: \"useast_feed\",\n    sourceId: example.id,\n    config: {\n        label: \"useast\",\n    },\n});\nconst useastMonitorFeed = new ns1.DataFeed(\"useast_monitor_feed\", {\n    name: \"useast_monitor_feed\",\n    sourceId: exampleMonitoring.id,\n    config: {\n        jobid: exampleJob.id,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\nexample = ns1.DataSource(\"example\",\n    name=\"example\",\n    sourcetype=\"nsone_v1\")\nexample_monitoring = ns1.DataSource(\"example_monitoring\",\n    name=\"example_monitoring\",\n    sourcetype=\"nsone_monitoring\")\nuswest_feed = ns1.DataFeed(\"uswest_feed\",\n    name=\"uswest_feed\",\n    source_id=example.id,\n    config={\n        \"label\": \"uswest\",\n    })\nuseast_feed = ns1.DataFeed(\"useast_feed\",\n    name=\"useast_feed\",\n    source_id=example.id,\n    config={\n        \"label\": \"useast\",\n    })\nuseast_monitor_feed = ns1.DataFeed(\"useast_monitor_feed\",\n    name=\"useast_monitor_feed\",\n    source_id=example_monitoring.id,\n    config={\n        \"jobid\": example_job[\"id\"],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Ns1.DataSource(\"example\", new()\n    {\n        Name = \"example\",\n        Sourcetype = \"nsone_v1\",\n    });\n\n    var exampleMonitoring = new Ns1.DataSource(\"example_monitoring\", new()\n    {\n        Name = \"example_monitoring\",\n        Sourcetype = \"nsone_monitoring\",\n    });\n\n    var uswestFeed = new Ns1.DataFeed(\"uswest_feed\", new()\n    {\n        Name = \"uswest_feed\",\n        SourceId = example.Id,\n        Config = \n        {\n            { \"label\", \"uswest\" },\n        },\n    });\n\n    var useastFeed = new Ns1.DataFeed(\"useast_feed\", new()\n    {\n        Name = \"useast_feed\",\n        SourceId = example.Id,\n        Config = \n        {\n            { \"label\", \"useast\" },\n        },\n    });\n\n    var useastMonitorFeed = new Ns1.DataFeed(\"useast_monitor_feed\", new()\n    {\n        Name = \"useast_monitor_feed\",\n        SourceId = exampleMonitoring.Id,\n        Config = \n        {\n            { \"jobid\", exampleJob.Id },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ns1.NewDataSource(ctx, \"example\", \u0026ns1.DataSourceArgs{\n\t\t\tName:       pulumi.String(\"example\"),\n\t\t\tSourcetype: pulumi.String(\"nsone_v1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleMonitoring, err := ns1.NewDataSource(ctx, \"example_monitoring\", \u0026ns1.DataSourceArgs{\n\t\t\tName:       pulumi.String(\"example_monitoring\"),\n\t\t\tSourcetype: pulumi.String(\"nsone_monitoring\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ns1.NewDataFeed(ctx, \"uswest_feed\", \u0026ns1.DataFeedArgs{\n\t\t\tName:     pulumi.String(\"uswest_feed\"),\n\t\t\tSourceId: example.ID(),\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"label\": pulumi.String(\"uswest\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ns1.NewDataFeed(ctx, \"useast_feed\", \u0026ns1.DataFeedArgs{\n\t\t\tName:     pulumi.String(\"useast_feed\"),\n\t\t\tSourceId: example.ID(),\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"label\": pulumi.String(\"useast\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ns1.NewDataFeed(ctx, \"useast_monitor_feed\", \u0026ns1.DataFeedArgs{\n\t\t\tName:     pulumi.String(\"useast_monitor_feed\"),\n\t\t\tSourceId: exampleMonitoring.ID(),\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"jobid\": pulumi.Any(exampleJob.Id),\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.ns1.DataSource;\nimport com.pulumi.ns1.DataSourceArgs;\nimport com.pulumi.ns1.DataFeed;\nimport com.pulumi.ns1.DataFeedArgs;\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 DataSource(\"example\", DataSourceArgs.builder()\n            .name(\"example\")\n            .sourcetype(\"nsone_v1\")\n            .build());\n\n        var exampleMonitoring = new DataSource(\"exampleMonitoring\", DataSourceArgs.builder()\n            .name(\"example_monitoring\")\n            .sourcetype(\"nsone_monitoring\")\n            .build());\n\n        var uswestFeed = new DataFeed(\"uswestFeed\", DataFeedArgs.builder()\n            .name(\"uswest_feed\")\n            .sourceId(example.id())\n            .config(Map.of(\"label\", \"uswest\"))\n            .build());\n\n        var useastFeed = new DataFeed(\"useastFeed\", DataFeedArgs.builder()\n            .name(\"useast_feed\")\n            .sourceId(example.id())\n            .config(Map.of(\"label\", \"useast\"))\n            .build());\n\n        var useastMonitorFeed = new DataFeed(\"useastMonitorFeed\", DataFeedArgs.builder()\n            .name(\"useast_monitor_feed\")\n            .sourceId(exampleMonitoring.id())\n            .config(Map.of(\"jobid\", exampleJob.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: ns1:DataSource\n    properties:\n      name: example\n      sourcetype: nsone_v1\n  exampleMonitoring:\n    type: ns1:DataSource\n    name: example_monitoring\n    properties:\n      name: example_monitoring\n      sourcetype: nsone_monitoring\n  uswestFeed:\n    type: ns1:DataFeed\n    name: uswest_feed\n    properties:\n      name: uswest_feed\n      sourceId: ${example.id}\n      config:\n        label: uswest\n  useastFeed:\n    type: ns1:DataFeed\n    name: useast_feed\n    properties:\n      name: useast_feed\n      sourceId: ${example.id}\n      config:\n        label: useast\n  useastMonitorFeed:\n    type: ns1:DataFeed\n    name: useast_monitor_feed\n    properties:\n      name: useast_monitor_feed\n      sourceId: ${exampleMonitoring.id}\n      config:\n        jobid: ${exampleJob.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## NS1 Documentation\n\n[Datafeed Api Doc](https://ns1.com/api#data-feeds)\n\n## Import\n\n`terraform import ns1_datafeed.\u003cname\u003e \u003cdatasource_id\u003e/\u003cdatafeed_id\u003e`\n\n","properties":{"config":{"type":"object","additionalProperties":{"type":"string"},"description":"The feeds configuration matching the specification in\n\u003cspan pulumi-lang-nodejs=\"`feedConfig`\" pulumi-lang-dotnet=\"`FeedConfig`\" pulumi-lang-go=\"`feedConfig`\" pulumi-lang-python=\"`feed_config`\" pulumi-lang-yaml=\"`feedConfig`\" pulumi-lang-java=\"`feedConfig`\"\u003e`feed_config`\u003c/span\u003e from /data/sourcetypes. \u003cspan pulumi-lang-nodejs=\"`jobid`\" pulumi-lang-dotnet=\"`Jobid`\" pulumi-lang-go=\"`jobid`\" pulumi-lang-python=\"`jobid`\" pulumi-lang-yaml=\"`jobid`\" pulumi-lang-java=\"`jobid`\"\u003e`jobid`\u003c/span\u003e is required in the \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e for datafeeds connected to NS1 monitoring.\n"},"name":{"type":"string","description":"The free form name of the data feed.\n"},"sourceId":{"type":"string","description":"The data source id that this feed is connected to.\n"}},"required":["name","sourceId"],"inputProperties":{"config":{"type":"object","additionalProperties":{"type":"string"},"description":"The feeds configuration matching the specification in\n\u003cspan pulumi-lang-nodejs=\"`feedConfig`\" pulumi-lang-dotnet=\"`FeedConfig`\" pulumi-lang-go=\"`feedConfig`\" pulumi-lang-python=\"`feed_config`\" pulumi-lang-yaml=\"`feedConfig`\" pulumi-lang-java=\"`feedConfig`\"\u003e`feed_config`\u003c/span\u003e from /data/sourcetypes. \u003cspan pulumi-lang-nodejs=\"`jobid`\" pulumi-lang-dotnet=\"`Jobid`\" pulumi-lang-go=\"`jobid`\" pulumi-lang-python=\"`jobid`\" pulumi-lang-yaml=\"`jobid`\" pulumi-lang-java=\"`jobid`\"\u003e`jobid`\u003c/span\u003e is required in the \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e for datafeeds connected to NS1 monitoring.\n"},"name":{"type":"string","description":"The free form name of the data feed.\n"},"sourceId":{"type":"string","description":"The data source id that this feed is connected to.\n","willReplaceOnChanges":true}},"requiredInputs":["sourceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DataFeed resources.\n","properties":{"config":{"type":"object","additionalProperties":{"type":"string"},"description":"The feeds configuration matching the specification in\n\u003cspan pulumi-lang-nodejs=\"`feedConfig`\" pulumi-lang-dotnet=\"`FeedConfig`\" pulumi-lang-go=\"`feedConfig`\" pulumi-lang-python=\"`feed_config`\" pulumi-lang-yaml=\"`feedConfig`\" pulumi-lang-java=\"`feedConfig`\"\u003e`feed_config`\u003c/span\u003e from /data/sourcetypes. \u003cspan pulumi-lang-nodejs=\"`jobid`\" pulumi-lang-dotnet=\"`Jobid`\" pulumi-lang-go=\"`jobid`\" pulumi-lang-python=\"`jobid`\" pulumi-lang-yaml=\"`jobid`\" pulumi-lang-java=\"`jobid`\"\u003e`jobid`\u003c/span\u003e is required in the \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e for datafeeds connected to NS1 monitoring.\n"},"name":{"type":"string","description":"The free form name of the data feed.\n"},"sourceId":{"type":"string","description":"The data source id that this feed is connected to.\n","willReplaceOnChanges":true}},"type":"object"}},"ns1:index/dataSource:DataSource":{"description":"Provides a NS1 Data Source resource. This can be used to create, modify, and delete data sources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\nconst example = new ns1.DataSource(\"example\", {\n    name: \"example\",\n    sourcetype: \"nsone_v1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\nexample = ns1.DataSource(\"example\",\n    name=\"example\",\n    sourcetype=\"nsone_v1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Ns1.DataSource(\"example\", new()\n    {\n        Name = \"example\",\n        Sourcetype = \"nsone_v1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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 := ns1.NewDataSource(ctx, \"example\", \u0026ns1.DataSourceArgs{\n\t\t\tName:       pulumi.String(\"example\"),\n\t\t\tSourcetype: pulumi.String(\"nsone_v1\"),\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.ns1.DataSource;\nimport com.pulumi.ns1.DataSourceArgs;\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 DataSource(\"example\", DataSourceArgs.builder()\n            .name(\"example\")\n            .sourcetype(\"nsone_v1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: ns1:DataSource\n    properties:\n      name: example\n      sourcetype: nsone_v1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## NS1 Documentation\n\n[Datasource Api Doc](https://ns1.com/api#data-sources)\n\n## Import\n\n`terraform import ns1_datasource.\u003cname\u003e \u003cdatasource_id\u003e`\n\n","properties":{"config":{"type":"object","additionalProperties":{"type":"string"},"description":"The data source configuration, determined by its type,\nmatching the specification in \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e from /data/sourcetypes.\n"},"name":{"type":"string","description":"The free form name of the data source.\n"},"sourcetype":{"type":"string","description":"The data sources type, listed in API endpoint https://api.nsone.net/v1/data/sourcetypes.\n"}},"required":["name","sourcetype"],"inputProperties":{"config":{"type":"object","additionalProperties":{"type":"string"},"description":"The data source configuration, determined by its type,\nmatching the specification in \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e from /data/sourcetypes.\n"},"name":{"type":"string","description":"The free form name of the data source.\n"},"sourcetype":{"type":"string","description":"The data sources type, listed in API endpoint https://api.nsone.net/v1/data/sourcetypes.\n","willReplaceOnChanges":true}},"requiredInputs":["sourcetype"],"stateInputs":{"description":"Input properties used for looking up and filtering DataSource resources.\n","properties":{"config":{"type":"object","additionalProperties":{"type":"string"},"description":"The data source configuration, determined by its type,\nmatching the specification in \u003cspan pulumi-lang-nodejs=\"`config`\" pulumi-lang-dotnet=\"`Config`\" pulumi-lang-go=\"`config`\" pulumi-lang-python=\"`config`\" pulumi-lang-yaml=\"`config`\" pulumi-lang-java=\"`config`\"\u003e`config`\u003c/span\u003e from /data/sourcetypes.\n"},"name":{"type":"string","description":"The free form name of the data source.\n"},"sourcetype":{"type":"string","description":"The data sources type, listed in API endpoint https://api.nsone.net/v1/data/sourcetypes.\n","willReplaceOnChanges":true}},"type":"object"}},"ns1:index/dataset:Dataset":{"properties":{"datatype":{"$ref":"#/types/ns1:index/DatasetDatatype:DatasetDatatype"},"exportType":{"type":"string"},"name":{"type":"string"},"recipientEmails":{"type":"array","items":{"type":"string"}},"repeat":{"$ref":"#/types/ns1:index/DatasetRepeat:DatasetRepeat"},"reports":{"type":"array","items":{"$ref":"#/types/ns1:index/DatasetReport:DatasetReport"}},"timeframe":{"$ref":"#/types/ns1:index/DatasetTimeframe:DatasetTimeframe"}},"required":["datatype","exportType","name","reports","timeframe"],"inputProperties":{"datatype":{"$ref":"#/types/ns1:index/DatasetDatatype:DatasetDatatype"},"exportType":{"type":"string"},"name":{"type":"string"},"recipientEmails":{"type":"array","items":{"type":"string"}},"repeat":{"$ref":"#/types/ns1:index/DatasetRepeat:DatasetRepeat"},"timeframe":{"$ref":"#/types/ns1:index/DatasetTimeframe:DatasetTimeframe"}},"requiredInputs":["datatype","exportType","timeframe"],"stateInputs":{"description":"Input properties used for looking up and filtering Dataset resources.\n","properties":{"datatype":{"$ref":"#/types/ns1:index/DatasetDatatype:DatasetDatatype"},"exportType":{"type":"string"},"name":{"type":"string"},"recipientEmails":{"type":"array","items":{"type":"string"}},"repeat":{"$ref":"#/types/ns1:index/DatasetRepeat:DatasetRepeat"},"reports":{"type":"array","items":{"$ref":"#/types/ns1:index/DatasetReport:DatasetReport"}},"timeframe":{"$ref":"#/types/ns1:index/DatasetTimeframe:DatasetTimeframe"}},"type":"object"}},"ns1:index/dnsview:Dnsview":{"properties":{"createdAt":{"type":"integer"},"name":{"type":"string"},"networks":{"type":"array","items":{"type":"integer"}},"preference":{"type":"integer"},"readAcls":{"type":"array","items":{"type":"string"}},"updateAcls":{"type":"array","items":{"type":"string"}},"updatedAt":{"type":"integer"},"zones":{"type":"array","items":{"type":"string"}}},"required":["createdAt","name","preference","updatedAt"],"inputProperties":{"name":{"type":"string"},"networks":{"type":"array","items":{"type":"integer"}},"preference":{"type":"integer"},"readAcls":{"type":"array","items":{"type":"string"}},"updateAcls":{"type":"array","items":{"type":"string"}},"zones":{"type":"array","items":{"type":"string"}}},"stateInputs":{"description":"Input properties used for looking up and filtering Dnsview resources.\n","properties":{"createdAt":{"type":"integer"},"name":{"type":"string"},"networks":{"type":"array","items":{"type":"integer"}},"preference":{"type":"integer"},"readAcls":{"type":"array","items":{"type":"string"}},"updateAcls":{"type":"array","items":{"type":"string"}},"updatedAt":{"type":"integer"},"zones":{"type":"array","items":{"type":"string"}}},"type":"object"}},"ns1:index/monitoringJob:MonitoringJob":{"description":"Provides a NS1 Monitoring Job resource. This can be used to create, modify, and delete monitoring jobs.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\nconst uswestMonitor = new ns1.MonitoringJob(\"uswest_monitor\", {\n    name: \"uswest\",\n    active: true,\n    regions: [\n        \"lga\",\n        \"sjc\",\n        \"sin\",\n    ],\n    jobType: \"tcp\",\n    frequency: 60,\n    rapidRecheck: true,\n    policy: \"quorum\",\n    mute: true,\n    config: {\n        ssl: \"1\",\n        send: \"HEAD / HTTP/1.0\\\\r\\\\n\\\\r\\\\n\",\n        port: \"443\",\n        host: \"example-elb-uswest.aws.amazon.com\",\n    },\n    rules: [{\n        value: \"200 OK\",\n        comparison: \"contains\",\n        key: \"output\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\nuswest_monitor = ns1.MonitoringJob(\"uswest_monitor\",\n    name=\"uswest\",\n    active=True,\n    regions=[\n        \"lga\",\n        \"sjc\",\n        \"sin\",\n    ],\n    job_type=\"tcp\",\n    frequency=60,\n    rapid_recheck=True,\n    policy=\"quorum\",\n    mute=True,\n    config={\n        \"ssl\": \"1\",\n        \"send\": \"HEAD / HTTP/1.0\\\\r\\\\n\\\\r\\\\n\",\n        \"port\": \"443\",\n        \"host\": \"example-elb-uswest.aws.amazon.com\",\n    },\n    rules=[{\n        \"value\": \"200 OK\",\n        \"comparison\": \"contains\",\n        \"key\": \"output\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var uswestMonitor = new Ns1.MonitoringJob(\"uswest_monitor\", new()\n    {\n        Name = \"uswest\",\n        Active = true,\n        Regions = new[]\n        {\n            \"lga\",\n            \"sjc\",\n            \"sin\",\n        },\n        JobType = \"tcp\",\n        Frequency = 60,\n        RapidRecheck = true,\n        Policy = \"quorum\",\n        Mute = true,\n        Config = \n        {\n            { \"ssl\", \"1\" },\n            { \"send\", \"HEAD / HTTP/1.0\\\\r\\\\n\\\\r\\\\n\" },\n            { \"port\", \"443\" },\n            { \"host\", \"example-elb-uswest.aws.amazon.com\" },\n        },\n        Rules = new[]\n        {\n            new Ns1.Inputs.MonitoringJobRuleArgs\n            {\n                Value = \"200 OK\",\n                Comparison = \"contains\",\n                Key = \"output\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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 := ns1.NewMonitoringJob(ctx, \"uswest_monitor\", \u0026ns1.MonitoringJobArgs{\n\t\t\tName:   pulumi.String(\"uswest\"),\n\t\t\tActive: pulumi.Bool(true),\n\t\t\tRegions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"lga\"),\n\t\t\t\tpulumi.String(\"sjc\"),\n\t\t\t\tpulumi.String(\"sin\"),\n\t\t\t},\n\t\t\tJobType:      pulumi.String(\"tcp\"),\n\t\t\tFrequency:    pulumi.Int(60),\n\t\t\tRapidRecheck: pulumi.Bool(true),\n\t\t\tPolicy:       pulumi.String(\"quorum\"),\n\t\t\tMute:         pulumi.Bool(true),\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"ssl\":  pulumi.String(\"1\"),\n\t\t\t\t\"send\": pulumi.String(\"HEAD / HTTP/1.0\\\\r\\\\n\\\\r\\\\n\"),\n\t\t\t\t\"port\": pulumi.String(\"443\"),\n\t\t\t\t\"host\": pulumi.String(\"example-elb-uswest.aws.amazon.com\"),\n\t\t\t},\n\t\t\tRules: ns1.MonitoringJobRuleArray{\n\t\t\t\t\u0026ns1.MonitoringJobRuleArgs{\n\t\t\t\t\tValue:      pulumi.String(\"200 OK\"),\n\t\t\t\t\tComparison: pulumi.String(\"contains\"),\n\t\t\t\t\tKey:        pulumi.String(\"output\"),\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.ns1.MonitoringJob;\nimport com.pulumi.ns1.MonitoringJobArgs;\nimport com.pulumi.ns1.inputs.MonitoringJobRuleArgs;\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 uswestMonitor = new MonitoringJob(\"uswestMonitor\", MonitoringJobArgs.builder()\n            .name(\"uswest\")\n            .active(true)\n            .regions(            \n                \"lga\",\n                \"sjc\",\n                \"sin\")\n            .jobType(\"tcp\")\n            .frequency(60)\n            .rapidRecheck(true)\n            .policy(\"quorum\")\n            .mute(true)\n            .config(Map.ofEntries(\n                Map.entry(\"ssl\", \"1\"),\n                Map.entry(\"send\", \"HEAD / HTTP/1.0\\\\r\\\\n\\\\r\\\\n\"),\n                Map.entry(\"port\", \"443\"),\n                Map.entry(\"host\", \"example-elb-uswest.aws.amazon.com\")\n            ))\n            .rules(MonitoringJobRuleArgs.builder()\n                .value(\"200 OK\")\n                .comparison(\"contains\")\n                .key(\"output\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  uswestMonitor:\n    type: ns1:MonitoringJob\n    name: uswest_monitor\n    properties:\n      name: uswest\n      active: true\n      regions:\n        - lga\n        - sjc\n        - sin\n      jobType: tcp\n      frequency: 60\n      rapidRecheck: true\n      policy: quorum\n      mute: true\n      config:\n        ssl: 1\n        send: HEAD / HTTP/1.0\\r\\n\\r\\n\n        port: 443\n        host: example-elb-uswest.aws.amazon.com\n      rules:\n        - value: 200 OK\n          comparison: contains\n          key: output\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## NS1 Documentation\n\n[MonitoringJob Api Doc](https://ns1.com/api#monitoring-jobs)\n\n## Import\n\n`terraform import ns1_monitoringjob.\u003cname\u003e \u003cmonitoringjob_id\u003e`\n\n","properties":{"active":{"type":"boolean","description":"Indicates if the job is active or temporarily disabled.\n"},"config":{"type":"object","additionalProperties":{"type":"string"},"description":"A configuration dictionary with keys and values depending on the job_type. Configuration details for each\u003cspan pulumi-lang-nodejs=\" jobType \" pulumi-lang-dotnet=\" JobType \" pulumi-lang-go=\" jobType \" pulumi-lang-python=\" job_type \" pulumi-lang-yaml=\" jobType \" pulumi-lang-java=\" jobType \"\u003e job_type \u003c/span\u003eare found by submitting a GET request to https://api.nsone.net/v1/monitoring/jobtypes.\n"},"frequency":{"type":"integer","description":"The frequency, in seconds, at which to run the monitoring job in each region.\n"},"jobType":{"type":"string","description":"The type of monitoring job to be run. Refer to the NS1 API documentation (https://ns1.com/api#monitoring-jobs) for supported values which include ping, tcp, dns, http.\n"},"mute":{"type":"boolean","description":"Turn off the notifications for the monitoring job.\n"},"name":{"type":"string","description":"The free-form display name for the monitoring job.\n"},"notes":{"type":"string","description":"Freeform notes to be included in any notifications about this job.\n"},"notifyDelay":{"type":"integer","description":"The time in seconds after a failure to wait before sending a notification.\n"},"notifyFailback":{"type":"boolean","description":"If true, a notification is sent when a job returns to an \"up\" state.\n"},"notifyList":{"type":"string","description":"The Terraform ID (e.g. ns1_notifylist.my_slack_notifier.id) of the notification list to which monitoring notifications should be sent.\n"},"notifyRegional":{"type":"boolean","description":"If true, notifications are sent for any regional failure (and failback if desired), in addition to global state notifications.\n"},"notifyRepeat":{"type":"integer","description":"The time in seconds between repeat notifications of a failed job.\n"},"policy":{"type":"string","description":"The policy for determining the monitor's global status\nbased on the status of the job in all regions. Supported values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`one`\" pulumi-lang-dotnet=\"`One`\" pulumi-lang-go=\"`one`\" pulumi-lang-python=\"`one`\" pulumi-lang-yaml=\"`one`\" pulumi-lang-java=\"`one`\"\u003e`one`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`quorum`\" pulumi-lang-dotnet=\"`Quorum`\" pulumi-lang-go=\"`quorum`\" pulumi-lang-python=\"`quorum`\" pulumi-lang-yaml=\"`quorum`\" pulumi-lang-java=\"`quorum`\"\u003e`quorum`\u003c/span\u003e.\n"},"rapidRecheck":{"type":"boolean","description":"If true, on any apparent state change, the job is quickly re-run after one second to confirm the state change before notification.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"The list of region codes in which to run the monitoring\njob. See NS1 API docs for supported values.\n"},"rules":{"type":"array","items":{"$ref":"#/types/ns1:index/MonitoringJobRule:MonitoringJobRule"},"description":"A list of rules for determining failure conditions. Each rule acts on one of the outputs from the monitoring job. You must specify key (the output key); comparison (a comparison to perform on the the output); and value (the value to compare to). For example, {\"key\":\"rtt\", \"comparison\":\"\u003c\", \"value\":100} is a rule requiring the rtt from a job to be under 100ms, or the job will be marked failed. Available output keys, comparators, and value types are are found by submitting a GET request to https://api.nsone.net/v1/monitoring/jobtypes.\n"}},"required":["config","frequency","jobType","name","regions"],"inputProperties":{"active":{"type":"boolean","description":"Indicates if the job is active or temporarily disabled.\n"},"config":{"type":"object","additionalProperties":{"type":"string"},"description":"A configuration dictionary with keys and values depending on the job_type. Configuration details for each\u003cspan pulumi-lang-nodejs=\" jobType \" pulumi-lang-dotnet=\" JobType \" pulumi-lang-go=\" jobType \" pulumi-lang-python=\" job_type \" pulumi-lang-yaml=\" jobType \" pulumi-lang-java=\" jobType \"\u003e job_type \u003c/span\u003eare found by submitting a GET request to https://api.nsone.net/v1/monitoring/jobtypes.\n"},"frequency":{"type":"integer","description":"The frequency, in seconds, at which to run the monitoring job in each region.\n"},"jobType":{"type":"string","description":"The type of monitoring job to be run. Refer to the NS1 API documentation (https://ns1.com/api#monitoring-jobs) for supported values which include ping, tcp, dns, http.\n","willReplaceOnChanges":true},"mute":{"type":"boolean","description":"Turn off the notifications for the monitoring job.\n"},"name":{"type":"string","description":"The free-form display name for the monitoring job.\n"},"notes":{"type":"string","description":"Freeform notes to be included in any notifications about this job.\n"},"notifyDelay":{"type":"integer","description":"The time in seconds after a failure to wait before sending a notification.\n"},"notifyFailback":{"type":"boolean","description":"If true, a notification is sent when a job returns to an \"up\" state.\n"},"notifyList":{"type":"string","description":"The Terraform ID (e.g. ns1_notifylist.my_slack_notifier.id) of the notification list to which monitoring notifications should be sent.\n"},"notifyRegional":{"type":"boolean","description":"If true, notifications are sent for any regional failure (and failback if desired), in addition to global state notifications.\n"},"notifyRepeat":{"type":"integer","description":"The time in seconds between repeat notifications of a failed job.\n"},"policy":{"type":"string","description":"The policy for determining the monitor's global status\nbased on the status of the job in all regions. Supported values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`one`\" pulumi-lang-dotnet=\"`One`\" pulumi-lang-go=\"`one`\" pulumi-lang-python=\"`one`\" pulumi-lang-yaml=\"`one`\" pulumi-lang-java=\"`one`\"\u003e`one`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`quorum`\" pulumi-lang-dotnet=\"`Quorum`\" pulumi-lang-go=\"`quorum`\" pulumi-lang-python=\"`quorum`\" pulumi-lang-yaml=\"`quorum`\" pulumi-lang-java=\"`quorum`\"\u003e`quorum`\u003c/span\u003e.\n"},"rapidRecheck":{"type":"boolean","description":"If true, on any apparent state change, the job is quickly re-run after one second to confirm the state change before notification.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"The list of region codes in which to run the monitoring\njob. See NS1 API docs for supported values.\n"},"rules":{"type":"array","items":{"$ref":"#/types/ns1:index/MonitoringJobRule:MonitoringJobRule"},"description":"A list of rules for determining failure conditions. Each rule acts on one of the outputs from the monitoring job. You must specify key (the output key); comparison (a comparison to perform on the the output); and value (the value to compare to). For example, {\"key\":\"rtt\", \"comparison\":\"\u003c\", \"value\":100} is a rule requiring the rtt from a job to be under 100ms, or the job will be marked failed. Available output keys, comparators, and value types are are found by submitting a GET request to https://api.nsone.net/v1/monitoring/jobtypes.\n"}},"requiredInputs":["config","frequency","jobType","regions"],"stateInputs":{"description":"Input properties used for looking up and filtering MonitoringJob resources.\n","properties":{"active":{"type":"boolean","description":"Indicates if the job is active or temporarily disabled.\n"},"config":{"type":"object","additionalProperties":{"type":"string"},"description":"A configuration dictionary with keys and values depending on the job_type. Configuration details for each\u003cspan pulumi-lang-nodejs=\" jobType \" pulumi-lang-dotnet=\" JobType \" pulumi-lang-go=\" jobType \" pulumi-lang-python=\" job_type \" pulumi-lang-yaml=\" jobType \" pulumi-lang-java=\" jobType \"\u003e job_type \u003c/span\u003eare found by submitting a GET request to https://api.nsone.net/v1/monitoring/jobtypes.\n"},"frequency":{"type":"integer","description":"The frequency, in seconds, at which to run the monitoring job in each region.\n"},"jobType":{"type":"string","description":"The type of monitoring job to be run. Refer to the NS1 API documentation (https://ns1.com/api#monitoring-jobs) for supported values which include ping, tcp, dns, http.\n","willReplaceOnChanges":true},"mute":{"type":"boolean","description":"Turn off the notifications for the monitoring job.\n"},"name":{"type":"string","description":"The free-form display name for the monitoring job.\n"},"notes":{"type":"string","description":"Freeform notes to be included in any notifications about this job.\n"},"notifyDelay":{"type":"integer","description":"The time in seconds after a failure to wait before sending a notification.\n"},"notifyFailback":{"type":"boolean","description":"If true, a notification is sent when a job returns to an \"up\" state.\n"},"notifyList":{"type":"string","description":"The Terraform ID (e.g. ns1_notifylist.my_slack_notifier.id) of the notification list to which monitoring notifications should be sent.\n"},"notifyRegional":{"type":"boolean","description":"If true, notifications are sent for any regional failure (and failback if desired), in addition to global state notifications.\n"},"notifyRepeat":{"type":"integer","description":"The time in seconds between repeat notifications of a failed job.\n"},"policy":{"type":"string","description":"The policy for determining the monitor's global status\nbased on the status of the job in all regions. Supported values: \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`one`\" pulumi-lang-dotnet=\"`One`\" pulumi-lang-go=\"`one`\" pulumi-lang-python=\"`one`\" pulumi-lang-yaml=\"`one`\" pulumi-lang-java=\"`one`\"\u003e`one`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`quorum`\" pulumi-lang-dotnet=\"`Quorum`\" pulumi-lang-go=\"`quorum`\" pulumi-lang-python=\"`quorum`\" pulumi-lang-yaml=\"`quorum`\" pulumi-lang-java=\"`quorum`\"\u003e`quorum`\u003c/span\u003e.\n"},"rapidRecheck":{"type":"boolean","description":"If true, on any apparent state change, the job is quickly re-run after one second to confirm the state change before notification.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"The list of region codes in which to run the monitoring\njob. See NS1 API docs for supported values.\n"},"rules":{"type":"array","items":{"$ref":"#/types/ns1:index/MonitoringJobRule:MonitoringJobRule"},"description":"A list of rules for determining failure conditions. Each rule acts on one of the outputs from the monitoring job. You must specify key (the output key); comparison (a comparison to perform on the the output); and value (the value to compare to). For example, {\"key\":\"rtt\", \"comparison\":\"\u003c\", \"value\":100} is a rule requiring the rtt from a job to be under 100ms, or the job will be marked failed. Available output keys, comparators, and value types are are found by submitting a GET request to https://api.nsone.net/v1/monitoring/jobtypes.\n"}},"type":"object"}},"ns1:index/notifyList:NotifyList":{"description":"Provides a NS1 Notify List resource. This can be used to create, modify, and delete notify lists.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\nconst nl = new ns1.NotifyList(\"nl\", {\n    name: \"my notify list\",\n    notifications: [\n        {\n            type: \"webhook\",\n            config: {\n                url: \"http://www.mywebhook.com\",\n                headers: \"Content-Type: application/json\",\n            },\n        },\n        {\n            type: \"email\",\n            config: {\n                email: \"test@test.com\",\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\nnl = ns1.NotifyList(\"nl\",\n    name=\"my notify list\",\n    notifications=[\n        {\n            \"type\": \"webhook\",\n            \"config\": {\n                \"url\": \"http://www.mywebhook.com\",\n                \"headers\": \"Content-Type: application/json\",\n            },\n        },\n        {\n            \"type\": \"email\",\n            \"config\": {\n                \"email\": \"test@test.com\",\n            },\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var nl = new Ns1.NotifyList(\"nl\", new()\n    {\n        Name = \"my notify list\",\n        Notifications = new[]\n        {\n            new Ns1.Inputs.NotifyListNotificationArgs\n            {\n                Type = \"webhook\",\n                Config = \n                {\n                    { \"url\", \"http://www.mywebhook.com\" },\n                    { \"headers\", \"Content-Type: application/json\" },\n                },\n            },\n            new Ns1.Inputs.NotifyListNotificationArgs\n            {\n                Type = \"email\",\n                Config = \n                {\n                    { \"email\", \"test@test.com\" },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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 := ns1.NewNotifyList(ctx, \"nl\", \u0026ns1.NotifyListArgs{\n\t\t\tName: pulumi.String(\"my notify list\"),\n\t\t\tNotifications: ns1.NotifyListNotificationArray{\n\t\t\t\t\u0026ns1.NotifyListNotificationArgs{\n\t\t\t\t\tType: pulumi.String(\"webhook\"),\n\t\t\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\t\t\"url\":     pulumi.String(\"http://www.mywebhook.com\"),\n\t\t\t\t\t\t\"headers\": pulumi.String(\"Content-Type: application/json\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026ns1.NotifyListNotificationArgs{\n\t\t\t\t\tType: pulumi.String(\"email\"),\n\t\t\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\t\t\"email\": pulumi.String(\"test@test.com\"),\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.ns1.NotifyList;\nimport com.pulumi.ns1.NotifyListArgs;\nimport com.pulumi.ns1.inputs.NotifyListNotificationArgs;\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 nl = new NotifyList(\"nl\", NotifyListArgs.builder()\n            .name(\"my notify list\")\n            .notifications(            \n                NotifyListNotificationArgs.builder()\n                    .type(\"webhook\")\n                    .config(Map.ofEntries(\n                        Map.entry(\"url\", \"http://www.mywebhook.com\"),\n                        Map.entry(\"headers\", \"Content-Type: application/json\")\n                    ))\n                    .build(),\n                NotifyListNotificationArgs.builder()\n                    .type(\"email\")\n                    .config(Map.of(\"email\", \"test@test.com\"))\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  nl:\n    type: ns1:NotifyList\n    properties:\n      name: my notify list\n      notifications:\n        - type: webhook\n          config:\n            url: http://www.mywebhook.com\n            headers: 'Content-Type: application/json'\n        - type: email\n          config:\n            email: test@test.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## NS1 Documentation\n\n[NotifyList Api Doc](https://ns1.com/api#notification-lists)\n\n## Import\n\n`terraform import ns1_notifylist.\u003cname\u003e \u003cnotifylist_id\u003e`\n\n","properties":{"name":{"type":"string","description":"The free-form display name for the notify list.\n"},"notifications":{"type":"array","items":{"$ref":"#/types/ns1:index/NotifyListNotification:NotifyListNotification"},"description":"A list of notifiers. All notifiers in a notification list will receive notifications whenever an event is send to the list (e.g., when a monitoring job fails). Notifiers are documented below.\n"}},"required":["name"],"inputProperties":{"name":{"type":"string","description":"The free-form display name for the notify list.\n"},"notifications":{"type":"array","items":{"$ref":"#/types/ns1:index/NotifyListNotification:NotifyListNotification"},"description":"A list of notifiers. All notifiers in a notification list will receive notifications whenever an event is send to the list (e.g., when a monitoring job fails). Notifiers are documented below.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering NotifyList resources.\n","properties":{"name":{"type":"string","description":"The free-form display name for the notify list.\n"},"notifications":{"type":"array","items":{"$ref":"#/types/ns1:index/NotifyListNotification:NotifyListNotification"},"description":"A list of notifiers. All notifiers in a notification list will receive notifications whenever an event is send to the list (e.g., when a monitoring job fails). Notifiers are documented below.\n"}},"type":"object"}},"ns1:index/pulsarJob:PulsarJob":{"properties":{"active":{"type":"boolean"},"appId":{"type":"string"},"blendMetricWeights":{"$ref":"#/types/ns1:index/PulsarJobBlendMetricWeights:PulsarJobBlendMetricWeights"},"community":{"type":"boolean"},"config":{"$ref":"#/types/ns1:index/PulsarJobConfig:PulsarJobConfig"},"customer":{"type":"integer"},"jobId":{"type":"string"},"name":{"type":"string"},"shared":{"type":"boolean"},"typeId":{"type":"string"},"weights":{"type":"array","items":{"$ref":"#/types/ns1:index/PulsarJobWeight:PulsarJobWeight"}}},"required":["appId","community","customer","jobId","name","typeId"],"inputProperties":{"active":{"type":"boolean"},"appId":{"type":"string"},"blendMetricWeights":{"$ref":"#/types/ns1:index/PulsarJobBlendMetricWeights:PulsarJobBlendMetricWeights"},"config":{"$ref":"#/types/ns1:index/PulsarJobConfig:PulsarJobConfig"},"name":{"type":"string"},"shared":{"type":"boolean"},"typeId":{"type":"string"},"weights":{"type":"array","items":{"$ref":"#/types/ns1:index/PulsarJobWeight:PulsarJobWeight"}}},"requiredInputs":["appId","typeId"],"stateInputs":{"description":"Input properties used for looking up and filtering PulsarJob resources.\n","properties":{"active":{"type":"boolean"},"appId":{"type":"string"},"blendMetricWeights":{"$ref":"#/types/ns1:index/PulsarJobBlendMetricWeights:PulsarJobBlendMetricWeights"},"community":{"type":"boolean"},"config":{"$ref":"#/types/ns1:index/PulsarJobConfig:PulsarJobConfig"},"customer":{"type":"integer"},"jobId":{"type":"string","willReplaceOnChanges":true},"name":{"type":"string"},"shared":{"type":"boolean"},"typeId":{"type":"string"},"weights":{"type":"array","items":{"$ref":"#/types/ns1:index/PulsarJobWeight:PulsarJobWeight"}}},"type":"object"}},"ns1:index/record:Record":{"description":"Provides a NS1 Record resource. This can be used to create, modify, and delete records.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as external from \"@pulumi/external\";\nimport * as ns1 from \"@pulumi/ns1\";\nimport * as std from \"@pulumi/std\";\n\nconst example = new ns1.Zone(\"example\", {zone: \"terraform.example.io\"});\nconst ns1 = new ns1.DataSource(\"ns1\", {\n    name: \"ns1_source\",\n    sourcetype: \"nsone_v1\",\n});\nconst foo = new ns1.DataFeed(\"foo\", {\n    name: \"foo_feed\",\n    sourceId: ns1.id,\n    config: {\n        label: \"foo\",\n    },\n});\nconst bar = new ns1.DataFeed(\"bar\", {\n    name: \"bar_feed\",\n    sourceId: ns1.id,\n    config: {\n        label: \"bar\",\n    },\n});\nconst www = new ns1.Record(\"www\", {\n    zone: tld.zone,\n    domain: `www.${tld.zone}`,\n    type: \"CNAME\",\n    ttl: 60,\n    meta: {\n        up: \"true\",\n    },\n    regions: [\n        {\n            name: \"east\",\n            meta: {\n                georegion: \"US-EAST\",\n            },\n        },\n        {\n            name: \"usa\",\n            meta: {\n                country: \"US\",\n            },\n        },\n    ],\n    answers: [\n        {\n            answer: `sub1.${tld.zone}`,\n            region: \"east\",\n            meta: {\n                up: pulumi.interpolate`{\"feed\":\"${foo.id}\"}`,\n            },\n        },\n        {\n            answer: `sub2.${tld.zone}`,\n            meta: {\n                up: pulumi.interpolate`{\"feed\":\"${bar.id}\"}`,\n                connections: \"3\",\n            },\n        },\n        {\n            answer: `sub3.${tld.zone}`,\n            meta: {\n                pulsar: JSON.stringify([{\n                    job_id: \"abcdef\",\n                    bias: \"*0.55\",\n                    a5m_cutoff: 0.9,\n                }]),\n                subdivisions: JSON.stringify({\n                    BR: [\n                        \"SP\",\n                        \"SC\",\n                    ],\n                    DZ: [\n                        \"01\",\n                        \"02\",\n                        \"03\",\n                    ],\n                }),\n            },\n        },\n    ],\n    filters: [{\n        filter: \"select_first_n\",\n        config: {\n            N: \"1\",\n        },\n    }],\n});\n// Some other non-NS1 provider that returns a zone with a trailing dot and a domain with a leading dot.\nconst baz = new external.index.Source(\"baz\", {\n    zone: \"terraform.example.io.\",\n    domain: \".www.terraform.example.io\",\n});\n// Basic record showing how to clean a zone or domain field that comes from\n// another non-NS1 resource. DNS names often end in '.' characters to signify\n// the root of the DNS tree, but the NS1 provider does not support this.\n//\n// In other cases, a domain or zone may be passed in with a preceding dot ('.')\n// character which would likewise lead the system to fail.\nconst external = new ns1.Record(\"external\", {\n    zone: std.replace({\n        text: zone,\n        search: \"/(^\\\\.)|(\\\\.$)/\",\n        replace: \"\",\n    }).then(invoke =\u003e invoke.result),\n    domain: std.replace({\n        text: domain,\n        search: \"/(^\\\\.)|(\\\\.$)/\",\n        replace: \"\",\n    }).then(invoke =\u003e invoke.result),\n    type: \"CNAME\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_external as external\nimport pulumi_ns1 as ns1\nimport pulumi_std as std\n\nexample = ns1.Zone(\"example\", zone=\"terraform.example.io\")\nns1 = ns1.DataSource(\"ns1\",\n    name=\"ns1_source\",\n    sourcetype=\"nsone_v1\")\nfoo = ns1.DataFeed(\"foo\",\n    name=\"foo_feed\",\n    source_id=ns1.id,\n    config={\n        \"label\": \"foo\",\n    })\nbar = ns1.DataFeed(\"bar\",\n    name=\"bar_feed\",\n    source_id=ns1.id,\n    config={\n        \"label\": \"bar\",\n    })\nwww = ns1.Record(\"www\",\n    zone=tld[\"zone\"],\n    domain=f\"www.{tld['zone']}\",\n    type=\"CNAME\",\n    ttl=60,\n    meta={\n        \"up\": \"true\",\n    },\n    regions=[\n        {\n            \"name\": \"east\",\n            \"meta\": {\n                \"georegion\": \"US-EAST\",\n            },\n        },\n        {\n            \"name\": \"usa\",\n            \"meta\": {\n                \"country\": \"US\",\n            },\n        },\n    ],\n    answers=[\n        {\n            \"answer\": f\"sub1.{tld['zone']}\",\n            \"region\": \"east\",\n            \"meta\": {\n                \"up\": foo.id.apply(lambda id: f\"{{\\\"feed\\\":\\\"{id}\\\"}}\"),\n            },\n        },\n        {\n            \"answer\": f\"sub2.{tld['zone']}\",\n            \"meta\": {\n                \"up\": bar.id.apply(lambda id: f\"{{\\\"feed\\\":\\\"{id}\\\"}}\"),\n                \"connections\": \"3\",\n            },\n        },\n        {\n            \"answer\": f\"sub3.{tld['zone']}\",\n            \"meta\": {\n                \"pulsar\": json.dumps([{\n                    \"job_id\": \"abcdef\",\n                    \"bias\": \"*0.55\",\n                    \"a5m_cutoff\": 0.9,\n                }]),\n                \"subdivisions\": json.dumps({\n                    \"BR\": [\n                        \"SP\",\n                        \"SC\",\n                    ],\n                    \"DZ\": [\n                        \"01\",\n                        \"02\",\n                        \"03\",\n                    ],\n                }),\n            },\n        },\n    ],\n    filters=[{\n        \"filter\": \"select_first_n\",\n        \"config\": {\n            \"N\": \"1\",\n        },\n    }])\n# Some other non-NS1 provider that returns a zone with a trailing dot and a domain with a leading dot.\nbaz = external.index.Source(\"baz\",\n    zone=terraform.example.io.,\n    domain=.www.terraform.example.io)\n# Basic record showing how to clean a zone or domain field that comes from\n# another non-NS1 resource. DNS names often end in '.' characters to signify\n# the root of the DNS tree, but the NS1 provider does not support this.\n#\n# In other cases, a domain or zone may be passed in with a preceding dot ('.')\n# character which would likewise lead the system to fail.\nexternal = ns1.Record(\"external\",\n    zone=std.replace(text=zone,\n        search=\"/(^\\\\.)|(\\\\.$)/\",\n        replace=\"\").result,\n    domain=std.replace(text=domain,\n        search=\"/(^\\\\.)|(\\\\.$)/\",\n        replace=\"\").result,\n    type=\"CNAME\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing External = Pulumi.External;\nusing Ns1 = Pulumi.Ns1;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Ns1.Zone(\"example\", new()\n    {\n        ZoneName = \"terraform.example.io\",\n    });\n\n    var ns1 = new Ns1.DataSource(\"ns1\", new()\n    {\n        Name = \"ns1_source\",\n        Sourcetype = \"nsone_v1\",\n    });\n\n    var foo = new Ns1.DataFeed(\"foo\", new()\n    {\n        Name = \"foo_feed\",\n        SourceId = ns1.Id,\n        Config = \n        {\n            { \"label\", \"foo\" },\n        },\n    });\n\n    var bar = new Ns1.DataFeed(\"bar\", new()\n    {\n        Name = \"bar_feed\",\n        SourceId = ns1.Id,\n        Config = \n        {\n            { \"label\", \"bar\" },\n        },\n    });\n\n    var www = new Ns1.Record(\"www\", new()\n    {\n        Zone = tld.Zone,\n        Domain = $\"www.{tld.Zone}\",\n        Type = \"CNAME\",\n        Ttl = 60,\n        Meta = \n        {\n            { \"up\", \"true\" },\n        },\n        Regions = new[]\n        {\n            new Ns1.Inputs.RecordRegionArgs\n            {\n                Name = \"east\",\n                Meta = \n                {\n                    { \"georegion\", \"US-EAST\" },\n                },\n            },\n            new Ns1.Inputs.RecordRegionArgs\n            {\n                Name = \"usa\",\n                Meta = \n                {\n                    { \"country\", \"US\" },\n                },\n            },\n        },\n        Answers = new[]\n        {\n            new Ns1.Inputs.RecordAnswerArgs\n            {\n                Answer = $\"sub1.{tld.Zone}\",\n                Region = \"east\",\n                Meta = \n                {\n                    { \"up\", foo.Id.Apply(id =\u003e $\"{{\\\"feed\\\":\\\"{id}\\\"}}\") },\n                },\n            },\n            new Ns1.Inputs.RecordAnswerArgs\n            {\n                Answer = $\"sub2.{tld.Zone}\",\n                Meta = \n                {\n                    { \"up\", bar.Id.Apply(id =\u003e $\"{{\\\"feed\\\":\\\"{id}\\\"}}\") },\n                    { \"connections\", \"3\" },\n                },\n            },\n            new Ns1.Inputs.RecordAnswerArgs\n            {\n                Answer = $\"sub3.{tld.Zone}\",\n                Meta = \n                {\n                    { \"pulsar\", JsonSerializer.Serialize(new[]\n                    {\n                        new Dictionary\u003cstring, object?\u003e\n                        {\n                            [\"job_id\"] = \"abcdef\",\n                            [\"bias\"] = \"*0.55\",\n                            [\"a5m_cutoff\"] = 0.9,\n                        },\n                    }) },\n                    { \"subdivisions\", JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"BR\"] = new[]\n                        {\n                            \"SP\",\n                            \"SC\",\n                        },\n                        [\"DZ\"] = new[]\n                        {\n                            \"01\",\n                            \"02\",\n                            \"03\",\n                        },\n                    }) },\n                },\n            },\n        },\n        Filters = new[]\n        {\n            new Ns1.Inputs.RecordFilterArgs\n            {\n                Filter = \"select_first_n\",\n                Config = \n                {\n                    { \"N\", \"1\" },\n                },\n            },\n        },\n    });\n\n    // Some other non-NS1 provider that returns a zone with a trailing dot and a domain with a leading dot.\n    var baz = new External.Index.Source(\"baz\", new()\n    {\n        Zone = \"terraform.example.io.\",\n        Domain = \".www.terraform.example.io\",\n    });\n\n    // Basic record showing how to clean a zone or domain field that comes from\n    // another non-NS1 resource. DNS names often end in '.' characters to signify\n    // the root of the DNS tree, but the NS1 provider does not support this.\n    //\n    // In other cases, a domain or zone may be passed in with a preceding dot ('.')\n    // character which would likewise lead the system to fail.\n    var external = new Ns1.Record(\"external\", new()\n    {\n        Zone = Std.Replace.Invoke(new()\n        {\n            Text = zone,\n            Search = \"/(^\\\\.)|(\\\\.$)/\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e invoke.Result),\n        Domain = Std.Replace.Invoke(new()\n        {\n            Text = domain,\n            Search = \"/(^\\\\.)|(\\\\.$)/\",\n            Replace = \"\",\n        }).Apply(invoke =\u003e invoke.Result),\n        Type = \"CNAME\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-external/sdk/go/external\"\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\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 := ns1.NewZone(ctx, \"example\", \u0026ns1.ZoneArgs{\n\t\t\tZone: pulumi.String(\"terraform.example.io\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tns1, err := ns1.NewDataSource(ctx, \"ns1\", \u0026ns1.DataSourceArgs{\n\t\t\tName:       pulumi.String(\"ns1_source\"),\n\t\t\tSourcetype: pulumi.String(\"nsone_v1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfoo, err := ns1.NewDataFeed(ctx, \"foo\", \u0026ns1.DataFeedArgs{\n\t\t\tName:     pulumi.String(\"foo_feed\"),\n\t\t\tSourceId: ns1.ID(),\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"label\": pulumi.String(\"foo\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbar, err := ns1.NewDataFeed(ctx, \"bar\", \u0026ns1.DataFeedArgs{\n\t\t\tName:     pulumi.String(\"bar_feed\"),\n\t\t\tSourceId: ns1.ID(),\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"label\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal([]map[string]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"job_id\":     \"abcdef\",\n\t\t\t\t\"bias\":       \"*0.55\",\n\t\t\t\t\"a5m_cutoff\": 0.9,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"BR\": []string{\n\t\t\t\t\"SP\",\n\t\t\t\t\"SC\",\n\t\t\t},\n\t\t\t\"DZ\": []string{\n\t\t\t\t\"01\",\n\t\t\t\t\"02\",\n\t\t\t\t\"03\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = ns1.NewRecord(ctx, \"www\", \u0026ns1.RecordArgs{\n\t\t\tZone:   pulumi.Any(tld.Zone),\n\t\t\tDomain: pulumi.Sprintf(\"www.%v\", tld.Zone),\n\t\t\tType:   pulumi.String(\"CNAME\"),\n\t\t\tTtl:    pulumi.Int(60),\n\t\t\tMeta: pulumi.StringMap{\n\t\t\t\t\"up\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tRegions: ns1.RecordRegionArray{\n\t\t\t\t\u0026ns1.RecordRegionArgs{\n\t\t\t\t\tName: pulumi.String(\"east\"),\n\t\t\t\t\tMeta: pulumi.StringMap{\n\t\t\t\t\t\t\"georegion\": pulumi.String(\"US-EAST\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026ns1.RecordRegionArgs{\n\t\t\t\t\tName: pulumi.String(\"usa\"),\n\t\t\t\t\tMeta: pulumi.StringMap{\n\t\t\t\t\t\t\"country\": pulumi.String(\"US\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAnswers: ns1.RecordAnswerArray{\n\t\t\t\t\u0026ns1.RecordAnswerArgs{\n\t\t\t\t\tAnswer: pulumi.Sprintf(\"sub1.%v\", tld.Zone),\n\t\t\t\t\tRegion: pulumi.String(\"east\"),\n\t\t\t\t\tMeta: pulumi.StringMap{\n\t\t\t\t\t\t\"up\": foo.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"{\\\"feed\\\":\\\"%v\\\"}\", id), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026ns1.RecordAnswerArgs{\n\t\t\t\t\tAnswer: pulumi.Sprintf(\"sub2.%v\", tld.Zone),\n\t\t\t\t\tMeta: pulumi.StringMap{\n\t\t\t\t\t\t\"up\": bar.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"{\\\"feed\\\":\\\"%v\\\"}\", id), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t\t\"connections\": pulumi.String(\"3\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026ns1.RecordAnswerArgs{\n\t\t\t\t\tAnswer: pulumi.Sprintf(\"sub3.%v\", tld.Zone),\n\t\t\t\t\tMeta: pulumi.StringMap{\n\t\t\t\t\t\t\"pulsar\":       pulumi.String(json0),\n\t\t\t\t\t\t\"subdivisions\": pulumi.String(json1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tFilters: ns1.RecordFilterArray{\n\t\t\t\t\u0026ns1.RecordFilterArgs{\n\t\t\t\t\tFilter: pulumi.String(\"select_first_n\"),\n\t\t\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\t\t\"N\": pulumi.String(\"1\"),\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// Some other non-NS1 provider that returns a zone with a trailing dot and a domain with a leading dot.\n\t\t_, err = external.NewSource(ctx, \"baz\", \u0026external.SourceArgs{\n\t\t\tZone:   \"terraform.example.io.\",\n\t\t\tDomain: \".www.terraform.example.io\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeReplace, err := std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\tText:    zone,\n\t\t\tSearch:  \"/(^\\\\.)|(\\\\.$)/\",\n\t\t\tReplace: \"\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeReplace1, err := std.Replace(ctx, \u0026std.ReplaceArgs{\n\t\t\tText:    domain,\n\t\t\tSearch:  \"/(^\\\\.)|(\\\\.$)/\",\n\t\t\tReplace: \"\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Basic record showing how to clean a zone or domain field that comes from\n\t\t// another non-NS1 resource. DNS names often end in '.' characters to signify\n\t\t// the root of the DNS tree, but the NS1 provider does not support this.\n\t\t//\n\t\t// In other cases, a domain or zone may be passed in with a preceding dot ('.')\n\t\t// character which would likewise lead the system to fail.\n\t\t_, err = ns1.NewRecord(ctx, \"external\", \u0026ns1.RecordArgs{\n\t\t\tZone:   pulumi.String(invokeReplace.Result),\n\t\t\tDomain: pulumi.String(invokeReplace1.Result),\n\t\t\tType:   pulumi.String(\"CNAME\"),\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.ns1.Zone;\nimport com.pulumi.ns1.ZoneArgs;\nimport com.pulumi.ns1.DataSource;\nimport com.pulumi.ns1.DataSourceArgs;\nimport com.pulumi.ns1.DataFeed;\nimport com.pulumi.ns1.DataFeedArgs;\nimport com.pulumi.ns1.Record;\nimport com.pulumi.ns1.RecordArgs;\nimport com.pulumi.ns1.inputs.RecordRegionArgs;\nimport com.pulumi.ns1.inputs.RecordAnswerArgs;\nimport com.pulumi.ns1.inputs.RecordFilterArgs;\nimport com.pulumi.external.Source;\nimport com.pulumi.external.SourceArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.std.inputs.ReplaceArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 Zone(\"example\", ZoneArgs.builder()\n            .zone(\"terraform.example.io\")\n            .build());\n\n        var ns1 = new DataSource(\"ns1\", DataSourceArgs.builder()\n            .name(\"ns1_source\")\n            .sourcetype(\"nsone_v1\")\n            .build());\n\n        var foo = new DataFeed(\"foo\", DataFeedArgs.builder()\n            .name(\"foo_feed\")\n            .sourceId(ns1.id())\n            .config(Map.of(\"label\", \"foo\"))\n            .build());\n\n        var bar = new DataFeed(\"bar\", DataFeedArgs.builder()\n            .name(\"bar_feed\")\n            .sourceId(ns1.id())\n            .config(Map.of(\"label\", \"bar\"))\n            .build());\n\n        var www = new Record(\"www\", RecordArgs.builder()\n            .zone(tld.zone())\n            .domain(String.format(\"www.%s\", tld.zone()))\n            .type(\"CNAME\")\n            .ttl(60)\n            .meta(Map.of(\"up\", \"true\"))\n            .regions(            \n                RecordRegionArgs.builder()\n                    .name(\"east\")\n                    .meta(Map.of(\"georegion\", \"US-EAST\"))\n                    .build(),\n                RecordRegionArgs.builder()\n                    .name(\"usa\")\n                    .meta(Map.of(\"country\", \"US\"))\n                    .build())\n            .answers(            \n                RecordAnswerArgs.builder()\n                    .answer(String.format(\"sub1.%s\", tld.zone()))\n                    .region(\"east\")\n                    .meta(Map.of(\"up\", foo.id().applyValue(_id -\u003e String.format(\"{{\\\"feed\\\":\\\"%s\\\"}}\", _id))))\n                    .build(),\n                RecordAnswerArgs.builder()\n                    .answer(String.format(\"sub2.%s\", tld.zone()))\n                    .meta(Map.ofEntries(\n                        Map.entry(\"up\", bar.id().applyValue(_id -\u003e String.format(\"{{\\\"feed\\\":\\\"%s\\\"}}\", _id))),\n                        Map.entry(\"connections\", \"3\")\n                    ))\n                    .build(),\n                RecordAnswerArgs.builder()\n                    .answer(String.format(\"sub3.%s\", tld.zone()))\n                    .meta(Map.ofEntries(\n                        Map.entry(\"pulsar\", serializeJson(\n                            jsonArray(jsonObject(\n                                jsonProperty(\"job_id\", \"abcdef\"),\n                                jsonProperty(\"bias\", \"*0.55\"),\n                                jsonProperty(\"a5m_cutoff\", 0.9)\n                            )))),\n                        Map.entry(\"subdivisions\", serializeJson(\n                            jsonObject(\n                                jsonProperty(\"BR\", jsonArray(\n                                    \"SP\", \n                                    \"SC\"\n                                )),\n                                jsonProperty(\"DZ\", jsonArray(\n                                    \"01\", \n                                    \"02\", \n                                    \"03\"\n                                ))\n                            )))\n                    ))\n                    .build())\n            .filters(RecordFilterArgs.builder()\n                .filter(\"select_first_n\")\n                .config(Map.of(\"N\", \"1\"))\n                .build())\n            .build());\n\n        // Some other non-NS1 provider that returns a zone with a trailing dot and a domain with a leading dot.\n        var baz = new Source(\"baz\", SourceArgs.builder()\n            .zone(\"terraform.example.io.\")\n            .domain(\".www.terraform.example.io\")\n            .build());\n\n        // Basic record showing how to clean a zone or domain field that comes from\n        // another non-NS1 resource. DNS names often end in '.' characters to signify\n        // the root of the DNS tree, but the NS1 provider does not support this.\n        //\n        // In other cases, a domain or zone may be passed in with a preceding dot ('.')\n        // character which would likewise lead the system to fail.\n        var external = new Record(\"external\", RecordArgs.builder()\n            .zone(StdFunctions.replace(ReplaceArgs.builder()\n                .text(zone)\n                .search(\"/(^\\\\.)|(\\\\.$)/\")\n                .replace(\"\")\n                .build()).result())\n            .domain(StdFunctions.replace(ReplaceArgs.builder()\n                .text(domain)\n                .search(\"/(^\\\\.)|(\\\\.$)/\")\n                .replace(\"\")\n                .build()).result())\n            .type(\"CNAME\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: ns1:Zone\n    properties:\n      zone: terraform.example.io\n  ns1:\n    type: ns1:DataSource\n    properties:\n      name: ns1_source\n      sourcetype: nsone_v1\n  foo:\n    type: ns1:DataFeed\n    properties:\n      name: foo_feed\n      sourceId: ${ns1.id}\n      config:\n        label: foo\n  bar:\n    type: ns1:DataFeed\n    properties:\n      name: bar_feed\n      sourceId: ${ns1.id}\n      config:\n        label: bar\n  www:\n    type: ns1:Record\n    properties:\n      zone: ${tld.zone}\n      domain: www.${tld.zone}\n      type: CNAME\n      ttl: 60\n      meta:\n        up: true\n      regions:\n        - name: east\n          meta:\n            georegion: US-EAST\n        - name: usa\n          meta:\n            country: US\n      answers:\n        - answer: sub1.${tld.zone}\n          region: east\n          meta:\n            up: '{\"feed\":\"${foo.id}\"}'\n        - answer: sub2.${tld.zone}\n          meta:\n            up: '{\"feed\":\"${bar.id}\"}'\n            connections: 3\n        - answer: sub3.${tld.zone}\n          meta:\n            pulsar:\n              fn::toJSON:\n                - job_id: abcdef\n                  bias: '*0.55'\n                  a5m_cutoff: 0.9\n            subdivisions:\n              fn::toJSON:\n                BR:\n                  - SP\n                  - SC\n                DZ:\n                  - '01'\n                  - '02'\n                  - '03'\n      filters:\n        - filter: select_first_n\n          config:\n            N: 1\n  # Some other non-NS1 provider that returns a zone with a trailing dot and a domain with a leading dot.\n  baz:\n    type: external:Source\n    properties:\n      zone: terraform.example.io.\n      domain: .www.terraform.example.io\n  # Basic record showing how to clean a zone or domain field that comes from\n  # another non-NS1 resource. DNS names often end in '.' characters to signify\n  # the root of the DNS tree, but the NS1 provider does not support this.\n  #\n  # In other cases, a domain or zone may be passed in with a preceding dot ('.')\n  # character which would likewise lead the system to fail.\n  external:\n    type: ns1:Record\n    properties:\n      zone:\n        fn::invoke:\n          function: std:replace\n          arguments:\n            text: ${zone}\n            search: /(^\\.)|(\\.$)/\n            replace: \"\"\n          return: result\n      domain:\n        fn::invoke:\n          function: std:replace\n          arguments:\n            text: ${domain}\n            search: /(^\\.)|(\\.$)/\n            replace: \"\"\n          return: result\n      type: CNAME\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## NS1 Documentation\n\n[Record Api Doc](https://ns1.com/api#records)\n\n## Import\n\n`terraform import ns1_record.\u003cname\u003e \u003czone\u003e/\u003cdomain\u003e/\u003ctype\u003e`\n\nSo for the example above:\n\n`terraform import ns1_record.www terraform.example.io/www.terraform.example.io/CNAME`\n\n","properties":{"answers":{"type":"array","items":{"$ref":"#/types/ns1:index/RecordAnswer:RecordAnswer"},"description":"One or more NS1 answers for the records' specified type.\nAnswers are documented below.\n"},"blockedTags":{"type":"array","items":{"type":"string"}},"domain":{"type":"string","description":"The records' domain. Cannot have leading or trailing\ndots - see the example above and `FQDN formatting` below.\n"},"filters":{"type":"array","items":{"$ref":"#/types/ns1:index/RecordFilter:RecordFilter"},"description":"One or more NS1 filters for the record(order matters).\nFilters are documented below.\n"},"link":{"type":"string","description":"The fully qualified domain name (without a terminating dot)\nof the target record. This means this record is a 'linked' record, and it\ninherits all properties from its target.\n"},"meta":{"type":"object","additionalProperties":{"type":"string"}},"overrideAddressRecords":{"type":"boolean"},"overrideTtl":{"type":"boolean","description":"Whether to override the TTL value.\n"},"regions":{"type":"array","items":{"$ref":"#/types/ns1:index/RecordRegion:RecordRegion"},"description":"One or more \"regions\" for the record. These are really\njust groupings based on metadata, and are called \"Answer Groups\" in the NS1 UI,\nbut remain \u003cspan pulumi-lang-nodejs=\"`regions`\" pulumi-lang-dotnet=\"`Regions`\" pulumi-lang-go=\"`regions`\" pulumi-lang-python=\"`regions`\" pulumi-lang-yaml=\"`regions`\" pulumi-lang-java=\"`regions`\"\u003e`regions`\u003c/span\u003e here for legacy reasons. Regions are\ndocumented below. Please note the ordering requirement!\n"},"shortAnswers":{"type":"array","items":{"type":"string"},"deprecationMessage":"short_answers will be deprecated in a future release.\nIt is suggested to migrate to a regular \"answers\" block. Using Terraform 0.12+, a similar convenience to \u003cspan pulumi-lang-nodejs=\"\"shortAnswers\"\" pulumi-lang-dotnet=\"\"ShortAnswers\"\" pulumi-lang-go=\"\"shortAnswers\"\" pulumi-lang-python=\"\"short_answers\"\" pulumi-lang-yaml=\"\"shortAnswers\"\" pulumi-lang-java=\"\"shortAnswers\"\"\u003e\"short_answers\"\u003c/span\u003e can be achieved with dynamic blocks:\n  dynamic \"answers\" {\n   \u003cspan pulumi-lang-nodejs=\" forEach \" pulumi-lang-dotnet=\" ForEach \" pulumi-lang-go=\" forEach \" pulumi-lang-python=\" for_each \" pulumi-lang-yaml=\" forEach \" pulumi-lang-java=\" forEach \"\u003e for_each \u003c/span\u003e= [\"4.4.4.4\", \"5.5.5.5\"]\n    content {\n      answer  = answers.value\n    }\n  }"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"map of tags in the form of `\"key\" = \"value\"` where both key and value are strings\n"},"ttl":{"type":"integer","description":"The records' time to live (in seconds).\n"},"type":{"type":"string","description":"The records' RR type.\n"},"useClientSubnet":{"type":"boolean","description":"Whether to use EDNS client subnet data when\navailable(in filter chain).\n* ` meta` - (Optional) meta is supported at the \u003cspan pulumi-lang-nodejs=\"`record`\" pulumi-lang-dotnet=\"`Record`\" pulumi-lang-go=\"`record`\" pulumi-lang-python=\"`record`\" pulumi-lang-yaml=\"`record`\" pulumi-lang-java=\"`record`\"\u003e`record`\u003c/span\u003e level. Meta\nis documented below.\n"},"zone":{"type":"string","description":"The zone the record belongs to. Cannot have leading or\ntrailing dots (\".\") - see the example above and `FQDN formatting` below.\n"}},"required":["domain","ttl","type","zone"],"inputProperties":{"answers":{"type":"array","items":{"$ref":"#/types/ns1:index/RecordAnswer:RecordAnswer"},"description":"One or more NS1 answers for the records' specified type.\nAnswers are documented below.\n"},"blockedTags":{"type":"array","items":{"type":"string"}},"domain":{"type":"string","description":"The records' domain. Cannot have leading or trailing\ndots - see the example above and `FQDN formatting` below.\n","willReplaceOnChanges":true},"filters":{"type":"array","items":{"$ref":"#/types/ns1:index/RecordFilter:RecordFilter"},"description":"One or more NS1 filters for the record(order matters).\nFilters are documented below.\n"},"link":{"type":"string","description":"The fully qualified domain name (without a terminating dot)\nof the target record. This means this record is a 'linked' record, and it\ninherits all properties from its target.\n"},"meta":{"type":"object","additionalProperties":{"type":"string"}},"overrideAddressRecords":{"type":"boolean"},"overrideTtl":{"type":"boolean","description":"Whether to override the TTL value.\n"},"regions":{"type":"array","items":{"$ref":"#/types/ns1:index/RecordRegion:RecordRegion"},"description":"One or more \"regions\" for the record. These are really\njust groupings based on metadata, and are called \"Answer Groups\" in the NS1 UI,\nbut remain \u003cspan pulumi-lang-nodejs=\"`regions`\" pulumi-lang-dotnet=\"`Regions`\" pulumi-lang-go=\"`regions`\" pulumi-lang-python=\"`regions`\" pulumi-lang-yaml=\"`regions`\" pulumi-lang-java=\"`regions`\"\u003e`regions`\u003c/span\u003e here for legacy reasons. Regions are\ndocumented below. Please note the ordering requirement!\n"},"shortAnswers":{"type":"array","items":{"type":"string"},"deprecationMessage":"short_answers will be deprecated in a future release.\nIt is suggested to migrate to a regular \"answers\" block. Using Terraform 0.12+, a similar convenience to \u003cspan pulumi-lang-nodejs=\"\"shortAnswers\"\" pulumi-lang-dotnet=\"\"ShortAnswers\"\" pulumi-lang-go=\"\"shortAnswers\"\" pulumi-lang-python=\"\"short_answers\"\" pulumi-lang-yaml=\"\"shortAnswers\"\" pulumi-lang-java=\"\"shortAnswers\"\"\u003e\"short_answers\"\u003c/span\u003e can be achieved with dynamic blocks:\n  dynamic \"answers\" {\n   \u003cspan pulumi-lang-nodejs=\" forEach \" pulumi-lang-dotnet=\" ForEach \" pulumi-lang-go=\" forEach \" pulumi-lang-python=\" for_each \" pulumi-lang-yaml=\" forEach \" pulumi-lang-java=\" forEach \"\u003e for_each \u003c/span\u003e= [\"4.4.4.4\", \"5.5.5.5\"]\n    content {\n      answer  = answers.value\n    }\n  }"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"map of tags in the form of `\"key\" = \"value\"` where both key and value are strings\n"},"ttl":{"type":"integer","description":"The records' time to live (in seconds).\n"},"type":{"type":"string","description":"The records' RR type.\n","willReplaceOnChanges":true},"useClientSubnet":{"type":"boolean","description":"Whether to use EDNS client subnet data when\navailable(in filter chain).\n* ` meta` - (Optional) meta is supported at the \u003cspan pulumi-lang-nodejs=\"`record`\" pulumi-lang-dotnet=\"`Record`\" pulumi-lang-go=\"`record`\" pulumi-lang-python=\"`record`\" pulumi-lang-yaml=\"`record`\" pulumi-lang-java=\"`record`\"\u003e`record`\u003c/span\u003e level. Meta\nis documented below.\n"},"zone":{"type":"string","description":"The zone the record belongs to. Cannot have leading or\ntrailing dots (\".\") - see the example above and `FQDN formatting` below.\n","willReplaceOnChanges":true}},"requiredInputs":["domain","type","zone"],"stateInputs":{"description":"Input properties used for looking up and filtering Record resources.\n","properties":{"answers":{"type":"array","items":{"$ref":"#/types/ns1:index/RecordAnswer:RecordAnswer"},"description":"One or more NS1 answers for the records' specified type.\nAnswers are documented below.\n"},"blockedTags":{"type":"array","items":{"type":"string"}},"domain":{"type":"string","description":"The records' domain. Cannot have leading or trailing\ndots - see the example above and `FQDN formatting` below.\n","willReplaceOnChanges":true},"filters":{"type":"array","items":{"$ref":"#/types/ns1:index/RecordFilter:RecordFilter"},"description":"One or more NS1 filters for the record(order matters).\nFilters are documented below.\n"},"link":{"type":"string","description":"The fully qualified domain name (without a terminating dot)\nof the target record. This means this record is a 'linked' record, and it\ninherits all properties from its target.\n"},"meta":{"type":"object","additionalProperties":{"type":"string"}},"overrideAddressRecords":{"type":"boolean"},"overrideTtl":{"type":"boolean","description":"Whether to override the TTL value.\n"},"regions":{"type":"array","items":{"$ref":"#/types/ns1:index/RecordRegion:RecordRegion"},"description":"One or more \"regions\" for the record. These are really\njust groupings based on metadata, and are called \"Answer Groups\" in the NS1 UI,\nbut remain \u003cspan pulumi-lang-nodejs=\"`regions`\" pulumi-lang-dotnet=\"`Regions`\" pulumi-lang-go=\"`regions`\" pulumi-lang-python=\"`regions`\" pulumi-lang-yaml=\"`regions`\" pulumi-lang-java=\"`regions`\"\u003e`regions`\u003c/span\u003e here for legacy reasons. Regions are\ndocumented below. Please note the ordering requirement!\n"},"shortAnswers":{"type":"array","items":{"type":"string"},"deprecationMessage":"short_answers will be deprecated in a future release.\nIt is suggested to migrate to a regular \"answers\" block. Using Terraform 0.12+, a similar convenience to \u003cspan pulumi-lang-nodejs=\"\"shortAnswers\"\" pulumi-lang-dotnet=\"\"ShortAnswers\"\" pulumi-lang-go=\"\"shortAnswers\"\" pulumi-lang-python=\"\"short_answers\"\" pulumi-lang-yaml=\"\"shortAnswers\"\" pulumi-lang-java=\"\"shortAnswers\"\"\u003e\"short_answers\"\u003c/span\u003e can be achieved with dynamic blocks:\n  dynamic \"answers\" {\n   \u003cspan pulumi-lang-nodejs=\" forEach \" pulumi-lang-dotnet=\" ForEach \" pulumi-lang-go=\" forEach \" pulumi-lang-python=\" for_each \" pulumi-lang-yaml=\" forEach \" pulumi-lang-java=\" forEach \"\u003e for_each \u003c/span\u003e= [\"4.4.4.4\", \"5.5.5.5\"]\n    content {\n      answer  = answers.value\n    }\n  }"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"map of tags in the form of `\"key\" = \"value\"` where both key and value are strings\n"},"ttl":{"type":"integer","description":"The records' time to live (in seconds).\n"},"type":{"type":"string","description":"The records' RR type.\n","willReplaceOnChanges":true},"useClientSubnet":{"type":"boolean","description":"Whether to use EDNS client subnet data when\navailable(in filter chain).\n* ` meta` - (Optional) meta is supported at the \u003cspan pulumi-lang-nodejs=\"`record`\" pulumi-lang-dotnet=\"`Record`\" pulumi-lang-go=\"`record`\" pulumi-lang-python=\"`record`\" pulumi-lang-yaml=\"`record`\" pulumi-lang-java=\"`record`\"\u003e`record`\u003c/span\u003e level. Meta\nis documented below.\n"},"zone":{"type":"string","description":"The zone the record belongs to. Cannot have leading or\ntrailing dots (\".\") - see the example above and `FQDN formatting` below.\n","willReplaceOnChanges":true}},"type":"object"}},"ns1:index/redirect:Redirect":{"description":"Provides a NS1 Redirect resource. This can be used to create, modify, and delete redirects.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\nconst example = new ns1.Redirect(\"example\", {\n    domain: \"www.example.com\",\n    path: \"/from/path\",\n    target: \"https://url.com/target/path\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\nexample = ns1.Redirect(\"example\",\n    domain=\"www.example.com\",\n    path=\"/from/path\",\n    target=\"https://url.com/target/path\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Ns1.Redirect(\"example\", new()\n    {\n        Domain = \"www.example.com\",\n        Path = \"/from/path\",\n        Target = \"https://url.com/target/path\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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 := ns1.NewRedirect(ctx, \"example\", \u0026ns1.RedirectArgs{\n\t\t\tDomain: pulumi.String(\"www.example.com\"),\n\t\t\tPath:   pulumi.String(\"/from/path\"),\n\t\t\tTarget: pulumi.String(\"https://url.com/target/path\"),\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.ns1.Redirect;\nimport com.pulumi.ns1.RedirectArgs;\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 Redirect(\"example\", RedirectArgs.builder()\n            .domain(\"www.example.com\")\n            .path(\"/from/path\")\n            .target(\"https://url.com/target/path\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: ns1:Redirect\n    properties:\n      domain: www.example.com\n      path: /from/path\n      target: https://url.com/target/path\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### Additional Examples\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\nconst example = new ns1.RedirectCertificate(\"example\", {domain: \"www.example.com\"});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\nexample = ns1.RedirectCertificate(\"example\", domain=\"www.example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Ns1.RedirectCertificate(\"example\", new()\n    {\n        Domain = \"www.example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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 := ns1.NewRedirectCertificate(ctx, \"example\", \u0026ns1.RedirectCertificateArgs{\n\t\t\tDomain: pulumi.String(\"www.example.com\"),\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.ns1.RedirectCertificate;\nimport com.pulumi.ns1.RedirectCertificateArgs;\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 RedirectCertificate(\"example\", RedirectCertificateArgs.builder()\n            .domain(\"www.example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: ns1:RedirectCertificate\n    properties:\n      domain: www.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## NS1 Documentation\n\n[Redirect Api Doc](https://ns1.com/api#redirect)\n\n\n# ns1\\_redirect\\_certificate\n\nProvides a NS1 Redirect Certificate resource. This can be used to create, modify, and delete redirect certificates.\n\n## NS1 Documentation\n\n[Redirect Api Doc](https://ns1.com/api#redirect)\n\n## Import\n\nThe resource can be imported via their \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e:\n\n`terraform import ns1_redirect_certificate.\u003cname\u003e \u003cid\u003e`\n`terraform import ns1_redirect.\u003cname\u003e \u003cid\u003e`\n\n","properties":{"certificateId":{"type":"string","description":"The certificate redirect id. If not specified the redirect will be created as HTTP,\nbut it may be turned to HTTPS if a certificate exists for the source domain on the server.\nIf the certificate is managed in terraform it's recommended to set explictly to \"${ns1_redirect_certificate.name.id}\".\n"},"domain":{"type":"string","description":"The domain the redirect refers to.\n"},"forwardingMode":{"type":"string","description":"How the target is interpreted:\n* __all__       appends the entire incoming path to the target destination;\n* __capture__   appends only the part of the incoming path corresponding to the wildcard (*);\n* __none__      does not append any part of the incoming path.\n"},"forwardingType":{"type":"string","description":"How the redirect is executed:\n* __permanent__ (HTTP 301) indicates to search engines that they should remove the old page from\ntheir database and replace it with the new target page (this is recommended for SEO);\n* __temporary__ (HTTP 302) less common, indicates that search engines should keep the old domain or\npage indexed as the redirect is only temporary (while both pages might appear in the\nsearch results, a temporary redirect suggests to the search engine that it should\nprefer the new target page);\n* __masking__   preserves the redirected domain in the browser's address bar (this lets users see the\naddress they entered, even though the displayed content comes from a different web page).\n"},"httpsEnabled":{"type":"boolean","description":"True if HTTPS is supported on the source domain by using Let's Encrypt certificates.\n"},"httpsForced":{"type":"boolean","description":"Forces redirect for users that try to visit HTTP domain to HTTPS instead.\n"},"lastUpdated":{"type":"integer","description":"The Unix timestamp representing when the certificate was last signed.\n"},"path":{"type":"string","description":"The path on the domain to redirect from.\n"},"queryForwarding":{"type":"boolean","description":"Enables the query string of a URL to be applied directly to the new target URL.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the configuration.\n"},"target":{"type":"string","description":"The URL to redirect to.\n"}},"required":["certificateId","domain","httpsEnabled","lastUpdated","path","target"],"inputProperties":{"certificateId":{"type":"string","description":"The certificate redirect id. If not specified the redirect will be created as HTTP,\nbut it may be turned to HTTPS if a certificate exists for the source domain on the server.\nIf the certificate is managed in terraform it's recommended to set explictly to \"${ns1_redirect_certificate.name.id}\".\n"},"domain":{"type":"string","description":"The domain the redirect refers to.\n","willReplaceOnChanges":true},"forwardingMode":{"type":"string","description":"How the target is interpreted:\n* __all__       appends the entire incoming path to the target destination;\n* __capture__   appends only the part of the incoming path corresponding to the wildcard (*);\n* __none__      does not append any part of the incoming path.\n"},"forwardingType":{"type":"string","description":"How the redirect is executed:\n* __permanent__ (HTTP 301) indicates to search engines that they should remove the old page from\ntheir database and replace it with the new target page (this is recommended for SEO);\n* __temporary__ (HTTP 302) less common, indicates that search engines should keep the old domain or\npage indexed as the redirect is only temporary (while both pages might appear in the\nsearch results, a temporary redirect suggests to the search engine that it should\nprefer the new target page);\n* __masking__   preserves the redirected domain in the browser's address bar (this lets users see the\naddress they entered, even though the displayed content comes from a different web page).\n"},"httpsForced":{"type":"boolean","description":"Forces redirect for users that try to visit HTTP domain to HTTPS instead.\n"},"path":{"type":"string","description":"The path on the domain to redirect from.\n"},"queryForwarding":{"type":"boolean","description":"Enables the query string of a URL to be applied directly to the new target URL.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the configuration.\n"},"target":{"type":"string","description":"The URL to redirect to.\n"}},"requiredInputs":["domain","path","target"],"stateInputs":{"description":"Input properties used for looking up and filtering Redirect resources.\n","properties":{"certificateId":{"type":"string","description":"The certificate redirect id. If not specified the redirect will be created as HTTP,\nbut it may be turned to HTTPS if a certificate exists for the source domain on the server.\nIf the certificate is managed in terraform it's recommended to set explictly to \"${ns1_redirect_certificate.name.id}\".\n"},"domain":{"type":"string","description":"The domain the redirect refers to.\n","willReplaceOnChanges":true},"forwardingMode":{"type":"string","description":"How the target is interpreted:\n* __all__       appends the entire incoming path to the target destination;\n* __capture__   appends only the part of the incoming path corresponding to the wildcard (*);\n* __none__      does not append any part of the incoming path.\n"},"forwardingType":{"type":"string","description":"How the redirect is executed:\n* __permanent__ (HTTP 301) indicates to search engines that they should remove the old page from\ntheir database and replace it with the new target page (this is recommended for SEO);\n* __temporary__ (HTTP 302) less common, indicates that search engines should keep the old domain or\npage indexed as the redirect is only temporary (while both pages might appear in the\nsearch results, a temporary redirect suggests to the search engine that it should\nprefer the new target page);\n* __masking__   preserves the redirected domain in the browser's address bar (this lets users see the\naddress they entered, even though the displayed content comes from a different web page).\n"},"httpsEnabled":{"type":"boolean","description":"True if HTTPS is supported on the source domain by using Let's Encrypt certificates.\n"},"httpsForced":{"type":"boolean","description":"Forces redirect for users that try to visit HTTP domain to HTTPS instead.\n"},"lastUpdated":{"type":"integer","description":"The Unix timestamp representing when the certificate was last signed.\n"},"path":{"type":"string","description":"The path on the domain to redirect from.\n"},"queryForwarding":{"type":"boolean","description":"Enables the query string of a URL to be applied directly to the new target URL.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the configuration.\n"},"target":{"type":"string","description":"The URL to redirect to.\n"}},"type":"object"}},"ns1:index/redirectCertificate:RedirectCertificate":{"properties":{"certificate":{"type":"string"},"domain":{"type":"string"},"errors":{"type":"string"},"lastUpdated":{"type":"integer"},"validFrom":{"type":"integer"},"validUntil":{"type":"integer"}},"required":["certificate","domain","errors","lastUpdated","validFrom","validUntil"],"inputProperties":{"domain":{"type":"string","willReplaceOnChanges":true}},"requiredInputs":["domain"],"stateInputs":{"description":"Input properties used for looking up and filtering RedirectCertificate resources.\n","properties":{"certificate":{"type":"string"},"domain":{"type":"string","willReplaceOnChanges":true},"errors":{"type":"string"},"lastUpdated":{"type":"integer"},"validFrom":{"type":"integer"},"validUntil":{"type":"integer"}},"type":"object"}},"ns1:index/team:Team":{"description":"Provides a NS1 Team resource. This can be used to create, modify, and delete\nteams. The credentials used must have the \u003cspan pulumi-lang-nodejs=\"`manageTeams`\" pulumi-lang-dotnet=\"`ManageTeams`\" pulumi-lang-go=\"`manageTeams`\" pulumi-lang-python=\"`manage_teams`\" pulumi-lang-yaml=\"`manageTeams`\" pulumi-lang-java=\"`manageTeams`\"\u003e`manage_teams`\u003c/span\u003e permission set.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\n// Create a new NS1 Team\nconst example = new ns1.Team(\"example\", {\n    name: \"Example team\",\n    ipWhitelists: [\n        {\n            name: \"whitelist-1\",\n            values: [\n                \"1.1.1.1\",\n                \"2.2.2.2\",\n            ],\n        },\n        {\n            name: \"whitelist-2\",\n            values: [\n                \"3.3.3.3\",\n                \"4.4.4.4\",\n            ],\n        },\n    ],\n    dnsViewZones: false,\n    accountManageUsers: false,\n});\n// Another team\nconst example2 = new ns1.Team(\"example2\", {\n    name: \"another team\",\n    dnsViewZones: true,\n    dnsZonesAllowByDefault: true,\n    dnsZonesAllows: [\"mytest.zone\"],\n    dnsZonesDenies: [\"myother.zone\"],\n    dnsRecordsAllows: [{\n        domain: \"terraform.example.io\",\n        includeSubdomains: false,\n        zone: \"example.io\",\n        type: \"A\",\n    }],\n    dataManageDatasources: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\n# Create a new NS1 Team\nexample = ns1.Team(\"example\",\n    name=\"Example team\",\n    ip_whitelists=[\n        {\n            \"name\": \"whitelist-1\",\n            \"values\": [\n                \"1.1.1.1\",\n                \"2.2.2.2\",\n            ],\n        },\n        {\n            \"name\": \"whitelist-2\",\n            \"values\": [\n                \"3.3.3.3\",\n                \"4.4.4.4\",\n            ],\n        },\n    ],\n    dns_view_zones=False,\n    account_manage_users=False)\n# Another team\nexample2 = ns1.Team(\"example2\",\n    name=\"another team\",\n    dns_view_zones=True,\n    dns_zones_allow_by_default=True,\n    dns_zones_allows=[\"mytest.zone\"],\n    dns_zones_denies=[\"myother.zone\"],\n    dns_records_allows=[{\n        \"domain\": \"terraform.example.io\",\n        \"include_subdomains\": False,\n        \"zone\": \"example.io\",\n        \"type\": \"A\",\n    }],\n    data_manage_datasources=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Create a new NS1 Team\n    var example = new Ns1.Team(\"example\", new()\n    {\n        Name = \"Example team\",\n        IpWhitelists = new[]\n        {\n            new Ns1.Inputs.TeamIpWhitelistArgs\n            {\n                Name = \"whitelist-1\",\n                Values = new[]\n                {\n                    \"1.1.1.1\",\n                    \"2.2.2.2\",\n                },\n            },\n            new Ns1.Inputs.TeamIpWhitelistArgs\n            {\n                Name = \"whitelist-2\",\n                Values = new[]\n                {\n                    \"3.3.3.3\",\n                    \"4.4.4.4\",\n                },\n            },\n        },\n        DnsViewZones = false,\n        AccountManageUsers = false,\n    });\n\n    // Another team\n    var example2 = new Ns1.Team(\"example2\", new()\n    {\n        Name = \"another team\",\n        DnsViewZones = true,\n        DnsZonesAllowByDefault = true,\n        DnsZonesAllows = new[]\n        {\n            \"mytest.zone\",\n        },\n        DnsZonesDenies = new[]\n        {\n            \"myother.zone\",\n        },\n        DnsRecordsAllows = new[]\n        {\n            new Ns1.Inputs.TeamDnsRecordsAllowArgs\n            {\n                Domain = \"terraform.example.io\",\n                IncludeSubdomains = false,\n                Zone = \"example.io\",\n                Type = \"A\",\n            },\n        },\n        DataManageDatasources = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new NS1 Team\n\t\t_, err := ns1.NewTeam(ctx, \"example\", \u0026ns1.TeamArgs{\n\t\t\tName: pulumi.String(\"Example team\"),\n\t\t\tIpWhitelists: ns1.TeamIpWhitelistArray{\n\t\t\t\t\u0026ns1.TeamIpWhitelistArgs{\n\t\t\t\t\tName: pulumi.String(\"whitelist-1\"),\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t\t\t\tpulumi.String(\"2.2.2.2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026ns1.TeamIpWhitelistArgs{\n\t\t\t\t\tName: pulumi.String(\"whitelist-2\"),\n\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"3.3.3.3\"),\n\t\t\t\t\t\tpulumi.String(\"4.4.4.4\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDnsViewZones:       pulumi.Bool(false),\n\t\t\tAccountManageUsers: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Another team\n\t\t_, err = ns1.NewTeam(ctx, \"example2\", \u0026ns1.TeamArgs{\n\t\t\tName:                   pulumi.String(\"another team\"),\n\t\t\tDnsViewZones:           pulumi.Bool(true),\n\t\t\tDnsZonesAllowByDefault: pulumi.Bool(true),\n\t\t\tDnsZonesAllows: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"mytest.zone\"),\n\t\t\t},\n\t\t\tDnsZonesDenies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"myother.zone\"),\n\t\t\t},\n\t\t\tDnsRecordsAllows: ns1.TeamDnsRecordsAllowArray{\n\t\t\t\t\u0026ns1.TeamDnsRecordsAllowArgs{\n\t\t\t\t\tDomain:            pulumi.String(\"terraform.example.io\"),\n\t\t\t\t\tIncludeSubdomains: pulumi.Bool(false),\n\t\t\t\t\tZone:              pulumi.String(\"example.io\"),\n\t\t\t\t\tType:              pulumi.String(\"A\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDataManageDatasources: 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.ns1.Team;\nimport com.pulumi.ns1.TeamArgs;\nimport com.pulumi.ns1.inputs.TeamIpWhitelistArgs;\nimport com.pulumi.ns1.inputs.TeamDnsRecordsAllowArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new NS1 Team\n        var example = new Team(\"example\", TeamArgs.builder()\n            .name(\"Example team\")\n            .ipWhitelists(            \n                TeamIpWhitelistArgs.builder()\n                    .name(\"whitelist-1\")\n                    .values(                    \n                        \"1.1.1.1\",\n                        \"2.2.2.2\")\n                    .build(),\n                TeamIpWhitelistArgs.builder()\n                    .name(\"whitelist-2\")\n                    .values(                    \n                        \"3.3.3.3\",\n                        \"4.4.4.4\")\n                    .build())\n            .dnsViewZones(false)\n            .accountManageUsers(false)\n            .build());\n\n        // Another team\n        var example2 = new Team(\"example2\", TeamArgs.builder()\n            .name(\"another team\")\n            .dnsViewZones(true)\n            .dnsZonesAllowByDefault(true)\n            .dnsZonesAllows(\"mytest.zone\")\n            .dnsZonesDenies(\"myother.zone\")\n            .dnsRecordsAllows(TeamDnsRecordsAllowArgs.builder()\n                .domain(\"terraform.example.io\")\n                .includeSubdomains(false)\n                .zone(\"example.io\")\n                .type(\"A\")\n                .build())\n            .dataManageDatasources(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new NS1 Team\n  example:\n    type: ns1:Team\n    properties:\n      name: Example team\n      ipWhitelists:\n        - name: whitelist-1\n          values:\n            - 1.1.1.1\n            - 2.2.2.2\n        - name: whitelist-2\n          values:\n            - 3.3.3.3\n            - 4.4.4.4\n      dnsViewZones: false\n      accountManageUsers: false\n  # Another team\n  example2:\n    type: ns1:Team\n    properties:\n      name: another team\n      dnsViewZones: true\n      dnsZonesAllowByDefault: true\n      dnsZonesAllows:\n        - mytest.zone\n      dnsZonesDenies:\n        - myother.zone\n      dnsRecordsAllows:\n        - domain: terraform.example.io\n          includeSubdomains: false\n          zone: example.io\n          type: A\n      dataManageDatasources: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## NS1 Documentation\n\n[Team Api Docs](https://ns1.com/api#team)\n\n## Import\n\n`terraform import ns1_team.\u003cname\u003e \u003cteam_id\u003e`\n\n","properties":{"accountManageAccountSettings":{"type":"boolean","description":"Whether the team can modify account settings.\n"},"accountManageApikeys":{"type":"boolean","description":"Whether the team can modify account apikeys.\n"},"accountManageIpWhitelist":{"type":"boolean","description":"Whether the team can manage ip whitelist.\n"},"accountManagePaymentMethods":{"type":"boolean","description":"Whether the team can modify account payment methods.\n"},"accountManagePlan":{"type":"boolean","description":"No longer in use.\n","deprecationMessage":"obsolete, should no longer be used"},"accountManageTeams":{"type":"boolean","description":"Whether the team can modify other teams in the account.\n"},"accountManageUsers":{"type":"boolean","description":"Whether the team can modify account users.\n"},"accountViewActivityLog":{"type":"boolean","description":"Whether the team can view activity logs.\n"},"accountViewInvoices":{"type":"boolean","description":"Whether the team can view invoices.\n"},"dataManageDatafeeds":{"type":"boolean","description":"Whether the team can modify data feeds.\n"},"dataManageDatasources":{"type":"boolean","description":"Whether the team can modify data sources.\n"},"dataPushToDatafeeds":{"type":"boolean","description":"Whether the team can publish to data feeds.\n"},"dnsManageZones":{"type":"boolean","description":"Whether the team can modify the accounts zones.\n"},"dnsRecordsAllows":{"type":"array","items":{"$ref":"#/types/ns1:index/TeamDnsRecordsAllow:TeamDnsRecordsAllow"},"description":"List of records that the team may access.\n"},"dnsRecordsDenies":{"type":"array","items":{"$ref":"#/types/ns1:index/TeamDnsRecordsDeny:TeamDnsRecordsDeny"},"description":"List of records that the team may not access.\n"},"dnsViewZones":{"type":"boolean","description":"Whether the team can view the accounts zones.\n"},"dnsZonesAllowByDefault":{"type":"boolean","description":"If true, enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesAllow`\" pulumi-lang-dotnet=\"`DnsZonesAllow`\" pulumi-lang-go=\"`dnsZonesAllow`\" pulumi-lang-python=\"`dns_zones_allow`\" pulumi-lang-yaml=\"`dnsZonesAllow`\" pulumi-lang-java=\"`dnsZonesAllow`\"\u003e`dns_zones_allow`\u003c/span\u003e list, otherwise enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesDeny`\" pulumi-lang-dotnet=\"`DnsZonesDeny`\" pulumi-lang-go=\"`dnsZonesDeny`\" pulumi-lang-python=\"`dns_zones_deny`\" pulumi-lang-yaml=\"`dnsZonesDeny`\" pulumi-lang-java=\"`dnsZonesDeny`\"\u003e`dns_zones_deny`\u003c/span\u003e list.\n"},"dnsZonesAllows":{"type":"array","items":{"type":"string"},"description":"List of zones that the team may access.\n"},"dnsZonesDenies":{"type":"array","items":{"type":"string"},"description":"List of zones that the team may not access.\n"},"insightsManageInsights":{"type":"boolean","description":"Whether the team can manage DNS insights.\n"},"insightsViewInsights":{"type":"boolean","description":"Whether the team can view DNS insights.\n"},"ipWhitelists":{"type":"array","items":{"$ref":"#/types/ns1:index/TeamIpWhitelist:TeamIpWhitelist"},"description":"Array of IP addresses objects to chich to grant the team access. Each object includes a **name** (string), and **values** (array of strings) associated to each \"allow\" list.\n"},"monitoringCreateJobs":{"type":"boolean","description":"Whether the team can create monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringDeleteJobs":{"type":"boolean","description":"Whether the team can delete monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringManageJobs":{"type":"boolean","description":"Whether the team can create, update, and delete monitoring jobs.\n"},"monitoringManageLists":{"type":"boolean","description":"Whether the team can modify notification lists.\n"},"monitoringUpdateJobs":{"type":"boolean","description":"Whether the team can update monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringViewJobs":{"type":"boolean","description":"Whether the team can view monitoring jobs.\n"},"name":{"type":"string","description":"The free form name of the team.\n"},"redirectsManageRedirects":{"type":"boolean","description":"Whether the team can manage redirects.\n"},"securityManageActiveDirectory":{"type":"boolean","description":"Whether the team can manage global active directory. Only relevant for the DDI product.\n"},"securityManageGlobal2fa":{"type":"boolean","description":"Whether the team can manage global two factor authentication.\n"}},"required":["name"],"inputProperties":{"accountManageAccountSettings":{"type":"boolean","description":"Whether the team can modify account settings.\n"},"accountManageApikeys":{"type":"boolean","description":"Whether the team can modify account apikeys.\n"},"accountManageIpWhitelist":{"type":"boolean","description":"Whether the team can manage ip whitelist.\n"},"accountManagePaymentMethods":{"type":"boolean","description":"Whether the team can modify account payment methods.\n"},"accountManagePlan":{"type":"boolean","description":"No longer in use.\n","deprecationMessage":"obsolete, should no longer be used"},"accountManageTeams":{"type":"boolean","description":"Whether the team can modify other teams in the account.\n"},"accountManageUsers":{"type":"boolean","description":"Whether the team can modify account users.\n"},"accountViewActivityLog":{"type":"boolean","description":"Whether the team can view activity logs.\n"},"accountViewInvoices":{"type":"boolean","description":"Whether the team can view invoices.\n"},"dataManageDatafeeds":{"type":"boolean","description":"Whether the team can modify data feeds.\n"},"dataManageDatasources":{"type":"boolean","description":"Whether the team can modify data sources.\n"},"dataPushToDatafeeds":{"type":"boolean","description":"Whether the team can publish to data feeds.\n"},"dnsManageZones":{"type":"boolean","description":"Whether the team can modify the accounts zones.\n"},"dnsRecordsAllows":{"type":"array","items":{"$ref":"#/types/ns1:index/TeamDnsRecordsAllow:TeamDnsRecordsAllow"},"description":"List of records that the team may access.\n"},"dnsRecordsDenies":{"type":"array","items":{"$ref":"#/types/ns1:index/TeamDnsRecordsDeny:TeamDnsRecordsDeny"},"description":"List of records that the team may not access.\n"},"dnsViewZones":{"type":"boolean","description":"Whether the team can view the accounts zones.\n"},"dnsZonesAllowByDefault":{"type":"boolean","description":"If true, enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesAllow`\" pulumi-lang-dotnet=\"`DnsZonesAllow`\" pulumi-lang-go=\"`dnsZonesAllow`\" pulumi-lang-python=\"`dns_zones_allow`\" pulumi-lang-yaml=\"`dnsZonesAllow`\" pulumi-lang-java=\"`dnsZonesAllow`\"\u003e`dns_zones_allow`\u003c/span\u003e list, otherwise enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesDeny`\" pulumi-lang-dotnet=\"`DnsZonesDeny`\" pulumi-lang-go=\"`dnsZonesDeny`\" pulumi-lang-python=\"`dns_zones_deny`\" pulumi-lang-yaml=\"`dnsZonesDeny`\" pulumi-lang-java=\"`dnsZonesDeny`\"\u003e`dns_zones_deny`\u003c/span\u003e list.\n"},"dnsZonesAllows":{"type":"array","items":{"type":"string"},"description":"List of zones that the team may access.\n"},"dnsZonesDenies":{"type":"array","items":{"type":"string"},"description":"List of zones that the team may not access.\n"},"insightsManageInsights":{"type":"boolean","description":"Whether the team can manage DNS insights.\n"},"insightsViewInsights":{"type":"boolean","description":"Whether the team can view DNS insights.\n"},"ipWhitelists":{"type":"array","items":{"$ref":"#/types/ns1:index/TeamIpWhitelist:TeamIpWhitelist"},"description":"Array of IP addresses objects to chich to grant the team access. Each object includes a **name** (string), and **values** (array of strings) associated to each \"allow\" list.\n"},"monitoringCreateJobs":{"type":"boolean","description":"Whether the team can create monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringDeleteJobs":{"type":"boolean","description":"Whether the team can delete monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringManageJobs":{"type":"boolean","description":"Whether the team can create, update, and delete monitoring jobs.\n"},"monitoringManageLists":{"type":"boolean","description":"Whether the team can modify notification lists.\n"},"monitoringUpdateJobs":{"type":"boolean","description":"Whether the team can update monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringViewJobs":{"type":"boolean","description":"Whether the team can view monitoring jobs.\n"},"name":{"type":"string","description":"The free form name of the team.\n"},"redirectsManageRedirects":{"type":"boolean","description":"Whether the team can manage redirects.\n"},"securityManageActiveDirectory":{"type":"boolean","description":"Whether the team can manage global active directory. Only relevant for the DDI product.\n"},"securityManageGlobal2fa":{"type":"boolean","description":"Whether the team can manage global two factor authentication.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Team resources.\n","properties":{"accountManageAccountSettings":{"type":"boolean","description":"Whether the team can modify account settings.\n"},"accountManageApikeys":{"type":"boolean","description":"Whether the team can modify account apikeys.\n"},"accountManageIpWhitelist":{"type":"boolean","description":"Whether the team can manage ip whitelist.\n"},"accountManagePaymentMethods":{"type":"boolean","description":"Whether the team can modify account payment methods.\n"},"accountManagePlan":{"type":"boolean","description":"No longer in use.\n","deprecationMessage":"obsolete, should no longer be used"},"accountManageTeams":{"type":"boolean","description":"Whether the team can modify other teams in the account.\n"},"accountManageUsers":{"type":"boolean","description":"Whether the team can modify account users.\n"},"accountViewActivityLog":{"type":"boolean","description":"Whether the team can view activity logs.\n"},"accountViewInvoices":{"type":"boolean","description":"Whether the team can view invoices.\n"},"dataManageDatafeeds":{"type":"boolean","description":"Whether the team can modify data feeds.\n"},"dataManageDatasources":{"type":"boolean","description":"Whether the team can modify data sources.\n"},"dataPushToDatafeeds":{"type":"boolean","description":"Whether the team can publish to data feeds.\n"},"dnsManageZones":{"type":"boolean","description":"Whether the team can modify the accounts zones.\n"},"dnsRecordsAllows":{"type":"array","items":{"$ref":"#/types/ns1:index/TeamDnsRecordsAllow:TeamDnsRecordsAllow"},"description":"List of records that the team may access.\n"},"dnsRecordsDenies":{"type":"array","items":{"$ref":"#/types/ns1:index/TeamDnsRecordsDeny:TeamDnsRecordsDeny"},"description":"List of records that the team may not access.\n"},"dnsViewZones":{"type":"boolean","description":"Whether the team can view the accounts zones.\n"},"dnsZonesAllowByDefault":{"type":"boolean","description":"If true, enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesAllow`\" pulumi-lang-dotnet=\"`DnsZonesAllow`\" pulumi-lang-go=\"`dnsZonesAllow`\" pulumi-lang-python=\"`dns_zones_allow`\" pulumi-lang-yaml=\"`dnsZonesAllow`\" pulumi-lang-java=\"`dnsZonesAllow`\"\u003e`dns_zones_allow`\u003c/span\u003e list, otherwise enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesDeny`\" pulumi-lang-dotnet=\"`DnsZonesDeny`\" pulumi-lang-go=\"`dnsZonesDeny`\" pulumi-lang-python=\"`dns_zones_deny`\" pulumi-lang-yaml=\"`dnsZonesDeny`\" pulumi-lang-java=\"`dnsZonesDeny`\"\u003e`dns_zones_deny`\u003c/span\u003e list.\n"},"dnsZonesAllows":{"type":"array","items":{"type":"string"},"description":"List of zones that the team may access.\n"},"dnsZonesDenies":{"type":"array","items":{"type":"string"},"description":"List of zones that the team may not access.\n"},"insightsManageInsights":{"type":"boolean","description":"Whether the team can manage DNS insights.\n"},"insightsViewInsights":{"type":"boolean","description":"Whether the team can view DNS insights.\n"},"ipWhitelists":{"type":"array","items":{"$ref":"#/types/ns1:index/TeamIpWhitelist:TeamIpWhitelist"},"description":"Array of IP addresses objects to chich to grant the team access. Each object includes a **name** (string), and **values** (array of strings) associated to each \"allow\" list.\n"},"monitoringCreateJobs":{"type":"boolean","description":"Whether the team can create monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringDeleteJobs":{"type":"boolean","description":"Whether the team can delete monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringManageJobs":{"type":"boolean","description":"Whether the team can create, update, and delete monitoring jobs.\n"},"monitoringManageLists":{"type":"boolean","description":"Whether the team can modify notification lists.\n"},"monitoringUpdateJobs":{"type":"boolean","description":"Whether the team can update monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringViewJobs":{"type":"boolean","description":"Whether the team can view monitoring jobs.\n"},"name":{"type":"string","description":"The free form name of the team.\n"},"redirectsManageRedirects":{"type":"boolean","description":"Whether the team can manage redirects.\n"},"securityManageActiveDirectory":{"type":"boolean","description":"Whether the team can manage global active directory. Only relevant for the DDI product.\n"},"securityManageGlobal2fa":{"type":"boolean","description":"Whether the team can manage global two factor authentication.\n"}},"type":"object"}},"ns1:index/tsigkey:Tsigkey":{"description":"Provides a NS1 TSIG Key resource. This can be used to create, modify, and delete TSIG keys.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\nconst example = new ns1.Tsigkey(\"example\", {\n    name: \"ExampleTsigKey\",\n    algorithm: \"hmac-sha256\",\n    secret: \"Ok1qR5IW1ajVka5cHPEJQIXfLyx5V3PSkFBROAzOn21JumDq6nIpoj6H8rfj5Uo+Ok55ZWQ0Wgrf302fDscHLA==\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\nexample = ns1.Tsigkey(\"example\",\n    name=\"ExampleTsigKey\",\n    algorithm=\"hmac-sha256\",\n    secret=\"Ok1qR5IW1ajVka5cHPEJQIXfLyx5V3PSkFBROAzOn21JumDq6nIpoj6H8rfj5Uo+Ok55ZWQ0Wgrf302fDscHLA==\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Ns1.Tsigkey(\"example\", new()\n    {\n        Name = \"ExampleTsigKey\",\n        Algorithm = \"hmac-sha256\",\n        Secret = \"Ok1qR5IW1ajVka5cHPEJQIXfLyx5V3PSkFBROAzOn21JumDq6nIpoj6H8rfj5Uo+Ok55ZWQ0Wgrf302fDscHLA==\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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 := ns1.NewTsigkey(ctx, \"example\", \u0026ns1.TsigkeyArgs{\n\t\t\tName:      pulumi.String(\"ExampleTsigKey\"),\n\t\t\tAlgorithm: pulumi.String(\"hmac-sha256\"),\n\t\t\tSecret:    pulumi.String(\"Ok1qR5IW1ajVka5cHPEJQIXfLyx5V3PSkFBROAzOn21JumDq6nIpoj6H8rfj5Uo+Ok55ZWQ0Wgrf302fDscHLA==\"),\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.ns1.Tsigkey;\nimport com.pulumi.ns1.TsigkeyArgs;\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 Tsigkey(\"example\", TsigkeyArgs.builder()\n            .name(\"ExampleTsigKey\")\n            .algorithm(\"hmac-sha256\")\n            .secret(\"Ok1qR5IW1ajVka5cHPEJQIXfLyx5V3PSkFBROAzOn21JumDq6nIpoj6H8rfj5Uo+Ok55ZWQ0Wgrf302fDscHLA==\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: ns1:Tsigkey\n    properties:\n      name: ExampleTsigKey\n      algorithm: hmac-sha256\n      secret: Ok1qR5IW1ajVka5cHPEJQIXfLyx5V3PSkFBROAzOn21JumDq6nIpoj6H8rfj5Uo+Ok55ZWQ0Wgrf302fDscHLA==\n```\n\u003c!--End PulumiCodeChooser --\u003e\n## NS1 Documentation\n\n[TSIG Keys Api Doc](https://ns1.com/api/#tsig)\n\n## Import\n\n`terraform import ns1_tsigkey.importTest \u003cname\u003e`\n\n","properties":{"algorithm":{"type":"string","description":"The algorithm used to hash the TSIG key's secret.\n"},"name":{"type":"string","description":"The free form name of the tsigkey.\n"},"secret":{"type":"string","description":"The key's secret to be hashed.\n"}},"required":["algorithm","name","secret"],"inputProperties":{"algorithm":{"type":"string","description":"The algorithm used to hash the TSIG key's secret.\n"},"name":{"type":"string","description":"The free form name of the tsigkey.\n"},"secret":{"type":"string","description":"The key's secret to be hashed.\n"}},"requiredInputs":["algorithm","secret"],"stateInputs":{"description":"Input properties used for looking up and filtering Tsigkey resources.\n","properties":{"algorithm":{"type":"string","description":"The algorithm used to hash the TSIG key's secret.\n"},"name":{"type":"string","description":"The free form name of the tsigkey.\n"},"secret":{"type":"string","description":"The key's secret to be hashed.\n"}},"type":"object"}},"ns1:index/user:User":{"description":"Provides a NS1 User resource. Creating a user sends an invitation email to the\nuser's email address. This can be used to create, modify, and delete users.\nThe credentials used must have the \u003cspan pulumi-lang-nodejs=\"`manageUsers`\" pulumi-lang-dotnet=\"`ManageUsers`\" pulumi-lang-go=\"`manageUsers`\" pulumi-lang-python=\"`manage_users`\" pulumi-lang-yaml=\"`manageUsers`\" pulumi-lang-java=\"`manageUsers`\"\u003e`manage_users`\u003c/span\u003e permission set.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\nconst example = new ns1.Team(\"example\", {\n    name: \"Example team\",\n    ipWhitelists: [\n        \"1.1.1.1\",\n        \"2.2.2.2\",\n    ],\n    dnsViewZones: false,\n    accountManageUsers: false,\n});\nconst exampleUser = new ns1.User(\"example\", {\n    name: \"Example User\",\n    username: \"example_user\",\n    email: \"user@example.com\",\n    teams: [example.id],\n    notify: {\n        billing: \"false\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\nexample = ns1.Team(\"example\",\n    name=\"Example team\",\n    ip_whitelists=[\n        \"1.1.1.1\",\n        \"2.2.2.2\",\n    ],\n    dns_view_zones=False,\n    account_manage_users=False)\nexample_user = ns1.User(\"example\",\n    name=\"Example User\",\n    username=\"example_user\",\n    email=\"user@example.com\",\n    teams=[example.id],\n    notify={\n        \"billing\": \"false\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Ns1.Team(\"example\", new()\n    {\n        Name = \"Example team\",\n        IpWhitelists = new[]\n        {\n            \"1.1.1.1\",\n            \"2.2.2.2\",\n        },\n        DnsViewZones = false,\n        AccountManageUsers = false,\n    });\n\n    var exampleUser = new Ns1.User(\"example\", new()\n    {\n        Name = \"Example User\",\n        Username = \"example_user\",\n        Email = \"user@example.com\",\n        Teams = new[]\n        {\n            example.Id,\n        },\n        Notify = \n        {\n            { \"billing\", \"false\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := ns1.NewTeam(ctx, \"example\", \u0026ns1.TeamArgs{\n\t\t\tName: pulumi.String(\"Example team\"),\n\t\t\tIpWhitelists: ns1.TeamIpWhitelistArray{\n\t\t\t\t\"1.1.1.1\",\n\t\t\t\t\"2.2.2.2\",\n\t\t\t},\n\t\t\tDnsViewZones:       pulumi.Bool(false),\n\t\t\tAccountManageUsers: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ns1.NewUser(ctx, \"example\", \u0026ns1.UserArgs{\n\t\t\tName:     pulumi.String(\"Example User\"),\n\t\t\tUsername: pulumi.String(\"example_user\"),\n\t\t\tEmail:    pulumi.String(\"user@example.com\"),\n\t\t\tTeams: pulumi.StringArray{\n\t\t\t\texample.ID(),\n\t\t\t},\n\t\t\tNotify: pulumi.StringMap{\n\t\t\t\t\"billing\": pulumi.String(\"false\"),\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.ns1.Team;\nimport com.pulumi.ns1.TeamArgs;\nimport com.pulumi.ns1.User;\nimport com.pulumi.ns1.UserArgs;\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 Team(\"example\", TeamArgs.builder()\n            .name(\"Example team\")\n            .ipWhitelists(            \n                \"1.1.1.1\",\n                \"2.2.2.2\")\n            .dnsViewZones(false)\n            .accountManageUsers(false)\n            .build());\n\n        var exampleUser = new User(\"exampleUser\", UserArgs.builder()\n            .name(\"Example User\")\n            .username(\"example_user\")\n            .email(\"user@example.com\")\n            .teams(example.id())\n            .notify(Map.of(\"billing\", \"false\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: ns1:Team\n    properties:\n      name: Example team\n      ipWhitelists:\n        - 1.1.1.1\n        - 2.2.2.2\n      dnsViewZones: false\n      accountManageUsers: false\n  exampleUser:\n    type: ns1:User\n    name: example\n    properties:\n      name: Example User\n      username: example_user\n      email: user@example.com\n      teams:\n        - ${example.id}\n      notify:\n        billing: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Permissions\n\nA user will inherit permissions from the teams they are assigned to.\nIf a user is assigned to a team and also has individual permissions set on the user, the individual permissions\nwill be overridden by the inherited team permissions.\nIn a future release, setting permissions on a user that is part of a team will be explicitly disabled.\n\nWhen a user is removed from all teams completely, they will inherit whatever permissions they had previously.\nIf a user is removed from all their teams, it will probably be necessary to run `pulumi up` a second time\nto update the users permissions from their old team permissions to new user-specific permissions.\n\nSee [this NS1 Help Center article](https://help.ns1.com/hc/en-us/articles/360024409034-Managing-user-permissions) for an overview of user permission settings.\n\n## NS1 Documentation\n\n[User Api Docs](https://ns1.com/api#user)\n\n[Managing user permissions](https://help.ns1.com/hc/en-us/articles/360024409034-Managing-user-permissions)\n\n## Import\n\n`terraform import ns1_user.\u003cname\u003e \u003cusername\u003e`\n\n","properties":{"accountManageAccountSettings":{"type":"boolean","description":"Whether the user can modify account settings.\n"},"accountManageApikeys":{"type":"boolean","description":"Whether the user can modify account apikeys.\n"},"accountManageIpWhitelist":{"type":"boolean","description":"Whether the user can manage ip whitelist.\n"},"accountManagePaymentMethods":{"type":"boolean","description":"Whether the user can modify account payment methods.\n"},"accountManagePlan":{"type":"boolean","description":"No longer in use.\n","deprecationMessage":"obsolete, should no longer be used"},"accountManageTeams":{"type":"boolean","description":"Whether the user can modify other teams in the account.\n"},"accountManageUsers":{"type":"boolean","description":"Whether the user can modify account users.\n"},"accountViewActivityLog":{"type":"boolean","description":"Whether the user can view activity logs.\n"},"accountViewInvoices":{"type":"boolean","description":"Whether the user can view invoices.\n"},"dataManageDatafeeds":{"type":"boolean","description":"Whether the user can modify data feeds.\n"},"dataManageDatasources":{"type":"boolean","description":"Whether the user can modify data sources.\n"},"dataPushToDatafeeds":{"type":"boolean","description":"Whether the user can publish to data feeds.\n"},"dnsManageZones":{"type":"boolean","description":"Whether the user can modify the accounts zones.\n"},"dnsRecordsAllows":{"type":"array","items":{"$ref":"#/types/ns1:index/UserDnsRecordsAllow:UserDnsRecordsAllow"},"description":"List of records that the user may access.\n"},"dnsRecordsDenies":{"type":"array","items":{"$ref":"#/types/ns1:index/UserDnsRecordsDeny:UserDnsRecordsDeny"},"description":"List of records that the user may not access.\n"},"dnsViewZones":{"type":"boolean","description":"Whether the user can view the accounts zones.\n"},"dnsZonesAllowByDefault":{"type":"boolean","description":"If true, enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesAllow`\" pulumi-lang-dotnet=\"`DnsZonesAllow`\" pulumi-lang-go=\"`dnsZonesAllow`\" pulumi-lang-python=\"`dns_zones_allow`\" pulumi-lang-yaml=\"`dnsZonesAllow`\" pulumi-lang-java=\"`dnsZonesAllow`\"\u003e`dns_zones_allow`\u003c/span\u003e list, otherwise enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesDeny`\" pulumi-lang-dotnet=\"`DnsZonesDeny`\" pulumi-lang-go=\"`dnsZonesDeny`\" pulumi-lang-python=\"`dns_zones_deny`\" pulumi-lang-yaml=\"`dnsZonesDeny`\" pulumi-lang-java=\"`dnsZonesDeny`\"\u003e`dns_zones_deny`\u003c/span\u003e list.\n"},"dnsZonesAllows":{"type":"array","items":{"type":"string"},"description":"List of zones that the user may access.\n"},"dnsZonesDenies":{"type":"array","items":{"type":"string"},"description":"List of zones that the user may not access.\n"},"email":{"type":"string","description":"The email address of the user.\n"},"insightsManageInsights":{"type":"boolean","description":"Whether the user can manage DNS insights.\n"},"insightsViewInsights":{"type":"boolean","description":"Whether the user can view DNS insights.\n"},"ipWhitelistStrict":{"type":"boolean","description":"Set to true to restrict access to only those IP addresses and networks listed in the **ip_whitelist** field.\n"},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"Array of IP addresses/networks to which to grant the user access.\n"},"monitoringCreateJobs":{"type":"boolean","description":"Whether the user can create monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringDeleteJobs":{"type":"boolean","description":"Whether the user can delete monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringManageJobs":{"type":"boolean","description":"Whether the user can create, update, and delete monitoring jobs.\n"},"monitoringManageLists":{"type":"boolean","description":"Whether the user can modify notification lists.\n"},"monitoringUpdateJobs":{"type":"boolean","description":"Whether the user can update monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringViewJobs":{"type":"boolean","description":"Whether the user can view monitoring jobs.\n"},"name":{"type":"string","description":"The free form name of the user.\n"},"notify":{"type":"object","additionalProperties":{"type":"string"},"description":"Whether or not to notify the user of specified events. Only \u003cspan pulumi-lang-nodejs=\"`billing`\" pulumi-lang-dotnet=\"`Billing`\" pulumi-lang-go=\"`billing`\" pulumi-lang-python=\"`billing`\" pulumi-lang-yaml=\"`billing`\" pulumi-lang-java=\"`billing`\"\u003e`billing`\u003c/span\u003e is available currently.\n","deprecationMessage":"This field is deprecated and will be removed in a future release; create account usage alerts instead."},"redirectsManageRedirects":{"type":"boolean","description":"Whether the user can manage redirects.\n"},"securityManageActiveDirectory":{"type":"boolean","description":"Whether the user can manage global active directory. Only relevant for the DDI product.\n"},"securityManageGlobal2fa":{"type":"boolean","description":"Whether the user can manage global two factor authentication.\n"},"teams":{"type":"array","items":{"type":"string"},"description":"The teams that the user belongs to.\n"},"username":{"type":"string","description":"The users login name.\n"}},"required":["email","name","notify","username"],"inputProperties":{"accountManageAccountSettings":{"type":"boolean","description":"Whether the user can modify account settings.\n"},"accountManageApikeys":{"type":"boolean","description":"Whether the user can modify account apikeys.\n"},"accountManageIpWhitelist":{"type":"boolean","description":"Whether the user can manage ip whitelist.\n"},"accountManagePaymentMethods":{"type":"boolean","description":"Whether the user can modify account payment methods.\n"},"accountManagePlan":{"type":"boolean","description":"No longer in use.\n","deprecationMessage":"obsolete, should no longer be used"},"accountManageTeams":{"type":"boolean","description":"Whether the user can modify other teams in the account.\n"},"accountManageUsers":{"type":"boolean","description":"Whether the user can modify account users.\n"},"accountViewActivityLog":{"type":"boolean","description":"Whether the user can view activity logs.\n"},"accountViewInvoices":{"type":"boolean","description":"Whether the user can view invoices.\n"},"dataManageDatafeeds":{"type":"boolean","description":"Whether the user can modify data feeds.\n"},"dataManageDatasources":{"type":"boolean","description":"Whether the user can modify data sources.\n"},"dataPushToDatafeeds":{"type":"boolean","description":"Whether the user can publish to data feeds.\n"},"dnsManageZones":{"type":"boolean","description":"Whether the user can modify the accounts zones.\n"},"dnsRecordsAllows":{"type":"array","items":{"$ref":"#/types/ns1:index/UserDnsRecordsAllow:UserDnsRecordsAllow"},"description":"List of records that the user may access.\n"},"dnsRecordsDenies":{"type":"array","items":{"$ref":"#/types/ns1:index/UserDnsRecordsDeny:UserDnsRecordsDeny"},"description":"List of records that the user may not access.\n"},"dnsViewZones":{"type":"boolean","description":"Whether the user can view the accounts zones.\n"},"dnsZonesAllowByDefault":{"type":"boolean","description":"If true, enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesAllow`\" pulumi-lang-dotnet=\"`DnsZonesAllow`\" pulumi-lang-go=\"`dnsZonesAllow`\" pulumi-lang-python=\"`dns_zones_allow`\" pulumi-lang-yaml=\"`dnsZonesAllow`\" pulumi-lang-java=\"`dnsZonesAllow`\"\u003e`dns_zones_allow`\u003c/span\u003e list, otherwise enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesDeny`\" pulumi-lang-dotnet=\"`DnsZonesDeny`\" pulumi-lang-go=\"`dnsZonesDeny`\" pulumi-lang-python=\"`dns_zones_deny`\" pulumi-lang-yaml=\"`dnsZonesDeny`\" pulumi-lang-java=\"`dnsZonesDeny`\"\u003e`dns_zones_deny`\u003c/span\u003e list.\n"},"dnsZonesAllows":{"type":"array","items":{"type":"string"},"description":"List of zones that the user may access.\n"},"dnsZonesDenies":{"type":"array","items":{"type":"string"},"description":"List of zones that the user may not access.\n"},"email":{"type":"string","description":"The email address of the user.\n"},"insightsManageInsights":{"type":"boolean","description":"Whether the user can manage DNS insights.\n"},"insightsViewInsights":{"type":"boolean","description":"Whether the user can view DNS insights.\n"},"ipWhitelistStrict":{"type":"boolean","description":"Set to true to restrict access to only those IP addresses and networks listed in the **ip_whitelist** field.\n"},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"Array of IP addresses/networks to which to grant the user access.\n"},"monitoringCreateJobs":{"type":"boolean","description":"Whether the user can create monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringDeleteJobs":{"type":"boolean","description":"Whether the user can delete monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringManageJobs":{"type":"boolean","description":"Whether the user can create, update, and delete monitoring jobs.\n"},"monitoringManageLists":{"type":"boolean","description":"Whether the user can modify notification lists.\n"},"monitoringUpdateJobs":{"type":"boolean","description":"Whether the user can update monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringViewJobs":{"type":"boolean","description":"Whether the user can view monitoring jobs.\n"},"name":{"type":"string","description":"The free form name of the user.\n"},"notify":{"type":"object","additionalProperties":{"type":"string"},"description":"Whether or not to notify the user of specified events. Only \u003cspan pulumi-lang-nodejs=\"`billing`\" pulumi-lang-dotnet=\"`Billing`\" pulumi-lang-go=\"`billing`\" pulumi-lang-python=\"`billing`\" pulumi-lang-yaml=\"`billing`\" pulumi-lang-java=\"`billing`\"\u003e`billing`\u003c/span\u003e is available currently.\n","deprecationMessage":"This field is deprecated and will be removed in a future release; create account usage alerts instead."},"redirectsManageRedirects":{"type":"boolean","description":"Whether the user can manage redirects.\n"},"securityManageActiveDirectory":{"type":"boolean","description":"Whether the user can manage global active directory. Only relevant for the DDI product.\n"},"securityManageGlobal2fa":{"type":"boolean","description":"Whether the user can manage global two factor authentication.\n"},"teams":{"type":"array","items":{"type":"string"},"description":"The teams that the user belongs to.\n"},"username":{"type":"string","description":"The users login name.\n","willReplaceOnChanges":true}},"requiredInputs":["email","username"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"accountManageAccountSettings":{"type":"boolean","description":"Whether the user can modify account settings.\n"},"accountManageApikeys":{"type":"boolean","description":"Whether the user can modify account apikeys.\n"},"accountManageIpWhitelist":{"type":"boolean","description":"Whether the user can manage ip whitelist.\n"},"accountManagePaymentMethods":{"type":"boolean","description":"Whether the user can modify account payment methods.\n"},"accountManagePlan":{"type":"boolean","description":"No longer in use.\n","deprecationMessage":"obsolete, should no longer be used"},"accountManageTeams":{"type":"boolean","description":"Whether the user can modify other teams in the account.\n"},"accountManageUsers":{"type":"boolean","description":"Whether the user can modify account users.\n"},"accountViewActivityLog":{"type":"boolean","description":"Whether the user can view activity logs.\n"},"accountViewInvoices":{"type":"boolean","description":"Whether the user can view invoices.\n"},"dataManageDatafeeds":{"type":"boolean","description":"Whether the user can modify data feeds.\n"},"dataManageDatasources":{"type":"boolean","description":"Whether the user can modify data sources.\n"},"dataPushToDatafeeds":{"type":"boolean","description":"Whether the user can publish to data feeds.\n"},"dnsManageZones":{"type":"boolean","description":"Whether the user can modify the accounts zones.\n"},"dnsRecordsAllows":{"type":"array","items":{"$ref":"#/types/ns1:index/UserDnsRecordsAllow:UserDnsRecordsAllow"},"description":"List of records that the user may access.\n"},"dnsRecordsDenies":{"type":"array","items":{"$ref":"#/types/ns1:index/UserDnsRecordsDeny:UserDnsRecordsDeny"},"description":"List of records that the user may not access.\n"},"dnsViewZones":{"type":"boolean","description":"Whether the user can view the accounts zones.\n"},"dnsZonesAllowByDefault":{"type":"boolean","description":"If true, enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesAllow`\" pulumi-lang-dotnet=\"`DnsZonesAllow`\" pulumi-lang-go=\"`dnsZonesAllow`\" pulumi-lang-python=\"`dns_zones_allow`\" pulumi-lang-yaml=\"`dnsZonesAllow`\" pulumi-lang-java=\"`dnsZonesAllow`\"\u003e`dns_zones_allow`\u003c/span\u003e list, otherwise enable the \u003cspan pulumi-lang-nodejs=\"`dnsZonesDeny`\" pulumi-lang-dotnet=\"`DnsZonesDeny`\" pulumi-lang-go=\"`dnsZonesDeny`\" pulumi-lang-python=\"`dns_zones_deny`\" pulumi-lang-yaml=\"`dnsZonesDeny`\" pulumi-lang-java=\"`dnsZonesDeny`\"\u003e`dns_zones_deny`\u003c/span\u003e list.\n"},"dnsZonesAllows":{"type":"array","items":{"type":"string"},"description":"List of zones that the user may access.\n"},"dnsZonesDenies":{"type":"array","items":{"type":"string"},"description":"List of zones that the user may not access.\n"},"email":{"type":"string","description":"The email address of the user.\n"},"insightsManageInsights":{"type":"boolean","description":"Whether the user can manage DNS insights.\n"},"insightsViewInsights":{"type":"boolean","description":"Whether the user can view DNS insights.\n"},"ipWhitelistStrict":{"type":"boolean","description":"Set to true to restrict access to only those IP addresses and networks listed in the **ip_whitelist** field.\n"},"ipWhitelists":{"type":"array","items":{"type":"string"},"description":"Array of IP addresses/networks to which to grant the user access.\n"},"monitoringCreateJobs":{"type":"boolean","description":"Whether the user can create monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringDeleteJobs":{"type":"boolean","description":"Whether the user can delete monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringManageJobs":{"type":"boolean","description":"Whether the user can create, update, and delete monitoring jobs.\n"},"monitoringManageLists":{"type":"boolean","description":"Whether the user can modify notification lists.\n"},"monitoringUpdateJobs":{"type":"boolean","description":"Whether the user can update monitoring jobs when\u003cspan pulumi-lang-nodejs=\" manageJobs \" pulumi-lang-dotnet=\" ManageJobs \" pulumi-lang-go=\" manageJobs \" pulumi-lang-python=\" manage_jobs \" pulumi-lang-yaml=\" manageJobs \" pulumi-lang-java=\" manageJobs \"\u003e manage_jobs \u003c/span\u003eis not set to true.\n"},"monitoringViewJobs":{"type":"boolean","description":"Whether the user can view monitoring jobs.\n"},"name":{"type":"string","description":"The free form name of the user.\n"},"notify":{"type":"object","additionalProperties":{"type":"string"},"description":"Whether or not to notify the user of specified events. Only \u003cspan pulumi-lang-nodejs=\"`billing`\" pulumi-lang-dotnet=\"`Billing`\" pulumi-lang-go=\"`billing`\" pulumi-lang-python=\"`billing`\" pulumi-lang-yaml=\"`billing`\" pulumi-lang-java=\"`billing`\"\u003e`billing`\u003c/span\u003e is available currently.\n","deprecationMessage":"This field is deprecated and will be removed in a future release; create account usage alerts instead."},"redirectsManageRedirects":{"type":"boolean","description":"Whether the user can manage redirects.\n"},"securityManageActiveDirectory":{"type":"boolean","description":"Whether the user can manage global active directory. Only relevant for the DDI product.\n"},"securityManageGlobal2fa":{"type":"boolean","description":"Whether the user can manage global two factor authentication.\n"},"teams":{"type":"array","items":{"type":"string"},"description":"The teams that the user belongs to.\n"},"username":{"type":"string","description":"The users login name.\n","willReplaceOnChanges":true}},"type":"object"}},"ns1:index/zone:Zone":{"description":"Provides a NS1 DNS Zone resource. This can be used to create, modify, and delete zones.\n\n","properties":{"additionalNetworks":{"type":"array","items":{"type":"integer"}},"additionalNotifyOnlies":{"type":"array","items":{"type":"boolean"}},"additionalPorts":{"type":"array","items":{"type":"integer"}},"additionalPrimaries":{"type":"array","items":{"type":"string"},"description":"List of additional IPv4 addresses for the primary\nzone. Conflicts with \u003cspan pulumi-lang-nodejs=\"`secondaries`\" pulumi-lang-dotnet=\"`Secondaries`\" pulumi-lang-go=\"`secondaries`\" pulumi-lang-python=\"`secondaries`\" pulumi-lang-yaml=\"`secondaries`\" pulumi-lang-java=\"`secondaries`\"\u003e`secondaries`\u003c/span\u003e.\n"},"autogenerateNsRecord":{"type":"boolean","description":". If set to false, clears\nthe autogenerated NS record on zone creation. This allows an automated\nworkflow for creating zones with the NS record in terraform state. See\nabove for an example. Note that this option only has an effect when a zone is\nbeing created.\n"},"dnsServers":{"type":"string","description":"(Computed) Authoritative Name Servers.\n"},"dnssec":{"type":"boolean","description":"Whether or not DNSSEC is enabled for the zone.\nNote that DNSSEC must be enabled on the account by support for this to be set\nto \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"expiry":{"type":"integer","description":"The SOA Expiry. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e (default must be accepted).\n"},"hostmaster":{"type":"string","description":"(Computed) The SOA Hostmaster.\n"},"link":{"type":"string","description":"The target zone(domain name) to link to.\n"},"networks":{"type":"array","items":{"type":"integer"},"description":"List of network IDs for which the zone is\navailable. If no network is provided, the zone will be created in network 0,\nthe primary NS1 Global Network.\n"},"nxTtl":{"type":"integer","description":"The SOA NX TTL. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e (default must be accepted).\n"},"primary":{"type":"string","description":"The primary zones' IPv4 address. This makes the zone a\nsecondary. Conflicts with \u003cspan pulumi-lang-nodejs=\"`secondaries`\" pulumi-lang-dotnet=\"`Secondaries`\" pulumi-lang-go=\"`secondaries`\" pulumi-lang-python=\"`secondaries`\" pulumi-lang-yaml=\"`secondaries`\" pulumi-lang-java=\"`secondaries`\"\u003e`secondaries`\u003c/span\u003e.\n"},"primaryNetwork":{"type":"integer"},"primaryPort":{"type":"integer"},"refresh":{"type":"integer","description":"The SOA Refresh. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e (default must be accepted).\n"},"retry":{"type":"integer","description":"The SOA Retry. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e (default must be accepted).\n"},"secondaries":{"type":"array","items":{"$ref":"#/types/ns1:index/ZoneSecondary:ZoneSecondary"},"description":"List of secondary servers. This makes the zone a\nprimary. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e.\nSecondaries is documented below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"map of tags in the form of `\"key\" = \"value\"` where both key and value are strings\n"},"tsig":{"type":"object","additionalProperties":{"type":"string"},"description":"TSIG is documented below\n"},"ttl":{"type":"integer","description":"The SOA TTL.\n"},"zone":{"type":"string","description":"The domain name of the zone.\n","language":{"csharp":{"name":"ZoneName"}}}},"required":["dnsServers","dnssec","expiry","hostmaster","networks","nxTtl","primaryPort","refresh","retry","ttl","zone"],"inputProperties":{"additionalNetworks":{"type":"array","items":{"type":"integer"}},"additionalNotifyOnlies":{"type":"array","items":{"type":"boolean"}},"additionalPorts":{"type":"array","items":{"type":"integer"}},"additionalPrimaries":{"type":"array","items":{"type":"string"},"description":"List of additional IPv4 addresses for the primary\nzone. Conflicts with \u003cspan pulumi-lang-nodejs=\"`secondaries`\" pulumi-lang-dotnet=\"`Secondaries`\" pulumi-lang-go=\"`secondaries`\" pulumi-lang-python=\"`secondaries`\" pulumi-lang-yaml=\"`secondaries`\" pulumi-lang-java=\"`secondaries`\"\u003e`secondaries`\u003c/span\u003e.\n"},"autogenerateNsRecord":{"type":"boolean","description":". If set to false, clears\nthe autogenerated NS record on zone creation. This allows an automated\nworkflow for creating zones with the NS record in terraform state. See\nabove for an example. Note that this option only has an effect when a zone is\nbeing created.\n"},"dnssec":{"type":"boolean","description":"Whether or not DNSSEC is enabled for the zone.\nNote that DNSSEC must be enabled on the account by support for this to be set\nto \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"expiry":{"type":"integer","description":"The SOA Expiry. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e (default must be accepted).\n"},"hostmaster":{"type":"string","description":"(Computed) The SOA Hostmaster.\n"},"link":{"type":"string","description":"The target zone(domain name) to link to.\n","willReplaceOnChanges":true},"networks":{"type":"array","items":{"type":"integer"},"description":"List of network IDs for which the zone is\navailable. If no network is provided, the zone will be created in network 0,\nthe primary NS1 Global Network.\n"},"nxTtl":{"type":"integer","description":"The SOA NX TTL. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e (default must be accepted).\n"},"primary":{"type":"string","description":"The primary zones' IPv4 address. This makes the zone a\nsecondary. Conflicts with \u003cspan pulumi-lang-nodejs=\"`secondaries`\" pulumi-lang-dotnet=\"`Secondaries`\" pulumi-lang-go=\"`secondaries`\" pulumi-lang-python=\"`secondaries`\" pulumi-lang-yaml=\"`secondaries`\" pulumi-lang-java=\"`secondaries`\"\u003e`secondaries`\u003c/span\u003e.\n"},"primaryNetwork":{"type":"integer"},"primaryPort":{"type":"integer"},"refresh":{"type":"integer","description":"The SOA Refresh. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e (default must be accepted).\n"},"retry":{"type":"integer","description":"The SOA Retry. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e (default must be accepted).\n"},"secondaries":{"type":"array","items":{"$ref":"#/types/ns1:index/ZoneSecondary:ZoneSecondary"},"description":"List of secondary servers. This makes the zone a\nprimary. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e.\nSecondaries is documented below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"map of tags in the form of `\"key\" = \"value\"` where both key and value are strings\n"},"tsig":{"type":"object","additionalProperties":{"type":"string"},"description":"TSIG is documented below\n"},"ttl":{"type":"integer","description":"The SOA TTL.\n"},"zone":{"type":"string","description":"The domain name of the zone.\n","language":{"csharp":{"name":"ZoneName"}},"willReplaceOnChanges":true}},"requiredInputs":["zone"],"stateInputs":{"description":"Input properties used for looking up and filtering Zone resources.\n","properties":{"additionalNetworks":{"type":"array","items":{"type":"integer"}},"additionalNotifyOnlies":{"type":"array","items":{"type":"boolean"}},"additionalPorts":{"type":"array","items":{"type":"integer"}},"additionalPrimaries":{"type":"array","items":{"type":"string"},"description":"List of additional IPv4 addresses for the primary\nzone. Conflicts with \u003cspan pulumi-lang-nodejs=\"`secondaries`\" pulumi-lang-dotnet=\"`Secondaries`\" pulumi-lang-go=\"`secondaries`\" pulumi-lang-python=\"`secondaries`\" pulumi-lang-yaml=\"`secondaries`\" pulumi-lang-java=\"`secondaries`\"\u003e`secondaries`\u003c/span\u003e.\n"},"autogenerateNsRecord":{"type":"boolean","description":". If set to false, clears\nthe autogenerated NS record on zone creation. This allows an automated\nworkflow for creating zones with the NS record in terraform state. See\nabove for an example. Note that this option only has an effect when a zone is\nbeing created.\n"},"dnsServers":{"type":"string","description":"(Computed) Authoritative Name Servers.\n"},"dnssec":{"type":"boolean","description":"Whether or not DNSSEC is enabled for the zone.\nNote that DNSSEC must be enabled on the account by support for this to be set\nto \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"expiry":{"type":"integer","description":"The SOA Expiry. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e (default must be accepted).\n"},"hostmaster":{"type":"string","description":"(Computed) The SOA Hostmaster.\n"},"link":{"type":"string","description":"The target zone(domain name) to link to.\n","willReplaceOnChanges":true},"networks":{"type":"array","items":{"type":"integer"},"description":"List of network IDs for which the zone is\navailable. If no network is provided, the zone will be created in network 0,\nthe primary NS1 Global Network.\n"},"nxTtl":{"type":"integer","description":"The SOA NX TTL. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e (default must be accepted).\n"},"primary":{"type":"string","description":"The primary zones' IPv4 address. This makes the zone a\nsecondary. Conflicts with \u003cspan pulumi-lang-nodejs=\"`secondaries`\" pulumi-lang-dotnet=\"`Secondaries`\" pulumi-lang-go=\"`secondaries`\" pulumi-lang-python=\"`secondaries`\" pulumi-lang-yaml=\"`secondaries`\" pulumi-lang-java=\"`secondaries`\"\u003e`secondaries`\u003c/span\u003e.\n"},"primaryNetwork":{"type":"integer"},"primaryPort":{"type":"integer"},"refresh":{"type":"integer","description":"The SOA Refresh. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e (default must be accepted).\n"},"retry":{"type":"integer","description":"The SOA Retry. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e (default must be accepted).\n"},"secondaries":{"type":"array","items":{"$ref":"#/types/ns1:index/ZoneSecondary:ZoneSecondary"},"description":"List of secondary servers. This makes the zone a\nprimary. Conflicts with \u003cspan pulumi-lang-nodejs=\"`primary`\" pulumi-lang-dotnet=\"`Primary`\" pulumi-lang-go=\"`primary`\" pulumi-lang-python=\"`primary`\" pulumi-lang-yaml=\"`primary`\" pulumi-lang-java=\"`primary`\"\u003e`primary`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`additionalPrimaries`\" pulumi-lang-dotnet=\"`AdditionalPrimaries`\" pulumi-lang-go=\"`additionalPrimaries`\" pulumi-lang-python=\"`additional_primaries`\" pulumi-lang-yaml=\"`additionalPrimaries`\" pulumi-lang-java=\"`additionalPrimaries`\"\u003e`additional_primaries`\u003c/span\u003e.\nSecondaries is documented below.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"map of tags in the form of `\"key\" = \"value\"` where both key and value are strings\n"},"tsig":{"type":"object","additionalProperties":{"type":"string"},"description":"TSIG is documented below\n"},"ttl":{"type":"integer","description":"The SOA TTL.\n"},"zone":{"type":"string","description":"The domain name of the zone.\n","language":{"csharp":{"name":"ZoneName"}},"willReplaceOnChanges":true}},"type":"object"}}},"functions":{"ns1:index/getBillingUsage:getBillingUsage":{"description":"Provides billing usage details about a NS1 account.\n\n","inputs":{"description":"A collection of arguments for invoking getBillingUsage.\n","properties":{"from":{"type":"integer","description":"The start timestamp for the data range in Unix epoch format.\n"},"metricType":{"type":"string","description":"The type of billing metric to retrieve. Must be one of: \u003cspan pulumi-lang-nodejs=\"`queries`\" pulumi-lang-dotnet=\"`Queries`\" pulumi-lang-go=\"`queries`\" pulumi-lang-python=\"`queries`\" pulumi-lang-yaml=\"`queries`\" pulumi-lang-java=\"`queries`\"\u003e`queries`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`limits`\" pulumi-lang-dotnet=\"`Limits`\" pulumi-lang-go=\"`limits`\" pulumi-lang-python=\"`limits`\" pulumi-lang-yaml=\"`limits`\" pulumi-lang-java=\"`limits`\"\u003e`limits`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`decisions`\" pulumi-lang-dotnet=\"`Decisions`\" pulumi-lang-go=\"`decisions`\" pulumi-lang-python=\"`decisions`\" pulumi-lang-yaml=\"`decisions`\" pulumi-lang-java=\"`decisions`\"\u003e`decisions`\u003c/span\u003e, `filter-chains`, \u003cspan pulumi-lang-nodejs=\"`monitors`\" pulumi-lang-dotnet=\"`Monitors`\" pulumi-lang-go=\"`monitors`\" pulumi-lang-python=\"`monitors`\" pulumi-lang-yaml=\"`monitors`\" pulumi-lang-java=\"`monitors`\"\u003e`monitors`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`records`\" pulumi-lang-dotnet=\"`Records`\" pulumi-lang-go=\"`records`\" pulumi-lang-python=\"`records`\" pulumi-lang-yaml=\"`records`\" pulumi-lang-java=\"`records`\"\u003e`records`\u003c/span\u003e.\n"},"to":{"type":"integer","description":"The end timestamp for the data range in Unix epoch format.\n"}},"type":"object","required":["metricType"]},"outputs":{"description":"A collection of values returned by getBillingUsage.\n","properties":{"byNetworks":{"description":"(Computed) A list of network-specific query data containing:\n","items":{"$ref":"#/types/ns1:index/getBillingUsageByNetwork:getBillingUsageByNetwork"},"type":"array"},"chinaQueriesLimit":{"description":"(Computed) The queries limit for the China network.\n","type":"integer"},"cleanQueries":{"description":"Clean queries for this day.\n","type":"integer"},"ddosProtectionEnabled":{"description":"(Computed) Whether DDoS Protection is enabled.\n","type":"boolean"},"ddosQueries":{"description":"DDoS queries for this day.\n","type":"integer"},"decisionsLimit":{"description":"(Computed) The RUM decisions limit for this billing cycle.\n","type":"integer"},"filterChainsLimit":{"description":"(Computed) The filter chains limit for this billing cycle.\n","type":"integer"},"from":{"type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"includeDedicatedDnsNetworkInManagedDnsUsage":{"description":"(Computed) Whether dedicated DNS usage counts towards managed DNS usage.\n","type":"boolean"},"metricType":{"type":"string"},"monitorsLimit":{"description":"(Computed) The monitoring jobs limit for this billing cycle.\n","type":"integer"},"nxdProtectionEnabled":{"description":"(Computed) Whether NXD Protection is enabled.\n","type":"boolean"},"nxdResponses":{"description":"NXD responses for this day.\n","type":"integer"},"queriesLimit":{"description":"(Computed) The queries limit for this billing cycle.\n","type":"integer"},"recordsLimit":{"description":"(Computed) The records limit for this billing cycle.\n","type":"integer"},"to":{"type":"integer"},"totalUsage":{"description":"(Computed) The total usage count for the metric. Available for \u003cspan pulumi-lang-nodejs=\"`decisions`\" pulumi-lang-dotnet=\"`Decisions`\" pulumi-lang-go=\"`decisions`\" pulumi-lang-python=\"`decisions`\" pulumi-lang-yaml=\"`decisions`\" pulumi-lang-java=\"`decisions`\"\u003e`decisions`\u003c/span\u003e, `filter-chains`, \u003cspan pulumi-lang-nodejs=\"`monitors`\" pulumi-lang-dotnet=\"`Monitors`\" pulumi-lang-go=\"`monitors`\" pulumi-lang-python=\"`monitors`\" pulumi-lang-yaml=\"`monitors`\" pulumi-lang-java=\"`monitors`\"\u003e`monitors`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`records`\" pulumi-lang-dotnet=\"`Records`\" pulumi-lang-go=\"`records`\" pulumi-lang-python=\"`records`\" pulumi-lang-yaml=\"`records`\" pulumi-lang-java=\"`records`\"\u003e`records`\u003c/span\u003e metrics.\n","type":"integer"}},"required":["byNetworks","chinaQueriesLimit","cleanQueries","ddosProtectionEnabled","ddosQueries","decisionsLimit","filterChainsLimit","includeDedicatedDnsNetworkInManagedDnsUsage","metricType","monitorsLimit","nxdProtectionEnabled","nxdResponses","queriesLimit","recordsLimit","totalUsage","id"],"type":"object"}},"ns1:index/getDNSSec:getDNSSec":{"description":"Provides DNSSEC details about a NS1 Zone.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\n// Get DNSSEC details about a NS1 Zone.\nconst exampleZone = new ns1.Zone(\"example\", {\n    zone: \"terraform.example.io\",\n    dnssec: true,\n});\nconst example = ns1.getDNSSecOutput({\n    zone: exampleZone.zone,\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\n# Get DNSSEC details about a NS1 Zone.\nexample_zone = ns1.Zone(\"example\",\n    zone=\"terraform.example.io\",\n    dnssec=True)\nexample = ns1.get_dns_sec_output(zone=example_zone.zone)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get DNSSEC details about a NS1 Zone.\n    var exampleZone = new Ns1.Zone(\"example\", new()\n    {\n        ZoneName = \"terraform.example.io\",\n        Dnssec = true,\n    });\n\n    var example = Ns1.GetDNSSec.Invoke(new()\n    {\n        Zone = exampleZone.ZoneName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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// Get DNSSEC details about a NS1 Zone.\n\t\texampleZone, err := ns1.NewZone(ctx, \"example\", \u0026ns1.ZoneArgs{\n\t\t\tZone:   pulumi.String(\"terraform.example.io\"),\n\t\t\tDnssec: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = ns1.GetDNSSecOutput(ctx, ns1.GetDNSSecOutputArgs{\n\t\t\tZone: exampleZone.Zone,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ns1.Zone;\nimport com.pulumi.ns1.ZoneArgs;\nimport com.pulumi.ns1.Ns1Functions;\nimport com.pulumi.ns1.inputs.GetDNSSecArgs;\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        // Get DNSSEC details about a NS1 Zone.\n        var exampleZone = new Zone(\"exampleZone\", ZoneArgs.builder()\n            .zone(\"terraform.example.io\")\n            .dnssec(true)\n            .build());\n\n        final var example = Ns1Functions.getDNSSec(GetDNSSecArgs.builder()\n            .zone(exampleZone.zone())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Get DNSSEC details about a NS1 Zone.\n  exampleZone:\n    type: ns1:Zone\n    name: example\n    properties:\n      zone: terraform.example.io\n      dnssec: true\nvariables:\n  example:\n    fn::invoke:\n      function: ns1:getDNSSec\n      arguments:\n        zone: ${exampleZone.zone}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDNSSec.\n","properties":{"zone":{"type":"string","description":"The name of the zone to get DNSSEC details for.\n"}},"type":"object","required":["zone"]},"outputs":{"description":"A collection of values returned by getDNSSec.\n","properties":{"delegations":{"description":"(Computed) - Delegation field is documented\nbelow.\n","items":{"$ref":"#/types/ns1:index/getDNSSecDelegation:getDNSSecDelegation"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"keys":{"description":"(Computed) - Keys field is documented below.\n","items":{"$ref":"#/types/ns1:index/getDNSSecKey:getDNSSecKey"},"type":"array"},"zone":{"type":"string"}},"required":["delegations","keys","zone","id"],"type":"object"}},"ns1:index/getMonitoringRegions:getMonitoringRegions":{"description":"Provides details of all available monitoring regions.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\n// Get details of all available monitoring regions.\nconst example = ns1.getMonitoringRegions({});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\n# Get details of all available monitoring regions.\nexample = ns1.get_monitoring_regions()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get details of all available monitoring regions.\n    var example = Ns1.GetMonitoringRegions.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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// Get details of all available monitoring regions.\n\t\t_, err := ns1.GetMonitoringRegions(ctx, \u0026ns1.GetMonitoringRegionsArgs{}, 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.ns1.Ns1Functions;\nimport com.pulumi.ns1.inputs.GetMonitoringRegionsArgs;\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        // Get details of all available monitoring regions.\n        final var example = Ns1Functions.getMonitoringRegions(GetMonitoringRegionsArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get details of all available monitoring regions.\n  example:\n    fn::invoke:\n      function: ns1:getMonitoringRegions\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMonitoringRegions.\n","properties":{"regions":{"type":"array","items":{"$ref":"#/types/ns1:index/getMonitoringRegionsRegion:getMonitoringRegionsRegion"},"description":"A set of the available monitoring regions. Regions is\ndocumented below.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMonitoringRegions.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"regions":{"description":"A set of the available monitoring regions. Regions is\ndocumented below.\n","items":{"$ref":"#/types/ns1:index/getMonitoringRegionsRegion:getMonitoringRegionsRegion"},"type":"array"}},"required":["id"],"type":"object"}},"ns1:index/getNetworks:getNetworks":{"description":"Provides details about NS1 Networks. Use this if you would simply like to read\ninformation from NS1 into your configurations. For read/write operations, you\nshould use a resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\n// Get details about NS1 Networks.\nconst example = ns1.getNetworks({});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\n# Get details about NS1 Networks.\nexample = ns1.get_networks()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get details about NS1 Networks.\n    var example = Ns1.GetNetworks.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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// Get details about NS1 Networks.\n\t\t_, err := ns1.GetNetworks(ctx, map[string]interface{}{}, 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.ns1.Ns1Functions;\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        // Get details about NS1 Networks.\n        final var example = Ns1Functions.getNetworks(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get details about NS1 Networks.\n  example:\n    fn::invoke:\n      function: ns1:getNetworks\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getNetworks.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"networks":{"description":"A set of the available networks. Networks is\ndocumented below.\n","items":{"$ref":"#/types/ns1:index/getNetworksNetwork:getNetworksNetwork"},"type":"array"}},"required":["networks","id"],"type":"object"}},"ns1:index/getRecord:getRecord":{"description":"Provides details about a NS1 Record. Use this if you would simply like to read\ninformation from NS1 into your configurations. For read/write operations, you\nshould use a resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\n// Get details about a NS1 Record.\nconst example = ns1.getRecord({\n    zone: \"example.io\",\n    domain: \"terraform.example.io\",\n    type: \"A\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\n# Get details about a NS1 Record.\nexample = ns1.get_record(zone=\"example.io\",\n    domain=\"terraform.example.io\",\n    type=\"A\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get details about a NS1 Record.\n    var example = Ns1.GetRecord.Invoke(new()\n    {\n        Zone = \"example.io\",\n        Domain = \"terraform.example.io\",\n        Type = \"A\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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// Get details about a NS1 Record.\n\t\t_, err := ns1.LookupRecord(ctx, \u0026ns1.LookupRecordArgs{\n\t\t\tZone:   \"example.io\",\n\t\t\tDomain: \"terraform.example.io\",\n\t\t\tType:   \"A\",\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.ns1.Ns1Functions;\nimport com.pulumi.ns1.inputs.GetRecordArgs;\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        // Get details about a NS1 Record.\n        final var example = Ns1Functions.getRecord(GetRecordArgs.builder()\n            .zone(\"example.io\")\n            .domain(\"terraform.example.io\")\n            .type(\"A\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get details about a NS1 Record.\n  example:\n    fn::invoke:\n      function: ns1:getRecord\n      arguments:\n        zone: example.io\n        domain: terraform.example.io\n        type: A\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRecord.\n","properties":{"domain":{"type":"string","description":"The records' domain.\n"},"type":{"type":"string","description":"The records' RR type.\n"},"zone":{"type":"string","description":"The zone the record belongs to.\n"}},"type":"object","required":["domain","type","zone"]},"outputs":{"description":"A collection of values returned by getRecord.\n","properties":{"answers":{"description":"List of NS1 answers.\n","items":{"$ref":"#/types/ns1:index/getRecordAnswer:getRecordAnswer"},"type":"array"},"domain":{"type":"string"},"filters":{"description":"List of NS1 filters.\n","items":{"$ref":"#/types/ns1:index/getRecordFilter:getRecordFilter"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"link":{"description":"The target record this links to.\n","type":"string"},"meta":{"additionalProperties":{"type":"string"},"description":"Map of metadata\n","type":"object"},"overrideAddressRecords":{"type":"boolean"},"overrideTtl":{"type":"boolean"},"regions":{"description":"List of regions.\n","items":{"$ref":"#/types/ns1:index/getRecordRegion:getRecordRegion"},"type":"array"},"shortAnswers":{"items":{"type":"string"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"ttl":{"description":"The records' time to live (in seconds).\n","type":"integer"},"type":{"type":"string"},"useClientSubnet":{"description":"Whether to use EDNS client subnet data when available (in filter chain).\n","type":"boolean"},"zone":{"type":"string"}},"required":["answers","domain","filters","link","meta","overrideAddressRecords","overrideTtl","regions","shortAnswers","tags","ttl","type","useClientSubnet","zone","id"],"type":"object"}},"ns1:index/getZone:getZone":{"description":"Provides details about a NS1 Zone. Use this if you would simply like to read\ninformation from NS1 into your configurations. For read/write operations, you\nshould use a resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ns1 from \"@pulumi/ns1\";\n\n// Get details about a NS1 Zone.\nconst example = ns1.getZone({\n    zone: \"terraform.example.io\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ns1 as ns1\n\n# Get details about a NS1 Zone.\nexample = ns1.get_zone(zone=\"terraform.example.io\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ns1 = Pulumi.Ns1;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get details about a NS1 Zone.\n    var example = Ns1.GetZone.Invoke(new()\n    {\n        Zone = \"terraform.example.io\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-ns1/sdk/v3/go/ns1\"\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// Get details about a NS1 Zone.\n\t\t_, err := ns1.LookupZone(ctx, \u0026ns1.LookupZoneArgs{\n\t\t\tZone: \"terraform.example.io\",\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.ns1.Ns1Functions;\nimport com.pulumi.ns1.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        // Get details about a NS1 Zone.\n        final var example = Ns1Functions.getZone(GetZoneArgs.builder()\n            .zone(\"terraform.example.io\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get details about a NS1 Zone.\n  example:\n    fn::invoke:\n      function: ns1:getZone\n      arguments:\n        zone: terraform.example.io\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getZone.\n","properties":{"additionalPorts":{"type":"array","items":{"type":"integer"}},"additionalPrimaries":{"type":"array","items":{"type":"string"},"description":"List of additional IPv4 addresses for the primary\nzone.\n"},"primaryNetwork":{"type":"integer"},"primaryPort":{"type":"integer"},"zone":{"type":"string","description":"The domain name of the zone.\n"}},"type":"object","required":["zone"]},"outputs":{"description":"A collection of values returned by getZone.\n","properties":{"additionalPorts":{"items":{"type":"integer"},"type":"array"},"additionalPrimaries":{"description":"List of additional IPv4 addresses for the primary\nzone.\n","items":{"type":"string"},"type":"array"},"dnsServers":{"description":"Authoritative Name Servers.\n","type":"string"},"dnssec":{"description":"Whether or not DNSSEC is enabled for the zone.\n","type":"boolean"},"expiry":{"description":"The SOA Expiry.\n","type":"integer"},"hostmaster":{"description":"The SOA Hostmaster.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"link":{"description":"The linked target zone.\n","type":"string"},"networks":{"description":"List of network IDs (\u003cspan pulumi-lang-nodejs=\"`int`\" pulumi-lang-dotnet=\"`Int`\" pulumi-lang-go=\"`int`\" pulumi-lang-python=\"`int`\" pulumi-lang-yaml=\"`int`\" pulumi-lang-java=\"`int`\"\u003e`int`\u003c/span\u003e) for which the zone should be made\navailable. Default is network 0, the primary NSONE Global Network.\n","items":{"type":"integer"},"type":"array"},"nxTtl":{"description":"The SOA NX TTL.\n","type":"integer"},"primary":{"description":"The primary zones' IPv4 address.\n","type":"string"},"primaryNetwork":{"type":"integer"},"primaryPort":{"type":"integer"},"refresh":{"description":"The SOA Refresh.\n","type":"integer"},"retry":{"description":"The SOA Retry.\n","type":"integer"},"secondaries":{"description":"List of secondary servers. Secondaries is\ndocumented below.\n","items":{"$ref":"#/types/ns1:index/getZoneSecondary:getZoneSecondary"},"type":"array"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"ttl":{"description":"The SOA TTL.\n","type":"integer"},"zone":{"type":"string"}},"required":["dnsServers","dnssec","expiry","hostmaster","link","networks","nxTtl","primary","refresh","retry","secondaries","tags","ttl","zone","id"],"type":"object"}},"pulumi:providers:ns1/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"type":"ref","$ref":"#/provider"}},"type":"pulumi:providers:ns1/terraformConfig","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}}}