{"name":"routeros","version":"1.99.1","description":"A Pulumi provider dynamically bridged from routeros.","attribution":"This Pulumi package is based on the [`routeros` Terraform Provider](https://github.com/terraform-routeros/terraform-provider-routeros).","repository":"https://github.com/terraform-routeros/terraform-provider-routeros","publisher":"terraform-routeros","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"routeros"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from routeros.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/terraform-routeros/terraform-provider-routeros)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-routeros` repo](https://github.com/terraform-routeros/terraform-provider-routeros/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/terraform-routeros/terraform-provider-routeros)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-routeros` repo](https://github.com/terraform-routeros/terraform-provider-routeros/issues).","respectSchemaVersion":true}},"config":{"variables":{"caCertificate":{"type":"string","description":"Path to MikroTik's certificate authority file (env: ROS_CA_CERTIFICATE | MIKROTIK_CA_CERTIFICATE)."},"hosturl":{"type":"string","description":"URL of the MikroTik router, default is TLS connection to REST.\n\t* API: api[s]://host[:port]\n\t\t* api://router.local\n\t\t* apis://router.local:8729\n\t* REST: http[s]://host\n\t\t* http://router.local\n\t\t* https://router.local\n\t\t* router.local\n\t\t* 127.0.0.1\n\n\n\texport ROS_HOSTURL=router.local or export MIKROTIK_HOST=router.local"},"insecure":{"type":"boolean","description":"Whether to verify the SSL certificate or not (env: ROS_INSECURE | MIKROTIK_INSECURE)."},"password":{"type":"string","description":"Password for the MikroTik user (env: ROS_PASSWORD | MIKROTIK_PASSWORD).","secret":true},"restTimeout":{"type":"number","description":"HTTP Client Timeout"},"routerosVersion":{"type":"string","description":"RouterOS version for which resource schemes will be adapted. The version obtained from MikroTik will be used if not specified (env: ROS_VERSION)."},"suppressSysoDelWarn":{"type":"boolean","description":"Suppress the system object deletion warning (env: ROS_SUPPRESS_SYSO_DEL_WARN)."},"username":{"type":"string","description":"Username for the MikroTik WEB/Winbox.\n\n\n\texport ROS_USERNAME=admin or export MIKROTIK_USER=admin"}},"defaults":["hosturl","username"]},"types":{"routeros:index/ContainerTimeouts:ContainerTimeouts":{"properties":{"create":{"type":"string"},"delete":{"type":"string"}},"type":"object"},"routeros:index/RoutingBgpConnectionInput:RoutingBgpConnectionInput":{"properties":{"acceptCommunities":{"type":"string","description":"A quick way to filter incoming updates with specific communities. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as 'not active, filtered'. Changes to be applied required session refresh.\n"},"acceptExtCommunities":{"type":"string","description":"A quick way to filter incoming updates with specific extended communities. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as 'not active, filtered'. Changes to be applied required session refresh.\n"},"acceptLargeCommunities":{"type":"string","description":"A quick way to filter incoming updates with specific large communities. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as 'not active, filtered'. Changes to be applied required session refresh.\n"},"acceptNlri":{"type":"string","description":"Name of the ipv4/6 address-list. A quick way to filter incoming updates with specific NLRIs. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as 'not active, filtered'. Changes to be applied required session restart.\n"},"acceptUnknown":{"type":"string","description":"A quick way to filter incoming updates with specific 'unknown' attributes. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as 'not active, filtered'. Changes to be applied required session refresh.\n","deprecationMessage":"Deprecated"},"affinity":{"type":"string","description":"Configure input multi-core processing. Read more in Routing Protocol Multi-core Support article. alone - input and output of each session are processed in its own process, most likely the best option when there are a lot of cores and a lot of peers afi, instance, vrf, remote-as - try to run input/output of new session in process with similar parameters main - run input/output in the main process (could potentially increase performance on single-core even possibly on multi-core devices with a small amount of cores) input - run output in the same process as input (can be set only for output affinity)\n"},"allowAs":{"type":"number","description":"Indicates how many times to allow your own AS number in AS-PATH, before discarding a prefix.\n"},"filter":{"type":"string","description":"Name of the routing filter chain to be used on input prefixes. This happens after NLRIs are processed. If the chain is not specified, then BGP by default accepts everything.\n"},"filterCommunities":{"type":"string","description":"A quick way to filter incoming updates with specific communities. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as \"not active, filtered\". Changes to be applied required session refresh.\n"},"filterExtCommunities":{"type":"string","description":"A quick way to filter incoming updates with specific extended communities. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as \"not active, filtered\". Changes to be applied required session refresh.\n"},"filterLargeCommunities":{"type":"string","description":"A quick way to filter incoming updates with specific large communities. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as \"not active, filtered\". Changes to be applied required session refresh.\n"},"filterNlri":{"type":"string","description":"Name of the filter chain that will filter incoming IPv4/IPv6 NLRIs directly before they are  stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in `/routing route` table as `not active, filtered`. Changes to be applied required session restart.\n"},"filterUnknown":{"type":"string","description":"A quick way to filter incoming updates with specific \"unknown\" attributes. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as \"not active, filtered\". Changes to be applied required session refresh.\n"},"ignoreAsPathLen":{"type":"boolean","description":"Whether to ignore the AS_PATH attribute in the BGP route selection algorithm\n","deprecationMessage":"Deprecated"},"limitProcessRoutesIpv4":{"type":"number","description":"Try to limit the amount of received IPv4 routes to the specified number. This number does not represent the exact number of routes going to be installed in the routing table by the peer. BGP session 'clear' command must be used to reset the flag if the limit is reached.\n"},"limitProcessRoutesIpv6":{"type":"number","description":"Try to limit the amount of received IPv6 routes to the specified number. This number does not represent the exact number of routes going to be installed in the routing table by the peer. BGP session 'clear' command must be used to reset the flag if the limit is reached.\n"}},"type":"object"},"routeros:index/RoutingBgpConnectionLocal:RoutingBgpConnectionLocal":{"properties":{"address":{"type":"string","description":"Local connection IPv4/6 address.\n"},"defaultAddress":{"type":"string"},"port":{"type":"number","description":"Local connection port.\n"},"role":{"type":"string","description":"BGP role, in most common scenarios it should be set to iBGP or eBGP. More information on BGP roles can be found in the corresponding [RFC draft](https://datatracker.ietf.org/doc/draft-ietf-idr-bgp-open-policy/?include_text=1)\n"},"ttl":{"type":"number","description":"Time To Live (hop limit) that will be recorded in sent TCP packets.\n"}},"type":"object","required":["role"],"language":{"nodejs":{"requiredOutputs":["defaultAddress","role"]}}},"routeros:index/RoutingBgpConnectionOutput:RoutingBgpConnectionOutput":{"properties":{"affinity":{"type":"string","description":"Configure output multicore processing. Read more in Routing Protocol Multi-core Support article. alone - input and output of each session is processed in its own process, the most likely best option when there are a lot of cores and a lot of peers afi, instance, vrf, remote-as - try to run input/output of new session in process with similar parameters main - run input/output in the main process (could potentially increase performance on single-core even possibly on multicore devices with small amount of cores) input - run output in the same process as input (can be set only for output affinity).\n"},"asOverride":{"type":"boolean","description":"If set, then all instances of the remote peer's AS number in the BGP AS-PATH attribute are replaced with the local AS number before sending a route update to that peer. Happens before routing filters and prepending.\n"},"defaultOriginate":{"type":"string","description":"Specifies default route (0.0.0.0/0) distribution method.\n"},"defaultPrepend":{"type":"number","description":"The count of AS prepended to the AS path.\n"},"filterChain":{"type":"string","description":"Name of the routing filter chain to be used on the output prefixes. If the chain is not specified, then BGP by default accepts everything.\n"},"filterSelect":{"type":"string","description":"Name of the routing select chain to be used for prefix selection. If not specified, then default selection is used.\n"},"keepSentAttributes":{"type":"boolean","description":"Store in memory sent prefix attributes, required for ' dump-saved-advertisements ' command to work. By default, sent-out prefixes are not stored to preserve the router's memory. An option should be enabled only for debugging purposes when necessary to see currently advertised prefixes.\n"},"network":{"type":"string","description":"Name of the address list used to send local networks. The network is sent only if a matching IGP route exists in the routing table.\n"},"noClientToClientReflection":{"type":"boolean","description":"Disable client-to-client route reflection in Route Reflector setups.\n"},"noEarlyCut":{"type":"boolean","description":"The early cut is the mechanism, to guess (based on default RFC behavior) what would happen with the sent NPLRI when received by the remote peer. If the algorithm determines that the NLRI is going to be dropped, a peer will not even try to send it. However such behavior may not be desired in specific scenarios, then then this option should be used to disable the early cut feature.\n"},"redistribute":{"type":"string","description":"Enable redistribution of specified route types.\n"},"removePrivateAs":{"type":"boolean","description":"If set, then the BGP AS-PATH attribute is removed before sending out route updates if the attribute contains only private AS numbers. The removal process happens before routing filters are applied and before the local, AS number is prepended to the AS path.\n"}},"type":"object"},"routeros:index/RoutingBgpConnectionRemote:RoutingBgpConnectionRemote":{"properties":{"address":{"type":"string","description":"Remote IPv4/6 address used to connect and/or listen to.\n"},"allowedAs":{"type":"string","description":"List of remote AS numbers that are allowed to connect. Useful for dynamic peer configuration.\n"},"as":{"type":"string","description":"Remote AS number. If not specified BGP will determine remote AS automatically from the OPEN message.\n"},"port":{"type":"number","description":"Local connection port.\n"},"ttl":{"type":"number","description":"Acceptable minimum Time To Live, the hop limit for this TCP connection. For example, if 'ttl=255' then only single-hop neighbors will be able to establish the connection. This property only affects EBGP peers.\n"}},"type":"object"},"routeros:index/RoutingBgpEvpnExport:RoutingBgpEvpnExport":{"properties":{"routeTargets":{"type":"array","items":{"type":"string"},"description":"List of route targets that will be added to EVPN routes when exporting.\n"}},"type":"object"},"routeros:index/RoutingBgpEvpnImport:RoutingBgpEvpnImport":{"properties":{"routeTargets":{"type":"array","items":{"type":"string"},"description":"List of route targets that will be used to import EVPN routes.\n"}},"type":"object"},"routeros:index/RoutingBgpTemplateInput:RoutingBgpTemplateInput":{"properties":{"acceptComunities":{"type":"string","description":"A quick way to filter incoming updates with specific communities. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as 'not active, filtered'. Changes to be applied required session refresh.\n"},"acceptExtCommunities":{"type":"string","description":"A quick way to filter incoming updates with specific extended communities. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as 'not active, filtered'. Changes to be applied required session refresh.\n"},"acceptLargeComunities":{"type":"string","description":"A quick way to filter incoming updates with specific large communities. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as 'not active, filtered'. Changes to be applied required session refresh.\n"},"acceptNlri":{"type":"string","description":"Name of the ipv4/6 address-list. A quick way to filter incoming updates with specific NLRIs. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as 'not active, filtered'. Changes to be applied required session restart.\n"},"acceptUnknown":{"type":"string","description":"A quick way to filter incoming updates with specific 'unknown' attributes. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as 'not active, filtered'. Changes to be applied required session refresh.\n","deprecationMessage":"Deprecated"},"affinity":{"type":"string","description":"Configure input multi-core processing. Read more in Routing Protocol Multi-core Support article. alone - input and output of each session are processed in its own process, most likely the best option when there are a lot of cores and a lot of peers afi, instance, vrf, remote-as - try to run input/output of new session in process with similar parameters main - run input/output in the main process (could potentially increase performance on single-core even possibly on multi-core devices with a small amount of cores) input - run output in the same process as input (can be set only for output affinity)\n"},"allowAs":{"type":"number","description":"Indicates how many times to allow your own AS number in AS-PATH, before discarding a prefix.\n"},"filter":{"type":"string","description":"Name of the routing filter chain to be used on input prefixes. This happens after NLRIs are processed. If the chain is not specified, then BGP by default accepts everything.\n"},"filterCommunities":{"type":"string","description":"A quick way to filter incoming updates with specific communities. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as \"not active, filtered\". Changes to be applied required session refresh.\n"},"filterExtCommunities":{"type":"string","description":"A quick way to filter incoming updates with specific extended communities. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as \"not active, filtered\". Changes to be applied required session refresh.\n"},"filterLargeCommunities":{"type":"string","description":"A quick way to filter incoming updates with specific large communities. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as \"not active, filtered\". Changes to be applied required session refresh.\n"},"filterNlri":{"type":"string","description":"Name of the filter chain that will filter incoming IPv4/IPv6 NLRIs directly before they are  stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in `/routing route` table as `not active, filtered`. Changes to be applied required session restart.\n"},"filterUnknown":{"type":"string","description":"A quick way to filter incoming updates with specific \"unknown\" attributes. It allows filtering incoming messages directly before they are even parsed and stored in memory, that way significantly reducing memory usage. Regular input filter chain can only reject prefixes which means that it will still eat memory and will be visible in /routing route table as \"not active, filtered\". Changes to be applied required session refresh.\n"},"ignoreAsPathLen":{"type":"boolean","description":"Whether to ignore the AS_PATH attribute in the BGP route selection algorithm\n","deprecationMessage":"Deprecated"},"limitProcessRoutesIpv4":{"type":"number","description":"Try to limit the amount of received IPv4 routes to the specified number. This number does not represent the exact number of routes going to be installed in the routing table by the peer. BGP session 'clear' command must be used to reset the flag if the limit is reached.\n"},"limitProcessRoutesIpv6":{"type":"number","description":"Try to limit the amount of received IPv6 routes to the specified number. This number does not represent the exact number of routes going to be installed in the routing table by the peer. BGP session 'clear' command must be used to reset the flag if the limit is reached.\n"}},"type":"object"},"routeros:index/RoutingBgpTemplateOutput:RoutingBgpTemplateOutput":{"properties":{"affinity":{"type":"string","description":"Configure output multicore processing. Read more in Routing Protocol Multi-core Support article. alone - input and output of each session is processed in its own process, the most likely best option when there are a lot of cores and a lot of peers afi, instance, vrf, remote-as - try to run input/output of new session in process with similar parameters main - run input/output in the main process (could potentially increase performance on single-core even possibly on multicore devices with small amount of cores) input - run output in the same process as input (can be set only for output affinity).\n"},"defaultOriginate":{"type":"string","description":"Specifies default route (0.0.0.0/0) distribution method.\n"},"defaultPrepend":{"type":"number","description":"The count of AS prepended to the AS path.\n"},"filterChain":{"type":"string","description":"Name of the routing filter chain to be used on the output prefixes. If the chain is not specified, then BGP by default accepts everything.\n"},"filterSelect":{"type":"string","description":"Name of the routing select chain to be used for prefix selection. If not specified, then default selection is used.\n"},"keepSentAttributes":{"type":"boolean","description":"Store in memory sent prefix attributes, required for ' dump-saved-advertisements ' command to work. By default, sent-out prefixes are not stored to preserve the router's memory. An option should be enabled only for debugging purposes when necessary to see currently advertised prefixes.\n"},"network":{"type":"string","description":"Name of the address list used to send local networks. The network is sent only if a matching IGP route exists in the routing table.\n"},"noClientToClientReflection":{"type":"boolean","description":"Disable client-to-client route reflection in Route Reflector setups.\n"},"noEarlyCut":{"type":"boolean","description":"The early cut is the mechanism, to guess (based on default RFC behavior) what would happen with the sent NPLRI when received by the remote peer. If the algorithm determines that the NLRI is going to be dropped, a peer will not even try to send it. However such behavior may not be desired in specific scenarios, then then this option should be used to disable the early cut feature.\n"},"redistribute":{"type":"string","description":"Enable redistribution of specified route types.\n"}},"type":"object"},"routeros:index/RoutingBgpVpnExport:RoutingBgpVpnExport":{"properties":{"filterChain":{"type":"string","description":"The name of the routing filter chain that is used to filter prefixes before exporting.\n"},"filterSelect":{"type":"string","description":"The name of the select filter chain that is used to select prefixes to be exported exporting.\n"},"redistribute":{"type":"string","description":"Enable redistribution of specified route types from VRF to VPNv4.\n"},"routeTargets":{"type":"array","items":{"type":"string"},"description":"List of route targets added when exporting VPNv4 routes. The accepted RT format is similar to the one for Route Distinguishers.\n"}},"type":"object"},"routeros:index/RoutingBgpVpnImport:RoutingBgpVpnImport":{"properties":{"filterChain":{"type":"string","description":"The name of the routing filter chain that is used to filter prefixes during import.\n"},"routeTargets":{"type":"array","items":{"type":"string"},"description":"List of route targets that will be used to import VPNv4 routes. The accepted RT format is similar to the one for Route Distinguishers.\n"},"routerId":{"type":"string","description":"The router ID of the BGP instance that will be used for the BGP best path selection algorithm.\n"}},"type":"object"},"routeros:index/SystemCertificateImport:SystemCertificateImport":{"properties":{"certFileContent":{"type":"string","description":"Certificate in PEM format.\n"},"certFileName":{"type":"string","description":"Certificate file name that will be imported.\n"},"keyFileContent":{"type":"string","description":"Key in PEM format.\n"},"keyFileName":{"type":"string","description":"Key file name that will be imported.\n"},"passphrase":{"type":"string","description":"File passphrase if there is such.\n","secret":true}},"type":"object"},"routeros:index/SystemCertificateSign:SystemCertificateSign":{"properties":{"ca":{"type":"string","description":"Which CA to use if signing issued certificates.\n"},"caCrlHost":{"type":"string","description":"CRL host if issuing CA certificate.\n"}},"type":"object"},"routeros:index/SystemCertificateSignViaScep:SystemCertificateSignViaScep":{"properties":{"caIdentity":{"type":"string","description":"SCEP CA identity.\n"},"challengePassword":{"type":"string","description":"A challenge password.\n","secret":true},"onSmartCard":{"type":"boolean","description":"Whether to store a private key on smart card if hardware supports it.\n"},"refresh":{"type":"boolean","description":"Check certificate expiration and refresh it if expired.\n"},"scepUrl":{"type":"string","description":"HTTP URL to the SCEP server.\n"}},"type":"object","required":["scepUrl"]},"routeros:index/WireguardKeysKey:WireguardKeysKey":{"properties":{"preshared":{"type":"string"},"private":{"type":"string"},"public":{"type":"string"}},"type":"object","required":["preshared","private","public"]},"routeros:index/getFilesFile:getFilesFile":{"properties":{"contents":{"type":"string"},"creationTime":{"type":"string"},"id":{"type":"string"},"lastModified":{"type":"string"},"name":{"type":"string"},"packageArchitecture":{"type":"string"},"packageBuiltTime":{"type":"string"},"packageName":{"type":"string"},"packageVersion":{"type":"string"},"size":{"type":"number"},"type":{"type":"string"}},"type":"object","required":["contents","creationTime","id","lastModified","name","packageArchitecture","packageBuiltTime","packageName","packageVersion","size","type"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getFirewallAddressList:getFirewallAddressList":{"properties":{"address":{"type":"string"},"comment":{"type":"string"},"creationTime":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"id":{"type":"string"},"list":{"type":"string"},"timeout":{"type":"string"}},"type":"object","required":["address","comment","creationTime","disabled","dynamic","id","list","timeout"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getFirewallMangle:getFirewallMangle":{"properties":{"action":{"type":"string"},"addressList":{"type":"string"},"addressListTimeout":{"type":"string"},"bytes":{"type":"number"},"chain":{"type":"string"},"comment":{"type":"string"},"connectionBytes":{"type":"string"},"connectionLimit":{"type":"string"},"connectionMark":{"type":"string"},"connectionNatState":{"type":"string"},"connectionRate":{"type":"string"},"connectionState":{"type":"string"},"connectionType":{"type":"string"},"content":{"type":"string"},"disabled":{"type":"boolean"},"dscp":{"type":"number"},"dstAddress":{"type":"string"},"dstAddressList":{"type":"string"},"dstAddressType":{"type":"string"},"dstLimit":{"type":"string"},"dstPort":{"type":"string"},"dynamic":{"type":"boolean"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"fragment":{"type":"boolean"},"hotspot":{"type":"string"},"icmpOptions":{"type":"string"},"id":{"type":"string"},"inBridgePort":{"type":"string"},"inBridgePortList":{"type":"string"},"inInterface":{"type":"string"},"inInterfaceList":{"type":"string"},"ingressPriority":{"type":"number"},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string"},"ipv4Options":{"type":"string"},"jumpTarget":{"type":"string"},"layer7Protocol":{"type":"string"},"limit":{"type":"string"},"log":{"type":"boolean"},"logPrefix":{"type":"string"},"newConnectionMark":{"type":"string"},"newDscp":{"type":"number"},"newMss":{"type":"string"},"newPacketMark":{"type":"string"},"newPriority":{"type":"string"},"newRoutingMark":{"type":"string"},"newTtl":{"type":"string"},"nth":{"type":"string"},"outBridgePort":{"type":"string"},"outBridgePortList":{"type":"string"},"outInterface":{"type":"string"},"outInterfaceList":{"type":"string"},"packetMark":{"type":"string"},"packetSize":{"type":"string"},"passthrough":{"type":"boolean"},"perConnectionClassifier":{"type":"string"},"port":{"type":"string"},"protocol":{"type":"string"},"psd":{"type":"string"},"random":{"type":"number"},"routeDst":{"type":"string"},"routingMark":{"type":"string"},"srcAddress":{"type":"string"},"srcAddressList":{"type":"string"},"srcAddressType":{"type":"string"},"srcMacAddress":{"type":"string"},"srcPort":{"type":"string"},"tcpFlags":{"type":"string"},"tcpMss":{"type":"string"},"time":{"type":"string"},"tlsHost":{"type":"string"},"ttl":{"type":"string"}},"type":"object","required":["action","addressList","addressListTimeout","bytes","chain","comment","connectionBytes","connectionLimit","connectionMark","connectionNatState","connectionRate","connectionState","connectionType","content","disabled","dscp","dstAddress","dstAddressList","dstAddressType","dstLimit","dstPort","dynamic","fragment","hotspot","icmpOptions","id","inBridgePort","inBridgePortList","inInterface","inInterfaceList","ingressPriority","invalid","ipsecPolicy","ipv4Options","jumpTarget","layer7Protocol","limit","log","logPrefix","newConnectionMark","newDscp","newMss","newPacketMark","newPriority","newRoutingMark","newTtl","nth","outBridgePort","outBridgePortList","outInterface","outInterfaceList","packetMark","packetSize","passthrough","perConnectionClassifier","port","protocol","psd","random","routeDst","routingMark","srcAddress","srcAddressList","srcAddressType","srcMacAddress","srcPort","tcpFlags","tcpMss","time","tlsHost","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getFirewallNat:getFirewallNat":{"properties":{"action":{"type":"string"},"addressList":{"type":"string"},"addressListTimeout":{"type":"string"},"bytes":{"type":"number"},"chain":{"type":"string"},"comment":{"type":"string"},"connectionBytes":{"type":"string"},"connectionLimit":{"type":"string"},"connectionMark":{"type":"string"},"connectionRate":{"type":"string"},"connectionType":{"type":"string"},"content":{"type":"string"},"disabled":{"type":"boolean"},"dscp":{"type":"number"},"dstAddress":{"type":"string"},"dstAddressList":{"type":"string"},"dstAddressType":{"type":"string"},"dstLimit":{"type":"string"},"dstPort":{"type":"string"},"dynamic":{"type":"boolean"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"fragment":{"type":"boolean"},"hotspot":{"type":"string"},"icmpOptions":{"type":"string"},"id":{"type":"string"},"inBridgePort":{"type":"string"},"inBridgePortList":{"type":"string"},"inInterface":{"type":"string"},"inInterfaceList":{"type":"string"},"ingressPriority":{"type":"number"},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string"},"ipv4Options":{"type":"string"},"jumpTarget":{"type":"string"},"layer7Protocol":{"type":"string"},"limit":{"type":"string"},"log":{"type":"boolean"},"logPrefix":{"type":"string"},"nth":{"type":"string"},"outBridgePort":{"type":"string"},"outBridgePortList":{"type":"string"},"outInterface":{"type":"string"},"outInterfaceList":{"type":"string"},"packetMark":{"type":"string"},"packetSize":{"type":"string"},"perConnectionClassifier":{"type":"string"},"port":{"type":"string"},"priority":{"type":"number"},"protocol":{"type":"string"},"psd":{"type":"string"},"random":{"type":"number"},"routingMark":{"type":"string"},"sameNotByDst":{"type":"boolean"},"socks5Port":{"type":"string"},"socks5Server":{"type":"string"},"srcAddress":{"type":"string"},"srcAddressList":{"type":"string"},"srcAddressType":{"type":"string"},"srcMacAddress":{"type":"string"},"srcPort":{"type":"string"},"tcpMss":{"type":"string"},"time":{"type":"string"},"toAddresses":{"type":"string"},"toPorts":{"type":"string"},"ttl":{"type":"string"}},"type":"object","required":["action","addressList","addressListTimeout","bytes","chain","comment","connectionBytes","connectionLimit","connectionMark","connectionRate","connectionType","content","disabled","dscp","dstAddress","dstAddressList","dstAddressType","dstLimit","dstPort","dynamic","fragment","hotspot","icmpOptions","id","inBridgePort","inBridgePortList","inInterface","inInterfaceList","ingressPriority","invalid","ipsecPolicy","ipv4Options","jumpTarget","layer7Protocol","limit","log","logPrefix","nth","outBridgePort","outBridgePortList","outInterface","outInterfaceList","packetMark","packetSize","perConnectionClassifier","port","priority","protocol","psd","random","routingMark","sameNotByDst","socks5Port","socks5Server","srcAddress","srcAddressList","srcAddressType","srcMacAddress","srcPort","tcpMss","time","toAddresses","toPorts","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getFirewallRule:getFirewallRule":{"properties":{"action":{"type":"string"},"addressList":{"type":"string"},"addressListTimeout":{"type":"string"},"bytes":{"type":"number"},"chain":{"type":"string"},"comment":{"type":"string"},"connectionBytes":{"type":"string"},"connectionLimit":{"type":"string"},"connectionMark":{"type":"string"},"connectionNatState":{"type":"string"},"connectionRate":{"type":"string"},"connectionState":{"type":"string"},"connectionType":{"type":"string"},"content":{"type":"string"},"disabled":{"type":"boolean"},"dscp":{"type":"number"},"dstAddress":{"type":"string"},"dstAddressList":{"type":"string"},"dstAddressType":{"type":"string"},"dstLimit":{"type":"string"},"dstPort":{"type":"string"},"dynamic":{"type":"boolean"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"fragment":{"type":"boolean"},"hotspot":{"type":"string"},"hwOffload":{"type":"boolean"},"icmpOptions":{"type":"string"},"id":{"type":"string"},"inBridgePort":{"type":"string"},"inBridgePortList":{"type":"string"},"inInterface":{"type":"string"},"inInterfaceList":{"type":"string"},"ingressPriority":{"type":"number"},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string"},"ipv4Options":{"type":"string"},"jumpTarget":{"type":"string"},"layer7Protocol":{"type":"string"},"limit":{"type":"string"},"log":{"type":"boolean"},"logPrefix":{"type":"string"},"nth":{"type":"string"},"outBridgePort":{"type":"string"},"outBridgePortList":{"type":"string"},"outInterface":{"type":"string"},"outInterfaceList":{"type":"string"},"packetMark":{"type":"string"},"packetSize":{"type":"string"},"perConnectionClassifier":{"type":"string"},"port":{"type":"string"},"priority":{"type":"number"},"protocol":{"type":"string"},"psd":{"type":"string"},"random":{"type":"number"},"rejectWith":{"type":"string"},"routingMark":{"type":"string"},"routingTable":{"type":"string"},"srcAddress":{"type":"string"},"srcAddressList":{"type":"string"},"srcAddressType":{"type":"string"},"srcMacAddress":{"type":"string"},"srcPort":{"type":"string"},"tcpFlags":{"type":"string"},"tcpMss":{"type":"string"},"time":{"type":"string"},"tlsHost":{"type":"string"},"ttl":{"type":"string"}},"type":"object","required":["action","addressList","addressListTimeout","bytes","chain","comment","connectionBytes","connectionLimit","connectionMark","connectionNatState","connectionRate","connectionState","connectionType","content","disabled","dscp","dstAddress","dstAddressList","dstAddressType","dstLimit","dstPort","dynamic","fragment","hotspot","hwOffload","icmpOptions","id","inBridgePort","inBridgePortList","inInterface","inInterfaceList","ingressPriority","invalid","ipsecPolicy","ipv4Options","jumpTarget","layer7Protocol","limit","log","logPrefix","nth","outBridgePort","outBridgePortList","outInterface","outInterfaceList","packetMark","packetSize","perConnectionClassifier","port","priority","protocol","psd","random","rejectWith","routingMark","routingTable","srcAddress","srcAddressList","srcAddressType","srcMacAddress","srcPort","tcpFlags","tcpMss","time","tlsHost","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getInterfaceBridgeFilterFilter:getInterfaceBridgeFilterFilter":{"properties":{"action":{"type":"string"},"bytes":{"type":"number"},"chain":{"type":"string"},"comment":{"type":"string"},"dynamic":{"type":"boolean"},"id":{"type":"string"},"inInterface":{"type":"string"},"invalid":{"type":"boolean"},"macProtocol":{"type":"string"},"packets":{"type":"number"}},"type":"object","required":["action","bytes","chain","comment","dynamic","id","inInterface","invalid","macProtocol","packets"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getInterfacesInterface:getInterfacesInterface":{"properties":{"actualMtu":{"type":"number"},"comment":{"type":"string"},"defaultName":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean"},"id":{"type":"string"},"inactive":{"type":"boolean"},"l2mtu":{"type":"number"},"lastLinkDownTime":{"type":"string"},"lastLinkUpTime":{"type":"string"},"macAddress":{"type":"string"},"maxL2mtu":{"type":"number"},"mtu":{"type":"string"},"name":{"type":"string"},"running":{"type":"boolean"},"slave":{"type":"boolean"},"type":{"type":"string"}},"type":"object","required":["actualMtu","comment","defaultName","disabled","dynamic","id","inactive","l2mtu","lastLinkDownTime","lastLinkUpTime","macAddress","maxL2mtu","mtu","name","running","slave","type"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpAddressesAddress:getIpAddressesAddress":{"properties":{"actualInterface":{"type":"string"},"address":{"type":"string"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean"},"id":{"type":"string"},"interface":{"type":"string"},"invalid":{"type":"boolean"},"network":{"type":"string"},"slave":{"type":"boolean"}},"type":"object","required":["actualInterface","address","comment","disabled","dynamic","id","interface","invalid","network","slave"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpArpData:getIpArpData":{"properties":{"address":{"type":"string"},"complete":{"type":"boolean"},"dhcp":{"type":"boolean"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean"},"id":{"type":"string"},"interface":{"type":"string"},"invalid":{"type":"boolean"},"macAddress":{"type":"string"},"published":{"type":"boolean"}},"type":"object","required":["address","complete","dhcp","disabled","dynamic","id","interface","invalid","macAddress","published"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpDhcpServerLeasesData:getIpDhcpServerLeasesData":{"properties":{"activeAddress":{"type":"string"},"activeClientId":{"type":"string"},"activeMacAddress":{"type":"string"},"activeServer":{"type":"string"},"address":{"type":"string"},"addressLists":{"type":"string"},"age":{"type":"string"},"allowDualStackQueue":{"type":"boolean"},"blocked":{"type":"boolean"},"classId":{"type":"string"},"clientId":{"type":"string"},"comment":{"type":"string"},"dhcpOption":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean"},"expiresAfter":{"type":"string"},"hostName":{"type":"string"},"id":{"type":"string"},"lastSeen":{"type":"string"},"macAddress":{"type":"string"},"radius":{"type":"boolean"},"server":{"type":"string"},"status":{"type":"string"}},"type":"object","required":["activeAddress","activeClientId","activeMacAddress","activeServer","address","addressLists","age","allowDualStackQueue","blocked","classId","clientId","comment","dhcpOption","disabled","dynamic","expiresAfter","hostName","id","lastSeen","macAddress","radius","server","status"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpFirewallAddressList:getIpFirewallAddressList":{"properties":{"address":{"type":"string"},"comment":{"type":"string"},"creationTime":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"id":{"type":"string"},"list":{"type":"string"},"timeout":{"type":"string"}},"type":"object","required":["address","comment","creationTime","disabled","dynamic","id","list","timeout"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpFirewallMangle:getIpFirewallMangle":{"properties":{"action":{"type":"string"},"addressList":{"type":"string"},"addressListTimeout":{"type":"string"},"bytes":{"type":"number"},"chain":{"type":"string"},"comment":{"type":"string"},"connectionBytes":{"type":"string"},"connectionLimit":{"type":"string"},"connectionMark":{"type":"string"},"connectionNatState":{"type":"string"},"connectionRate":{"type":"string"},"connectionState":{"type":"string"},"connectionType":{"type":"string"},"content":{"type":"string"},"disabled":{"type":"boolean"},"dscp":{"type":"number"},"dstAddress":{"type":"string"},"dstAddressList":{"type":"string"},"dstAddressType":{"type":"string"},"dstLimit":{"type":"string"},"dstPort":{"type":"string"},"dynamic":{"type":"boolean"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"fragment":{"type":"boolean"},"hotspot":{"type":"string"},"icmpOptions":{"type":"string"},"id":{"type":"string"},"inBridgePort":{"type":"string"},"inBridgePortList":{"type":"string"},"inInterface":{"type":"string"},"inInterfaceList":{"type":"string"},"ingressPriority":{"type":"number"},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string"},"ipv4Options":{"type":"string"},"jumpTarget":{"type":"string"},"layer7Protocol":{"type":"string"},"limit":{"type":"string"},"log":{"type":"boolean"},"logPrefix":{"type":"string"},"newConnectionMark":{"type":"string"},"newDscp":{"type":"number"},"newMss":{"type":"string"},"newPacketMark":{"type":"string"},"newPriority":{"type":"string"},"newRoutingMark":{"type":"string"},"newTtl":{"type":"string"},"nth":{"type":"string"},"outBridgePort":{"type":"string"},"outBridgePortList":{"type":"string"},"outInterface":{"type":"string"},"outInterfaceList":{"type":"string"},"packetMark":{"type":"string"},"packetSize":{"type":"string"},"passthrough":{"type":"boolean"},"perConnectionClassifier":{"type":"string"},"port":{"type":"string"},"protocol":{"type":"string"},"psd":{"type":"string"},"random":{"type":"number"},"routeDst":{"type":"string"},"routingMark":{"type":"string"},"srcAddress":{"type":"string"},"srcAddressList":{"type":"string"},"srcAddressType":{"type":"string"},"srcMacAddress":{"type":"string"},"srcPort":{"type":"string"},"tcpFlags":{"type":"string"},"tcpMss":{"type":"string"},"time":{"type":"string"},"tlsHost":{"type":"string"},"ttl":{"type":"string"}},"type":"object","required":["action","addressList","addressListTimeout","bytes","chain","comment","connectionBytes","connectionLimit","connectionMark","connectionNatState","connectionRate","connectionState","connectionType","content","disabled","dscp","dstAddress","dstAddressList","dstAddressType","dstLimit","dstPort","dynamic","fragment","hotspot","icmpOptions","id","inBridgePort","inBridgePortList","inInterface","inInterfaceList","ingressPriority","invalid","ipsecPolicy","ipv4Options","jumpTarget","layer7Protocol","limit","log","logPrefix","newConnectionMark","newDscp","newMss","newPacketMark","newPriority","newRoutingMark","newTtl","nth","outBridgePort","outBridgePortList","outInterface","outInterfaceList","packetMark","packetSize","passthrough","perConnectionClassifier","port","protocol","psd","random","routeDst","routingMark","srcAddress","srcAddressList","srcAddressType","srcMacAddress","srcPort","tcpFlags","tcpMss","time","tlsHost","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpFirewallNat:getIpFirewallNat":{"properties":{"action":{"type":"string"},"addressList":{"type":"string"},"addressListTimeout":{"type":"string"},"bytes":{"type":"number"},"chain":{"type":"string"},"comment":{"type":"string"},"connectionBytes":{"type":"string"},"connectionLimit":{"type":"string"},"connectionMark":{"type":"string"},"connectionRate":{"type":"string"},"connectionType":{"type":"string"},"content":{"type":"string"},"disabled":{"type":"boolean"},"dscp":{"type":"number"},"dstAddress":{"type":"string"},"dstAddressList":{"type":"string"},"dstAddressType":{"type":"string"},"dstLimit":{"type":"string"},"dstPort":{"type":"string"},"dynamic":{"type":"boolean"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"fragment":{"type":"boolean"},"hotspot":{"type":"string"},"icmpOptions":{"type":"string"},"id":{"type":"string"},"inBridgePort":{"type":"string"},"inBridgePortList":{"type":"string"},"inInterface":{"type":"string"},"inInterfaceList":{"type":"string"},"ingressPriority":{"type":"number"},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string"},"ipv4Options":{"type":"string"},"jumpTarget":{"type":"string"},"layer7Protocol":{"type":"string"},"limit":{"type":"string"},"log":{"type":"boolean"},"logPrefix":{"type":"string"},"nth":{"type":"string"},"outBridgePort":{"type":"string"},"outBridgePortList":{"type":"string"},"outInterface":{"type":"string"},"outInterfaceList":{"type":"string"},"packetMark":{"type":"string"},"packetSize":{"type":"string"},"perConnectionClassifier":{"type":"string"},"port":{"type":"string"},"priority":{"type":"number"},"protocol":{"type":"string"},"psd":{"type":"string"},"random":{"type":"number"},"routingMark":{"type":"string"},"sameNotByDst":{"type":"boolean"},"socks5Port":{"type":"string"},"socks5Server":{"type":"string"},"srcAddress":{"type":"string"},"srcAddressList":{"type":"string"},"srcAddressType":{"type":"string"},"srcMacAddress":{"type":"string"},"srcPort":{"type":"string"},"tcpMss":{"type":"string"},"time":{"type":"string"},"toAddresses":{"type":"string"},"toPorts":{"type":"string"},"ttl":{"type":"string"}},"type":"object","required":["action","addressList","addressListTimeout","bytes","chain","comment","connectionBytes","connectionLimit","connectionMark","connectionRate","connectionType","content","disabled","dscp","dstAddress","dstAddressList","dstAddressType","dstLimit","dstPort","dynamic","fragment","hotspot","icmpOptions","id","inBridgePort","inBridgePortList","inInterface","inInterfaceList","ingressPriority","invalid","ipsecPolicy","ipv4Options","jumpTarget","layer7Protocol","limit","log","logPrefix","nth","outBridgePort","outBridgePortList","outInterface","outInterfaceList","packetMark","packetSize","perConnectionClassifier","port","priority","protocol","psd","random","routingMark","sameNotByDst","socks5Port","socks5Server","srcAddress","srcAddressList","srcAddressType","srcMacAddress","srcPort","tcpMss","time","toAddresses","toPorts","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpFirewallRule:getIpFirewallRule":{"properties":{"action":{"type":"string"},"addressList":{"type":"string"},"addressListTimeout":{"type":"string"},"bytes":{"type":"number"},"chain":{"type":"string"},"comment":{"type":"string"},"connectionBytes":{"type":"string"},"connectionLimit":{"type":"string"},"connectionMark":{"type":"string"},"connectionNatState":{"type":"string"},"connectionRate":{"type":"string"},"connectionState":{"type":"string"},"connectionType":{"type":"string"},"content":{"type":"string"},"disabled":{"type":"boolean"},"dscp":{"type":"number"},"dstAddress":{"type":"string"},"dstAddressList":{"type":"string"},"dstAddressType":{"type":"string"},"dstLimit":{"type":"string"},"dstPort":{"type":"string"},"dynamic":{"type":"boolean"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"fragment":{"type":"boolean"},"hotspot":{"type":"string"},"hwOffload":{"type":"boolean"},"icmpOptions":{"type":"string"},"id":{"type":"string"},"inBridgePort":{"type":"string"},"inBridgePortList":{"type":"string"},"inInterface":{"type":"string"},"inInterfaceList":{"type":"string"},"ingressPriority":{"type":"number"},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string"},"ipv4Options":{"type":"string"},"jumpTarget":{"type":"string"},"layer7Protocol":{"type":"string"},"limit":{"type":"string"},"log":{"type":"boolean"},"logPrefix":{"type":"string"},"nth":{"type":"string"},"outBridgePort":{"type":"string"},"outBridgePortList":{"type":"string"},"outInterface":{"type":"string"},"outInterfaceList":{"type":"string"},"packetMark":{"type":"string"},"packetSize":{"type":"string"},"perConnectionClassifier":{"type":"string"},"port":{"type":"string"},"priority":{"type":"number"},"protocol":{"type":"string"},"psd":{"type":"string"},"random":{"type":"number"},"rejectWith":{"type":"string"},"routingMark":{"type":"string"},"routingTable":{"type":"string"},"srcAddress":{"type":"string"},"srcAddressList":{"type":"string"},"srcAddressType":{"type":"string"},"srcMacAddress":{"type":"string"},"srcPort":{"type":"string"},"tcpFlags":{"type":"string"},"tcpMss":{"type":"string"},"time":{"type":"string"},"tlsHost":{"type":"string"},"ttl":{"type":"string"}},"type":"object","required":["action","addressList","addressListTimeout","bytes","chain","comment","connectionBytes","connectionLimit","connectionMark","connectionNatState","connectionRate","connectionState","connectionType","content","disabled","dscp","dstAddress","dstAddressList","dstAddressType","dstLimit","dstPort","dynamic","fragment","hotspot","hwOffload","icmpOptions","id","inBridgePort","inBridgePortList","inInterface","inInterfaceList","ingressPriority","invalid","ipsecPolicy","ipv4Options","jumpTarget","layer7Protocol","limit","log","logPrefix","nth","outBridgePort","outBridgePortList","outInterface","outInterfaceList","packetMark","packetSize","perConnectionClassifier","port","priority","protocol","psd","random","rejectWith","routingMark","routingTable","srcAddress","srcAddressList","srcAddressType","srcMacAddress","srcPort","tcpFlags","tcpMss","time","tlsHost","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpRoutesRoute:getIpRoutesRoute":{"properties":{"active":{"type":"boolean"},"blackhole":{"type":"boolean"},"comment":{"type":"string"},"connect":{"type":"boolean"},"dhcp":{"type":"boolean"},"disabled":{"type":"boolean"},"distance":{"type":"number"},"dstAddress":{"type":"string"},"dynamic":{"type":"boolean"},"ecmp":{"type":"boolean"},"gateway":{"type":"string"},"hwOffloaded":{"type":"boolean"},"id":{"type":"string"},"immediateGw":{"type":"string"},"inactive":{"type":"boolean"},"localAddress":{"type":"string"},"prefSrc":{"type":"string"},"routingTable":{"type":"string"},"scope":{"type":"number"},"static":{"type":"boolean"},"suppressHwOffload":{"type":"boolean"},"targetScope":{"type":"number"},"vrfInterface":{"type":"string"}},"type":"object","required":["active","blackhole","comment","connect","dhcp","disabled","distance","dstAddress","dynamic","ecmp","gateway","hwOffloaded","id","immediateGw","inactive","localAddress","prefSrc","routingTable","scope","static","suppressHwOffload","targetScope","vrfInterface"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpServicesDynamicService:getIpServicesDynamicService":{"properties":{"address":{"type":"string"},"certificate":{"type":"string"},"connection":{"type":"boolean"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean"},"id":{"type":"string"},"invalid":{"type":"string"},"local":{"type":"string"},"maxSessions":{"type":"number"},"name":{"type":"string"},"port":{"type":"number"},"proto":{"type":"string"},"remote":{"type":"string"},"tlsVersion":{"type":"string"},"vrf":{"type":"string"}},"type":"object","required":["address","certificate","connection","disabled","dynamic","id","invalid","local","maxSessions","name","port","proto","remote","tlsVersion","vrf"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpServicesService:getIpServicesService":{"properties":{"address":{"type":"string"},"certificate":{"type":"string"},"connection":{"type":"boolean"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean"},"id":{"type":"string"},"invalid":{"type":"string"},"maxSessions":{"type":"number"},"name":{"type":"string"},"port":{"type":"number"},"proto":{"type":"string"},"tlsVersion":{"type":"string"},"vrf":{"type":"string"}},"type":"object","required":["address","certificate","connection","disabled","dynamic","id","invalid","maxSessions","name","port","proto","tlsVersion","vrf"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpv6AddressesAddress:getIpv6AddressesAddress":{"properties":{"actualInterface":{"type":"string"},"address":{"type":"string"},"advertise":{"type":"boolean"},"comment":{"type":"string"},"deprecated":{"type":"boolean"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean"},"eui64":{"type":"boolean"},"fromPool":{"type":"string"},"id":{"type":"string"},"interface":{"type":"string"},"invalid":{"type":"boolean"},"linkLocal":{"type":"boolean"},"noDad":{"type":"boolean"},"slave":{"type":"boolean"}},"type":"object","required":["actualInterface","address","advertise","comment","deprecated","disabled","dynamic","eui64","fromPool","id","interface","invalid","linkLocal","noDad","slave"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpv6FirewallMangle:getIpv6FirewallMangle":{"properties":{"action":{"type":"string"},"addressList":{"type":"string"},"addressListTimeout":{"type":"string"},"bytes":{"type":"number"},"chain":{"type":"string"},"comment":{"type":"string"},"connectionBytes":{"type":"string"},"connectionLimit":{"type":"string"},"connectionMark":{"type":"string"},"connectionNatState":{"type":"string"},"connectionRate":{"type":"string"},"connectionState":{"type":"string"},"connectionType":{"type":"string"},"content":{"type":"string"},"disabled":{"type":"boolean"},"dscp":{"type":"number"},"dstAddress":{"type":"string"},"dstAddressList":{"type":"string"},"dstAddressType":{"type":"string"},"dstLimit":{"type":"string"},"dstPort":{"type":"string"},"dynamic":{"type":"boolean"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"icmpOptions":{"type":"string"},"id":{"type":"string"},"inBridgePort":{"type":"string"},"inBridgePortList":{"type":"string"},"inInterface":{"type":"string"},"inInterfaceList":{"type":"string"},"ingressPriority":{"type":"number"},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string"},"jumpTarget":{"type":"string"},"limit":{"type":"string"},"log":{"type":"boolean"},"logPrefix":{"type":"string"},"newConnectionMark":{"type":"string"},"newDscp":{"type":"number"},"newMss":{"type":"string"},"newPacketMark":{"type":"string"},"newPriority":{"type":"string"},"newRoutingMark":{"type":"string"},"newTtl":{"type":"string"},"nth":{"type":"string"},"outBridgePort":{"type":"string"},"outBridgePortList":{"type":"string"},"outInterface":{"type":"string"},"outInterfaceList":{"type":"string"},"packetMark":{"type":"string"},"packetSize":{"type":"string"},"passthrough":{"type":"boolean"},"perConnectionClassifier":{"type":"string"},"port":{"type":"string"},"priority":{"type":"number"},"protocol":{"type":"string"},"random":{"type":"number"},"routingMark":{"type":"string"},"srcAddress":{"type":"string"},"srcAddressList":{"type":"string"},"srcAddressType":{"type":"string"},"srcMacAddress":{"type":"string"},"srcPort":{"type":"string"},"tcpFlags":{"type":"string"},"tcpMss":{"type":"string"},"time":{"type":"string"},"tlsHost":{"type":"string"},"ttl":{"type":"string"}},"type":"object","required":["action","addressList","addressListTimeout","bytes","chain","comment","connectionBytes","connectionLimit","connectionMark","connectionNatState","connectionRate","connectionState","connectionType","content","disabled","dscp","dstAddress","dstAddressList","dstAddressType","dstLimit","dstPort","dynamic","icmpOptions","id","inBridgePort","inBridgePortList","inInterface","inInterfaceList","ingressPriority","invalid","ipsecPolicy","jumpTarget","limit","log","logPrefix","newConnectionMark","newDscp","newMss","newPacketMark","newPriority","newRoutingMark","newTtl","nth","outBridgePort","outBridgePortList","outInterface","outInterfaceList","packetMark","packetSize","passthrough","perConnectionClassifier","port","priority","protocol","random","routingMark","srcAddress","srcAddressList","srcAddressType","srcMacAddress","srcPort","tcpFlags","tcpMss","time","tlsHost","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpv6FirewallNat:getIpv6FirewallNat":{"properties":{"action":{"type":"string"},"addressList":{"type":"string"},"addressListTimeout":{"type":"string"},"bytes":{"type":"number"},"chain":{"type":"string"},"comment":{"type":"string"},"connectionBytes":{"type":"string"},"connectionLimit":{"type":"string"},"connectionMark":{"type":"string"},"connectionRate":{"type":"string"},"connectionType":{"type":"string"},"content":{"type":"string"},"disabled":{"type":"boolean"},"dscp":{"type":"number"},"dstAddress":{"type":"string"},"dstAddressList":{"type":"string"},"dstAddressType":{"type":"string"},"dstLimit":{"type":"string"},"dstPort":{"type":"string"},"dynamic":{"type":"boolean"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"icmpOptions":{"type":"string"},"id":{"type":"string"},"inBridgePort":{"type":"string"},"inBridgePortList":{"type":"string"},"inInterface":{"type":"string"},"inInterfaceList":{"type":"string"},"ingressPriority":{"type":"number"},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string"},"jumpTarget":{"type":"string"},"limit":{"type":"string"},"log":{"type":"boolean"},"logPrefix":{"type":"string"},"nth":{"type":"string"},"outBridgePort":{"type":"string"},"outBridgePortList":{"type":"string"},"outInterface":{"type":"string"},"outInterfaceList":{"type":"string"},"packetMark":{"type":"string"},"packetSize":{"type":"string"},"perConnectionClassifier":{"type":"string"},"port":{"type":"string"},"priority":{"type":"number"},"protocol":{"type":"string"},"random":{"type":"number"},"routingMark":{"type":"string"},"srcAddress":{"type":"string"},"srcAddressList":{"type":"string"},"srcAddressType":{"type":"string"},"srcMacAddress":{"type":"string"},"srcPort":{"type":"string"},"tcpFlags":{"type":"string"},"tcpMss":{"type":"string"},"time":{"type":"string"},"tlsHost":{"type":"string"},"toAddress":{"type":"string"},"toPorts":{"type":"string"}},"type":"object","required":["action","addressList","addressListTimeout","bytes","chain","comment","connectionBytes","connectionLimit","connectionMark","connectionRate","connectionType","content","disabled","dscp","dstAddress","dstAddressList","dstAddressType","dstLimit","dstPort","dynamic","icmpOptions","id","inBridgePort","inBridgePortList","inInterface","inInterfaceList","ingressPriority","invalid","ipsecPolicy","jumpTarget","limit","log","logPrefix","nth","outBridgePort","outBridgePortList","outInterface","outInterfaceList","packetMark","packetSize","perConnectionClassifier","port","priority","protocol","random","routingMark","srcAddress","srcAddressList","srcAddressType","srcMacAddress","srcPort","tcpFlags","tcpMss","time","tlsHost","toAddress","toPorts"],"language":{"nodejs":{"requiredInputs":[]}}},"routeros:index/getIpv6FirewallRule:getIpv6FirewallRule":{"properties":{"action":{"type":"string"},"bytes":{"type":"number"},"chain":{"type":"string"},"comment":{"type":"string"},"connectionBytes":{"type":"string"},"connectionLimit":{"type":"string"},"connectionMark":{"type":"string"},"connectionNatState":{"type":"string"},"connectionRate":{"type":"string"},"connectionState":{"type":"string"},"connectionType":{"type":"string"},"content":{"type":"string"},"disabled":{"type":"boolean"},"dscp":{"type":"number"},"dstAddress":{"type":"string"},"dstAddressList":{"type":"string"},"dstAddressType":{"type":"string"},"dstLimit":{"type":"string"},"dstPort":{"type":"string"},"dynamic":{"type":"boolean"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"icmpOptions":{"type":"string"},"id":{"type":"string"},"inBridgePort":{"type":"string"},"inBridgePortList":{"type":"string"},"inInterface":{"type":"string"},"inInterfaceList":{"type":"string"},"ingressPriority":{"type":"number"},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string"},"limit":{"type":"string"},"log":{"type":"boolean"},"logPrefix":{"type":"string"},"nth":{"type":"string"},"outBridgePort":{"type":"string"},"outBridgePortList":{"type":"string"},"outInterface":{"type":"string"},"outInterfaceList":{"type":"string"},"packetMark":{"type":"string"},"packetSize":{"type":"string"},"perConnectionClassifier":{"type":"string"},"port":{"type":"string"},"priority":{"type":"number"},"protocol":{"type":"string"},"random":{"type":"number"},"rejectWith":{"type":"string"},"routingMark":{"type":"string"},"routingTable":{"type":"string"},"srcAddress":{"type":"string"},"srcAddressList":{"type":"string"},"srcAddressType":{"type":"string"},"srcMacAddress":{"type":"string"},"srcPort":{"type":"string"},"tcpFlags":{"type":"string"},"tcpMss":{"type":"string"},"time":{"type":"string"},"tlsHost":{"type":"string"},"ttl":{"type":"string"}},"type":"object","required":["action","bytes","chain","comment","connectionBytes","connectionLimit","connectionMark","connectionNatState","connectionRate","connectionState","connectionType","content","disabled","dscp","dstAddress","dstAddressList","dstAddressType","dstLimit","dstPort","dynamic","icmpOptions","id","inBridgePort","inBridgePortList","inInterface","inInterfaceList","ingressPriority","invalid","ipsecPolicy","limit","log","logPrefix","nth","outBridgePort","outBridgePortList","outInterface","outInterfaceList","packetMark","packetSize","perConnectionClassifier","port","priority","protocol","random","rejectWith","routingMark","routingTable","srcAddress","srcAddressList","srcAddressType","srcMacAddress","srcPort","tcpFlags","tcpMss","time","tlsHost","ttl"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the routeros 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":{"caCertificate":{"type":"string","description":"Path to MikroTik's certificate authority file (env: ROS_CA_CERTIFICATE | MIKROTIK_CA_CERTIFICATE)."},"hosturl":{"type":"string","description":"URL of the MikroTik router, default is TLS connection to REST.\n\t* API: api[s]://host[:port]\n\t\t* api://router.local\n\t\t* apis://router.local:8729\n\t* REST: http[s]://host\n\t\t* http://router.local\n\t\t* https://router.local\n\t\t* router.local\n\t\t* 127.0.0.1\n\n\n\texport ROS_HOSTURL=router.local or export MIKROTIK_HOST=router.local"},"password":{"type":"string","description":"Password for the MikroTik user (env: ROS_PASSWORD | MIKROTIK_PASSWORD).","secret":true},"routerosVersion":{"type":"string","description":"RouterOS version for which resource schemes will be adapted. The version obtained from MikroTik will be used if not specified (env: ROS_VERSION)."},"username":{"type":"string","description":"Username for the MikroTik WEB/Winbox.\n\n\n\texport ROS_USERNAME=admin or export MIKROTIK_USER=admin"}},"type":"object","required":["hosturl","username"],"inputProperties":{"caCertificate":{"type":"string","description":"Path to MikroTik's certificate authority file (env: ROS_CA_CERTIFICATE | MIKROTIK_CA_CERTIFICATE)."},"hosturl":{"type":"string","description":"URL of the MikroTik router, default is TLS connection to REST.\n\t* API: api[s]://host[:port]\n\t\t* api://router.local\n\t\t* apis://router.local:8729\n\t* REST: http[s]://host\n\t\t* http://router.local\n\t\t* https://router.local\n\t\t* router.local\n\t\t* 127.0.0.1\n\n\n\texport ROS_HOSTURL=router.local or export MIKROTIK_HOST=router.local"},"insecure":{"type":"boolean","description":"Whether to verify the SSL certificate or not (env: ROS_INSECURE | MIKROTIK_INSECURE)."},"password":{"type":"string","description":"Password for the MikroTik user (env: ROS_PASSWORD | MIKROTIK_PASSWORD).","secret":true},"restTimeout":{"type":"number","description":"HTTP Client Timeout"},"routerosVersion":{"type":"string","description":"RouterOS version for which resource schemes will be adapted. The version obtained from MikroTik will be used if not specified (env: ROS_VERSION)."},"suppressSysoDelWarn":{"type":"boolean","description":"Suppress the system object deletion warning (env: ROS_SUPPRESS_SYSO_DEL_WARN)."},"username":{"type":"string","description":"Username for the MikroTik WEB/Winbox.\n\n\n\texport ROS_USERNAME=admin or export MIKROTIK_USER=admin"}},"requiredInputs":["hosturl","username"],"methods":{"terraformConfig":"pulumi:providers:routeros/terraformConfig"}},"resources":{"routeros:index/bridge:Bridge":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.Bridge \" pulumi-lang-dotnet=\" routeros.Bridge \" pulumi-lang-go=\" Bridge \" pulumi-lang-python=\" Bridge \" pulumi-lang-yaml=\" routeros.Bridge \" pulumi-lang-java=\" routeros.Bridge \"\u003e routeros.Bridge \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceBridge\n\" pulumi-lang-dotnet=\" routeros.InterfaceBridge\n\" pulumi-lang-go=\" InterfaceBridge\n\" pulumi-lang-python=\" InterfaceBridge\n\" pulumi-lang-yaml=\" routeros.InterfaceBridge\n\" pulumi-lang-java=\" routeros.InterfaceBridge\n\"\u003e routeros.InterfaceBridge\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"addDhcpOption82":{"type":"boolean","description":"Whether to add DHCP Option-82 information (Agent Remote ID and Agent Circuit ID) to DHCP packets. Can be used together with Option-82 capable DHCP server to assign IP addresses and implement policies. This property only has effect when dhcp-snooping is set to yes."},"adminMac":{"type":"string","description":"Static MAC address of the bridge. This property only has effect when auto-mac is set to no."},"ageingTime":{"type":"string","description":"How long a host's information will be kept in the bridge database."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"autoMac":{"type":"boolean","description":"Automatically select one MAC address of bridge ports as a bridge MAC address, bridge MAC will be chosen from the first added bridge port. After a device reboot, the bridge MAC can change depending on the port-number."},"bridgeId":{"type":"string"},"comment":{"type":"string"},"dhcpSnooping":{"type":"boolean"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"etherType":{"type":"string","description":"This property only has effect when vlan-filtering is set to yes."},"fastForward":{"type":"boolean"},"forwardDelay":{"type":"string","description":"Time which is spent during the initialization phase of the bridge interface (i.e., after router startup or enabling the interface) in listening/learning state before the bridge will start functioning normally."},"forwardReservedAddresses":{"type":"boolean","description":"An option whether to forward IEEE reserved multicast MAC addresses that are in the `01:80:C2:00:00:0x` range. This option is available in RouterOS starting from version 7.16."},"frameTypes":{"type":"string","description":"Specifies allowed frame types on a bridge port. This property only has effect when vlan-filtering is set to yes."},"igmpSnooping":{"type":"boolean","description":"Enables multicast group and port learning to prevent multicast traffic from flooding all interfaces in a bridge."},"igmpVersion":{"type":"number","description":"Selects the IGMP version in which IGMP general membership queries will be generated. This property only has effect when igmp-snooping is set to yes."},"ingressFiltering":{"type":"boolean","description":"Enables or disables VLAN ingress filtering, which checks if the ingress port is a member of the received VLAN ID in the bridge VLAN table. Should be used with frame-types to specify if the ingress traffic should be tagged or untagged. This property only has effect when vlan-filtering is set to yes."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"lastMemberInterval":{"type":"string","description":"If a port has fast-leave set to no and a bridge port receives a IGMP Leave message, then a IGMP Snooping enabled bridge will send a IGMP query to make sure that no devices has subscribed to a certain multicast stream on a bridge port."},"lastMemberQueryCount":{"type":"number","description":"How many times should last-member-interval pass until a IGMP Snooping bridge will stop forwarding a certain multicast stream. This property only has effect when igmp-snooping is set to yes."},"macAddress":{"type":"string","description":"Current mac address."},"maxHops":{"type":"number","description":"Bridge count which BPDU can pass in a MSTP enabled network in the same region before BPDU is being ignored. This property only has effect when protocol-mode is set to mstp."},"maxLearnedEntries":{"type":"string","description":"An option to set the maximum number of learned hosts for the bridge interface. This option is available in RouterOS starting from version 7.16."},"maxMessageAge":{"type":"string","description":"Changes the Max Age value in BPDU packets, which is transmitted by the root bridge. This property only has effect when protocol-mode is set to stp or rstp. Value: 6s..40s"},"membershipInterval":{"type":"string","description":"Amount of time after an entry in the Multicast Database (MDB) is removed if a IGMP membership report is not received on a certain port. This property only has effect when igmp-snooping is set to yes."},"mldVersion":{"type":"number","description":"Selects the MLD version. Version 2 adds support for source-specific multicast. This property only has effect when RouterOS IPv6 package is enabled and igmp-snooping is set to yes."},"mtu":{"type":"string","description":"The default bridge MTU value without any bridge ports added is 1500. The MTU value can be set manually, but it cannot exceed the bridge L2MTU or the lowest bridge port L2MTU. If a new bridge port is added with L2MTU which is smaller than the actual-mtu of the bridge (set by the mtu property), then manually set value will be ignored and the bridge will act as if mtu=auto is set."},"multicastQuerier":{"type":"boolean","description":"Multicast querier generates IGMP general membership queries to which all IGMP capable devices respond with an IGMP membership report, usually a PIM (multicast) router or IGMP proxy generates these queries. This property only has an effect when igmp-snooping is set to yes. Additionally, the igmp-snooping should be disabled/enabled after changing multicast-querier property."},"multicastRouter":{"type":"string","description":"A multicast router port is a port where a multicast router or querier is connected. On this port, unregistered multicast streams and IGMP/MLD membership reports will be sent. This setting changes the state of the multicast router for a bridge interface itself. This property can be used to send IGMP/MLD membership reports and multicast traffic to the bridge interface for further multicast routing or proxying. This property only has an effect when igmp-snooping is set to yes."},"mvrp":{"type":"boolean","description":"Enables MVRP for bridge (available since RouterOS 7.15). It ensures that the MAC address 01:80:C2:00:00:21 is trapped and not forwarded, the vlan-filtering must be enabled."},"name":{"type":"string"},"portCostMode":{"type":"string","description":"An option that changes the port path cost and internal path cost mode for bridged ports, utilizing automatic values based on interface speed."},"priority":{"type":"string","description":"Bridge priority, used by STP to determine root bridge, used by MSTP to determine CIST and IST regional root bridge. This property has no effect when protocol-mode is set to none."},"protocolMode":{"type":"string","description":"Select Spanning tree protocol (STP) or Rapid spanning tree protocol (RSTP) to ensure a loop-free topology for any bridged LAN."},"pvid":{"type":"number","description":"Port VLAN ID (pvid) specifies which VLAN the untagged ingress traffic is assigned to. It applies e.g. to frames sent from bridge IP and destined to a bridge port. This property only has effect when vlan-filtering is set to yes."},"querierInterval":{"type":"string","description":"Used to change the interval how often a bridge checks if it is the active multicast querier. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"queryInterval":{"type":"string","description":"Used to change the interval how often IGMP general membership queries are sent out. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"queryResponseInterval":{"type":"string","description":"Interval in which a IGMP capable device must reply to a IGMP query with a IGMP membership report. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"regionName":{"type":"string","description":"MSTP region name. This property only has effect when protocol-mode is set to mstp."},"regionRevision":{"type":"number","description":"MSTP configuration revision number. This property only has effect when protocol-mode is set to mstp."},"running":{"type":"boolean"},"startupQueryCount":{"type":"number","description":"Specifies how many times must startup-query-interval pass until the bridge starts sending out IGMP general membership queries periodically. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"startupQueryInterval":{"type":"string","description":"Used to change the amount of time after a bridge starts sending out IGMP general membership queries after the bridge is enabled. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"transmitHoldCount":{"type":"number","description":"The Transmit Hold Count used by the Port Transmit state machine to limit transmission rate."},"vlanFiltering":{"type":"boolean","description":"Globally enables or disables VLAN functionality for bridge."}},"type":"object","required":["actualMtu","adminMac","bridgeId","dynamic","fastForward","igmpVersion","l2mtu","lastMemberInterval","lastMemberQueryCount","macAddress","maxHops","membershipInterval","mldVersion","multicastRouter","name","querierInterval","queryInterval","queryResponseInterval","running","startupQueryCount","startupQueryInterval"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDhcpOption82":{"type":"boolean","description":"Whether to add DHCP Option-82 information (Agent Remote ID and Agent Circuit ID) to DHCP packets. Can be used together with Option-82 capable DHCP server to assign IP addresses and implement policies. This property only has effect when dhcp-snooping is set to yes."},"adminMac":{"type":"string","description":"Static MAC address of the bridge. This property only has effect when auto-mac is set to no."},"ageingTime":{"type":"string","description":"How long a host's information will be kept in the bridge database."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"autoMac":{"type":"boolean","description":"Automatically select one MAC address of bridge ports as a bridge MAC address, bridge MAC will be chosen from the first added bridge port. After a device reboot, the bridge MAC can change depending on the port-number."},"bridgeId":{"type":"string"},"comment":{"type":"string"},"dhcpSnooping":{"type":"boolean"},"disabled":{"type":"boolean"},"etherType":{"type":"string","description":"This property only has effect when vlan-filtering is set to yes."},"fastForward":{"type":"boolean"},"forwardDelay":{"type":"string","description":"Time which is spent during the initialization phase of the bridge interface (i.e., after router startup or enabling the interface) in listening/learning state before the bridge will start functioning normally."},"forwardReservedAddresses":{"type":"boolean","description":"An option whether to forward IEEE reserved multicast MAC addresses that are in the `01:80:C2:00:00:0x` range. This option is available in RouterOS starting from version 7.16."},"frameTypes":{"type":"string","description":"Specifies allowed frame types on a bridge port. This property only has effect when vlan-filtering is set to yes."},"igmpSnooping":{"type":"boolean","description":"Enables multicast group and port learning to prevent multicast traffic from flooding all interfaces in a bridge."},"igmpVersion":{"type":"number","description":"Selects the IGMP version in which IGMP general membership queries will be generated. This property only has effect when igmp-snooping is set to yes."},"ingressFiltering":{"type":"boolean","description":"Enables or disables VLAN ingress filtering, which checks if the ingress port is a member of the received VLAN ID in the bridge VLAN table. Should be used with frame-types to specify if the ingress traffic should be tagged or untagged. This property only has effect when vlan-filtering is set to yes."},"lastMemberInterval":{"type":"string","description":"If a port has fast-leave set to no and a bridge port receives a IGMP Leave message, then a IGMP Snooping enabled bridge will send a IGMP query to make sure that no devices has subscribed to a certain multicast stream on a bridge port."},"lastMemberQueryCount":{"type":"number","description":"How many times should last-member-interval pass until a IGMP Snooping bridge will stop forwarding a certain multicast stream. This property only has effect when igmp-snooping is set to yes."},"maxHops":{"type":"number","description":"Bridge count which BPDU can pass in a MSTP enabled network in the same region before BPDU is being ignored. This property only has effect when protocol-mode is set to mstp."},"maxLearnedEntries":{"type":"string","description":"An option to set the maximum number of learned hosts for the bridge interface. This option is available in RouterOS starting from version 7.16."},"maxMessageAge":{"type":"string","description":"Changes the Max Age value in BPDU packets, which is transmitted by the root bridge. This property only has effect when protocol-mode is set to stp or rstp. Value: 6s..40s"},"membershipInterval":{"type":"string","description":"Amount of time after an entry in the Multicast Database (MDB) is removed if a IGMP membership report is not received on a certain port. This property only has effect when igmp-snooping is set to yes."},"mldVersion":{"type":"number","description":"Selects the MLD version. Version 2 adds support for source-specific multicast. This property only has effect when RouterOS IPv6 package is enabled and igmp-snooping is set to yes."},"mtu":{"type":"string","description":"The default bridge MTU value without any bridge ports added is 1500. The MTU value can be set manually, but it cannot exceed the bridge L2MTU or the lowest bridge port L2MTU. If a new bridge port is added with L2MTU which is smaller than the actual-mtu of the bridge (set by the mtu property), then manually set value will be ignored and the bridge will act as if mtu=auto is set."},"multicastQuerier":{"type":"boolean","description":"Multicast querier generates IGMP general membership queries to which all IGMP capable devices respond with an IGMP membership report, usually a PIM (multicast) router or IGMP proxy generates these queries. This property only has an effect when igmp-snooping is set to yes. Additionally, the igmp-snooping should be disabled/enabled after changing multicast-querier property."},"multicastRouter":{"type":"string","description":"A multicast router port is a port where a multicast router or querier is connected. On this port, unregistered multicast streams and IGMP/MLD membership reports will be sent. This setting changes the state of the multicast router for a bridge interface itself. This property can be used to send IGMP/MLD membership reports and multicast traffic to the bridge interface for further multicast routing or proxying. This property only has an effect when igmp-snooping is set to yes."},"mvrp":{"type":"boolean","description":"Enables MVRP for bridge (available since RouterOS 7.15). It ensures that the MAC address 01:80:C2:00:00:21 is trapped and not forwarded, the vlan-filtering must be enabled."},"name":{"type":"string"},"portCostMode":{"type":"string","description":"An option that changes the port path cost and internal path cost mode for bridged ports, utilizing automatic values based on interface speed."},"priority":{"type":"string","description":"Bridge priority, used by STP to determine root bridge, used by MSTP to determine CIST and IST regional root bridge. This property has no effect when protocol-mode is set to none."},"protocolMode":{"type":"string","description":"Select Spanning tree protocol (STP) or Rapid spanning tree protocol (RSTP) to ensure a loop-free topology for any bridged LAN."},"pvid":{"type":"number","description":"Port VLAN ID (pvid) specifies which VLAN the untagged ingress traffic is assigned to. It applies e.g. to frames sent from bridge IP and destined to a bridge port. This property only has effect when vlan-filtering is set to yes."},"querierInterval":{"type":"string","description":"Used to change the interval how often a bridge checks if it is the active multicast querier. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"queryInterval":{"type":"string","description":"Used to change the interval how often IGMP general membership queries are sent out. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"queryResponseInterval":{"type":"string","description":"Interval in which a IGMP capable device must reply to a IGMP query with a IGMP membership report. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"regionName":{"type":"string","description":"MSTP region name. This property only has effect when protocol-mode is set to mstp."},"regionRevision":{"type":"number","description":"MSTP configuration revision number. This property only has effect when protocol-mode is set to mstp."},"startupQueryCount":{"type":"number","description":"Specifies how many times must startup-query-interval pass until the bridge starts sending out IGMP general membership queries periodically. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"startupQueryInterval":{"type":"string","description":"Used to change the amount of time after a bridge starts sending out IGMP general membership queries after the bridge is enabled. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"transmitHoldCount":{"type":"number","description":"The Transmit Hold Count used by the Port Transmit state machine to limit transmission rate."},"vlanFiltering":{"type":"boolean","description":"Globally enables or disables VLAN functionality for bridge."}},"stateInputs":{"description":"Input properties used for looking up and filtering Bridge resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"addDhcpOption82":{"type":"boolean","description":"Whether to add DHCP Option-82 information (Agent Remote ID and Agent Circuit ID) to DHCP packets. Can be used together with Option-82 capable DHCP server to assign IP addresses and implement policies. This property only has effect when dhcp-snooping is set to yes."},"adminMac":{"type":"string","description":"Static MAC address of the bridge. This property only has effect when auto-mac is set to no."},"ageingTime":{"type":"string","description":"How long a host's information will be kept in the bridge database."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"autoMac":{"type":"boolean","description":"Automatically select one MAC address of bridge ports as a bridge MAC address, bridge MAC will be chosen from the first added bridge port. After a device reboot, the bridge MAC can change depending on the port-number."},"bridgeId":{"type":"string"},"comment":{"type":"string"},"dhcpSnooping":{"type":"boolean"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"etherType":{"type":"string","description":"This property only has effect when vlan-filtering is set to yes."},"fastForward":{"type":"boolean"},"forwardDelay":{"type":"string","description":"Time which is spent during the initialization phase of the bridge interface (i.e., after router startup or enabling the interface) in listening/learning state before the bridge will start functioning normally."},"forwardReservedAddresses":{"type":"boolean","description":"An option whether to forward IEEE reserved multicast MAC addresses that are in the `01:80:C2:00:00:0x` range. This option is available in RouterOS starting from version 7.16."},"frameTypes":{"type":"string","description":"Specifies allowed frame types on a bridge port. This property only has effect when vlan-filtering is set to yes."},"igmpSnooping":{"type":"boolean","description":"Enables multicast group and port learning to prevent multicast traffic from flooding all interfaces in a bridge."},"igmpVersion":{"type":"number","description":"Selects the IGMP version in which IGMP general membership queries will be generated. This property only has effect when igmp-snooping is set to yes."},"ingressFiltering":{"type":"boolean","description":"Enables or disables VLAN ingress filtering, which checks if the ingress port is a member of the received VLAN ID in the bridge VLAN table. Should be used with frame-types to specify if the ingress traffic should be tagged or untagged. This property only has effect when vlan-filtering is set to yes."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"lastMemberInterval":{"type":"string","description":"If a port has fast-leave set to no and a bridge port receives a IGMP Leave message, then a IGMP Snooping enabled bridge will send a IGMP query to make sure that no devices has subscribed to a certain multicast stream on a bridge port."},"lastMemberQueryCount":{"type":"number","description":"How many times should last-member-interval pass until a IGMP Snooping bridge will stop forwarding a certain multicast stream. This property only has effect when igmp-snooping is set to yes."},"macAddress":{"type":"string","description":"Current mac address."},"maxHops":{"type":"number","description":"Bridge count which BPDU can pass in a MSTP enabled network in the same region before BPDU is being ignored. This property only has effect when protocol-mode is set to mstp."},"maxLearnedEntries":{"type":"string","description":"An option to set the maximum number of learned hosts for the bridge interface. This option is available in RouterOS starting from version 7.16."},"maxMessageAge":{"type":"string","description":"Changes the Max Age value in BPDU packets, which is transmitted by the root bridge. This property only has effect when protocol-mode is set to stp or rstp. Value: 6s..40s"},"membershipInterval":{"type":"string","description":"Amount of time after an entry in the Multicast Database (MDB) is removed if a IGMP membership report is not received on a certain port. This property only has effect when igmp-snooping is set to yes."},"mldVersion":{"type":"number","description":"Selects the MLD version. Version 2 adds support for source-specific multicast. This property only has effect when RouterOS IPv6 package is enabled and igmp-snooping is set to yes."},"mtu":{"type":"string","description":"The default bridge MTU value without any bridge ports added is 1500. The MTU value can be set manually, but it cannot exceed the bridge L2MTU or the lowest bridge port L2MTU. If a new bridge port is added with L2MTU which is smaller than the actual-mtu of the bridge (set by the mtu property), then manually set value will be ignored and the bridge will act as if mtu=auto is set."},"multicastQuerier":{"type":"boolean","description":"Multicast querier generates IGMP general membership queries to which all IGMP capable devices respond with an IGMP membership report, usually a PIM (multicast) router or IGMP proxy generates these queries. This property only has an effect when igmp-snooping is set to yes. Additionally, the igmp-snooping should be disabled/enabled after changing multicast-querier property."},"multicastRouter":{"type":"string","description":"A multicast router port is a port where a multicast router or querier is connected. On this port, unregistered multicast streams and IGMP/MLD membership reports will be sent. This setting changes the state of the multicast router for a bridge interface itself. This property can be used to send IGMP/MLD membership reports and multicast traffic to the bridge interface for further multicast routing or proxying. This property only has an effect when igmp-snooping is set to yes."},"mvrp":{"type":"boolean","description":"Enables MVRP for bridge (available since RouterOS 7.15). It ensures that the MAC address 01:80:C2:00:00:21 is trapped and not forwarded, the vlan-filtering must be enabled."},"name":{"type":"string"},"portCostMode":{"type":"string","description":"An option that changes the port path cost and internal path cost mode for bridged ports, utilizing automatic values based on interface speed."},"priority":{"type":"string","description":"Bridge priority, used by STP to determine root bridge, used by MSTP to determine CIST and IST regional root bridge. This property has no effect when protocol-mode is set to none."},"protocolMode":{"type":"string","description":"Select Spanning tree protocol (STP) or Rapid spanning tree protocol (RSTP) to ensure a loop-free topology for any bridged LAN."},"pvid":{"type":"number","description":"Port VLAN ID (pvid) specifies which VLAN the untagged ingress traffic is assigned to. It applies e.g. to frames sent from bridge IP and destined to a bridge port. This property only has effect when vlan-filtering is set to yes."},"querierInterval":{"type":"string","description":"Used to change the interval how often a bridge checks if it is the active multicast querier. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"queryInterval":{"type":"string","description":"Used to change the interval how often IGMP general membership queries are sent out. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"queryResponseInterval":{"type":"string","description":"Interval in which a IGMP capable device must reply to a IGMP query with a IGMP membership report. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"regionName":{"type":"string","description":"MSTP region name. This property only has effect when protocol-mode is set to mstp."},"regionRevision":{"type":"number","description":"MSTP configuration revision number. This property only has effect when protocol-mode is set to mstp."},"running":{"type":"boolean"},"startupQueryCount":{"type":"number","description":"Specifies how many times must startup-query-interval pass until the bridge starts sending out IGMP general membership queries periodically. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"startupQueryInterval":{"type":"string","description":"Used to change the amount of time after a bridge starts sending out IGMP general membership queries after the bridge is enabled. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"transmitHoldCount":{"type":"number","description":"The Transmit Hold Count used by the Port Transmit state machine to limit transmission rate."},"vlanFiltering":{"type":"boolean","description":"Globally enables or disables VLAN functionality for bridge."}},"type":"object"}},"routeros:index/bridgeMlag:BridgeMlag":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst mlag = new routeros.BridgeMlag(\"mlag\", {\n    bridge: \"bridge1\",\n    peerPort: \"stack-link\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nmlag = routeros.BridgeMlag(\"mlag\",\n    bridge=\"bridge1\",\n    peer_port=\"stack-link\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mlag = new Routeros.BridgeMlag(\"mlag\", new()\n    {\n        Bridge = \"bridge1\",\n        PeerPort = \"stack-link\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewBridgeMlag(ctx, \"mlag\", \u0026routeros.BridgeMlagArgs{\n\t\t\tBridge:   pulumi.String(\"bridge1\"),\n\t\t\tPeerPort: pulumi.String(\"stack-link\"),\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.routeros.BridgeMlag;\nimport com.pulumi.routeros.BridgeMlagArgs;\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 mlag = new BridgeMlag(\"mlag\", BridgeMlagArgs.builder()\n            .bridge(\"bridge1\")\n            .peerPort(\"stack-link\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mlag:\n    type: routeros:BridgeMlag\n    properties:\n      bridge: bridge1\n      peerPort: stack-link\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/bridgeMlag:BridgeMlag mlag .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"The bridge interface where MLAG is being created.\n"},"bridgeMlagId":{"type":"string","description":"The ID of this resource.\n"},"heartbeat":{"type":"string","description":"This setting controls how often heartbeat messages are sent to check the connection between peers. If no heartbeat message is received for three intervals in a row, the peer logs a warning about potential communication problems. If set to none, heartbeat messages are not sent at all.\n"},"peerPort":{"type":"string","description":"An interface that will be used as a peer port. Both peer devices are using inter-chassis communication over these peer ports to establish MLAG and update the host table. Peer port should be isolated on a different untagged VLAN using a pvid setting. Peer port can be configured as a bonding interface.\n"},"priority":{"type":"number","description":"This setting changes the priority for selecting the primary MLAG node. A lower number means higher priority. If both MLAG nodes have the same priority, the one with the lowest bridge MAC address will become the primary device.\n"}},"type":"object","required":["bridge","bridgeMlagId","peerPort"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"The bridge interface where MLAG is being created.\n"},"bridgeMlagId":{"type":"string","description":"The ID of this resource.\n"},"heartbeat":{"type":"string","description":"This setting controls how often heartbeat messages are sent to check the connection between peers. If no heartbeat message is received for three intervals in a row, the peer logs a warning about potential communication problems. If set to none, heartbeat messages are not sent at all.\n"},"peerPort":{"type":"string","description":"An interface that will be used as a peer port. Both peer devices are using inter-chassis communication over these peer ports to establish MLAG and update the host table. Peer port should be isolated on a different untagged VLAN using a pvid setting. Peer port can be configured as a bonding interface.\n"},"priority":{"type":"number","description":"This setting changes the priority for selecting the primary MLAG node. A lower number means higher priority. If both MLAG nodes have the same priority, the one with the lowest bridge MAC address will become the primary device.\n"}},"requiredInputs":["bridge","peerPort"],"stateInputs":{"description":"Input properties used for looking up and filtering BridgeMlag resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"The bridge interface where MLAG is being created.\n"},"bridgeMlagId":{"type":"string","description":"The ID of this resource.\n"},"heartbeat":{"type":"string","description":"This setting controls how often heartbeat messages are sent to check the connection between peers. If no heartbeat message is received for three intervals in a row, the peer logs a warning about potential communication problems. If set to none, heartbeat messages are not sent at all.\n"},"peerPort":{"type":"string","description":"An interface that will be used as a peer port. Both peer devices are using inter-chassis communication over these peer ports to establish MLAG and update the host table. Peer port should be isolated on a different untagged VLAN using a pvid setting. Peer port can be configured as a bonding interface.\n"},"priority":{"type":"number","description":"This setting changes the priority for selecting the primary MLAG node. A lower number means higher priority. If both MLAG nodes have the same priority, the one with the lowest bridge MAC address will become the primary device.\n"}},"type":"object"}},"routeros:index/bridgePort:BridgePort":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.BridgePort \" pulumi-lang-dotnet=\" routeros.BridgePort \" pulumi-lang-go=\" BridgePort \" pulumi-lang-python=\" BridgePort \" pulumi-lang-yaml=\" routeros.BridgePort \" pulumi-lang-java=\" routeros.BridgePort \"\u003e routeros.BridgePort \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceBridgePort\n\" pulumi-lang-dotnet=\" routeros.InterfaceBridgePort\n\" pulumi-lang-go=\" InterfaceBridgePort\n\" pulumi-lang-python=\" InterfaceBridgePort\n\" pulumi-lang-yaml=\" routeros.InterfaceBridgePort\n\" pulumi-lang-java=\" routeros.InterfaceBridgePort\n\"\u003e routeros.InterfaceBridgePort\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoIsolate":{"type":"boolean","description":"When enabled, prevents a port moving from discarding into forwarding state if no BPDUs are received from the neighboring bridge. The port will change into a forwarding state only when a BPDU is received. This property only has an effect when protocol-mode is set to rstp or mstp and edge is set to no."},"bpduGuard":{"type":"boolean","description":"This property has no effect when protocol-mode is set to none."},"bridge":{"type":"string"},"bridgePortId":{"type":"string"},"broadcastFlood":{"type":"boolean","description":"When enabled, bridge floods broadcast traffic to all bridge egress ports. When disabled, drops broadcast traffic on egress ports."},"comment":{"type":"string"},"designatedBridge":{"type":"string","description":"Root bridge ID (bridge priority and the bridge MAC address)."},"designatedBridgeId":{"type":"string","description":"Shows the designated bridge identifier, as determined from the port's priority vector."},"designatedCost":{"type":"string","description":"Designated cost."},"designatedPortId":{"type":"string","description":"Shows the designated port identifier, as determined from the port's priority vector."},"designatedPortNumber":{"type":"number","description":"Designated port number."},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"edge":{"type":"string","description":"Set port as edge port or non-edge port, or enable edge discovery. Edge ports are connected to a LAN that has no other bridges attached."},"edgePort":{"type":"boolean","description":"Whether port is an edge port or not."},"edgePortDiscovery":{"type":"boolean","description":"Whether port is set to automatically detect edge ports."},"externalFdbStatus":{"type":"boolean","description":"Whether registration table is used instead of forwarding data base."},"fastLeave":{"type":"boolean","description":"Enables IGMP Fast leave feature on the port."},"forwarding":{"type":"boolean","description":"Shows if the port is not blocked by (R/M)STP."},"frameTypes":{"type":"string","description":"Specifies allowed ingress frame types on a bridge port. This property only has effect when vlan-filtering is set to yes."},"horizon":{"type":"string","description":"Use split horizon bridging to prevent bridging loops. Set the same value for group of ports, to prevent them from sending data to ports with the same horizon value. Split horizon is a software feature that disables hardware offloading. This value is integer '0'..'429496729' or 'none'."},"hw":{"type":"boolean","description":"Enable or disable Hardware Offloading of the interface."},"hwOffload":{"type":"boolean","description":"Hardware offloading state."},"hwOffloadGroup":{"type":"string","description":"Switch chip used by the port."},"inactive":{"type":"boolean"},"ingressFiltering":{"type":"boolean","description":"Enables or disables VLAN ingress filtering, which checks if the ingress port is a member of the received VLAN ID in the bridge VLAN table. Should be used with frame-types to specify if the ingress traffic should be tagged or untagged. This property only has effect when vlan-filtering is set to yes."},"interface":{"type":"string","description":"Name of the interface."},"internalPathCost":{"type":"number","description":"Path cost to the interface for MSTI0 inside a region. This property only has effect when protocol-mode is set to mstp."},"lastTopologyChange":{"type":"string","description":"Last topology change timer, records time since the last change."},"learn":{"type":"string","description":"Changes MAC learning behaviour on a bridge port"},"learning":{"type":"boolean","description":"Shows whether the port is capable of learning MAC addresses."},"multicastRouter":{"type":"string","description":"Changes the state of a bridge port whether IGMP membership reports are going to be forwarded to this port."},"mvrpApplicantState":{"type":"string","description":"MVRP applicant options (available since RouterOS 7.15): - non-participant - port does not send any MRP messages; - normal-participant - port participates normally in MRP exchanges."},"mvrpRegistrarState":{"type":"string","description":"MVRP registrar options (available since RouterOS 7.15): - fixed - port ignores all MRP messages, and remains Registered (IN) in all configured vlans. - normal - port receives MRP messages and handles them according to the standard."},"nextid":{"type":"string"},"pathCost":{"type":"string","description":"Path cost to the interface, used by STP to determine the \"best\" path, used by MSTP todetermine \"best\" path between regions. This property has no effect when protocol-mode is set to none."},"pointToPoint":{"type":"string","description":"Specifies if a bridge port is connected to a bridge using a point-to-point link for faster convergence in case of failure. This property has no effect when protocol-mode is set to none."},"pointToPointPort":{"type":"boolean","description":"Whether the port is connected to a bridge port using full-duplex (true) or half-duplex (false)."},"portId":{"type":"string","description":"In Spanning Tree Protocol each port has a unique Port Identifier. Priority[hex] + port number."},"priority":{"type":"string","description":"The priority of the interface, used by STP to determine the root port, used by MSTP to determine root port between regions."},"pvid":{"type":"number","description":"ort VLAN ID (pvid) specifies which VLAN the untagged ingress traffic is assigned to. This property only has effect when vlan-filtering is set to yes."},"restrictedRole":{"type":"boolean","description":"Enable the restricted role on a port, used by STP to forbid a port becoming a root port. This property only has effect when protocol-mode is set to mstp."},"restrictedTcn":{"type":"boolean","description":"Disable topology change notification (TCN) sending on a port, used by STP to forbid network topology changes to propagate. This property only has effect when protocol-mode is set to mstp."},"role":{"type":"string","description":"(R/M)STP algorithm assigned role of the port"},"rootPathCost":{"type":"number","description":"The total cost of the path to the root-bridge."},"sendingRstp":{"type":"string","description":"Whether the port is sending RSTP or MSTP BPDU types. A port will transit to STP type when RSTP/MSTP enabled port receives a STP BPDU"},"status":{"type":"string","description":"Port status ('in-bridge' - port is enabled)."},"tagStacking":{"type":"boolean","description":"Forces all packets to be treated as untagged packets. Packets on ingress port will be tagged with another VLAN tag regardless if a VLAN tag already exists, packets will be tagged with a VLAN ID that matches the pvid value and will use EtherType that is specified in ether-type. This property only has effect when vlan-filtering is set to yes."},"trusted":{"type":"boolean","description":"When enabled, it allows to forward DHCP packets towards DHCP server through this port. Mainly used to limit unauthorized servers to provide malicious information for users. This property only has effect when dhcp-snooping is set to yes."},"unknownMulticastFlood":{"type":"boolean","description":"When enabled, bridge floods unknown multicast traffic to all bridge egress ports."},"unknownUnicastFlood":{"type":"boolean","description":"When enabled, bridge floods unknown unicast traffic to all bridge egress ports."}},"type":"object","required":["bridge","bridgePortId","designatedBridge","designatedBridgeId","designatedCost","designatedPortId","designatedPortNumber","dynamic","edgePort","edgePortDiscovery","externalFdbStatus","forwarding","hw","hwOffload","hwOffloadGroup","inactive","ingressFiltering","interface","lastTopologyChange","learning","nextid","pointToPointPort","portId","role","rootPathCost","sendingRstp","status"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoIsolate":{"type":"boolean","description":"When enabled, prevents a port moving from discarding into forwarding state if no BPDUs are received from the neighboring bridge. The port will change into a forwarding state only when a BPDU is received. This property only has an effect when protocol-mode is set to rstp or mstp and edge is set to no."},"bpduGuard":{"type":"boolean","description":"This property has no effect when protocol-mode is set to none."},"bridge":{"type":"string"},"bridgePortId":{"type":"string"},"broadcastFlood":{"type":"boolean","description":"When enabled, bridge floods broadcast traffic to all bridge egress ports. When disabled, drops broadcast traffic on egress ports."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"edge":{"type":"string","description":"Set port as edge port or non-edge port, or enable edge discovery. Edge ports are connected to a LAN that has no other bridges attached."},"fastLeave":{"type":"boolean","description":"Enables IGMP Fast leave feature on the port."},"frameTypes":{"type":"string","description":"Specifies allowed ingress frame types on a bridge port. This property only has effect when vlan-filtering is set to yes."},"horizon":{"type":"string","description":"Use split horizon bridging to prevent bridging loops. Set the same value for group of ports, to prevent them from sending data to ports with the same horizon value. Split horizon is a software feature that disables hardware offloading. This value is integer '0'..'429496729' or 'none'."},"hw":{"type":"boolean","description":"Enable or disable Hardware Offloading of the interface."},"ingressFiltering":{"type":"boolean","description":"Enables or disables VLAN ingress filtering, which checks if the ingress port is a member of the received VLAN ID in the bridge VLAN table. Should be used with frame-types to specify if the ingress traffic should be tagged or untagged. This property only has effect when vlan-filtering is set to yes."},"interface":{"type":"string","description":"Name of the interface."},"internalPathCost":{"type":"number","description":"Path cost to the interface for MSTI0 inside a region. This property only has effect when protocol-mode is set to mstp."},"learn":{"type":"string","description":"Changes MAC learning behaviour on a bridge port"},"multicastRouter":{"type":"string","description":"Changes the state of a bridge port whether IGMP membership reports are going to be forwarded to this port."},"mvrpApplicantState":{"type":"string","description":"MVRP applicant options (available since RouterOS 7.15): - non-participant - port does not send any MRP messages; - normal-participant - port participates normally in MRP exchanges."},"mvrpRegistrarState":{"type":"string","description":"MVRP registrar options (available since RouterOS 7.15): - fixed - port ignores all MRP messages, and remains Registered (IN) in all configured vlans. - normal - port receives MRP messages and handles them according to the standard."},"pathCost":{"type":"string","description":"Path cost to the interface, used by STP to determine the \"best\" path, used by MSTP todetermine \"best\" path between regions. This property has no effect when protocol-mode is set to none."},"pointToPoint":{"type":"string","description":"Specifies if a bridge port is connected to a bridge using a point-to-point link for faster convergence in case of failure. This property has no effect when protocol-mode is set to none."},"priority":{"type":"string","description":"The priority of the interface, used by STP to determine the root port, used by MSTP to determine root port between regions."},"pvid":{"type":"number","description":"ort VLAN ID (pvid) specifies which VLAN the untagged ingress traffic is assigned to. This property only has effect when vlan-filtering is set to yes."},"restrictedRole":{"type":"boolean","description":"Enable the restricted role on a port, used by STP to forbid a port becoming a root port. This property only has effect when protocol-mode is set to mstp."},"restrictedTcn":{"type":"boolean","description":"Disable topology change notification (TCN) sending on a port, used by STP to forbid network topology changes to propagate. This property only has effect when protocol-mode is set to mstp."},"tagStacking":{"type":"boolean","description":"Forces all packets to be treated as untagged packets. Packets on ingress port will be tagged with another VLAN tag regardless if a VLAN tag already exists, packets will be tagged with a VLAN ID that matches the pvid value and will use EtherType that is specified in ether-type. This property only has effect when vlan-filtering is set to yes."},"trusted":{"type":"boolean","description":"When enabled, it allows to forward DHCP packets towards DHCP server through this port. Mainly used to limit unauthorized servers to provide malicious information for users. This property only has effect when dhcp-snooping is set to yes."},"unknownMulticastFlood":{"type":"boolean","description":"When enabled, bridge floods unknown multicast traffic to all bridge egress ports."},"unknownUnicastFlood":{"type":"boolean","description":"When enabled, bridge floods unknown unicast traffic to all bridge egress ports."}},"requiredInputs":["bridge","interface"],"stateInputs":{"description":"Input properties used for looking up and filtering BridgePort resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoIsolate":{"type":"boolean","description":"When enabled, prevents a port moving from discarding into forwarding state if no BPDUs are received from the neighboring bridge. The port will change into a forwarding state only when a BPDU is received. This property only has an effect when protocol-mode is set to rstp or mstp and edge is set to no."},"bpduGuard":{"type":"boolean","description":"This property has no effect when protocol-mode is set to none."},"bridge":{"type":"string"},"bridgePortId":{"type":"string"},"broadcastFlood":{"type":"boolean","description":"When enabled, bridge floods broadcast traffic to all bridge egress ports. When disabled, drops broadcast traffic on egress ports."},"comment":{"type":"string"},"designatedBridge":{"type":"string","description":"Root bridge ID (bridge priority and the bridge MAC address)."},"designatedBridgeId":{"type":"string","description":"Shows the designated bridge identifier, as determined from the port's priority vector."},"designatedCost":{"type":"string","description":"Designated cost."},"designatedPortId":{"type":"string","description":"Shows the designated port identifier, as determined from the port's priority vector."},"designatedPortNumber":{"type":"number","description":"Designated port number."},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"edge":{"type":"string","description":"Set port as edge port or non-edge port, or enable edge discovery. Edge ports are connected to a LAN that has no other bridges attached."},"edgePort":{"type":"boolean","description":"Whether port is an edge port or not."},"edgePortDiscovery":{"type":"boolean","description":"Whether port is set to automatically detect edge ports."},"externalFdbStatus":{"type":"boolean","description":"Whether registration table is used instead of forwarding data base."},"fastLeave":{"type":"boolean","description":"Enables IGMP Fast leave feature on the port."},"forwarding":{"type":"boolean","description":"Shows if the port is not blocked by (R/M)STP."},"frameTypes":{"type":"string","description":"Specifies allowed ingress frame types on a bridge port. This property only has effect when vlan-filtering is set to yes."},"horizon":{"type":"string","description":"Use split horizon bridging to prevent bridging loops. Set the same value for group of ports, to prevent them from sending data to ports with the same horizon value. Split horizon is a software feature that disables hardware offloading. This value is integer '0'..'429496729' or 'none'."},"hw":{"type":"boolean","description":"Enable or disable Hardware Offloading of the interface."},"hwOffload":{"type":"boolean","description":"Hardware offloading state."},"hwOffloadGroup":{"type":"string","description":"Switch chip used by the port."},"inactive":{"type":"boolean"},"ingressFiltering":{"type":"boolean","description":"Enables or disables VLAN ingress filtering, which checks if the ingress port is a member of the received VLAN ID in the bridge VLAN table. Should be used with frame-types to specify if the ingress traffic should be tagged or untagged. This property only has effect when vlan-filtering is set to yes."},"interface":{"type":"string","description":"Name of the interface."},"internalPathCost":{"type":"number","description":"Path cost to the interface for MSTI0 inside a region. This property only has effect when protocol-mode is set to mstp."},"lastTopologyChange":{"type":"string","description":"Last topology change timer, records time since the last change."},"learn":{"type":"string","description":"Changes MAC learning behaviour on a bridge port"},"learning":{"type":"boolean","description":"Shows whether the port is capable of learning MAC addresses."},"multicastRouter":{"type":"string","description":"Changes the state of a bridge port whether IGMP membership reports are going to be forwarded to this port."},"mvrpApplicantState":{"type":"string","description":"MVRP applicant options (available since RouterOS 7.15): - non-participant - port does not send any MRP messages; - normal-participant - port participates normally in MRP exchanges."},"mvrpRegistrarState":{"type":"string","description":"MVRP registrar options (available since RouterOS 7.15): - fixed - port ignores all MRP messages, and remains Registered (IN) in all configured vlans. - normal - port receives MRP messages and handles them according to the standard."},"nextid":{"type":"string"},"pathCost":{"type":"string","description":"Path cost to the interface, used by STP to determine the \"best\" path, used by MSTP todetermine \"best\" path between regions. This property has no effect when protocol-mode is set to none."},"pointToPoint":{"type":"string","description":"Specifies if a bridge port is connected to a bridge using a point-to-point link for faster convergence in case of failure. This property has no effect when protocol-mode is set to none."},"pointToPointPort":{"type":"boolean","description":"Whether the port is connected to a bridge port using full-duplex (true) or half-duplex (false)."},"portId":{"type":"string","description":"In Spanning Tree Protocol each port has a unique Port Identifier. Priority[hex] + port number."},"priority":{"type":"string","description":"The priority of the interface, used by STP to determine the root port, used by MSTP to determine root port between regions."},"pvid":{"type":"number","description":"ort VLAN ID (pvid) specifies which VLAN the untagged ingress traffic is assigned to. This property only has effect when vlan-filtering is set to yes."},"restrictedRole":{"type":"boolean","description":"Enable the restricted role on a port, used by STP to forbid a port becoming a root port. This property only has effect when protocol-mode is set to mstp."},"restrictedTcn":{"type":"boolean","description":"Disable topology change notification (TCN) sending on a port, used by STP to forbid network topology changes to propagate. This property only has effect when protocol-mode is set to mstp."},"role":{"type":"string","description":"(R/M)STP algorithm assigned role of the port"},"rootPathCost":{"type":"number","description":"The total cost of the path to the root-bridge."},"sendingRstp":{"type":"string","description":"Whether the port is sending RSTP or MSTP BPDU types. A port will transit to STP type when RSTP/MSTP enabled port receives a STP BPDU"},"status":{"type":"string","description":"Port status ('in-bridge' - port is enabled)."},"tagStacking":{"type":"boolean","description":"Forces all packets to be treated as untagged packets. Packets on ingress port will be tagged with another VLAN tag regardless if a VLAN tag already exists, packets will be tagged with a VLAN ID that matches the pvid value and will use EtherType that is specified in ether-type. This property only has effect when vlan-filtering is set to yes."},"trusted":{"type":"boolean","description":"When enabled, it allows to forward DHCP packets towards DHCP server through this port. Mainly used to limit unauthorized servers to provide malicious information for users. This property only has effect when dhcp-snooping is set to yes."},"unknownMulticastFlood":{"type":"boolean","description":"When enabled, bridge floods unknown multicast traffic to all bridge egress ports."},"unknownUnicastFlood":{"type":"boolean","description":"When enabled, bridge floods unknown unicast traffic to all bridge egress ports."}},"type":"object"}},"routeros:index/bridgeVlan:BridgeVlan":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.BridgeVlan \" pulumi-lang-dotnet=\" routeros.BridgeVlan \" pulumi-lang-go=\" BridgeVlan \" pulumi-lang-python=\" BridgeVlan \" pulumi-lang-yaml=\" routeros.BridgeVlan \" pulumi-lang-java=\" routeros.BridgeVlan \"\u003e routeros.BridgeVlan \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceBridgeVlan\n\" pulumi-lang-dotnet=\" routeros.InterfaceBridgeVlan\n\" pulumi-lang-go=\" InterfaceBridgeVlan\n\" pulumi-lang-python=\" InterfaceBridgeVlan\n\" pulumi-lang-yaml=\" routeros.InterfaceBridgeVlan\n\" pulumi-lang-java=\" routeros.InterfaceBridgeVlan\n\"\u003e routeros.InterfaceBridgeVlan\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"The bridge interface which the respective VLAN entry is intended for."},"bridgeVlanId":{"type":"string"},"comment":{"type":"string"},"currentTaggeds":{"type":"array","items":{"type":"string"}},"currentUntaggeds":{"type":"array","items":{"type":"string"}},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"mvrpForbiddens":{"type":"array","items":{"type":"string"},"description":"Ports that ignore all MRP messages and remains Not Registered (MT), as well as disables applicant from declaring specific VLAN ID (available since RouterOS 7.15)."},"taggeds":{"type":"array","items":{"type":"string"},"description":"Interface list with a VLAN tag adding action in egress. This setting accepts comma separated values. E.g. tagged=ether1,ether2."},"untaggeds":{"type":"array","items":{"type":"string"},"description":"Interface list with a VLAN tag removing action in egress. This setting accepts comma separated values. E.g. untagged=ether3,ether4"},"vlanIds":{"type":"array","items":{"type":"string"},"description":"The list of VLAN IDs for certain port configuration. This setting accepts VLAN ID range as well as comma separated values. E.g. `vlan-ids=[\"100-115\",\"120\",\"122\",\"128-130\"]`."}},"type":"object","required":["bridge","bridgeVlanId","currentTaggeds","currentUntaggeds","dynamic","vlanIds"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"The bridge interface which the respective VLAN entry is intended for."},"bridgeVlanId":{"type":"string"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"mvrpForbiddens":{"type":"array","items":{"type":"string"},"description":"Ports that ignore all MRP messages and remains Not Registered (MT), as well as disables applicant from declaring specific VLAN ID (available since RouterOS 7.15)."},"taggeds":{"type":"array","items":{"type":"string"},"description":"Interface list with a VLAN tag adding action in egress. This setting accepts comma separated values. E.g. tagged=ether1,ether2."},"untaggeds":{"type":"array","items":{"type":"string"},"description":"Interface list with a VLAN tag removing action in egress. This setting accepts comma separated values. E.g. untagged=ether3,ether4"},"vlanIds":{"type":"array","items":{"type":"string"},"description":"The list of VLAN IDs for certain port configuration. This setting accepts VLAN ID range as well as comma separated values. E.g. `vlan-ids=[\"100-115\",\"120\",\"122\",\"128-130\"]`."}},"requiredInputs":["bridge","vlanIds"],"stateInputs":{"description":"Input properties used for looking up and filtering BridgeVlan resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"The bridge interface which the respective VLAN entry is intended for."},"bridgeVlanId":{"type":"string"},"comment":{"type":"string"},"currentTaggeds":{"type":"array","items":{"type":"string"}},"currentUntaggeds":{"type":"array","items":{"type":"string"}},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"mvrpForbiddens":{"type":"array","items":{"type":"string"},"description":"Ports that ignore all MRP messages and remains Not Registered (MT), as well as disables applicant from declaring specific VLAN ID (available since RouterOS 7.15)."},"taggeds":{"type":"array","items":{"type":"string"},"description":"Interface list with a VLAN tag adding action in egress. This setting accepts comma separated values. E.g. tagged=ether1,ether2."},"untaggeds":{"type":"array","items":{"type":"string"},"description":"Interface list with a VLAN tag removing action in egress. This setting accepts comma separated values. E.g. untagged=ether3,ether4"},"vlanIds":{"type":"array","items":{"type":"string"},"description":"The list of VLAN IDs for certain port configuration. This setting accepts VLAN ID range as well as comma separated values. E.g. `vlan-ids=[\"100-115\",\"120\",\"122\",\"128-130\"]`."}},"type":"object"}},"routeros:index/capsmanAaa:CapsmanAaa":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test3a = new routeros.CapsmanAaa(\"test_3a\", {\n    calledFormat: \"ssid\",\n    macMode: \"as-username-and-password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest3a = routeros.CapsmanAaa(\"test_3a\",\n    called_format=\"ssid\",\n    mac_mode=\"as-username-and-password\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test3a = new Routeros.CapsmanAaa(\"test_3a\", new()\n    {\n        CalledFormat = \"ssid\",\n        MacMode = \"as-username-and-password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewCapsmanAaa(ctx, \"test_3a\", \u0026routeros.CapsmanAaaArgs{\n\t\t\tCalledFormat: pulumi.String(\"ssid\"),\n\t\t\tMacMode:      pulumi.String(\"as-username-and-password\"),\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.routeros.CapsmanAaa;\nimport com.pulumi.routeros.CapsmanAaaArgs;\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 test3a = new CapsmanAaa(\"test3a\", CapsmanAaaArgs.builder()\n            .calledFormat(\"ssid\")\n            .macMode(\"as-username-and-password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test3a:\n    type: routeros:CapsmanAaa\n    name: test_3a\n    properties:\n      calledFormat: ssid\n      macMode: as-username-and-password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/capsmanAaa:CapsmanAaa test_3a .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"calledFormat":{"type":"string","description":"Format of how the 'called-id' identifier will be passed to RADIUS. When configuring radius server clients, you can specify 'called-id' in order to separate multiple entires.\n"},"capsmanAaaId":{"type":"string","description":"The ID of this resource.\n"},"interimUpdate":{"type":"string","description":"When RADIUS accounting is used, Access Point periodically sends accounting information updates to the RADIUS server. This property specifies the default update interval that can be overridden by the RADIUS server using the Acct-Interim-Interval attribute.\n"},"macCaching":{"type":"string","description":"If this value is set to a time interval, the Access Point will cache RADIUS MAC authentication responses for a specified time, and will not contact the RADIUS server if matching cache entry already exists. The value disabled will disable the cache, Access Point will always contact the RADIUS server.\n"},"macFormat":{"type":"string","description":"Controls how the MAC address of the client is encoded by Access Point in the User-Name attribute of the MAC authentication and MAC accounting RADIUS requests.\n"},"macMode":{"type":"string","description":"By default Access Point uses an empty password, when sending Access-Request during MAC authentication. When this property is set to as-username-and-password, Access Point will use the same value for the User-Password attribute as for the User-Name attribute.\n"}},"type":"object","required":["capsmanAaaId","interimUpdate","macCaching"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"calledFormat":{"type":"string","description":"Format of how the 'called-id' identifier will be passed to RADIUS. When configuring radius server clients, you can specify 'called-id' in order to separate multiple entires.\n"},"capsmanAaaId":{"type":"string","description":"The ID of this resource.\n"},"interimUpdate":{"type":"string","description":"When RADIUS accounting is used, Access Point periodically sends accounting information updates to the RADIUS server. This property specifies the default update interval that can be overridden by the RADIUS server using the Acct-Interim-Interval attribute.\n"},"macCaching":{"type":"string","description":"If this value is set to a time interval, the Access Point will cache RADIUS MAC authentication responses for a specified time, and will not contact the RADIUS server if matching cache entry already exists. The value disabled will disable the cache, Access Point will always contact the RADIUS server.\n"},"macFormat":{"type":"string","description":"Controls how the MAC address of the client is encoded by Access Point in the User-Name attribute of the MAC authentication and MAC accounting RADIUS requests.\n"},"macMode":{"type":"string","description":"By default Access Point uses an empty password, when sending Access-Request during MAC authentication. When this property is set to as-username-and-password, Access Point will use the same value for the User-Password attribute as for the User-Name attribute.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CapsmanAaa resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"calledFormat":{"type":"string","description":"Format of how the 'called-id' identifier will be passed to RADIUS. When configuring radius server clients, you can specify 'called-id' in order to separate multiple entires.\n"},"capsmanAaaId":{"type":"string","description":"The ID of this resource.\n"},"interimUpdate":{"type":"string","description":"When RADIUS accounting is used, Access Point periodically sends accounting information updates to the RADIUS server. This property specifies the default update interval that can be overridden by the RADIUS server using the Acct-Interim-Interval attribute.\n"},"macCaching":{"type":"string","description":"If this value is set to a time interval, the Access Point will cache RADIUS MAC authentication responses for a specified time, and will not contact the RADIUS server if matching cache entry already exists. The value disabled will disable the cache, Access Point will always contact the RADIUS server.\n"},"macFormat":{"type":"string","description":"Controls how the MAC address of the client is encoded by Access Point in the User-Name attribute of the MAC authentication and MAC accounting RADIUS requests.\n"},"macMode":{"type":"string","description":"By default Access Point uses an empty password, when sending Access-Request during MAC authentication. When this property is set to as-username-and-password, Access Point will use the same value for the User-Password attribute as for the User-Name attribute.\n"}},"type":"object"}},"routeros:index/capsmanAccessList:CapsmanAccessList":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  testRule:\n    type: routeros:CapsmanDatapath\n    name: test_rule\n    properties:\n      comment: Catch-all\n      interface: cap1\n      signalRange: -120..-85\n      allowSignalOutOfRange: 20s\n      action: reject\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/caps-man/access-list get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/capsmanAccessList:CapsmanAccessList test_rule \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/capsmanAccessList:CapsmanAccessList test_rule \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"An action to take when a client matches."},"allowSignalOutOfRange":{"type":"string","description":"An option that permits the client's signal to be out of the range always or for some time interval."},"apTxLimit":{"type":"number","description":"Transmission speed limit in the direction of the client.."},"capsmanAccessListId":{"type":"string"},"clientToClientForwarding":{"type":"boolean","description":"An option that specifies whether to allow forwarding data between clients connected to the same interface."},"clientTxLimit":{"type":"number","description":"Transmission speed limit in the direction of the access point."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface name to compare with an interface to which the client actually connects to."},"macAddress":{"type":"string","description":"MAC address of the client."},"macMask":{"type":"string","description":"MAC address mask to apply when comparing clients' addresses."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"privatePassphrase":{"type":"string","description":"PSK passphrase for the client if some PSK authentication algorithm is used."},"radiusAccounting":{"type":"boolean","description":"An option that specifies if RADIUS traffic accounting should be used in case of RADIUS authentication of the client."},"signalRange":{"type":"string","description":"The range in which the client signal must fall."},"ssidRegexp":{"type":"string","description":"The regular expression to compare the actual SSID the client connects to."},"time":{"type":"string","description":"Time of the day and days of the week when the rule is applicable."},"vlanId":{"type":"number","description":"VLAN ID to use if vlan-mode enables use of VLAN tagging."},"vlanMode":{"type":"string","description":"VLAN tagging mode specifies if traffic coming from a client should get tagged and untagged when it goes back to the client."}},"type":"object","required":["capsmanAccessListId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"An action to take when a client matches."},"allowSignalOutOfRange":{"type":"string","description":"An option that permits the client's signal to be out of the range always or for some time interval."},"apTxLimit":{"type":"number","description":"Transmission speed limit in the direction of the client.."},"capsmanAccessListId":{"type":"string"},"clientToClientForwarding":{"type":"boolean","description":"An option that specifies whether to allow forwarding data between clients connected to the same interface."},"clientTxLimit":{"type":"number","description":"Transmission speed limit in the direction of the access point."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface name to compare with an interface to which the client actually connects to."},"macAddress":{"type":"string","description":"MAC address of the client."},"macMask":{"type":"string","description":"MAC address mask to apply when comparing clients' addresses."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"privatePassphrase":{"type":"string","description":"PSK passphrase for the client if some PSK authentication algorithm is used."},"radiusAccounting":{"type":"boolean","description":"An option that specifies if RADIUS traffic accounting should be used in case of RADIUS authentication of the client."},"signalRange":{"type":"string","description":"The range in which the client signal must fall."},"ssidRegexp":{"type":"string","description":"The regular expression to compare the actual SSID the client connects to."},"time":{"type":"string","description":"Time of the day and days of the week when the rule is applicable."},"vlanId":{"type":"number","description":"VLAN ID to use if vlan-mode enables use of VLAN tagging."},"vlanMode":{"type":"string","description":"VLAN tagging mode specifies if traffic coming from a client should get tagged and untagged when it goes back to the client."}},"stateInputs":{"description":"Input properties used for looking up and filtering CapsmanAccessList resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"An action to take when a client matches."},"allowSignalOutOfRange":{"type":"string","description":"An option that permits the client's signal to be out of the range always or for some time interval."},"apTxLimit":{"type":"number","description":"Transmission speed limit in the direction of the client.."},"capsmanAccessListId":{"type":"string"},"clientToClientForwarding":{"type":"boolean","description":"An option that specifies whether to allow forwarding data between clients connected to the same interface."},"clientTxLimit":{"type":"number","description":"Transmission speed limit in the direction of the access point."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface name to compare with an interface to which the client actually connects to."},"macAddress":{"type":"string","description":"MAC address of the client."},"macMask":{"type":"string","description":"MAC address mask to apply when comparing clients' addresses."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"privatePassphrase":{"type":"string","description":"PSK passphrase for the client if some PSK authentication algorithm is used."},"radiusAccounting":{"type":"boolean","description":"An option that specifies if RADIUS traffic accounting should be used in case of RADIUS authentication of the client."},"signalRange":{"type":"string","description":"The range in which the client signal must fall."},"ssidRegexp":{"type":"string","description":"The regular expression to compare the actual SSID the client connects to."},"time":{"type":"string","description":"Time of the day and days of the week when the rule is applicable."},"vlanId":{"type":"number","description":"VLAN ID to use if vlan-mode enables use of VLAN tagging."},"vlanMode":{"type":"string","description":"VLAN tagging mode specifies if traffic coming from a client should get tagged and untagged when it goes back to the client."}},"type":"object"}},"routeros:index/capsmanChannel:CapsmanChannel":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testChannel = new routeros.CapsmanChannel(\"test_channel\", {\n    name: \"test_channel\",\n    comment: \"test_channel\",\n    band: \"2ghz-b/g/n\",\n    controlChannelWidth: \"10mhz\",\n    extensionChannel: \"eCee\",\n    frequencies: [2412],\n    reselectInterval: \"1h\",\n    saveSelected: true,\n    secondaryFrequencies: [\"disabled\"],\n    skipDfsChannels: true,\n    txPower: 20,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_channel = routeros.CapsmanChannel(\"test_channel\",\n    name=\"test_channel\",\n    comment=\"test_channel\",\n    band=\"2ghz-b/g/n\",\n    control_channel_width=\"10mhz\",\n    extension_channel=\"eCee\",\n    frequencies=[2412],\n    reselect_interval=\"1h\",\n    save_selected=True,\n    secondary_frequencies=[\"disabled\"],\n    skip_dfs_channels=True,\n    tx_power=20)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testChannel = new Routeros.CapsmanChannel(\"test_channel\", new()\n    {\n        Name = \"test_channel\",\n        Comment = \"test_channel\",\n        Band = \"2ghz-b/g/n\",\n        ControlChannelWidth = \"10mhz\",\n        ExtensionChannel = \"eCee\",\n        Frequencies = new[]\n        {\n            2412,\n        },\n        ReselectInterval = \"1h\",\n        SaveSelected = true,\n        SecondaryFrequencies = new[]\n        {\n            \"disabled\",\n        },\n        SkipDfsChannels = true,\n        TxPower = 20,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewCapsmanChannel(ctx, \"test_channel\", \u0026routeros.CapsmanChannelArgs{\n\t\t\tName:                pulumi.String(\"test_channel\"),\n\t\t\tComment:             pulumi.String(\"test_channel\"),\n\t\t\tBand:                pulumi.String(\"2ghz-b/g/n\"),\n\t\t\tControlChannelWidth: pulumi.String(\"10mhz\"),\n\t\t\tExtensionChannel:    pulumi.String(\"eCee\"),\n\t\t\tFrequencies: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(2412),\n\t\t\t},\n\t\t\tReselectInterval: pulumi.String(\"1h\"),\n\t\t\tSaveSelected:     pulumi.Bool(true),\n\t\t\tSecondaryFrequencies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"disabled\"),\n\t\t\t},\n\t\t\tSkipDfsChannels: pulumi.Bool(true),\n\t\t\tTxPower:         pulumi.Float64(20),\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.routeros.CapsmanChannel;\nimport com.pulumi.routeros.CapsmanChannelArgs;\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 testChannel = new CapsmanChannel(\"testChannel\", CapsmanChannelArgs.builder()\n            .name(\"test_channel\")\n            .comment(\"test_channel\")\n            .band(\"2ghz-b/g/n\")\n            .controlChannelWidth(\"10mhz\")\n            .extensionChannel(\"eCee\")\n            .frequencies(2412.0)\n            .reselectInterval(\"1h\")\n            .saveSelected(true)\n            .secondaryFrequencies(\"disabled\")\n            .skipDfsChannels(true)\n            .txPower(20.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testChannel:\n    type: routeros:CapsmanChannel\n    name: test_channel\n    properties:\n      name: test_channel\n      comment: test_channel\n      band: 2ghz-b/g/n\n      controlChannelWidth: 10mhz\n      extensionChannel: eCee\n      frequencies:\n        - 2412\n      reselectInterval: 1h\n      saveSelected: true\n      secondaryFrequencies:\n        - disabled\n      skipDfsChannels: true\n      txPower: 20\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/caps-man/channel get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/capsmanChannel:CapsmanChannel test_channel \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/capsmanChannel:CapsmanChannel test_channel \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"band":{"type":"string","description":"Define operational radio frequency band and mode taken from hardware capability of wireless card.\n"},"capsmanChannelId":{"type":"string","description":"The ID of this resource.\n"},"comment":{"type":"string"},"controlChannelWidth":{"type":"string","description":"Control channel width.\n"},"extensionChannel":{"type":"string","description":"Extension channel configuration. (E.g. Ce = extension channel is above Control channel, eC = extension channel is below Control channel)\n"},"frequencies":{"type":"array","items":{"type":"number"},"description":"Channel frequency value in MHz on which AP will operate. If left blank, CAPsMAN will automatically determine the best frequency that is least occupied.\n"},"name":{"type":"string"},"reselectInterval":{"type":"string","description":"The interval after which the least occupied frequency is chosen, can be defined as a random interval, ex. as '30m..60m'. Works only if channel.frequency is left blank.\n"},"saveSelected":{"type":"boolean","description":"If channel frequency is chosen automatically and channel.reselect-interval is used, then saves the last picked frequency.\n"},"secondaryFrequencies":{"type":"array","items":{"type":"string"},"description":"Specifies the second frequency that will be used for 80+80MHz configuration. Set it to Disabled in order to disable 80+80MHz capability.\n"},"skipDfsChannels":{"type":"boolean","description":"If channel.frequency is left blank, the selection will skip DFS channels.\n"},"txPower":{"type":"number","description":"TX  Power for CAP interface (for the whole interface not for individual  chains) in dBm. It is not possible to set higher than allowed by country  regulations or interface. By default max allowed by country or  interface is used.\n"},"width":{"type":"string","description":"Channel Width in MHz.\n"}},"type":"object","required":["capsmanChannelId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"band":{"type":"string","description":"Define operational radio frequency band and mode taken from hardware capability of wireless card.\n"},"capsmanChannelId":{"type":"string","description":"The ID of this resource.\n"},"comment":{"type":"string"},"controlChannelWidth":{"type":"string","description":"Control channel width.\n"},"extensionChannel":{"type":"string","description":"Extension channel configuration. (E.g. Ce = extension channel is above Control channel, eC = extension channel is below Control channel)\n"},"frequencies":{"type":"array","items":{"type":"number"},"description":"Channel frequency value in MHz on which AP will operate. If left blank, CAPsMAN will automatically determine the best frequency that is least occupied.\n"},"name":{"type":"string"},"reselectInterval":{"type":"string","description":"The interval after which the least occupied frequency is chosen, can be defined as a random interval, ex. as '30m..60m'. Works only if channel.frequency is left blank.\n"},"saveSelected":{"type":"boolean","description":"If channel frequency is chosen automatically and channel.reselect-interval is used, then saves the last picked frequency.\n"},"secondaryFrequencies":{"type":"array","items":{"type":"string"},"description":"Specifies the second frequency that will be used for 80+80MHz configuration. Set it to Disabled in order to disable 80+80MHz capability.\n"},"skipDfsChannels":{"type":"boolean","description":"If channel.frequency is left blank, the selection will skip DFS channels.\n"},"txPower":{"type":"number","description":"TX  Power for CAP interface (for the whole interface not for individual  chains) in dBm. It is not possible to set higher than allowed by country  regulations or interface. By default max allowed by country or  interface is used.\n"},"width":{"type":"string","description":"Channel Width in MHz.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CapsmanChannel resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"band":{"type":"string","description":"Define operational radio frequency band and mode taken from hardware capability of wireless card.\n"},"capsmanChannelId":{"type":"string","description":"The ID of this resource.\n"},"comment":{"type":"string"},"controlChannelWidth":{"type":"string","description":"Control channel width.\n"},"extensionChannel":{"type":"string","description":"Extension channel configuration. (E.g. Ce = extension channel is above Control channel, eC = extension channel is below Control channel)\n"},"frequencies":{"type":"array","items":{"type":"number"},"description":"Channel frequency value in MHz on which AP will operate. If left blank, CAPsMAN will automatically determine the best frequency that is least occupied.\n"},"name":{"type":"string"},"reselectInterval":{"type":"string","description":"The interval after which the least occupied frequency is chosen, can be defined as a random interval, ex. as '30m..60m'. Works only if channel.frequency is left blank.\n"},"saveSelected":{"type":"boolean","description":"If channel frequency is chosen automatically and channel.reselect-interval is used, then saves the last picked frequency.\n"},"secondaryFrequencies":{"type":"array","items":{"type":"string"},"description":"Specifies the second frequency that will be used for 80+80MHz configuration. Set it to Disabled in order to disable 80+80MHz capability.\n"},"skipDfsChannels":{"type":"boolean","description":"If channel.frequency is left blank, the selection will skip DFS channels.\n"},"txPower":{"type":"number","description":"TX  Power for CAP interface (for the whole interface not for individual  chains) in dBm. It is not possible to set higher than allowed by country  regulations or interface. By default max allowed by country or  interface is used.\n"},"width":{"type":"string","description":"Channel Width in MHz.\n"}},"type":"object"}},"routeros:index/capsmanConfiguration:CapsmanConfiguration":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testConfiguration = new routeros.CapsmanConfiguration(\"test_configuration\", {\n    comment: \"Comment\",\n    country: \"no_country_set\",\n    disconnectTimeout: \"1s150ms\",\n    distance: \"indoors\",\n    frameLifetime: \"0.12\",\n    guardInterval: \"long\",\n    hideSsid: true,\n    hwProtectionMode: \"rts-cts\",\n    hwRetries: 1,\n    installation: \"indoor\",\n    keepaliveFrames: \"enabled\",\n    loadBalancingGroup: \"\",\n    maxStaCount: 1,\n    mode: \"ap\",\n    multicastHelper: \"full\",\n    name: \"test_configuration\",\n    rxChains: [\n        1,\n        3,\n    ],\n    ssid: \"SSID\",\n    txChains: [\n        0,\n        2,\n    ],\n});\nconst testChannel = new routeros.CapsmanChannel(\"test_channel\", {name: \"test-channel-config\"});\nconst testDatapath = new routeros.CapsmanDatapath(\"test_datapath\", {name: \"test-datapath-config\"});\nconst testRates = new routeros.CapsmanRates(\"test_rates\", {name: \"test-rates-config\"});\nconst testSecurity = new routeros.CapsmanSecurity(\"test_security\", {name: \"test-security-config\"});\nconst testConfiguration2 = new routeros.CapsmanConfiguration(\"test_configuration_2\", {\n    name: \"test_configuration_name\",\n    channel: {\n        config: testChannel.name,\n        band: \"2ghz-b/g/n\",\n        control_channel_width: \"10mhz\",\n        extension_channel: \"eCee\",\n        frequency: \"2412\",\n        reselect_interval: \"1h\",\n        save_selected: \"true\",\n        secondary_frequency: \"disabled\",\n        skip_dfs_channels: \"true\",\n        tx_power: \"20\",\n    },\n    datapath: {\n        config: testDatapath.name,\n        arp: \"local-proxy-arp\",\n        bridge: \"bridge\",\n        bridge_cost: \"100\",\n        bridge_horizon: \"200\",\n        client_to_client_forwarding: \"true\",\n        interface_list: \"static\",\n        l2mtu: \"1450\",\n        local_forwarding: \"true\",\n        mtu: \"1500\",\n        vlan_id: \"101\",\n        vlan_mode: \"no-tag\",\n    },\n    rates: {\n        config: testRates.name,\n        basic: \"1Mbps,5.5Mbps,6Mbps,18Mbps,36Mbps,54Mbps\",\n        ht_basic_mcs: \"mcs-0,mcs-7,mcs-11,mcs-14,mcs-16,mcs-21\",\n        ht_supported_mcs: \"mcs-3,mcs-8,mcs-10,mcs-13,mcs-17,mcs-18\",\n        supported: \"2Mbps,11Mbps,9Mbps,12Mbps,24Mbps,48Mbps\",\n        vht_basic_mcs: \"none\",\n        vht_supported_mcs: \"mcs0-9,mcs0-7\",\n    },\n    security: {\n        config: testSecurity.name,\n        authentication_types: \"wpa-psk,wpa-eap\",\n        disable_pmkid: \"true\",\n        eap_methods: \"eap-tls,passthrough\",\n        eap_radius_accounting: \"true\",\n        encryption: \"aes-ccm,tkip\",\n        group_encryption: \"aes-ccm\",\n        group_key_update: \"1h\",\n        passphrase: \"AAAAAAAAA\",\n        tls_certificate: \"none\",\n        tls_mode: \"verify-certificate\",\n    },\n}, {\n    dependsOn: [\n        testChannel,\n        testDatapath,\n        testRates,\n        testSecurity,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_configuration = routeros.CapsmanConfiguration(\"test_configuration\",\n    comment=\"Comment\",\n    country=\"no_country_set\",\n    disconnect_timeout=\"1s150ms\",\n    distance=\"indoors\",\n    frame_lifetime=\"0.12\",\n    guard_interval=\"long\",\n    hide_ssid=True,\n    hw_protection_mode=\"rts-cts\",\n    hw_retries=1,\n    installation=\"indoor\",\n    keepalive_frames=\"enabled\",\n    load_balancing_group=\"\",\n    max_sta_count=1,\n    mode=\"ap\",\n    multicast_helper=\"full\",\n    name=\"test_configuration\",\n    rx_chains=[\n        1,\n        3,\n    ],\n    ssid=\"SSID\",\n    tx_chains=[\n        0,\n        2,\n    ])\ntest_channel = routeros.CapsmanChannel(\"test_channel\", name=\"test-channel-config\")\ntest_datapath = routeros.CapsmanDatapath(\"test_datapath\", name=\"test-datapath-config\")\ntest_rates = routeros.CapsmanRates(\"test_rates\", name=\"test-rates-config\")\ntest_security = routeros.CapsmanSecurity(\"test_security\", name=\"test-security-config\")\ntest_configuration2 = routeros.CapsmanConfiguration(\"test_configuration_2\",\n    name=\"test_configuration_name\",\n    channel={\n        \"config\": test_channel.name,\n        \"band\": \"2ghz-b/g/n\",\n        \"control_channel_width\": \"10mhz\",\n        \"extension_channel\": \"eCee\",\n        \"frequency\": \"2412\",\n        \"reselect_interval\": \"1h\",\n        \"save_selected\": \"true\",\n        \"secondary_frequency\": \"disabled\",\n        \"skip_dfs_channels\": \"true\",\n        \"tx_power\": \"20\",\n    },\n    datapath={\n        \"config\": test_datapath.name,\n        \"arp\": \"local-proxy-arp\",\n        \"bridge\": \"bridge\",\n        \"bridge_cost\": \"100\",\n        \"bridge_horizon\": \"200\",\n        \"client_to_client_forwarding\": \"true\",\n        \"interface_list\": \"static\",\n        \"l2mtu\": \"1450\",\n        \"local_forwarding\": \"true\",\n        \"mtu\": \"1500\",\n        \"vlan_id\": \"101\",\n        \"vlan_mode\": \"no-tag\",\n    },\n    rates={\n        \"config\": test_rates.name,\n        \"basic\": \"1Mbps,5.5Mbps,6Mbps,18Mbps,36Mbps,54Mbps\",\n        \"ht_basic_mcs\": \"mcs-0,mcs-7,mcs-11,mcs-14,mcs-16,mcs-21\",\n        \"ht_supported_mcs\": \"mcs-3,mcs-8,mcs-10,mcs-13,mcs-17,mcs-18\",\n        \"supported\": \"2Mbps,11Mbps,9Mbps,12Mbps,24Mbps,48Mbps\",\n        \"vht_basic_mcs\": \"none\",\n        \"vht_supported_mcs\": \"mcs0-9,mcs0-7\",\n    },\n    security={\n        \"config\": test_security.name,\n        \"authentication_types\": \"wpa-psk,wpa-eap\",\n        \"disable_pmkid\": \"true\",\n        \"eap_methods\": \"eap-tls,passthrough\",\n        \"eap_radius_accounting\": \"true\",\n        \"encryption\": \"aes-ccm,tkip\",\n        \"group_encryption\": \"aes-ccm\",\n        \"group_key_update\": \"1h\",\n        \"passphrase\": \"AAAAAAAAA\",\n        \"tls_certificate\": \"none\",\n        \"tls_mode\": \"verify-certificate\",\n    },\n    opts = pulumi.ResourceOptions(depends_on=[\n            test_channel,\n            test_datapath,\n            test_rates,\n            test_security,\n        ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testConfiguration = new Routeros.CapsmanConfiguration(\"test_configuration\", new()\n    {\n        Comment = \"Comment\",\n        Country = \"no_country_set\",\n        DisconnectTimeout = \"1s150ms\",\n        Distance = \"indoors\",\n        FrameLifetime = \"0.12\",\n        GuardInterval = \"long\",\n        HideSsid = true,\n        HwProtectionMode = \"rts-cts\",\n        HwRetries = 1,\n        Installation = \"indoor\",\n        KeepaliveFrames = \"enabled\",\n        LoadBalancingGroup = \"\",\n        MaxStaCount = 1,\n        Mode = \"ap\",\n        MulticastHelper = \"full\",\n        Name = \"test_configuration\",\n        RxChains = new[]\n        {\n            1,\n            3,\n        },\n        Ssid = \"SSID\",\n        TxChains = new[]\n        {\n            0,\n            2,\n        },\n    });\n\n    var testChannel = new Routeros.CapsmanChannel(\"test_channel\", new()\n    {\n        Name = \"test-channel-config\",\n    });\n\n    var testDatapath = new Routeros.CapsmanDatapath(\"test_datapath\", new()\n    {\n        Name = \"test-datapath-config\",\n    });\n\n    var testRates = new Routeros.CapsmanRates(\"test_rates\", new()\n    {\n        Name = \"test-rates-config\",\n    });\n\n    var testSecurity = new Routeros.CapsmanSecurity(\"test_security\", new()\n    {\n        Name = \"test-security-config\",\n    });\n\n    var testConfiguration2 = new Routeros.CapsmanConfiguration(\"test_configuration_2\", new()\n    {\n        Name = \"test_configuration_name\",\n        Channel = \n        {\n            { \"config\", testChannel.Name },\n            { \"band\", \"2ghz-b/g/n\" },\n            { \"control_channel_width\", \"10mhz\" },\n            { \"extension_channel\", \"eCee\" },\n            { \"frequency\", \"2412\" },\n            { \"reselect_interval\", \"1h\" },\n            { \"save_selected\", \"true\" },\n            { \"secondary_frequency\", \"disabled\" },\n            { \"skip_dfs_channels\", \"true\" },\n            { \"tx_power\", \"20\" },\n        },\n        Datapath = \n        {\n            { \"config\", testDatapath.Name },\n            { \"arp\", \"local-proxy-arp\" },\n            { \"bridge\", \"bridge\" },\n            { \"bridge_cost\", \"100\" },\n            { \"bridge_horizon\", \"200\" },\n            { \"client_to_client_forwarding\", \"true\" },\n            { \"interface_list\", \"static\" },\n            { \"l2mtu\", \"1450\" },\n            { \"local_forwarding\", \"true\" },\n            { \"mtu\", \"1500\" },\n            { \"vlan_id\", \"101\" },\n            { \"vlan_mode\", \"no-tag\" },\n        },\n        Rates = \n        {\n            { \"config\", testRates.Name },\n            { \"basic\", \"1Mbps,5.5Mbps,6Mbps,18Mbps,36Mbps,54Mbps\" },\n            { \"ht_basic_mcs\", \"mcs-0,mcs-7,mcs-11,mcs-14,mcs-16,mcs-21\" },\n            { \"ht_supported_mcs\", \"mcs-3,mcs-8,mcs-10,mcs-13,mcs-17,mcs-18\" },\n            { \"supported\", \"2Mbps,11Mbps,9Mbps,12Mbps,24Mbps,48Mbps\" },\n            { \"vht_basic_mcs\", \"none\" },\n            { \"vht_supported_mcs\", \"mcs0-9,mcs0-7\" },\n        },\n        Security = \n        {\n            { \"config\", testSecurity.Name },\n            { \"authentication_types\", \"wpa-psk,wpa-eap\" },\n            { \"disable_pmkid\", \"true\" },\n            { \"eap_methods\", \"eap-tls,passthrough\" },\n            { \"eap_radius_accounting\", \"true\" },\n            { \"encryption\", \"aes-ccm,tkip\" },\n            { \"group_encryption\", \"aes-ccm\" },\n            { \"group_key_update\", \"1h\" },\n            { \"passphrase\", \"AAAAAAAAA\" },\n            { \"tls_certificate\", \"none\" },\n            { \"tls_mode\", \"verify-certificate\" },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            testChannel,\n            testDatapath,\n            testRates,\n            testSecurity,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewCapsmanConfiguration(ctx, \"test_configuration\", \u0026routeros.CapsmanConfigurationArgs{\n\t\t\tComment:            pulumi.String(\"Comment\"),\n\t\t\tCountry:            pulumi.String(\"no_country_set\"),\n\t\t\tDisconnectTimeout:  pulumi.String(\"1s150ms\"),\n\t\t\tDistance:           pulumi.String(\"indoors\"),\n\t\t\tFrameLifetime:      pulumi.String(\"0.12\"),\n\t\t\tGuardInterval:      pulumi.String(\"long\"),\n\t\t\tHideSsid:           pulumi.Bool(true),\n\t\t\tHwProtectionMode:   pulumi.String(\"rts-cts\"),\n\t\t\tHwRetries:          pulumi.Float64(1),\n\t\t\tInstallation:       pulumi.String(\"indoor\"),\n\t\t\tKeepaliveFrames:    pulumi.String(\"enabled\"),\n\t\t\tLoadBalancingGroup: pulumi.String(\"\"),\n\t\t\tMaxStaCount:        pulumi.Float64(1),\n\t\t\tMode:               pulumi.String(\"ap\"),\n\t\t\tMulticastHelper:    pulumi.String(\"full\"),\n\t\t\tName:               pulumi.String(\"test_configuration\"),\n\t\t\tRxChains: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(1),\n\t\t\t\tpulumi.Float64(3),\n\t\t\t},\n\t\t\tSsid: pulumi.String(\"SSID\"),\n\t\t\tTxChains: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(0),\n\t\t\t\tpulumi.Float64(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestChannel, err := routeros.NewCapsmanChannel(ctx, \"test_channel\", \u0026routeros.CapsmanChannelArgs{\n\t\t\tName: pulumi.String(\"test-channel-config\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestDatapath, err := routeros.NewCapsmanDatapath(ctx, \"test_datapath\", \u0026routeros.CapsmanDatapathArgs{\n\t\t\tName: pulumi.String(\"test-datapath-config\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestRates, err := routeros.NewCapsmanRates(ctx, \"test_rates\", \u0026routeros.CapsmanRatesArgs{\n\t\t\tName: pulumi.String(\"test-rates-config\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestSecurity, err := routeros.NewCapsmanSecurity(ctx, \"test_security\", \u0026routeros.CapsmanSecurityArgs{\n\t\t\tName: pulumi.String(\"test-security-config\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewCapsmanConfiguration(ctx, \"test_configuration_2\", \u0026routeros.CapsmanConfigurationArgs{\n\t\t\tName: pulumi.String(\"test_configuration_name\"),\n\t\t\tChannel: pulumi.StringMap{\n\t\t\t\t\"config\":                testChannel.Name,\n\t\t\t\t\"band\":                  pulumi.String(\"2ghz-b/g/n\"),\n\t\t\t\t\"control_channel_width\": pulumi.String(\"10mhz\"),\n\t\t\t\t\"extension_channel\":     pulumi.String(\"eCee\"),\n\t\t\t\t\"frequency\":             pulumi.String(\"2412\"),\n\t\t\t\t\"reselect_interval\":     pulumi.String(\"1h\"),\n\t\t\t\t\"save_selected\":         pulumi.String(\"true\"),\n\t\t\t\t\"secondary_frequency\":   pulumi.String(\"disabled\"),\n\t\t\t\t\"skip_dfs_channels\":     pulumi.String(\"true\"),\n\t\t\t\t\"tx_power\":              pulumi.String(\"20\"),\n\t\t\t},\n\t\t\tDatapath: pulumi.StringMap{\n\t\t\t\t\"config\":                      testDatapath.Name,\n\t\t\t\t\"arp\":                         pulumi.String(\"local-proxy-arp\"),\n\t\t\t\t\"bridge\":                      pulumi.String(\"bridge\"),\n\t\t\t\t\"bridge_cost\":                 pulumi.String(\"100\"),\n\t\t\t\t\"bridge_horizon\":              pulumi.String(\"200\"),\n\t\t\t\t\"client_to_client_forwarding\": pulumi.String(\"true\"),\n\t\t\t\t\"interface_list\":              pulumi.String(\"static\"),\n\t\t\t\t\"l2mtu\":                       pulumi.String(\"1450\"),\n\t\t\t\t\"local_forwarding\":            pulumi.String(\"true\"),\n\t\t\t\t\"mtu\":                         pulumi.String(\"1500\"),\n\t\t\t\t\"vlan_id\":                     pulumi.String(\"101\"),\n\t\t\t\t\"vlan_mode\":                   pulumi.String(\"no-tag\"),\n\t\t\t},\n\t\t\tRates: pulumi.StringMap{\n\t\t\t\t\"config\":            testRates.Name,\n\t\t\t\t\"basic\":             pulumi.String(\"1Mbps,5.5Mbps,6Mbps,18Mbps,36Mbps,54Mbps\"),\n\t\t\t\t\"ht_basic_mcs\":      pulumi.String(\"mcs-0,mcs-7,mcs-11,mcs-14,mcs-16,mcs-21\"),\n\t\t\t\t\"ht_supported_mcs\":  pulumi.String(\"mcs-3,mcs-8,mcs-10,mcs-13,mcs-17,mcs-18\"),\n\t\t\t\t\"supported\":         pulumi.String(\"2Mbps,11Mbps,9Mbps,12Mbps,24Mbps,48Mbps\"),\n\t\t\t\t\"vht_basic_mcs\":     pulumi.String(\"none\"),\n\t\t\t\t\"vht_supported_mcs\": pulumi.String(\"mcs0-9,mcs0-7\"),\n\t\t\t},\n\t\t\tSecurity: pulumi.StringMap{\n\t\t\t\t\"config\":                testSecurity.Name,\n\t\t\t\t\"authentication_types\":  pulumi.String(\"wpa-psk,wpa-eap\"),\n\t\t\t\t\"disable_pmkid\":         pulumi.String(\"true\"),\n\t\t\t\t\"eap_methods\":           pulumi.String(\"eap-tls,passthrough\"),\n\t\t\t\t\"eap_radius_accounting\": pulumi.String(\"true\"),\n\t\t\t\t\"encryption\":            pulumi.String(\"aes-ccm,tkip\"),\n\t\t\t\t\"group_encryption\":      pulumi.String(\"aes-ccm\"),\n\t\t\t\t\"group_key_update\":      pulumi.String(\"1h\"),\n\t\t\t\t\"passphrase\":            pulumi.String(\"AAAAAAAAA\"),\n\t\t\t\t\"tls_certificate\":       pulumi.String(\"none\"),\n\t\t\t\t\"tls_mode\":              pulumi.String(\"verify-certificate\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttestChannel,\n\t\t\ttestDatapath,\n\t\t\ttestRates,\n\t\t\ttestSecurity,\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.routeros.CapsmanConfiguration;\nimport com.pulumi.routeros.CapsmanConfigurationArgs;\nimport com.pulumi.routeros.CapsmanChannel;\nimport com.pulumi.routeros.CapsmanChannelArgs;\nimport com.pulumi.routeros.CapsmanDatapath;\nimport com.pulumi.routeros.CapsmanDatapathArgs;\nimport com.pulumi.routeros.CapsmanRates;\nimport com.pulumi.routeros.CapsmanRatesArgs;\nimport com.pulumi.routeros.CapsmanSecurity;\nimport com.pulumi.routeros.CapsmanSecurityArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testConfiguration = new CapsmanConfiguration(\"testConfiguration\", CapsmanConfigurationArgs.builder()\n            .comment(\"Comment\")\n            .country(\"no_country_set\")\n            .disconnectTimeout(\"1s150ms\")\n            .distance(\"indoors\")\n            .frameLifetime(\"0.12\")\n            .guardInterval(\"long\")\n            .hideSsid(true)\n            .hwProtectionMode(\"rts-cts\")\n            .hwRetries(1.0)\n            .installation(\"indoor\")\n            .keepaliveFrames(\"enabled\")\n            .loadBalancingGroup(\"\")\n            .maxStaCount(1.0)\n            .mode(\"ap\")\n            .multicastHelper(\"full\")\n            .name(\"test_configuration\")\n            .rxChains(            \n                1.0,\n                3.0)\n            .ssid(\"SSID\")\n            .txChains(            \n                0.0,\n                2.0)\n            .build());\n\n        var testChannel = new CapsmanChannel(\"testChannel\", CapsmanChannelArgs.builder()\n            .name(\"test-channel-config\")\n            .build());\n\n        var testDatapath = new CapsmanDatapath(\"testDatapath\", CapsmanDatapathArgs.builder()\n            .name(\"test-datapath-config\")\n            .build());\n\n        var testRates = new CapsmanRates(\"testRates\", CapsmanRatesArgs.builder()\n            .name(\"test-rates-config\")\n            .build());\n\n        var testSecurity = new CapsmanSecurity(\"testSecurity\", CapsmanSecurityArgs.builder()\n            .name(\"test-security-config\")\n            .build());\n\n        var testConfiguration2 = new CapsmanConfiguration(\"testConfiguration2\", CapsmanConfigurationArgs.builder()\n            .name(\"test_configuration_name\")\n            .channel(Map.ofEntries(\n                Map.entry(\"config\", testChannel.name()),\n                Map.entry(\"band\", \"2ghz-b/g/n\"),\n                Map.entry(\"control_channel_width\", \"10mhz\"),\n                Map.entry(\"extension_channel\", \"eCee\"),\n                Map.entry(\"frequency\", \"2412\"),\n                Map.entry(\"reselect_interval\", \"1h\"),\n                Map.entry(\"save_selected\", \"true\"),\n                Map.entry(\"secondary_frequency\", \"disabled\"),\n                Map.entry(\"skip_dfs_channels\", \"true\"),\n                Map.entry(\"tx_power\", \"20\")\n            ))\n            .datapath(Map.ofEntries(\n                Map.entry(\"config\", testDatapath.name()),\n                Map.entry(\"arp\", \"local-proxy-arp\"),\n                Map.entry(\"bridge\", \"bridge\"),\n                Map.entry(\"bridge_cost\", \"100\"),\n                Map.entry(\"bridge_horizon\", \"200\"),\n                Map.entry(\"client_to_client_forwarding\", \"true\"),\n                Map.entry(\"interface_list\", \"static\"),\n                Map.entry(\"l2mtu\", \"1450\"),\n                Map.entry(\"local_forwarding\", \"true\"),\n                Map.entry(\"mtu\", \"1500\"),\n                Map.entry(\"vlan_id\", \"101\"),\n                Map.entry(\"vlan_mode\", \"no-tag\")\n            ))\n            .rates(Map.ofEntries(\n                Map.entry(\"config\", testRates.name()),\n                Map.entry(\"basic\", \"1Mbps,5.5Mbps,6Mbps,18Mbps,36Mbps,54Mbps\"),\n                Map.entry(\"ht_basic_mcs\", \"mcs-0,mcs-7,mcs-11,mcs-14,mcs-16,mcs-21\"),\n                Map.entry(\"ht_supported_mcs\", \"mcs-3,mcs-8,mcs-10,mcs-13,mcs-17,mcs-18\"),\n                Map.entry(\"supported\", \"2Mbps,11Mbps,9Mbps,12Mbps,24Mbps,48Mbps\"),\n                Map.entry(\"vht_basic_mcs\", \"none\"),\n                Map.entry(\"vht_supported_mcs\", \"mcs0-9,mcs0-7\")\n            ))\n            .security(Map.ofEntries(\n                Map.entry(\"config\", testSecurity.name()),\n                Map.entry(\"authentication_types\", \"wpa-psk,wpa-eap\"),\n                Map.entry(\"disable_pmkid\", \"true\"),\n                Map.entry(\"eap_methods\", \"eap-tls,passthrough\"),\n                Map.entry(\"eap_radius_accounting\", \"true\"),\n                Map.entry(\"encryption\", \"aes-ccm,tkip\"),\n                Map.entry(\"group_encryption\", \"aes-ccm\"),\n                Map.entry(\"group_key_update\", \"1h\"),\n                Map.entry(\"passphrase\", \"AAAAAAAAA\"),\n                Map.entry(\"tls_certificate\", \"none\"),\n                Map.entry(\"tls_mode\", \"verify-certificate\")\n            ))\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    testChannel,\n                    testDatapath,\n                    testRates,\n                    testSecurity)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testConfiguration:\n    type: routeros:CapsmanConfiguration\n    name: test_configuration\n    properties:\n      comment: Comment\n      country: no_country_set\n      disconnectTimeout: 1s150ms\n      distance: indoors\n      frameLifetime: '0.12'\n      guardInterval: long\n      hideSsid: true\n      hwProtectionMode: rts-cts\n      hwRetries: 1\n      installation: indoor\n      keepaliveFrames: enabled\n      loadBalancingGroup: \"\"\n      maxStaCount: 1\n      mode: ap\n      multicastHelper: full\n      name: test_configuration\n      rxChains:\n        - 1\n        - 3\n      ssid: SSID\n      txChains:\n        - 0\n        - 2\n  testChannel:\n    type: routeros:CapsmanChannel\n    name: test_channel\n    properties:\n      name: test-channel-config\n  testDatapath:\n    type: routeros:CapsmanDatapath\n    name: test_datapath\n    properties:\n      name: test-datapath-config\n  testRates:\n    type: routeros:CapsmanRates\n    name: test_rates\n    properties:\n      name: test-rates-config\n  testSecurity:\n    type: routeros:CapsmanSecurity\n    name: test_security\n    properties:\n      name: test-security-config\n  testConfiguration2:\n    type: routeros:CapsmanConfiguration\n    name: test_configuration_2\n    properties:\n      name: test_configuration_name\n      channel:\n        config: ${testChannel.name}\n        band: 2ghz-b/g/n\n        control_channel_width: 10mhz\n        extension_channel: eCee\n        frequency: 2412\n        reselect_interval: 1h\n        save_selected: 'true'\n        secondary_frequency: disabled\n        skip_dfs_channels: 'true'\n        tx_power: 20\n      datapath:\n        config: ${testDatapath.name}\n        arp: local-proxy-arp\n        bridge: bridge\n        bridge_cost: '100'\n        bridge_horizon: '200'\n        client_to_client_forwarding: 'true'\n        interface_list: static\n        l2mtu: '1450'\n        local_forwarding: 'true'\n        mtu: '1500'\n        vlan_id: '101'\n        vlan_mode: no-tag\n      rates:\n        config: ${testRates.name}\n        basic: 1Mbps,5.5Mbps,6Mbps,18Mbps,36Mbps,54Mbps\n        ht_basic_mcs: mcs-0,mcs-7,mcs-11,mcs-14,mcs-16,mcs-21\n        ht_supported_mcs: mcs-3,mcs-8,mcs-10,mcs-13,mcs-17,mcs-18\n        supported: 2Mbps,11Mbps,9Mbps,12Mbps,24Mbps,48Mbps\n        vht_basic_mcs: none\n        vht_supported_mcs: mcs0-9,mcs0-7\n      security:\n        config: ${testSecurity.name}\n        authentication_types: wpa-psk,wpa-eap\n        disable_pmkid: 'true'\n        eap_methods: eap-tls,passthrough\n        eap_radius_accounting: 'true'\n        encryption: aes-ccm,tkip\n        group_encryption: aes-ccm\n        group_key_update: 1h\n        passphrase: AAAAAAAAA\n        tls_certificate: none\n        tls_mode: verify-certificate\n    options:\n      dependsOn:\n        - ${testChannel}\n        - ${testDatapath}\n        - ${testRates}\n        - ${testSecurity}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/caps-man/configuration get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/capsmanConfiguration:CapsmanConfiguration test_configuration_2 \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/capsmanConfiguration:CapsmanConfiguration test_configuration_2 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"capsmanConfigurationId":{"type":"string","description":"The ID of this resource.\n"},"channel":{"type":"object","additionalProperties":{"type":"string"},"description":"Channel inline settings.\n"},"comment":{"type":"string"},"country":{"type":"string","description":"Limits available bands, frequencies and maximum transmit power for each frequency. Also specifies default value of scan-list. Value no*country*set is an FCC compliant set of channels.\n"},"datapath":{"type":"object","additionalProperties":{"type":"string"},"description":"Datapath inline settings.\n"},"disconnectTimeout":{"type":"string","description":"This interval is measured from third sending failure on the lowest data rate. At this point 3 * (hw-retries + 1) frame transmits on the lowest data rate had failed. During disconnect-timeout packet transmission will be retried with on-fail-retry-time interval. If no frame can be transmitted successfully during disconnect-timeout, the connection is closed, and this event is logged as \"extensive data loss\". Successful frame transmission resets this timer.\n"},"distance":{"type":"string","description":"How long to wait for confirmation of unicast frames (ACKs) before considering transmission unsuccessful, or in short ACK-Timeout.\n"},"frameLifetime":{"type":"string","description":"Discard frames that have been queued for sending longer than frame-lifetime. By default, when value of this property is 0, frames are discarded only after connection is closed (format: 0.00 sec).\n"},"guardInterval":{"type":"string","description":"Whether to allow use of short guard interval (refer to 802.11n MCS specification to see how this may affect throughput). \"any\" will use either short or long, depending on data rate, \"long\" will use long.\n"},"hideSsid":{"type":"boolean","description":"This property has effect only in AP mode. Setting it to yes can remove this network from the list of wireless networks that are shown by some client software. Changing this setting does not improve the security of the wireless network, because SSID is included in other frames sent by the AP.\n"},"hwProtectionMode":{"type":"string","description":"Frame protection support property. [See docs](https://wiki.mikrotik.com/wiki/Manual:Interface/Wireless#Frame_protection_support_(RTS/CTS)).\n"},"hwRetries":{"type":"number","description":"Number of times sending frame is retried without considering it a transmission failure. [See docs](https://wiki.mikrotik.com/wiki/Manual:Interface/Wireless)\n"},"installation":{"type":"string","description":"Adjusts scan-list to use indoor, outdoor or all frequencies for the country that is set.\n"},"keepaliveFrames":{"type":"string","description":"If a client has not communicated for around 20 seconds, AP sends a \"keepalive-frame\".\n"},"loadBalancingGroup":{"type":"string","description":"Tags the interface to the load balancing group. For a client to connect to interface in this group, the interface should have the same number of already connected clients as all other interfaces in the group or smaller. Useful in setups where ranges of CAPs mostly overlap.\n"},"maxStaCount":{"type":"number","description":"Maximum number of associated clients.\n"},"mode":{"type":"string","description":"Set operational mode. Only **ap** currently supported.\n"},"multicastHelper":{"type":"string","description":"When set to full multicast packets will be sent with unicast destination MAC address, resolving multicast problem on a wireless link. This option should be enabled only on the access point, clients should be configured in station-bridge mode.\n"},"name":{"type":"string"},"rates":{"type":"object","additionalProperties":{"type":"string"},"description":"Rates inline settings.\n"},"rxChains":{"type":"array","items":{"type":"number"},"description":"Which antennas to use for receive.\n"},"security":{"type":"object","additionalProperties":{"type":"string"},"description":"Security inline settings.\n"},"ssid":{"type":"string","description":"SSID (service set identifier) is a name broadcast in the beacons that identifies wireless network.\n"},"txChains":{"type":"array","items":{"type":"number"},"description":"Which antennas to use for transmit.\n"}},"type":"object","required":["capsmanConfigurationId","hideSsid","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"capsmanConfigurationId":{"type":"string","description":"The ID of this resource.\n"},"channel":{"type":"object","additionalProperties":{"type":"string"},"description":"Channel inline settings.\n"},"comment":{"type":"string"},"country":{"type":"string","description":"Limits available bands, frequencies and maximum transmit power for each frequency. Also specifies default value of scan-list. Value no*country*set is an FCC compliant set of channels.\n"},"datapath":{"type":"object","additionalProperties":{"type":"string"},"description":"Datapath inline settings.\n"},"disconnectTimeout":{"type":"string","description":"This interval is measured from third sending failure on the lowest data rate. At this point 3 * (hw-retries + 1) frame transmits on the lowest data rate had failed. During disconnect-timeout packet transmission will be retried with on-fail-retry-time interval. If no frame can be transmitted successfully during disconnect-timeout, the connection is closed, and this event is logged as \"extensive data loss\". Successful frame transmission resets this timer.\n"},"distance":{"type":"string","description":"How long to wait for confirmation of unicast frames (ACKs) before considering transmission unsuccessful, or in short ACK-Timeout.\n"},"frameLifetime":{"type":"string","description":"Discard frames that have been queued for sending longer than frame-lifetime. By default, when value of this property is 0, frames are discarded only after connection is closed (format: 0.00 sec).\n"},"guardInterval":{"type":"string","description":"Whether to allow use of short guard interval (refer to 802.11n MCS specification to see how this may affect throughput). \"any\" will use either short or long, depending on data rate, \"long\" will use long.\n"},"hideSsid":{"type":"boolean","description":"This property has effect only in AP mode. Setting it to yes can remove this network from the list of wireless networks that are shown by some client software. Changing this setting does not improve the security of the wireless network, because SSID is included in other frames sent by the AP.\n"},"hwProtectionMode":{"type":"string","description":"Frame protection support property. [See docs](https://wiki.mikrotik.com/wiki/Manual:Interface/Wireless#Frame_protection_support_(RTS/CTS)).\n"},"hwRetries":{"type":"number","description":"Number of times sending frame is retried without considering it a transmission failure. [See docs](https://wiki.mikrotik.com/wiki/Manual:Interface/Wireless)\n"},"installation":{"type":"string","description":"Adjusts scan-list to use indoor, outdoor or all frequencies for the country that is set.\n"},"keepaliveFrames":{"type":"string","description":"If a client has not communicated for around 20 seconds, AP sends a \"keepalive-frame\".\n"},"loadBalancingGroup":{"type":"string","description":"Tags the interface to the load balancing group. For a client to connect to interface in this group, the interface should have the same number of already connected clients as all other interfaces in the group or smaller. Useful in setups where ranges of CAPs mostly overlap.\n"},"maxStaCount":{"type":"number","description":"Maximum number of associated clients.\n"},"mode":{"type":"string","description":"Set operational mode. Only **ap** currently supported.\n"},"multicastHelper":{"type":"string","description":"When set to full multicast packets will be sent with unicast destination MAC address, resolving multicast problem on a wireless link. This option should be enabled only on the access point, clients should be configured in station-bridge mode.\n"},"name":{"type":"string"},"rates":{"type":"object","additionalProperties":{"type":"string"},"description":"Rates inline settings.\n"},"rxChains":{"type":"array","items":{"type":"number"},"description":"Which antennas to use for receive.\n"},"security":{"type":"object","additionalProperties":{"type":"string"},"description":"Security inline settings.\n"},"ssid":{"type":"string","description":"SSID (service set identifier) is a name broadcast in the beacons that identifies wireless network.\n"},"txChains":{"type":"array","items":{"type":"number"},"description":"Which antennas to use for transmit.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CapsmanConfiguration resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"capsmanConfigurationId":{"type":"string","description":"The ID of this resource.\n"},"channel":{"type":"object","additionalProperties":{"type":"string"},"description":"Channel inline settings.\n"},"comment":{"type":"string"},"country":{"type":"string","description":"Limits available bands, frequencies and maximum transmit power for each frequency. Also specifies default value of scan-list. Value no*country*set is an FCC compliant set of channels.\n"},"datapath":{"type":"object","additionalProperties":{"type":"string"},"description":"Datapath inline settings.\n"},"disconnectTimeout":{"type":"string","description":"This interval is measured from third sending failure on the lowest data rate. At this point 3 * (hw-retries + 1) frame transmits on the lowest data rate had failed. During disconnect-timeout packet transmission will be retried with on-fail-retry-time interval. If no frame can be transmitted successfully during disconnect-timeout, the connection is closed, and this event is logged as \"extensive data loss\". Successful frame transmission resets this timer.\n"},"distance":{"type":"string","description":"How long to wait for confirmation of unicast frames (ACKs) before considering transmission unsuccessful, or in short ACK-Timeout.\n"},"frameLifetime":{"type":"string","description":"Discard frames that have been queued for sending longer than frame-lifetime. By default, when value of this property is 0, frames are discarded only after connection is closed (format: 0.00 sec).\n"},"guardInterval":{"type":"string","description":"Whether to allow use of short guard interval (refer to 802.11n MCS specification to see how this may affect throughput). \"any\" will use either short or long, depending on data rate, \"long\" will use long.\n"},"hideSsid":{"type":"boolean","description":"This property has effect only in AP mode. Setting it to yes can remove this network from the list of wireless networks that are shown by some client software. Changing this setting does not improve the security of the wireless network, because SSID is included in other frames sent by the AP.\n"},"hwProtectionMode":{"type":"string","description":"Frame protection support property. [See docs](https://wiki.mikrotik.com/wiki/Manual:Interface/Wireless#Frame_protection_support_(RTS/CTS)).\n"},"hwRetries":{"type":"number","description":"Number of times sending frame is retried without considering it a transmission failure. [See docs](https://wiki.mikrotik.com/wiki/Manual:Interface/Wireless)\n"},"installation":{"type":"string","description":"Adjusts scan-list to use indoor, outdoor or all frequencies for the country that is set.\n"},"keepaliveFrames":{"type":"string","description":"If a client has not communicated for around 20 seconds, AP sends a \"keepalive-frame\".\n"},"loadBalancingGroup":{"type":"string","description":"Tags the interface to the load balancing group. For a client to connect to interface in this group, the interface should have the same number of already connected clients as all other interfaces in the group or smaller. Useful in setups where ranges of CAPs mostly overlap.\n"},"maxStaCount":{"type":"number","description":"Maximum number of associated clients.\n"},"mode":{"type":"string","description":"Set operational mode. Only **ap** currently supported.\n"},"multicastHelper":{"type":"string","description":"When set to full multicast packets will be sent with unicast destination MAC address, resolving multicast problem on a wireless link. This option should be enabled only on the access point, clients should be configured in station-bridge mode.\n"},"name":{"type":"string"},"rates":{"type":"object","additionalProperties":{"type":"string"},"description":"Rates inline settings.\n"},"rxChains":{"type":"array","items":{"type":"number"},"description":"Which antennas to use for receive.\n"},"security":{"type":"object","additionalProperties":{"type":"string"},"description":"Security inline settings.\n"},"ssid":{"type":"string","description":"SSID (service set identifier) is a name broadcast in the beacons that identifies wireless network.\n"},"txChains":{"type":"array","items":{"type":"number"},"description":"Which antennas to use for transmit.\n"}},"type":"object"}},"routeros:index/capsmanDatapath:CapsmanDatapath":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testDatapath = new routeros.CapsmanDatapath(\"test_datapath\", {\n    name: \"test_datapath\",\n    comment: \"test_datapath\",\n    arp: \"local-proxy-arp\",\n    bridge: \"bridge\",\n    bridgeCost: 100,\n    bridgeHorizon: 200,\n    clientToClientForwarding: true,\n    interfaceList: \"static\",\n    l2mtu: 1450,\n    localForwarding: true,\n    mtu: 1500,\n    vlanId: 101,\n    vlanMode: \"no-tag\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_datapath = routeros.CapsmanDatapath(\"test_datapath\",\n    name=\"test_datapath\",\n    comment=\"test_datapath\",\n    arp=\"local-proxy-arp\",\n    bridge=\"bridge\",\n    bridge_cost=100,\n    bridge_horizon=200,\n    client_to_client_forwarding=True,\n    interface_list=\"static\",\n    l2mtu=1450,\n    local_forwarding=True,\n    mtu=1500,\n    vlan_id=101,\n    vlan_mode=\"no-tag\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testDatapath = new Routeros.CapsmanDatapath(\"test_datapath\", new()\n    {\n        Name = \"test_datapath\",\n        Comment = \"test_datapath\",\n        Arp = \"local-proxy-arp\",\n        Bridge = \"bridge\",\n        BridgeCost = 100,\n        BridgeHorizon = 200,\n        ClientToClientForwarding = true,\n        InterfaceList = \"static\",\n        L2mtu = 1450,\n        LocalForwarding = true,\n        Mtu = 1500,\n        VlanId = 101,\n        VlanMode = \"no-tag\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewCapsmanDatapath(ctx, \"test_datapath\", \u0026routeros.CapsmanDatapathArgs{\n\t\t\tName:                     pulumi.String(\"test_datapath\"),\n\t\t\tComment:                  pulumi.String(\"test_datapath\"),\n\t\t\tArp:                      pulumi.String(\"local-proxy-arp\"),\n\t\t\tBridge:                   pulumi.String(\"bridge\"),\n\t\t\tBridgeCost:               pulumi.Float64(100),\n\t\t\tBridgeHorizon:            pulumi.Float64(200),\n\t\t\tClientToClientForwarding: pulumi.Bool(true),\n\t\t\tInterfaceList:            pulumi.String(\"static\"),\n\t\t\tL2mtu:                    pulumi.Float64(1450),\n\t\t\tLocalForwarding:          pulumi.Bool(true),\n\t\t\tMtu:                      pulumi.Float64(1500),\n\t\t\tVlanId:                   pulumi.Float64(101),\n\t\t\tVlanMode:                 pulumi.String(\"no-tag\"),\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.routeros.CapsmanDatapath;\nimport com.pulumi.routeros.CapsmanDatapathArgs;\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 testDatapath = new CapsmanDatapath(\"testDatapath\", CapsmanDatapathArgs.builder()\n            .name(\"test_datapath\")\n            .comment(\"test_datapath\")\n            .arp(\"local-proxy-arp\")\n            .bridge(\"bridge\")\n            .bridgeCost(100.0)\n            .bridgeHorizon(200.0)\n            .clientToClientForwarding(true)\n            .interfaceList(\"static\")\n            .l2mtu(1450.0)\n            .localForwarding(true)\n            .mtu(1500.0)\n            .vlanId(101.0)\n            .vlanMode(\"no-tag\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testDatapath:\n    type: routeros:CapsmanDatapath\n    name: test_datapath\n    properties:\n      name: test_datapath\n      comment: test_datapath\n      arp: local-proxy-arp\n      bridge: bridge\n      bridgeCost: 100\n      bridgeHorizon: 200\n      clientToClientForwarding: true\n      interfaceList: static\n      l2mtu: 1450\n      localForwarding: true\n      mtu: 1500\n      vlanId: 101\n      vlanMode: no-tag\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/caps-man/datapath get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/capsmanDatapath:CapsmanDatapath test_datapath \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/capsmanDatapath:CapsmanDatapath test_datapath \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"ARP mode. See [docs](https://wiki.mikrotik.com/wiki/Manual:IP/ARP#ARP_Modes) for info.\n"},"bridge":{"type":"string","description":"Bridge to which particular interface should be automatically added as port. Required only when local-forwarding is not used.\n"},"bridgeCost":{"type":"number","description":"Bridge port cost to use when adding as bridge port.\n"},"bridgeHorizon":{"type":"number","description":"Bridge horizon to use when adding as bridge port.\n"},"capsmanDatapathId":{"type":"string","description":"The ID of this resource.\n"},"clientToClientForwarding":{"type":"boolean","description":"Controls if client-to-client forwarding between wireless clients connected to interface should be allowed, in local forwarding mode this function is performed by CAP, otherwise it is performed by CAPsMAN.\n"},"comment":{"type":"string"},"interfaceList":{"type":"string","description":"Interface list name.\n"},"l2mtu":{"type":"number","description":"Layer2 MTU size.\n"},"localForwarding":{"type":"boolean","description":"Controls forwarding mode. If disabled, all L2 and L3 data will be forwarded to CAPsMAN, and further forwarding decisions will be made only then. See [docs](https://wiki.mikrotik.com/wiki/Manual:CAPsMAN#Local_Forwarding_Mode) for info.\n"},"mtu":{"type":"number","description":"MTU size.\n"},"name":{"type":"string"},"openflowSwitch":{"type":"string","description":"OpenFlow switch to add interface to, as port when enabled.\n"},"vlanId":{"type":"number","description":"VLAN ID to assign to interface if vlan-mode enables use of VLAN tagging.\n"},"vlanMode":{"type":"string","description":"VLAN tagging mode specifies if VLAN tag should be assigned to interface (causes all received data to get tagged with VLAN tag and allows interface to only send out data tagged with given tag)\n"}},"type":"object","required":["capsmanDatapathId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"ARP mode. See [docs](https://wiki.mikrotik.com/wiki/Manual:IP/ARP#ARP_Modes) for info.\n"},"bridge":{"type":"string","description":"Bridge to which particular interface should be automatically added as port. Required only when local-forwarding is not used.\n"},"bridgeCost":{"type":"number","description":"Bridge port cost to use when adding as bridge port.\n"},"bridgeHorizon":{"type":"number","description":"Bridge horizon to use when adding as bridge port.\n"},"capsmanDatapathId":{"type":"string","description":"The ID of this resource.\n"},"clientToClientForwarding":{"type":"boolean","description":"Controls if client-to-client forwarding between wireless clients connected to interface should be allowed, in local forwarding mode this function is performed by CAP, otherwise it is performed by CAPsMAN.\n"},"comment":{"type":"string"},"interfaceList":{"type":"string","description":"Interface list name.\n"},"l2mtu":{"type":"number","description":"Layer2 MTU size.\n"},"localForwarding":{"type":"boolean","description":"Controls forwarding mode. If disabled, all L2 and L3 data will be forwarded to CAPsMAN, and further forwarding decisions will be made only then. See [docs](https://wiki.mikrotik.com/wiki/Manual:CAPsMAN#Local_Forwarding_Mode) for info.\n"},"mtu":{"type":"number","description":"MTU size.\n"},"name":{"type":"string"},"openflowSwitch":{"type":"string","description":"OpenFlow switch to add interface to, as port when enabled.\n"},"vlanId":{"type":"number","description":"VLAN ID to assign to interface if vlan-mode enables use of VLAN tagging.\n"},"vlanMode":{"type":"string","description":"VLAN tagging mode specifies if VLAN tag should be assigned to interface (causes all received data to get tagged with VLAN tag and allows interface to only send out data tagged with given tag)\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CapsmanDatapath resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"ARP mode. See [docs](https://wiki.mikrotik.com/wiki/Manual:IP/ARP#ARP_Modes) for info.\n"},"bridge":{"type":"string","description":"Bridge to which particular interface should be automatically added as port. Required only when local-forwarding is not used.\n"},"bridgeCost":{"type":"number","description":"Bridge port cost to use when adding as bridge port.\n"},"bridgeHorizon":{"type":"number","description":"Bridge horizon to use when adding as bridge port.\n"},"capsmanDatapathId":{"type":"string","description":"The ID of this resource.\n"},"clientToClientForwarding":{"type":"boolean","description":"Controls if client-to-client forwarding between wireless clients connected to interface should be allowed, in local forwarding mode this function is performed by CAP, otherwise it is performed by CAPsMAN.\n"},"comment":{"type":"string"},"interfaceList":{"type":"string","description":"Interface list name.\n"},"l2mtu":{"type":"number","description":"Layer2 MTU size.\n"},"localForwarding":{"type":"boolean","description":"Controls forwarding mode. If disabled, all L2 and L3 data will be forwarded to CAPsMAN, and further forwarding decisions will be made only then. See [docs](https://wiki.mikrotik.com/wiki/Manual:CAPsMAN#Local_Forwarding_Mode) for info.\n"},"mtu":{"type":"number","description":"MTU size.\n"},"name":{"type":"string"},"openflowSwitch":{"type":"string","description":"OpenFlow switch to add interface to, as port when enabled.\n"},"vlanId":{"type":"number","description":"VLAN ID to assign to interface if vlan-mode enables use of VLAN tagging.\n"},"vlanMode":{"type":"string","description":"VLAN tagging mode specifies if VLAN tag should be assigned to interface (causes all received data to get tagged with VLAN tag and allows interface to only send out data tagged with given tag)\n"}},"type":"object"}},"routeros:index/capsmanInterface:CapsmanInterface":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst channel1 = new routeros.CapsmanChannel(\"channel1\", {\n    name: \"1\",\n    band: \"2ghz-g/n\",\n    frequencies: [2412],\n});\nconst cap1 = new routeros.CapsmanInterface(\"cap1\", {\n    name: \"cap1\",\n    channel: {\n        config: channel1.name,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nchannel1 = routeros.CapsmanChannel(\"channel1\",\n    name=\"1\",\n    band=\"2ghz-g/n\",\n    frequencies=[2412])\ncap1 = routeros.CapsmanInterface(\"cap1\",\n    name=\"cap1\",\n    channel={\n        \"config\": channel1.name,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var channel1 = new Routeros.CapsmanChannel(\"channel1\", new()\n    {\n        Name = \"1\",\n        Band = \"2ghz-g/n\",\n        Frequencies = new[]\n        {\n            2412,\n        },\n    });\n\n    var cap1 = new Routeros.CapsmanInterface(\"cap1\", new()\n    {\n        Name = \"cap1\",\n        Channel = \n        {\n            { \"config\", channel1.Name },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tchannel1, err := routeros.NewCapsmanChannel(ctx, \"channel1\", \u0026routeros.CapsmanChannelArgs{\n\t\t\tName: pulumi.String(\"1\"),\n\t\t\tBand: pulumi.String(\"2ghz-g/n\"),\n\t\t\tFrequencies: pulumi.Float64Array{\n\t\t\t\tpulumi.Float64(2412),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewCapsmanInterface(ctx, \"cap1\", \u0026routeros.CapsmanInterfaceArgs{\n\t\t\tName: pulumi.String(\"cap1\"),\n\t\t\tChannel: pulumi.StringMap{\n\t\t\t\t\"config\": channel1.Name,\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.routeros.CapsmanChannel;\nimport com.pulumi.routeros.CapsmanChannelArgs;\nimport com.pulumi.routeros.CapsmanInterface;\nimport com.pulumi.routeros.CapsmanInterfaceArgs;\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 channel1 = new CapsmanChannel(\"channel1\", CapsmanChannelArgs.builder()\n            .name(\"1\")\n            .band(\"2ghz-g/n\")\n            .frequencies(2412.0)\n            .build());\n\n        var cap1 = new CapsmanInterface(\"cap1\", CapsmanInterfaceArgs.builder()\n            .name(\"cap1\")\n            .channel(Map.of(\"config\", channel1.name()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  channel1:\n    type: routeros:CapsmanChannel\n    properties:\n      name: '1'\n      band: 2ghz-g/n\n      frequencies:\n        - 2412\n  cap1:\n    type: routeros:CapsmanInterface\n    properties:\n      name: cap1\n      channel:\n        config: ${channel1.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/caps-man/interface get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/capsmanInterface:CapsmanInterface cap1 '*1'\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used.\n"},"bound":{"type":"boolean","description":"A flag whether the interface is currently available for the CAPsMAN.\n"},"capsmanInterfaceId":{"type":"string","description":"The ID of this resource.\n"},"channel":{"type":"object","additionalProperties":{"type":"string"},"description":"Channel inline settings.\n"},"comment":{"type":"string"},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"Configuration inline settings.\n"},"datapath":{"type":"object","additionalProperties":{"type":"string"},"description":"Datapath inline settings.\n"},"disabled":{"type":"boolean"},"inactive":{"type":"boolean","description":"A flag whether the interface is currently inactive.\n"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"macAddress":{"type":"string","description":"MAC address (BSSID) to use for the interface.\n"},"master":{"type":"boolean","description":"A flag whether the interface is not a virtual one.\n"},"masterInterface":{"type":"string","description":"The corresponding master interface of the virtual one.\n"},"name":{"type":"string","description":"Name of the interface.\n"},"radioMac":{"type":"string","description":"The MAC address of the associated radio.\n"},"radioName":{"type":"string","description":"Name of the associated radio.\n"},"rates":{"type":"object","additionalProperties":{"type":"string"},"description":"Rates inline settings.\n"},"running":{"type":"boolean","description":"A flag whether the interface has established a link to another device.\n"},"security":{"type":"object","additionalProperties":{"type":"string"},"description":"Security inline settings.\n"}},"type":"object","required":["bound","capsmanInterfaceId","inactive","l2mtu","master","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used.\n"},"capsmanInterfaceId":{"type":"string","description":"The ID of this resource.\n"},"channel":{"type":"object","additionalProperties":{"type":"string"},"description":"Channel inline settings.\n"},"comment":{"type":"string"},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"Configuration inline settings.\n"},"datapath":{"type":"object","additionalProperties":{"type":"string"},"description":"Datapath inline settings.\n"},"disabled":{"type":"boolean"},"macAddress":{"type":"string","description":"MAC address (BSSID) to use for the interface.\n"},"masterInterface":{"type":"string","description":"The corresponding master interface of the virtual one.\n"},"name":{"type":"string","description":"Name of the interface.\n"},"radioMac":{"type":"string","description":"The MAC address of the associated radio.\n"},"radioName":{"type":"string","description":"Name of the associated radio.\n"},"rates":{"type":"object","additionalProperties":{"type":"string"},"description":"Rates inline settings.\n"},"security":{"type":"object","additionalProperties":{"type":"string"},"description":"Security inline settings.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CapsmanInterface resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used.\n"},"bound":{"type":"boolean","description":"A flag whether the interface is currently available for the CAPsMAN.\n"},"capsmanInterfaceId":{"type":"string","description":"The ID of this resource.\n"},"channel":{"type":"object","additionalProperties":{"type":"string"},"description":"Channel inline settings.\n"},"comment":{"type":"string"},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"Configuration inline settings.\n"},"datapath":{"type":"object","additionalProperties":{"type":"string"},"description":"Datapath inline settings.\n"},"disabled":{"type":"boolean"},"inactive":{"type":"boolean","description":"A flag whether the interface is currently inactive.\n"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"macAddress":{"type":"string","description":"MAC address (BSSID) to use for the interface.\n"},"master":{"type":"boolean","description":"A flag whether the interface is not a virtual one.\n"},"masterInterface":{"type":"string","description":"The corresponding master interface of the virtual one.\n"},"name":{"type":"string","description":"Name of the interface.\n"},"radioMac":{"type":"string","description":"The MAC address of the associated radio.\n"},"radioName":{"type":"string","description":"Name of the associated radio.\n"},"rates":{"type":"object","additionalProperties":{"type":"string"},"description":"Rates inline settings.\n"},"running":{"type":"boolean","description":"A flag whether the interface has established a link to another device.\n"},"security":{"type":"object","additionalProperties":{"type":"string"},"description":"Security inline settings.\n"}},"type":"object"}},"routeros:index/capsmanManager:CapsmanManager":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testManager = new routeros.CapsmanManager(\"test_manager\", {\n    enabled: true,\n    upgradePolicy: \"require-same-version\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_manager = routeros.CapsmanManager(\"test_manager\",\n    enabled=True,\n    upgrade_policy=\"require-same-version\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testManager = new Routeros.CapsmanManager(\"test_manager\", new()\n    {\n        Enabled = true,\n        UpgradePolicy = \"require-same-version\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewCapsmanManager(ctx, \"test_manager\", \u0026routeros.CapsmanManagerArgs{\n\t\t\tEnabled:       pulumi.Bool(true),\n\t\t\tUpgradePolicy: pulumi.String(\"require-same-version\"),\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.routeros.CapsmanManager;\nimport com.pulumi.routeros.CapsmanManagerArgs;\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 testManager = new CapsmanManager(\"testManager\", CapsmanManagerArgs.builder()\n            .enabled(true)\n            .upgradePolicy(\"require-same-version\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testManager:\n    type: routeros:CapsmanManager\n    name: test_manager\n    properties:\n      enabled: true\n      upgradePolicy: require-same-version\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/capsmanManager:CapsmanManager test_manager .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"caCertificate":{"type":"string","description":"Device CA certificate.\n"},"capsmanManagerId":{"type":"string","description":"The ID of this resource.\n"},"certificate":{"type":"string","description":"Device certificate.\n"},"enabled":{"type":"boolean","description":"Disable or enable CAPsMAN functionality.\n"},"generatedCaCertificate":{"type":"string","description":"Generated CA certificate.\n"},"generatedCertificate":{"type":"string","description":"Generated CAPsMAN certificate.\n"},"packagePath":{"type":"string","description":"Folder location for the RouterOS packages. For example, use '/upgrade' to specify the upgrade folder from the files section. If empty string is set, CAPsMAN can use built-in RouterOS packages, note that in this case only CAPs with the same architecture as CAPsMAN will be upgraded.\n"},"requirePeerCertificate":{"type":"boolean","description":"Require all connecting CAPs to have a valid certificate.\n"},"upgradePolicy":{"type":"string","description":"Upgrade policy options.\n"}},"type":"object","required":["capsmanManagerId","generatedCaCertificate","generatedCertificate"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"caCertificate":{"type":"string","description":"Device CA certificate.\n"},"capsmanManagerId":{"type":"string","description":"The ID of this resource.\n"},"certificate":{"type":"string","description":"Device certificate.\n"},"enabled":{"type":"boolean","description":"Disable or enable CAPsMAN functionality.\n"},"packagePath":{"type":"string","description":"Folder location for the RouterOS packages. For example, use '/upgrade' to specify the upgrade folder from the files section. If empty string is set, CAPsMAN can use built-in RouterOS packages, note that in this case only CAPs with the same architecture as CAPsMAN will be upgraded.\n"},"requirePeerCertificate":{"type":"boolean","description":"Require all connecting CAPs to have a valid certificate.\n"},"upgradePolicy":{"type":"string","description":"Upgrade policy options.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CapsmanManager resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"caCertificate":{"type":"string","description":"Device CA certificate.\n"},"capsmanManagerId":{"type":"string","description":"The ID of this resource.\n"},"certificate":{"type":"string","description":"Device certificate.\n"},"enabled":{"type":"boolean","description":"Disable or enable CAPsMAN functionality.\n"},"generatedCaCertificate":{"type":"string","description":"Generated CA certificate.\n"},"generatedCertificate":{"type":"string","description":"Generated CAPsMAN certificate.\n"},"packagePath":{"type":"string","description":"Folder location for the RouterOS packages. For example, use '/upgrade' to specify the upgrade folder from the files section. If empty string is set, CAPsMAN can use built-in RouterOS packages, note that in this case only CAPs with the same architecture as CAPsMAN will be upgraded.\n"},"requirePeerCertificate":{"type":"boolean","description":"Require all connecting CAPs to have a valid certificate.\n"},"upgradePolicy":{"type":"string","description":"Upgrade policy options.\n"}},"type":"object"}},"routeros:index/capsmanManagerInterface:CapsmanManagerInterface":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testManagerInterface = new routeros.CapsmanManagerInterface(\"test_manager_interface\", {\n    \"interface\": \"ether1\",\n    forbid: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_manager_interface = routeros.CapsmanManagerInterface(\"test_manager_interface\",\n    interface=\"ether1\",\n    forbid=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testManagerInterface = new Routeros.CapsmanManagerInterface(\"test_manager_interface\", new()\n    {\n        Interface = \"ether1\",\n        Forbid = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewCapsmanManagerInterface(ctx, \"test_manager_interface\", \u0026routeros.CapsmanManagerInterfaceArgs{\n\t\t\tInterface: pulumi.String(\"ether1\"),\n\t\t\tForbid:    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.routeros.CapsmanManagerInterface;\nimport com.pulumi.routeros.CapsmanManagerInterfaceArgs;\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 testManagerInterface = new CapsmanManagerInterface(\"testManagerInterface\", CapsmanManagerInterfaceArgs.builder()\n            .interface_(\"ether1\")\n            .forbid(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testManagerInterface:\n    type: routeros:CapsmanManagerInterface\n    name: test_manager_interface\n    properties:\n      interface: ether1\n      forbid: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e  :put [/caps-man/manager/interface get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/capsmanManagerInterface:CapsmanManagerInterface test_manager_interface \"*6\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"capsmanManagerInterfaceId":{"type":"string","description":"The ID of this resource.\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"forbid":{"type":"boolean","description":"Disable interface listening.\n"},"interface":{"type":"string","description":"Name of the interface.\n"}},"type":"object","required":["capsmanManagerInterfaceId","default","dynamic","interface"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"capsmanManagerInterfaceId":{"type":"string","description":"The ID of this resource.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"forbid":{"type":"boolean","description":"Disable interface listening.\n"},"interface":{"type":"string","description":"Name of the interface.\n"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering CapsmanManagerInterface resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"capsmanManagerInterfaceId":{"type":"string","description":"The ID of this resource.\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"forbid":{"type":"boolean","description":"Disable interface listening.\n"},"interface":{"type":"string","description":"Name of the interface.\n"}},"type":"object"}},"routeros:index/capsmanProvisioning:CapsmanProvisioning":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testConfiguration = new routeros.CapsmanConfiguration(\"test_configuration\", {name: \"cfg1\"});\nconst testProvisioning = new routeros.CapsmanProvisioning(\"test_provisioning\", {\n    masterConfiguration: \"cfg1\",\n    action: \"create-disabled\",\n    namePrefix: \"cap-\",\n}, {\n    dependsOn: [testConfiguration],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_configuration = routeros.CapsmanConfiguration(\"test_configuration\", name=\"cfg1\")\ntest_provisioning = routeros.CapsmanProvisioning(\"test_provisioning\",\n    master_configuration=\"cfg1\",\n    action=\"create-disabled\",\n    name_prefix=\"cap-\",\n    opts = pulumi.ResourceOptions(depends_on=[test_configuration]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testConfiguration = new Routeros.CapsmanConfiguration(\"test_configuration\", new()\n    {\n        Name = \"cfg1\",\n    });\n\n    var testProvisioning = new Routeros.CapsmanProvisioning(\"test_provisioning\", new()\n    {\n        MasterConfiguration = \"cfg1\",\n        Action = \"create-disabled\",\n        NamePrefix = \"cap-\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            testConfiguration,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestConfiguration, err := routeros.NewCapsmanConfiguration(ctx, \"test_configuration\", \u0026routeros.CapsmanConfigurationArgs{\n\t\t\tName: pulumi.String(\"cfg1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewCapsmanProvisioning(ctx, \"test_provisioning\", \u0026routeros.CapsmanProvisioningArgs{\n\t\t\tMasterConfiguration: pulumi.String(\"cfg1\"),\n\t\t\tAction:              pulumi.String(\"create-disabled\"),\n\t\t\tNamePrefix:          pulumi.String(\"cap-\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttestConfiguration,\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.routeros.CapsmanConfiguration;\nimport com.pulumi.routeros.CapsmanConfigurationArgs;\nimport com.pulumi.routeros.CapsmanProvisioning;\nimport com.pulumi.routeros.CapsmanProvisioningArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testConfiguration = new CapsmanConfiguration(\"testConfiguration\", CapsmanConfigurationArgs.builder()\n            .name(\"cfg1\")\n            .build());\n\n        var testProvisioning = new CapsmanProvisioning(\"testProvisioning\", CapsmanProvisioningArgs.builder()\n            .masterConfiguration(\"cfg1\")\n            .action(\"create-disabled\")\n            .namePrefix(\"cap-\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(testConfiguration)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testConfiguration:\n    type: routeros:CapsmanConfiguration\n    name: test_configuration\n    properties:\n      name: cfg1\n  testProvisioning:\n    type: routeros:CapsmanProvisioning\n    name: test_provisioning\n    properties:\n      masterConfiguration: cfg1\n      action: create-disabled\n      namePrefix: cap-\n    options:\n      dependsOn:\n        - ${testConfiguration}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e  :put [/caps-man/provisioning get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/capsmanProvisioning:CapsmanProvisioning test_provisioning \"*B\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/capsmanProvisioning:CapsmanProvisioning test_provisioning \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Provisioning action.\n"},"capsmanProvisioningId":{"type":"string","description":"The ID of this resource.\n"},"comment":{"type":"string"},"commonNameRegexp":{"type":"string","description":"Regular expression to match radios by common name. Each CAP's common name identifier can be found under \"/caps-man radio\" as value \"REMOTE-CAP-NAME\"\n"},"disabled":{"type":"boolean"},"hwSupportedModes":{"type":"array","items":{"type":"string"},"description":"Match radios by supported wireless modes.\n"},"identityRegexp":{"type":"string","description":"Regular expression to match radios by router identity.\n"},"ipAddressRanges":{"type":"array","items":{"type":"string"},"description":"Match CAPs with IPs within configured address range.\n"},"masterConfiguration":{"type":"string","description":"If action specifies to create interfaces, then a new master interface with its configuration set to this configuration profile will be created\n"},"nameFormat":{"type":"string","description":"Specify the syntax of the CAP interface name creation.\n"},"namePrefix":{"type":"string","description":"Name prefix which can be used in the name-format for creating the CAP interface names.\n"},"radioMac":{"type":"string","description":"MAC address of radio to be matched, empty MAC (00:00:00:00:00:00) means match all MAC addresses.\n"},"slaveConfigurations":{"type":"array","items":{"type":"string"},"description":"If action specifies to create interfaces, then a new slave interface for each configuration profile in this list is created.\n"}},"type":"object","required":["capsmanProvisioningId","masterConfiguration"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Provisioning action.\n"},"capsmanProvisioningId":{"type":"string","description":"The ID of this resource.\n"},"comment":{"type":"string"},"commonNameRegexp":{"type":"string","description":"Regular expression to match radios by common name. Each CAP's common name identifier can be found under \"/caps-man radio\" as value \"REMOTE-CAP-NAME\"\n"},"disabled":{"type":"boolean"},"hwSupportedModes":{"type":"array","items":{"type":"string"},"description":"Match radios by supported wireless modes.\n"},"identityRegexp":{"type":"string","description":"Regular expression to match radios by router identity.\n"},"ipAddressRanges":{"type":"array","items":{"type":"string"},"description":"Match CAPs with IPs within configured address range.\n"},"masterConfiguration":{"type":"string","description":"If action specifies to create interfaces, then a new master interface with its configuration set to this configuration profile will be created\n"},"nameFormat":{"type":"string","description":"Specify the syntax of the CAP interface name creation.\n"},"namePrefix":{"type":"string","description":"Name prefix which can be used in the name-format for creating the CAP interface names.\n"},"radioMac":{"type":"string","description":"MAC address of radio to be matched, empty MAC (00:00:00:00:00:00) means match all MAC addresses.\n"},"slaveConfigurations":{"type":"array","items":{"type":"string"},"description":"If action specifies to create interfaces, then a new slave interface for each configuration profile in this list is created.\n"}},"requiredInputs":["masterConfiguration"],"stateInputs":{"description":"Input properties used for looking up and filtering CapsmanProvisioning resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Provisioning action.\n"},"capsmanProvisioningId":{"type":"string","description":"The ID of this resource.\n"},"comment":{"type":"string"},"commonNameRegexp":{"type":"string","description":"Regular expression to match radios by common name. Each CAP's common name identifier can be found under \"/caps-man radio\" as value \"REMOTE-CAP-NAME\"\n"},"disabled":{"type":"boolean"},"hwSupportedModes":{"type":"array","items":{"type":"string"},"description":"Match radios by supported wireless modes.\n"},"identityRegexp":{"type":"string","description":"Regular expression to match radios by router identity.\n"},"ipAddressRanges":{"type":"array","items":{"type":"string"},"description":"Match CAPs with IPs within configured address range.\n"},"masterConfiguration":{"type":"string","description":"If action specifies to create interfaces, then a new master interface with its configuration set to this configuration profile will be created\n"},"nameFormat":{"type":"string","description":"Specify the syntax of the CAP interface name creation.\n"},"namePrefix":{"type":"string","description":"Name prefix which can be used in the name-format for creating the CAP interface names.\n"},"radioMac":{"type":"string","description":"MAC address of radio to be matched, empty MAC (00:00:00:00:00:00) means match all MAC addresses.\n"},"slaveConfigurations":{"type":"array","items":{"type":"string"},"description":"If action specifies to create interfaces, then a new slave interface for each configuration profile in this list is created.\n"}},"type":"object"}},"routeros:index/capsmanRates:CapsmanRates":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testRates = new routeros.CapsmanRates(\"test_rates\", {\n    name: \"test_rates\",\n    comment: \"test_rates\",\n    basics: [\n        \"1Mbps\",\n        \"5.5Mbps\",\n        \"6Mbps\",\n        \"18Mbps\",\n        \"36Mbps\",\n        \"54Mbps\",\n    ],\n    htBasicMcs: [\n        \"mcs-0\",\n        \"mcs-7\",\n        \"mcs-11\",\n        \"mcs-14\",\n        \"mcs-16\",\n        \"mcs-21\",\n    ],\n    htSupportedMcs: [\n        \"mcs-3\",\n        \"mcs-8\",\n        \"mcs-10\",\n        \"mcs-13\",\n        \"mcs-17\",\n        \"mcs-18\",\n    ],\n    supporteds: [\n        \"2Mbps\",\n        \"11Mbps\",\n        \"9Mbps\",\n        \"12Mbps\",\n        \"24Mbps\",\n        \"48Mbps\",\n    ],\n    vhtBasicMcs: \"none\",\n    vhtSupportedMcs: \"mcs0-9,mcs0-7\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_rates = routeros.CapsmanRates(\"test_rates\",\n    name=\"test_rates\",\n    comment=\"test_rates\",\n    basics=[\n        \"1Mbps\",\n        \"5.5Mbps\",\n        \"6Mbps\",\n        \"18Mbps\",\n        \"36Mbps\",\n        \"54Mbps\",\n    ],\n    ht_basic_mcs=[\n        \"mcs-0\",\n        \"mcs-7\",\n        \"mcs-11\",\n        \"mcs-14\",\n        \"mcs-16\",\n        \"mcs-21\",\n    ],\n    ht_supported_mcs=[\n        \"mcs-3\",\n        \"mcs-8\",\n        \"mcs-10\",\n        \"mcs-13\",\n        \"mcs-17\",\n        \"mcs-18\",\n    ],\n    supporteds=[\n        \"2Mbps\",\n        \"11Mbps\",\n        \"9Mbps\",\n        \"12Mbps\",\n        \"24Mbps\",\n        \"48Mbps\",\n    ],\n    vht_basic_mcs=\"none\",\n    vht_supported_mcs=\"mcs0-9,mcs0-7\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRates = new Routeros.CapsmanRates(\"test_rates\", new()\n    {\n        Name = \"test_rates\",\n        Comment = \"test_rates\",\n        Basics = new[]\n        {\n            \"1Mbps\",\n            \"5.5Mbps\",\n            \"6Mbps\",\n            \"18Mbps\",\n            \"36Mbps\",\n            \"54Mbps\",\n        },\n        HtBasicMcs = new[]\n        {\n            \"mcs-0\",\n            \"mcs-7\",\n            \"mcs-11\",\n            \"mcs-14\",\n            \"mcs-16\",\n            \"mcs-21\",\n        },\n        HtSupportedMcs = new[]\n        {\n            \"mcs-3\",\n            \"mcs-8\",\n            \"mcs-10\",\n            \"mcs-13\",\n            \"mcs-17\",\n            \"mcs-18\",\n        },\n        Supporteds = new[]\n        {\n            \"2Mbps\",\n            \"11Mbps\",\n            \"9Mbps\",\n            \"12Mbps\",\n            \"24Mbps\",\n            \"48Mbps\",\n        },\n        VhtBasicMcs = \"none\",\n        VhtSupportedMcs = \"mcs0-9,mcs0-7\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewCapsmanRates(ctx, \"test_rates\", \u0026routeros.CapsmanRatesArgs{\n\t\t\tName:    pulumi.String(\"test_rates\"),\n\t\t\tComment: pulumi.String(\"test_rates\"),\n\t\t\tBasics: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1Mbps\"),\n\t\t\t\tpulumi.String(\"5.5Mbps\"),\n\t\t\t\tpulumi.String(\"6Mbps\"),\n\t\t\t\tpulumi.String(\"18Mbps\"),\n\t\t\t\tpulumi.String(\"36Mbps\"),\n\t\t\t\tpulumi.String(\"54Mbps\"),\n\t\t\t},\n\t\t\tHtBasicMcs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"mcs-0\"),\n\t\t\t\tpulumi.String(\"mcs-7\"),\n\t\t\t\tpulumi.String(\"mcs-11\"),\n\t\t\t\tpulumi.String(\"mcs-14\"),\n\t\t\t\tpulumi.String(\"mcs-16\"),\n\t\t\t\tpulumi.String(\"mcs-21\"),\n\t\t\t},\n\t\t\tHtSupportedMcs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"mcs-3\"),\n\t\t\t\tpulumi.String(\"mcs-8\"),\n\t\t\t\tpulumi.String(\"mcs-10\"),\n\t\t\t\tpulumi.String(\"mcs-13\"),\n\t\t\t\tpulumi.String(\"mcs-17\"),\n\t\t\t\tpulumi.String(\"mcs-18\"),\n\t\t\t},\n\t\t\tSupporteds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2Mbps\"),\n\t\t\t\tpulumi.String(\"11Mbps\"),\n\t\t\t\tpulumi.String(\"9Mbps\"),\n\t\t\t\tpulumi.String(\"12Mbps\"),\n\t\t\t\tpulumi.String(\"24Mbps\"),\n\t\t\t\tpulumi.String(\"48Mbps\"),\n\t\t\t},\n\t\t\tVhtBasicMcs:     pulumi.String(\"none\"),\n\t\t\tVhtSupportedMcs: pulumi.String(\"mcs0-9,mcs0-7\"),\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.routeros.CapsmanRates;\nimport com.pulumi.routeros.CapsmanRatesArgs;\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 testRates = new CapsmanRates(\"testRates\", CapsmanRatesArgs.builder()\n            .name(\"test_rates\")\n            .comment(\"test_rates\")\n            .basics(            \n                \"1Mbps\",\n                \"5.5Mbps\",\n                \"6Mbps\",\n                \"18Mbps\",\n                \"36Mbps\",\n                \"54Mbps\")\n            .htBasicMcs(            \n                \"mcs-0\",\n                \"mcs-7\",\n                \"mcs-11\",\n                \"mcs-14\",\n                \"mcs-16\",\n                \"mcs-21\")\n            .htSupportedMcs(            \n                \"mcs-3\",\n                \"mcs-8\",\n                \"mcs-10\",\n                \"mcs-13\",\n                \"mcs-17\",\n                \"mcs-18\")\n            .supporteds(            \n                \"2Mbps\",\n                \"11Mbps\",\n                \"9Mbps\",\n                \"12Mbps\",\n                \"24Mbps\",\n                \"48Mbps\")\n            .vhtBasicMcs(\"none\")\n            .vhtSupportedMcs(\"mcs0-9,mcs0-7\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRates:\n    type: routeros:CapsmanRates\n    name: test_rates\n    properties:\n      name: test_rates\n      comment: test_rates\n      basics:\n        - 1Mbps\n        - 5.5Mbps\n        - 6Mbps\n        - 18Mbps\n        - 36Mbps\n        - 54Mbps\n      htBasicMcs:\n        - mcs-0\n        - mcs-7\n        - mcs-11\n        - mcs-14\n        - mcs-16\n        - mcs-21\n      htSupportedMcs:\n        - mcs-3\n        - mcs-8\n        - mcs-10\n        - mcs-13\n        - mcs-17\n        - mcs-18\n      supporteds:\n        - 2Mbps\n        - 11Mbps\n        - 9Mbps\n        - 12Mbps\n        - 24Mbps\n        - 48Mbps\n      vhtBasicMcs: none\n      vhtSupportedMcs: mcs0-9,mcs0-7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/caps-man/rates get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/capsmanRates:CapsmanRates test_rates \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/capsmanRates:CapsmanRates test_rates \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"basics":{"type":"array","items":{"type":"string"},"description":"List of basic rates. Client will connect to AP only if it supports all basic rates announced by the AP. AP will establish WDS link only if it supports all basic rates of the other AP."},"capsmanRatesId":{"type":"string"},"comment":{"type":"string"},"htBasicMcs":{"type":"array","items":{"type":"string"},"description":"Modulation and Coding Schemes that every connecting client must support. Refer to 802.11n for MCS specification."},"htSupportedMcs":{"type":"array","items":{"type":"string"},"description":"Modulation and Coding Schemes that this device advertises as supported. Refer to 802.11n for MCS specification."},"name":{"type":"string"},"supporteds":{"type":"array","items":{"type":"string"},"description":"List of supported rates. Two devices will communicate only using rates that are supported by both devices."},"vhtBasicMcs":{"type":"string","description":"Modulation and Coding Schemes that every connecting client must support. Refer to 802.11ac for MCS specification. You can set MCS interval for each of Spatial Stream\n  * none - will not use selected\n  * MCS 0-7 - client must support MCS-0 to MCS-7\n  * MCS 0-8 - client must support MCS-0 to MCS-8\n  * MCS 0-9 - client must support MCS-0 to MCS-9"},"vhtSupportedMcs":{"type":"string","description":"Modulation and Coding Schemes that this device advertises as supported. Refer to 802.11ac for MCS specification. You can set MCS interval for each of Spatial Stream\n  * none - will not use selected\n  * MCS 0-7 - devices will advertise as supported MCS-0 to MCS-7\n  * MCS 0-8 - devices will advertise as supported MCS-0 to MCS-8\n  * MCS 0-9 - devices will advertise as supported MCS-0 to MCS-9"}},"type":"object","required":["capsmanRatesId","htBasicMcs","htSupportedMcs","name","vhtBasicMcs","vhtSupportedMcs"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"basics":{"type":"array","items":{"type":"string"},"description":"List of basic rates. Client will connect to AP only if it supports all basic rates announced by the AP. AP will establish WDS link only if it supports all basic rates of the other AP."},"capsmanRatesId":{"type":"string"},"comment":{"type":"string"},"htBasicMcs":{"type":"array","items":{"type":"string"},"description":"Modulation and Coding Schemes that every connecting client must support. Refer to 802.11n for MCS specification."},"htSupportedMcs":{"type":"array","items":{"type":"string"},"description":"Modulation and Coding Schemes that this device advertises as supported. Refer to 802.11n for MCS specification."},"name":{"type":"string"},"supporteds":{"type":"array","items":{"type":"string"},"description":"List of supported rates. Two devices will communicate only using rates that are supported by both devices."},"vhtBasicMcs":{"type":"string","description":"Modulation and Coding Schemes that every connecting client must support. Refer to 802.11ac for MCS specification. You can set MCS interval for each of Spatial Stream\n  * none - will not use selected\n  * MCS 0-7 - client must support MCS-0 to MCS-7\n  * MCS 0-8 - client must support MCS-0 to MCS-8\n  * MCS 0-9 - client must support MCS-0 to MCS-9"},"vhtSupportedMcs":{"type":"string","description":"Modulation and Coding Schemes that this device advertises as supported. Refer to 802.11ac for MCS specification. You can set MCS interval for each of Spatial Stream\n  * none - will not use selected\n  * MCS 0-7 - devices will advertise as supported MCS-0 to MCS-7\n  * MCS 0-8 - devices will advertise as supported MCS-0 to MCS-8\n  * MCS 0-9 - devices will advertise as supported MCS-0 to MCS-9"}},"stateInputs":{"description":"Input properties used for looking up and filtering CapsmanRates resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"basics":{"type":"array","items":{"type":"string"},"description":"List of basic rates. Client will connect to AP only if it supports all basic rates announced by the AP. AP will establish WDS link only if it supports all basic rates of the other AP."},"capsmanRatesId":{"type":"string"},"comment":{"type":"string"},"htBasicMcs":{"type":"array","items":{"type":"string"},"description":"Modulation and Coding Schemes that every connecting client must support. Refer to 802.11n for MCS specification."},"htSupportedMcs":{"type":"array","items":{"type":"string"},"description":"Modulation and Coding Schemes that this device advertises as supported. Refer to 802.11n for MCS specification."},"name":{"type":"string"},"supporteds":{"type":"array","items":{"type":"string"},"description":"List of supported rates. Two devices will communicate only using rates that are supported by both devices."},"vhtBasicMcs":{"type":"string","description":"Modulation and Coding Schemes that every connecting client must support. Refer to 802.11ac for MCS specification. You can set MCS interval for each of Spatial Stream\n  * none - will not use selected\n  * MCS 0-7 - client must support MCS-0 to MCS-7\n  * MCS 0-8 - client must support MCS-0 to MCS-8\n  * MCS 0-9 - client must support MCS-0 to MCS-9"},"vhtSupportedMcs":{"type":"string","description":"Modulation and Coding Schemes that this device advertises as supported. Refer to 802.11ac for MCS specification. You can set MCS interval for each of Spatial Stream\n  * none - will not use selected\n  * MCS 0-7 - devices will advertise as supported MCS-0 to MCS-7\n  * MCS 0-8 - devices will advertise as supported MCS-0 to MCS-8\n  * MCS 0-9 - devices will advertise as supported MCS-0 to MCS-9"}},"type":"object"}},"routeros:index/capsmanSecurity:CapsmanSecurity":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testSecurity = new routeros.CapsmanSecurity(\"test_security\", {\n    name: \"test_security\",\n    comment: \"test_security\",\n    authenticationTypes: [\n        \"wpa-psk\",\n        \"wpa-eap\",\n        \"wpa2-psk\",\n    ],\n    disablePmkid: true,\n    eapMethods: \"eap-tls,passthrough\",\n    eapRadiusAccounting: true,\n    encryptions: [\n        \"tkip\",\n        \"aes-ccm\",\n    ],\n    groupEncryption: \"aes-ccm\",\n    groupKeyUpdate: \"1h\",\n    passphrase: \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE\",\n    tlsCertificate: \"none\",\n    tlsMode: \"verify-certificate\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_security = routeros.CapsmanSecurity(\"test_security\",\n    name=\"test_security\",\n    comment=\"test_security\",\n    authentication_types=[\n        \"wpa-psk\",\n        \"wpa-eap\",\n        \"wpa2-psk\",\n    ],\n    disable_pmkid=True,\n    eap_methods=\"eap-tls,passthrough\",\n    eap_radius_accounting=True,\n    encryptions=[\n        \"tkip\",\n        \"aes-ccm\",\n    ],\n    group_encryption=\"aes-ccm\",\n    group_key_update=\"1h\",\n    passphrase=\"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE\",\n    tls_certificate=\"none\",\n    tls_mode=\"verify-certificate\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testSecurity = new Routeros.CapsmanSecurity(\"test_security\", new()\n    {\n        Name = \"test_security\",\n        Comment = \"test_security\",\n        AuthenticationTypes = new[]\n        {\n            \"wpa-psk\",\n            \"wpa-eap\",\n            \"wpa2-psk\",\n        },\n        DisablePmkid = true,\n        EapMethods = \"eap-tls,passthrough\",\n        EapRadiusAccounting = true,\n        Encryptions = new[]\n        {\n            \"tkip\",\n            \"aes-ccm\",\n        },\n        GroupEncryption = \"aes-ccm\",\n        GroupKeyUpdate = \"1h\",\n        Passphrase = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE\",\n        TlsCertificate = \"none\",\n        TlsMode = \"verify-certificate\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewCapsmanSecurity(ctx, \"test_security\", \u0026routeros.CapsmanSecurityArgs{\n\t\t\tName:    pulumi.String(\"test_security\"),\n\t\t\tComment: pulumi.String(\"test_security\"),\n\t\t\tAuthenticationTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"wpa-psk\"),\n\t\t\t\tpulumi.String(\"wpa-eap\"),\n\t\t\t\tpulumi.String(\"wpa2-psk\"),\n\t\t\t},\n\t\t\tDisablePmkid:        pulumi.Bool(true),\n\t\t\tEapMethods:          pulumi.String(\"eap-tls,passthrough\"),\n\t\t\tEapRadiusAccounting: pulumi.Bool(true),\n\t\t\tEncryptions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tkip\"),\n\t\t\t\tpulumi.String(\"aes-ccm\"),\n\t\t\t},\n\t\t\tGroupEncryption: pulumi.String(\"aes-ccm\"),\n\t\t\tGroupKeyUpdate:  pulumi.String(\"1h\"),\n\t\t\tPassphrase:      pulumi.String(\"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE\"),\n\t\t\tTlsCertificate:  pulumi.String(\"none\"),\n\t\t\tTlsMode:         pulumi.String(\"verify-certificate\"),\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.routeros.CapsmanSecurity;\nimport com.pulumi.routeros.CapsmanSecurityArgs;\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 testSecurity = new CapsmanSecurity(\"testSecurity\", CapsmanSecurityArgs.builder()\n            .name(\"test_security\")\n            .comment(\"test_security\")\n            .authenticationTypes(            \n                \"wpa-psk\",\n                \"wpa-eap\",\n                \"wpa2-psk\")\n            .disablePmkid(true)\n            .eapMethods(\"eap-tls,passthrough\")\n            .eapRadiusAccounting(true)\n            .encryptions(            \n                \"tkip\",\n                \"aes-ccm\")\n            .groupEncryption(\"aes-ccm\")\n            .groupKeyUpdate(\"1h\")\n            .passphrase(\"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE\")\n            .tlsCertificate(\"none\")\n            .tlsMode(\"verify-certificate\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testSecurity:\n    type: routeros:CapsmanSecurity\n    name: test_security\n    properties:\n      name: test_security\n      comment: test_security\n      authenticationTypes:\n        - wpa-psk\n        - wpa-eap\n        - wpa2-psk\n      disablePmkid: true\n      eapMethods: eap-tls,passthrough\n      eapRadiusAccounting: true\n      encryptions:\n        - tkip\n        - aes-ccm\n      groupEncryption: aes-ccm\n      groupKeyUpdate: 1h\n      passphrase: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE\n      tlsCertificate: none\n      tlsMode: verify-certificate\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/caps-man/security get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/capsmanSecurity:CapsmanSecurity test_security \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/capsmanSecurity:CapsmanSecurity test_security \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authenticationTypes":{"type":"array","items":{"type":"string"},"description":"Specify the type of Authentication from wpa-psk, wpa2-psk, wpa-eap or wpa2-eap.\n"},"capsmanSecurityId":{"type":"string","description":"The ID of this resource.\n"},"comment":{"type":"string"},"disablePmkid":{"type":"boolean","description":"Whether to include PMKID into the EAPOL frame sent out by the Access Point. Disabling PMKID can cause compatibility issues with devices that use the PMKID to connect to an Access Point.\n"},"eapMethods":{"type":"string","description":"eap-tls - Use built-in EAP TLS authentication; passthrough - Access point will relay authentication process to the RADIUS server.\n"},"eapRadiusAccounting":{"type":"boolean","description":"Specifies if RADIUS traffic accounting should be used if RADIUS authentication gets done for this client\n"},"encryptions":{"type":"array","items":{"type":"string"},"description":"Set type of unicast encryption algorithm used.\n"},"groupEncryption":{"type":"string","description":"Access Point advertises one of these ciphers, multiple values can be selected. Access Point uses it to encrypt all broadcast and multicast frames. Client attempts connection only to Access Points that use one of the specified group ciphers.\n"},"groupKeyUpdate":{"type":"string","description":"Controls how often Access Point updates the group key. This key is used to encrypt all broadcast and multicast frames. property only has effect for Access Points. (30s..1h)\n"},"name":{"type":"string"},"passphrase":{"type":"string","description":"WPA or WPA2 pre-shared key.\n","secret":true},"tlsCertificate":{"type":"string","description":"Access Point always needs a certificate when security.tls-mode is set to value other than no-certificates.\n"},"tlsMode":{"type":"string","description":"This property has effect only when security.eap-methods contains eap-tls.\n"}},"type":"object","required":["capsmanSecurityId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authenticationTypes":{"type":"array","items":{"type":"string"},"description":"Specify the type of Authentication from wpa-psk, wpa2-psk, wpa-eap or wpa2-eap.\n"},"capsmanSecurityId":{"type":"string","description":"The ID of this resource.\n"},"comment":{"type":"string"},"disablePmkid":{"type":"boolean","description":"Whether to include PMKID into the EAPOL frame sent out by the Access Point. Disabling PMKID can cause compatibility issues with devices that use the PMKID to connect to an Access Point.\n"},"eapMethods":{"type":"string","description":"eap-tls - Use built-in EAP TLS authentication; passthrough - Access point will relay authentication process to the RADIUS server.\n"},"eapRadiusAccounting":{"type":"boolean","description":"Specifies if RADIUS traffic accounting should be used if RADIUS authentication gets done for this client\n"},"encryptions":{"type":"array","items":{"type":"string"},"description":"Set type of unicast encryption algorithm used.\n"},"groupEncryption":{"type":"string","description":"Access Point advertises one of these ciphers, multiple values can be selected. Access Point uses it to encrypt all broadcast and multicast frames. Client attempts connection only to Access Points that use one of the specified group ciphers.\n"},"groupKeyUpdate":{"type":"string","description":"Controls how often Access Point updates the group key. This key is used to encrypt all broadcast and multicast frames. property only has effect for Access Points. (30s..1h)\n"},"name":{"type":"string"},"passphrase":{"type":"string","description":"WPA or WPA2 pre-shared key.\n","secret":true},"tlsCertificate":{"type":"string","description":"Access Point always needs a certificate when security.tls-mode is set to value other than no-certificates.\n"},"tlsMode":{"type":"string","description":"This property has effect only when security.eap-methods contains eap-tls.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering CapsmanSecurity resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authenticationTypes":{"type":"array","items":{"type":"string"},"description":"Specify the type of Authentication from wpa-psk, wpa2-psk, wpa-eap or wpa2-eap.\n"},"capsmanSecurityId":{"type":"string","description":"The ID of this resource.\n"},"comment":{"type":"string"},"disablePmkid":{"type":"boolean","description":"Whether to include PMKID into the EAPOL frame sent out by the Access Point. Disabling PMKID can cause compatibility issues with devices that use the PMKID to connect to an Access Point.\n"},"eapMethods":{"type":"string","description":"eap-tls - Use built-in EAP TLS authentication; passthrough - Access point will relay authentication process to the RADIUS server.\n"},"eapRadiusAccounting":{"type":"boolean","description":"Specifies if RADIUS traffic accounting should be used if RADIUS authentication gets done for this client\n"},"encryptions":{"type":"array","items":{"type":"string"},"description":"Set type of unicast encryption algorithm used.\n"},"groupEncryption":{"type":"string","description":"Access Point advertises one of these ciphers, multiple values can be selected. Access Point uses it to encrypt all broadcast and multicast frames. Client attempts connection only to Access Points that use one of the specified group ciphers.\n"},"groupKeyUpdate":{"type":"string","description":"Controls how often Access Point updates the group key. This key is used to encrypt all broadcast and multicast frames. property only has effect for Access Points. (30s..1h)\n"},"name":{"type":"string"},"passphrase":{"type":"string","description":"WPA or WPA2 pre-shared key.\n","secret":true},"tlsCertificate":{"type":"string","description":"Access Point always needs a certificate when security.tls-mode is set to value other than no-certificates.\n"},"tlsMode":{"type":"string","description":"This property has effect only when security.eap-methods contains eap-tls.\n"}},"type":"object"}},"routeros:index/certificateScepServer:CertificateScepServer":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.CertificateScepServer \" pulumi-lang-dotnet=\" routeros.CertificateScepServer \" pulumi-lang-go=\" CertificateScepServer \" pulumi-lang-python=\" CertificateScepServer \" pulumi-lang-yaml=\" routeros.CertificateScepServer \" pulumi-lang-java=\" routeros.CertificateScepServer \"\u003e routeros.CertificateScepServer \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.SystemCertificateScepServer\n\" pulumi-lang-dotnet=\" routeros.SystemCertificateScepServer\n\" pulumi-lang-go=\" SystemCertificateScepServer\n\" pulumi-lang-python=\" SystemCertificateScepServer\n\" pulumi-lang-yaml=\" routeros.SystemCertificateScepServer\n\" pulumi-lang-java=\" routeros.SystemCertificateScepServer\n\"\u003e routeros.SystemCertificateScepServer\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"caCert":{"type":"string","description":"Name of the CA certificate to use."},"certificateScepServerId":{"type":"string"},"daysValid":{"type":"number","description":"The number of days to sign certificates for."},"disabled":{"type":"boolean"},"nextCaCert":{"type":"string","description":"Name of the next CA certificate or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e."},"path":{"type":"string","description":"HTTP path starting with `/scep/`."},"requestLifetime":{"type":"string","description":"Request lifetime (5m minimum)."}},"type":"object","required":["caCert","certificateScepServerId","path"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"caCert":{"type":"string","description":"Name of the CA certificate to use."},"certificateScepServerId":{"type":"string"},"daysValid":{"type":"number","description":"The number of days to sign certificates for."},"disabled":{"type":"boolean"},"nextCaCert":{"type":"string","description":"Name of the next CA certificate or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e."},"path":{"type":"string","description":"HTTP path starting with `/scep/`."},"requestLifetime":{"type":"string","description":"Request lifetime (5m minimum)."}},"requiredInputs":["caCert","path"],"stateInputs":{"description":"Input properties used for looking up and filtering CertificateScepServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"caCert":{"type":"string","description":"Name of the CA certificate to use."},"certificateScepServerId":{"type":"string"},"daysValid":{"type":"number","description":"The number of days to sign certificates for."},"disabled":{"type":"boolean"},"nextCaCert":{"type":"string","description":"Name of the next CA certificate or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e."},"path":{"type":"string","description":"HTTP path starting with `/scep/`."},"requestLifetime":{"type":"string","description":"Request lifetime (5m minimum)."}},"type":"object"}},"routeros:index/container:Container":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst busybox = new routeros.Container(\"busybox\", {\n    remoteImage: \"library/busybox:1.35.0\",\n    cmd: \"/bin/httpd -f -p 8080\",\n    \"interface\": busyboxRouterosInterfaceVeth.name,\n    logging: true,\n    rootDir: \"/usb1-part1/containers/busybox/root\",\n    startOnBoot: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nbusybox = routeros.Container(\"busybox\",\n    remote_image=\"library/busybox:1.35.0\",\n    cmd=\"/bin/httpd -f -p 8080\",\n    interface=busybox_routeros_interface_veth[\"name\"],\n    logging=True,\n    root_dir=\"/usb1-part1/containers/busybox/root\",\n    start_on_boot=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var busybox = new Routeros.Container(\"busybox\", new()\n    {\n        RemoteImage = \"library/busybox:1.35.0\",\n        Cmd = \"/bin/httpd -f -p 8080\",\n        Interface = busyboxRouterosInterfaceVeth.Name,\n        Logging = true,\n        RootDir = \"/usb1-part1/containers/busybox/root\",\n        StartOnBoot = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewContainer(ctx, \"busybox\", \u0026routeros.ContainerArgs{\n\t\t\tRemoteImage: pulumi.String(\"library/busybox:1.35.0\"),\n\t\t\tCmd:         pulumi.String(\"/bin/httpd -f -p 8080\"),\n\t\t\tInterface:   pulumi.Any(busyboxRouterosInterfaceVeth.Name),\n\t\t\tLogging:     pulumi.Bool(true),\n\t\t\tRootDir:     pulumi.String(\"/usb1-part1/containers/busybox/root\"),\n\t\t\tStartOnBoot: 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.routeros.Container;\nimport com.pulumi.routeros.ContainerArgs;\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 busybox = new Container(\"busybox\", ContainerArgs.builder()\n            .remoteImage(\"library/busybox:1.35.0\")\n            .cmd(\"/bin/httpd -f -p 8080\")\n            .interface_(busyboxRouterosInterfaceVeth.name())\n            .logging(true)\n            .rootDir(\"/usb1-part1/containers/busybox/root\")\n            .startOnBoot(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  busybox:\n    type: routeros:Container\n    properties:\n      remoteImage: library/busybox:1.35.0\n      cmd: /bin/httpd -f -p 8080\n      interface: ${busyboxRouterosInterfaceVeth.name}\n      logging: true\n      rootDir: /usb1-part1/containers/busybox/root\n      startOnBoot: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/container get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/container:Container busybox \"*1\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arch":{"type":"string","description":"The architecture of the container image\n"},"autoRestartInterval":{"type":"string","description":"Specify an interval at which Container will be restarted on Container failure.\n"},"checkCertificate":{"type":"boolean","description":"Enables trust chain validation from local certificate store.\n"},"cmd":{"type":"string","description":"The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable, or they can omit the executable, in which case you must specify an ENTRYPOINT instruction as well.\n"},"comment":{"type":"string"},"containerId":{"type":"string","description":"The ID of this resource.\n"},"devices":{"type":"array","items":{"type":"string"},"description":"Passes through physical device to the container.\n"},"dns":{"type":"string","description":"Set custom DNS servers\n"},"domainName":{"type":"string","description":"Container NIS domain name\n"},"entrypoint":{"type":"string","description":"An ENTRYPOINT allows to specify executable to run when starting container. Example: /bin/sh\n"},"envlist":{"type":"string","description":"list of environmental variables (configured under /container envs ) to be used with container\n"},"file":{"type":"string","description":"container *tar.gz tarball if the container is imported from a file\n"},"hostname":{"type":"string","description":"Container host name\n"},"interface":{"type":"string","description":"veth interface to be used with the container\n"},"logging":{"type":"boolean","description":"if set to yes, all container-generated output will be shown in the RouterOS log\n"},"memoryHigh":{"type":"string","description":"RAM usage limit in bytes for a specific container (string value).\n"},"mounts":{"type":"array","items":{"type":"string"},"description":"Mounts from /container/mounts/ sub-menu to be used with this container\n"},"name":{"type":"string","description":"Assign a name to the container\n"},"os":{"type":"string","description":"The OS of the container image\n"},"remoteImage":{"type":"string","description":"The container image name to be installed if an external registry is used (configured under /container/config set registry-url=...)\n"},"rootDir":{"type":"string","description":"Used to save container store outside main memory\n"},"running":{"type":"boolean","description":"Container state.\n"},"startOnBoot":{"type":"boolean","description":"Start the container on boot\n"},"status":{"type":"string","description":"The status of the container\n"},"stopSignal":{"type":"string","description":"Signal to stop the container.\n"},"tag":{"type":"string","description":"The tag of the container image\n"},"timeouts":{"$ref":"#/types/routeros:index%2FContainerTimeouts:ContainerTimeouts"},"user":{"type":"string","description":"Sets the username used\n"},"workdir":{"type":"string","description":"The working directory for cmd entrypoint\n"}},"type":"object","required":["arch","containerId","interface","name","os","status","tag","workdir"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoRestartInterval":{"type":"string","description":"Specify an interval at which Container will be restarted on Container failure.\n"},"checkCertificate":{"type":"boolean","description":"Enables trust chain validation from local certificate store.\n"},"cmd":{"type":"string","description":"The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable, or they can omit the executable, in which case you must specify an ENTRYPOINT instruction as well.\n"},"comment":{"type":"string"},"containerId":{"type":"string","description":"The ID of this resource.\n"},"devices":{"type":"array","items":{"type":"string"},"description":"Passes through physical device to the container.\n"},"dns":{"type":"string","description":"Set custom DNS servers\n"},"domainName":{"type":"string","description":"Container NIS domain name\n"},"entrypoint":{"type":"string","description":"An ENTRYPOINT allows to specify executable to run when starting container. Example: /bin/sh\n"},"envlist":{"type":"string","description":"list of environmental variables (configured under /container envs ) to be used with container\n"},"file":{"type":"string","description":"container *tar.gz tarball if the container is imported from a file\n"},"hostname":{"type":"string","description":"Container host name\n"},"interface":{"type":"string","description":"veth interface to be used with the container\n"},"logging":{"type":"boolean","description":"if set to yes, all container-generated output will be shown in the RouterOS log\n"},"memoryHigh":{"type":"string","description":"RAM usage limit in bytes for a specific container (string value).\n"},"mounts":{"type":"array","items":{"type":"string"},"description":"Mounts from /container/mounts/ sub-menu to be used with this container\n"},"remoteImage":{"type":"string","description":"The container image name to be installed if an external registry is used (configured under /container/config set registry-url=...)\n"},"rootDir":{"type":"string","description":"Used to save container store outside main memory\n"},"running":{"type":"boolean","description":"Container state.\n"},"startOnBoot":{"type":"boolean","description":"Start the container on boot\n"},"stopSignal":{"type":"string","description":"Signal to stop the container.\n"},"timeouts":{"$ref":"#/types/routeros:index%2FContainerTimeouts:ContainerTimeouts"},"user":{"type":"string","description":"Sets the username used\n"},"workdir":{"type":"string","description":"The working directory for cmd entrypoint\n"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering Container resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arch":{"type":"string","description":"The architecture of the container image\n"},"autoRestartInterval":{"type":"string","description":"Specify an interval at which Container will be restarted on Container failure.\n"},"checkCertificate":{"type":"boolean","description":"Enables trust chain validation from local certificate store.\n"},"cmd":{"type":"string","description":"The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable, or they can omit the executable, in which case you must specify an ENTRYPOINT instruction as well.\n"},"comment":{"type":"string"},"containerId":{"type":"string","description":"The ID of this resource.\n"},"devices":{"type":"array","items":{"type":"string"},"description":"Passes through physical device to the container.\n"},"dns":{"type":"string","description":"Set custom DNS servers\n"},"domainName":{"type":"string","description":"Container NIS domain name\n"},"entrypoint":{"type":"string","description":"An ENTRYPOINT allows to specify executable to run when starting container. Example: /bin/sh\n"},"envlist":{"type":"string","description":"list of environmental variables (configured under /container envs ) to be used with container\n"},"file":{"type":"string","description":"container *tar.gz tarball if the container is imported from a file\n"},"hostname":{"type":"string","description":"Container host name\n"},"interface":{"type":"string","description":"veth interface to be used with the container\n"},"logging":{"type":"boolean","description":"if set to yes, all container-generated output will be shown in the RouterOS log\n"},"memoryHigh":{"type":"string","description":"RAM usage limit in bytes for a specific container (string value).\n"},"mounts":{"type":"array","items":{"type":"string"},"description":"Mounts from /container/mounts/ sub-menu to be used with this container\n"},"name":{"type":"string","description":"Assign a name to the container\n"},"os":{"type":"string","description":"The OS of the container image\n"},"remoteImage":{"type":"string","description":"The container image name to be installed if an external registry is used (configured under /container/config set registry-url=...)\n"},"rootDir":{"type":"string","description":"Used to save container store outside main memory\n"},"running":{"type":"boolean","description":"Container state.\n"},"startOnBoot":{"type":"boolean","description":"Start the container on boot\n"},"status":{"type":"string","description":"The status of the container\n"},"stopSignal":{"type":"string","description":"Signal to stop the container.\n"},"tag":{"type":"string","description":"The tag of the container image\n"},"timeouts":{"$ref":"#/types/routeros:index%2FContainerTimeouts:ContainerTimeouts"},"user":{"type":"string","description":"Sets the username used\n"},"workdir":{"type":"string","description":"The working directory for cmd entrypoint\n"}},"type":"object"}},"routeros:index/containerConfig:ContainerConfig":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst config = new routeros.ContainerConfig(\"config\", {\n    registryUrl: \"https://registry-1.docker.io\",\n    ramHigh: \"0\",\n    tmpdir: \"/usb1-part1/containers/tmp\",\n    layerDir: \"/usb1-part1/containers/layers\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nconfig = routeros.ContainerConfig(\"config\",\n    registry_url=\"https://registry-1.docker.io\",\n    ram_high=\"0\",\n    tmpdir=\"/usb1-part1/containers/tmp\",\n    layer_dir=\"/usb1-part1/containers/layers\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Routeros.ContainerConfig(\"config\", new()\n    {\n        RegistryUrl = \"https://registry-1.docker.io\",\n        RamHigh = \"0\",\n        Tmpdir = \"/usb1-part1/containers/tmp\",\n        LayerDir = \"/usb1-part1/containers/layers\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewContainerConfig(ctx, \"config\", \u0026routeros.ContainerConfigArgs{\n\t\t\tRegistryUrl: pulumi.String(\"https://registry-1.docker.io\"),\n\t\t\tRamHigh:     pulumi.String(\"0\"),\n\t\t\tTmpdir:      pulumi.String(\"/usb1-part1/containers/tmp\"),\n\t\t\tLayerDir:    pulumi.String(\"/usb1-part1/containers/layers\"),\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.routeros.ContainerConfig;\nimport com.pulumi.routeros.ContainerConfigArgs;\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 config = new ContainerConfig(\"config\", ContainerConfigArgs.builder()\n            .registryUrl(\"https://registry-1.docker.io\")\n            .ramHigh(\"0\")\n            .tmpdir(\"/usb1-part1/containers/tmp\")\n            .layerDir(\"/usb1-part1/containers/layers\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  config:\n    type: routeros:ContainerConfig\n    properties:\n      registryUrl: https://registry-1.docker.io\n      ramHigh: '0'\n      tmpdir: /usb1-part1/containers/tmp\n      layerDir: /usb1-part1/containers/layers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/containerConfig:ContainerConfig config .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"containerConfigId":{"type":"string","description":"The ID of this resource.\n"},"layerDir":{"type":"string","description":"Container layers directory.\n"},"password":{"type":"string","description":"Specifies the password for authentication (starting from ROS 7.8)\n","secret":true},"ramHigh":{"type":"string","description":"RAM usage limit.\n"},"registryUrl":{"type":"string","description":"External registry url from where the container will be downloaded.\n"},"tmpdir":{"type":"string","description":"Container extraction directory.\n"},"username":{"type":"string","description":"Specifies the username for authentication (starting from ROS 7.8)\n"}},"type":"object","required":["containerConfigId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"containerConfigId":{"type":"string","description":"The ID of this resource.\n"},"layerDir":{"type":"string","description":"Container layers directory.\n"},"password":{"type":"string","description":"Specifies the password for authentication (starting from ROS 7.8)\n","secret":true},"ramHigh":{"type":"string","description":"RAM usage limit.\n"},"registryUrl":{"type":"string","description":"External registry url from where the container will be downloaded.\n"},"tmpdir":{"type":"string","description":"Container extraction directory.\n"},"username":{"type":"string","description":"Specifies the username for authentication (starting from ROS 7.8)\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ContainerConfig resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"containerConfigId":{"type":"string","description":"The ID of this resource.\n"},"layerDir":{"type":"string","description":"Container layers directory.\n"},"password":{"type":"string","description":"Specifies the password for authentication (starting from ROS 7.8)\n","secret":true},"ramHigh":{"type":"string","description":"RAM usage limit.\n"},"registryUrl":{"type":"string","description":"External registry url from where the container will be downloaded.\n"},"tmpdir":{"type":"string","description":"Container extraction directory.\n"},"username":{"type":"string","description":"Specifies the username for authentication (starting from ROS 7.8)\n"}},"type":"object"}},"routeros:index/containerEnvs:ContainerEnvs":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testEnvs = new routeros.ContainerEnvs(\"test_envs\", {\n    name: \"test_envs\",\n    key: \"TZ\",\n    value: \"UTC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_envs = routeros.ContainerEnvs(\"test_envs\",\n    name=\"test_envs\",\n    key=\"TZ\",\n    value=\"UTC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testEnvs = new Routeros.ContainerEnvs(\"test_envs\", new()\n    {\n        Name = \"test_envs\",\n        Key = \"TZ\",\n        Value = \"UTC\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewContainerEnvs(ctx, \"test_envs\", \u0026routeros.ContainerEnvsArgs{\n\t\t\tName:  pulumi.String(\"test_envs\"),\n\t\t\tKey:   pulumi.String(\"TZ\"),\n\t\t\tValue: pulumi.String(\"UTC\"),\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.routeros.ContainerEnvs;\nimport com.pulumi.routeros.ContainerEnvsArgs;\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 testEnvs = new ContainerEnvs(\"testEnvs\", ContainerEnvsArgs.builder()\n            .name(\"test_envs\")\n            .key(\"TZ\")\n            .value(\"UTC\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testEnvs:\n    type: routeros:ContainerEnvs\n    name: test_envs\n    properties:\n      name: test_envs\n      key: TZ\n      value: UTC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/container/envs get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/containerEnvs:ContainerEnvs test_envs \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/containerEnvs:ContainerEnvs test_envs \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"containerEnvsId":{"type":"string"},"key":{"type":"string","description":"Key of the environment variable.\n"},"name":{"type":"string","description":"Name of the environment variables list.\n"},"value":{"type":"string","description":"Value of the environment variable.\n"}},"type":"object","required":["containerEnvsId","key","name","value"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"containerEnvsId":{"type":"string"},"key":{"type":"string","description":"Key of the environment variable.\n"},"name":{"type":"string","description":"Name of the environment variables list.\n"},"value":{"type":"string","description":"Value of the environment variable.\n"}},"requiredInputs":["key","value"],"stateInputs":{"description":"Input properties used for looking up and filtering ContainerEnvs resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"containerEnvsId":{"type":"string"},"key":{"type":"string","description":"Key of the environment variable.\n"},"name":{"type":"string","description":"Name of the environment variables list.\n"},"value":{"type":"string","description":"Value of the environment variable.\n"}},"type":"object"}},"routeros:index/containerMounts:ContainerMounts":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst caddyfile = new routeros.ContainerMounts(\"caddyfile\", {\n    name: \"Caddyfile\",\n    src: \"/usb1-part1/containers/caddy/Caddyfile\",\n    dst: \"/etc/caddy/Caddyfile\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ncaddyfile = routeros.ContainerMounts(\"caddyfile\",\n    name=\"Caddyfile\",\n    src=\"/usb1-part1/containers/caddy/Caddyfile\",\n    dst=\"/etc/caddy/Caddyfile\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var caddyfile = new Routeros.ContainerMounts(\"caddyfile\", new()\n    {\n        Name = \"Caddyfile\",\n        Src = \"/usb1-part1/containers/caddy/Caddyfile\",\n        Dst = \"/etc/caddy/Caddyfile\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewContainerMounts(ctx, \"caddyfile\", \u0026routeros.ContainerMountsArgs{\n\t\t\tName: pulumi.String(\"Caddyfile\"),\n\t\t\tSrc:  pulumi.String(\"/usb1-part1/containers/caddy/Caddyfile\"),\n\t\t\tDst:  pulumi.String(\"/etc/caddy/Caddyfile\"),\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.routeros.ContainerMounts;\nimport com.pulumi.routeros.ContainerMountsArgs;\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 caddyfile = new ContainerMounts(\"caddyfile\", ContainerMountsArgs.builder()\n            .name(\"Caddyfile\")\n            .src(\"/usb1-part1/containers/caddy/Caddyfile\")\n            .dst(\"/etc/caddy/Caddyfile\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  caddyfile:\n    type: routeros:ContainerMounts\n    properties:\n      name: Caddyfile\n      src: /usb1-part1/containers/caddy/Caddyfile\n      dst: /etc/caddy/Caddyfile\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImport with the name of the container mount in case of the example use Caddyfile\n\n```sh\n$ pulumi import routeros:index/containerMounts:ContainerMounts caddyfile Caddyfile\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/containerMounts:ContainerMounts caddyfile \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"containerMountsId":{"type":"string"},"dst":{"type":"string","description":"Specifies destination path of the mount, which points to defined location in container\n"},"name":{"type":"string","description":"Name of the mount.\n"},"src":{"type":"string","description":"Specifies source path of the mount, which points to a RouterOS location\n"}},"type":"object","required":["containerMountsId","dst","name","src"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"containerMountsId":{"type":"string"},"dst":{"type":"string","description":"Specifies destination path of the mount, which points to defined location in container\n"},"name":{"type":"string","description":"Name of the mount.\n"},"src":{"type":"string","description":"Specifies source path of the mount, which points to a RouterOS location\n"}},"requiredInputs":["dst","src"],"stateInputs":{"description":"Input properties used for looking up and filtering ContainerMounts resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"containerMountsId":{"type":"string"},"dst":{"type":"string","description":"Specifies destination path of the mount, which points to defined location in container\n"},"name":{"type":"string","description":"Name of the mount.\n"},"src":{"type":"string","description":"Specifies source path of the mount, which points to a RouterOS location\n"}},"type":"object"}},"routeros:index/dhcpClient:DhcpClient":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.DhcpClient \" pulumi-lang-dotnet=\" routeros.DhcpClient \" pulumi-lang-go=\" DhcpClient \" pulumi-lang-python=\" DhcpClient \" pulumi-lang-yaml=\" routeros.DhcpClient \" pulumi-lang-java=\" routeros.DhcpClient \"\u003e routeros.DhcpClient \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.IpDhcpClient\n\" pulumi-lang-dotnet=\" routeros.IpDhcpClient\n\" pulumi-lang-go=\" IpDhcpClient\n\" pulumi-lang-python=\" IpDhcpClient\n\" pulumi-lang-yaml=\" routeros.IpDhcpClient\n\" pulumi-lang-java=\" routeros.IpDhcpClient\n\"\u003e routeros.IpDhcpClient\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"string","description":"Whether to install default route in routing table received from DHCP server."},"address":{"type":"string","description":"IP address and netmask, which is assigned to DHCP Client from the Server."},"allowReconfigure":{"type":"boolean"},"checkGateway":{"type":"string","description":"Method on how to check gateway reachability."},"comment":{"type":"string"},"defaultRouteDistance":{"type":"number","description":"Distance of default route. Applicable if add-default-route is set to yes."},"defaultRouteTables":{"type":"array","items":{"type":"string"},"description":"Default route tables."},"dhcpClientId":{"type":"string"},"dhcpOptions":{"type":"string","description":"Options that are sent to the DHCP server."},"dhcpServer":{"type":"string","description":"The IP address of the DHCP server."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Sets the DSCP (Differentiated Services Code Point) value for outgoing DHCP client packets. This value is part of the IP header and is used to indicate the desired Quality of Service (QoS) level for network traffic."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"expiresAfter":{"type":"string","description":"A time when the lease expires (specified by the DHCP server)."},"gateway":{"type":"string","description":"The IP address of the gateway which is assigned by DHCP server."},"interface":{"type":"string","description":"Name of the interface."},"invalid":{"type":"boolean"},"primaryDns":{"type":"string","description":"The IP address of the first DNS resolver, that was assigned by the DHCP server."},"primaryNtp":{"type":"string","description":"The IP address of the primary NTP server, assigned by the DHCP server."},"script":{"type":"string","description":"A script."},"secondaryDns":{"type":"string","description":"The IP address of the second DNS resolver, assigned by the DHCP server."},"secondaryNtp":{"type":"string","description":"The IP address of the secondary NTP server, assigned by the DHCP server."},"status":{"type":"string"},"useBroadcast":{"type":"string","description":"Whether to set broadcast bit in DHCPDISCOVER and DHCPREQUEST messages.\n    -  \u003cspan pulumi-lang-nodejs=\"`always`\" pulumi-lang-dotnet=\"`Always`\" pulumi-lang-go=\"`always`\" pulumi-lang-python=\"`always`\" pulumi-lang-yaml=\"`always`\" pulumi-lang-java=\"`always`\"\u003e`always`\u003c/span\u003e - broadcast bit is set always\n    -  \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e - broadcast bit is set only first 15 seconds\n    -  \u003cspan pulumi-lang-nodejs=\"`never`\" pulumi-lang-dotnet=\"`Never`\" pulumi-lang-go=\"`never`\" pulumi-lang-python=\"`never`\" pulumi-lang-yaml=\"`never`\" pulumi-lang-java=\"`never`\"\u003e`never`\u003c/span\u003e - broadcast bit is not set"},"usePeerDns":{"type":"boolean","description":"Whether to accept the DNS settings advertised by DHCP Server (will override the settings put in the /ip dns submenu)."},"usePeerNtp":{"type":"boolean","description":"Whether to accept the NTP settings advertised by DHCP Server (will override the settings put in the /system ntp client submenu)."},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure messages to clients, prompting them to renew or update their configuration without waiting for their lease to expire."},"vlanPriority":{"type":"number","description":"If the DHCP client is running on a VLAN interface (`/interface/vlan`), you can specify the Priority Code Point (PCP) value. PCP is a 3-bit field in the VLAN header used to mark the priority of packets within a VLAN, allowing traffic to be prioritized accordingly. This setting applies only to VLAN interfaces and affects the priority of outgoing DHCP client packets."}},"type":"object","required":["addDefaultRoute","address","dhcpClientId","dhcpServer","dynamic","expiresAfter","gateway","interface","invalid","primaryDns","primaryNtp","secondaryDns","secondaryNtp","status"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"string","description":"Whether to install default route in routing table received from DHCP server."},"allowReconfigure":{"type":"boolean"},"checkGateway":{"type":"string","description":"Method on how to check gateway reachability."},"comment":{"type":"string"},"defaultRouteDistance":{"type":"number","description":"Distance of default route. Applicable if add-default-route is set to yes."},"defaultRouteTables":{"type":"array","items":{"type":"string"},"description":"Default route tables."},"dhcpClientId":{"type":"string"},"dhcpOptions":{"type":"string","description":"Options that are sent to the DHCP server."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Sets the DSCP (Differentiated Services Code Point) value for outgoing DHCP client packets. This value is part of the IP header and is used to indicate the desired Quality of Service (QoS) level for network traffic."},"interface":{"type":"string","description":"Name of the interface."},"script":{"type":"string","description":"A script."},"useBroadcast":{"type":"string","description":"Whether to set broadcast bit in DHCPDISCOVER and DHCPREQUEST messages.\n    -  \u003cspan pulumi-lang-nodejs=\"`always`\" pulumi-lang-dotnet=\"`Always`\" pulumi-lang-go=\"`always`\" pulumi-lang-python=\"`always`\" pulumi-lang-yaml=\"`always`\" pulumi-lang-java=\"`always`\"\u003e`always`\u003c/span\u003e - broadcast bit is set always\n    -  \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e - broadcast bit is set only first 15 seconds\n    -  \u003cspan pulumi-lang-nodejs=\"`never`\" pulumi-lang-dotnet=\"`Never`\" pulumi-lang-go=\"`never`\" pulumi-lang-python=\"`never`\" pulumi-lang-yaml=\"`never`\" pulumi-lang-java=\"`never`\"\u003e`never`\u003c/span\u003e - broadcast bit is not set"},"usePeerDns":{"type":"boolean","description":"Whether to accept the DNS settings advertised by DHCP Server (will override the settings put in the /ip dns submenu)."},"usePeerNtp":{"type":"boolean","description":"Whether to accept the NTP settings advertised by DHCP Server (will override the settings put in the /system ntp client submenu)."},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure messages to clients, prompting them to renew or update their configuration without waiting for their lease to expire."},"vlanPriority":{"type":"number","description":"If the DHCP client is running on a VLAN interface (`/interface/vlan`), you can specify the Priority Code Point (PCP) value. PCP is a 3-bit field in the VLAN header used to mark the priority of packets within a VLAN, allowing traffic to be prioritized accordingly. This setting applies only to VLAN interfaces and affects the priority of outgoing DHCP client packets."}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering DhcpClient resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"string","description":"Whether to install default route in routing table received from DHCP server."},"address":{"type":"string","description":"IP address and netmask, which is assigned to DHCP Client from the Server."},"allowReconfigure":{"type":"boolean"},"checkGateway":{"type":"string","description":"Method on how to check gateway reachability."},"comment":{"type":"string"},"defaultRouteDistance":{"type":"number","description":"Distance of default route. Applicable if add-default-route is set to yes."},"defaultRouteTables":{"type":"array","items":{"type":"string"},"description":"Default route tables."},"dhcpClientId":{"type":"string"},"dhcpOptions":{"type":"string","description":"Options that are sent to the DHCP server."},"dhcpServer":{"type":"string","description":"The IP address of the DHCP server."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Sets the DSCP (Differentiated Services Code Point) value for outgoing DHCP client packets. This value is part of the IP header and is used to indicate the desired Quality of Service (QoS) level for network traffic."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"expiresAfter":{"type":"string","description":"A time when the lease expires (specified by the DHCP server)."},"gateway":{"type":"string","description":"The IP address of the gateway which is assigned by DHCP server."},"interface":{"type":"string","description":"Name of the interface."},"invalid":{"type":"boolean"},"primaryDns":{"type":"string","description":"The IP address of the first DNS resolver, that was assigned by the DHCP server."},"primaryNtp":{"type":"string","description":"The IP address of the primary NTP server, assigned by the DHCP server."},"script":{"type":"string","description":"A script."},"secondaryDns":{"type":"string","description":"The IP address of the second DNS resolver, assigned by the DHCP server."},"secondaryNtp":{"type":"string","description":"The IP address of the secondary NTP server, assigned by the DHCP server."},"status":{"type":"string"},"useBroadcast":{"type":"string","description":"Whether to set broadcast bit in DHCPDISCOVER and DHCPREQUEST messages.\n    -  \u003cspan pulumi-lang-nodejs=\"`always`\" pulumi-lang-dotnet=\"`Always`\" pulumi-lang-go=\"`always`\" pulumi-lang-python=\"`always`\" pulumi-lang-yaml=\"`always`\" pulumi-lang-java=\"`always`\"\u003e`always`\u003c/span\u003e - broadcast bit is set always\n    -  \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e - broadcast bit is set only first 15 seconds\n    -  \u003cspan pulumi-lang-nodejs=\"`never`\" pulumi-lang-dotnet=\"`Never`\" pulumi-lang-go=\"`never`\" pulumi-lang-python=\"`never`\" pulumi-lang-yaml=\"`never`\" pulumi-lang-java=\"`never`\"\u003e`never`\u003c/span\u003e - broadcast bit is not set"},"usePeerDns":{"type":"boolean","description":"Whether to accept the DNS settings advertised by DHCP Server (will override the settings put in the /ip dns submenu)."},"usePeerNtp":{"type":"boolean","description":"Whether to accept the NTP settings advertised by DHCP Server (will override the settings put in the /system ntp client submenu)."},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure messages to clients, prompting them to renew or update their configuration without waiting for their lease to expire."},"vlanPriority":{"type":"number","description":"If the DHCP client is running on a VLAN interface (`/interface/vlan`), you can specify the Priority Code Point (PCP) value. PCP is a 3-bit field in the VLAN header used to mark the priority of packets within a VLAN, allowing traffic to be prioritized accordingly. This setting applies only to VLAN interfaces and affects the priority of outgoing DHCP client packets."}},"type":"object"}},"routeros:index/dhcpClientOption:DhcpClientOption":{"properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"The dhcp-client option code.\n"},"dhcpClientOptionId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name that will be used in dhcp-client.\n"},"rawValue":{"type":"string","description":"raw_value is computed from value.\n"},"value":{"type":"string","description":"The dhcp-client option\n"}},"type":"object","required":["code","dhcpClientOptionId","name","rawValue"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"The dhcp-client option code.\n"},"dhcpClientOptionId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name that will be used in dhcp-client.\n"},"rawValue":{"type":"string","description":"raw_value is computed from value.\n"},"value":{"type":"string","description":"The dhcp-client option\n"}},"requiredInputs":["code"],"stateInputs":{"description":"Input properties used for looking up and filtering DhcpClientOption resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"The dhcp-client option code.\n"},"dhcpClientOptionId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name that will be used in dhcp-client.\n"},"rawValue":{"type":"string","description":"raw_value is computed from value.\n"},"value":{"type":"string","description":"The dhcp-client option\n"}},"type":"object"}},"routeros:index/dhcpServer:DhcpServer":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.DhcpServer \" pulumi-lang-dotnet=\" routeros.DhcpServer \" pulumi-lang-go=\" DhcpServer \" pulumi-lang-python=\" DhcpServer \" pulumi-lang-yaml=\" routeros.DhcpServer \" pulumi-lang-java=\" routeros.DhcpServer \"\u003e routeros.DhcpServer \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.IpDhcpServer\n\" pulumi-lang-dotnet=\" routeros.IpDhcpServer\n\" pulumi-lang-go=\" IpDhcpServer\n\" pulumi-lang-python=\" IpDhcpServer\n\" pulumi-lang-yaml=\" routeros.IpDhcpServer\n\" pulumi-lang-java=\" routeros.IpDhcpServer\n\"\u003e routeros.IpDhcpServer\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addArp":{"type":"boolean","description":"Whether to add dynamic ARP entry."},"addressLists":{"type":"array","items":{"type":"string"},"description":"Address list to which address will be added if lease is bound."},"addressPool":{"type":"string","description":"IP pool, from which to take IP addresses for the clients. If set to static-only, then only the clients that have a static lease (added in lease submenu) will be allowed."},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, uses the MAC address and DUID for identification. Requires IPv6 DHCP Server to have this option enabled as well to work properly."},"alwaysBroadcast":{"type":"boolean","description":"Always send replies as broadcasts even if destination IP is known."},"authoritative":{"type":"string","description":"Option changes the way how a server responds to DHCP requests."},"bootpLeaseTime":{"type":"string","description":"Accepts two predefined options or time value: * forever - lease never expires * lease-time - use time from lease-time parameter"},"bootpSupport":{"type":"string","description":"Support for BOOTP clients."},"clientMacLimit":{"type":"number","description":"Specifies whether to limit specific number of clients per single MAC address."},"comment":{"type":"string"},"conflictDetection":{"type":"boolean","description":"Allows to disable/enable conflict detection. If option is enabled, then whenever server tries to assign a lease it will send ICMP and ARP messages to detect whether such address in the network already exist. If any of above get reply address is considered already used. Conflict detection must be disabled when any kind of DHCP client limitation per port or per mac is used."},"delayThreshold":{"type":"string","description":"If secs field in DHCP packet is smaller than delay-threshold, then this packet is ignored. If set to none - there is no threshold (all DHCP packets are processed)."},"dhcpOptionSet":{"type":"string","description":"Use custom set of DHCP options defined in option sets menu."},"dhcpServerId":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"dynamicLeaseIdentifiers":{"type":"string","description":"Dynamic lease identifier"},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set."},"interface":{"type":"string","description":"Name of the interface."},"invalid":{"type":"boolean"},"leaseScript":{"type":"string","description":"A script that will be executed after a lease is assigned or de-assigned."},"leaseTime":{"type":"string","description":"The time that a client may use the assigned address. The client will try to renew this address after half of this time and will request a new address after the time limit expires."},"name":{"type":"string"},"parentQueue":{"type":"string"},"relay":{"type":"string","description":"The IP address of the relay this DHCP server."},"srcAddress":{"type":"string","description":"The address which the DHCP client must send requests to in order to renew an IP address lease."},"supportBroadbandTr101":{"type":"boolean","description":"Support broadband TR101"},"useFramedAsClassless":{"type":"boolean","description":"Forward RADIUS Framed-Route as a DHCP Classless-Static-Route to DHCP-client."},"useRadius":{"type":"string","description":"Whether to use RADIUS server."},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure (forcerenew) messages to clients, prompting them to renew configuration without waiting for their lease to expire."}},"type":"object","required":["dhcpServerId","dynamic","interface","invalid","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addArp":{"type":"boolean","description":"Whether to add dynamic ARP entry."},"addressLists":{"type":"array","items":{"type":"string"},"description":"Address list to which address will be added if lease is bound."},"addressPool":{"type":"string","description":"IP pool, from which to take IP addresses for the clients. If set to static-only, then only the clients that have a static lease (added in lease submenu) will be allowed."},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, uses the MAC address and DUID for identification. Requires IPv6 DHCP Server to have this option enabled as well to work properly."},"alwaysBroadcast":{"type":"boolean","description":"Always send replies as broadcasts even if destination IP is known."},"authoritative":{"type":"string","description":"Option changes the way how a server responds to DHCP requests."},"bootpLeaseTime":{"type":"string","description":"Accepts two predefined options or time value: * forever - lease never expires * lease-time - use time from lease-time parameter"},"bootpSupport":{"type":"string","description":"Support for BOOTP clients."},"clientMacLimit":{"type":"number","description":"Specifies whether to limit specific number of clients per single MAC address."},"comment":{"type":"string"},"conflictDetection":{"type":"boolean","description":"Allows to disable/enable conflict detection. If option is enabled, then whenever server tries to assign a lease it will send ICMP and ARP messages to detect whether such address in the network already exist. If any of above get reply address is considered already used. Conflict detection must be disabled when any kind of DHCP client limitation per port or per mac is used."},"delayThreshold":{"type":"string","description":"If secs field in DHCP packet is smaller than delay-threshold, then this packet is ignored. If set to none - there is no threshold (all DHCP packets are processed)."},"dhcpOptionSet":{"type":"string","description":"Use custom set of DHCP options defined in option sets menu."},"dhcpServerId":{"type":"string"},"disabled":{"type":"boolean"},"dynamicLeaseIdentifiers":{"type":"string","description":"Dynamic lease identifier"},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set."},"interface":{"type":"string","description":"Name of the interface."},"leaseScript":{"type":"string","description":"A script that will be executed after a lease is assigned or de-assigned."},"leaseTime":{"type":"string","description":"The time that a client may use the assigned address. The client will try to renew this address after half of this time and will request a new address after the time limit expires."},"name":{"type":"string"},"parentQueue":{"type":"string"},"relay":{"type":"string","description":"The IP address of the relay this DHCP server."},"srcAddress":{"type":"string","description":"The address which the DHCP client must send requests to in order to renew an IP address lease."},"supportBroadbandTr101":{"type":"boolean","description":"Support broadband TR101"},"useFramedAsClassless":{"type":"boolean","description":"Forward RADIUS Framed-Route as a DHCP Classless-Static-Route to DHCP-client."},"useRadius":{"type":"string","description":"Whether to use RADIUS server."},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure (forcerenew) messages to clients, prompting them to renew configuration without waiting for their lease to expire."}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering DhcpServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addArp":{"type":"boolean","description":"Whether to add dynamic ARP entry."},"addressLists":{"type":"array","items":{"type":"string"},"description":"Address list to which address will be added if lease is bound."},"addressPool":{"type":"string","description":"IP pool, from which to take IP addresses for the clients. If set to static-only, then only the clients that have a static lease (added in lease submenu) will be allowed."},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, uses the MAC address and DUID for identification. Requires IPv6 DHCP Server to have this option enabled as well to work properly."},"alwaysBroadcast":{"type":"boolean","description":"Always send replies as broadcasts even if destination IP is known."},"authoritative":{"type":"string","description":"Option changes the way how a server responds to DHCP requests."},"bootpLeaseTime":{"type":"string","description":"Accepts two predefined options or time value: * forever - lease never expires * lease-time - use time from lease-time parameter"},"bootpSupport":{"type":"string","description":"Support for BOOTP clients."},"clientMacLimit":{"type":"number","description":"Specifies whether to limit specific number of clients per single MAC address."},"comment":{"type":"string"},"conflictDetection":{"type":"boolean","description":"Allows to disable/enable conflict detection. If option is enabled, then whenever server tries to assign a lease it will send ICMP and ARP messages to detect whether such address in the network already exist. If any of above get reply address is considered already used. Conflict detection must be disabled when any kind of DHCP client limitation per port or per mac is used."},"delayThreshold":{"type":"string","description":"If secs field in DHCP packet is smaller than delay-threshold, then this packet is ignored. If set to none - there is no threshold (all DHCP packets are processed)."},"dhcpOptionSet":{"type":"string","description":"Use custom set of DHCP options defined in option sets menu."},"dhcpServerId":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"dynamicLeaseIdentifiers":{"type":"string","description":"Dynamic lease identifier"},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set."},"interface":{"type":"string","description":"Name of the interface."},"invalid":{"type":"boolean"},"leaseScript":{"type":"string","description":"A script that will be executed after a lease is assigned or de-assigned."},"leaseTime":{"type":"string","description":"The time that a client may use the assigned address. The client will try to renew this address after half of this time and will request a new address after the time limit expires."},"name":{"type":"string"},"parentQueue":{"type":"string"},"relay":{"type":"string","description":"The IP address of the relay this DHCP server."},"srcAddress":{"type":"string","description":"The address which the DHCP client must send requests to in order to renew an IP address lease."},"supportBroadbandTr101":{"type":"boolean","description":"Support broadband TR101"},"useFramedAsClassless":{"type":"boolean","description":"Forward RADIUS Framed-Route as a DHCP Classless-Static-Route to DHCP-client."},"useRadius":{"type":"string","description":"Whether to use RADIUS server."},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure (forcerenew) messages to clients, prompting them to renew configuration without waiting for their lease to expire."}},"type":"object"}},"routeros:index/dhcpServerLease:DhcpServerLease":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.DhcpServerLease \" pulumi-lang-dotnet=\" routeros.DhcpServerLease \" pulumi-lang-go=\" DhcpServerLease \" pulumi-lang-python=\" DhcpServerLease \" pulumi-lang-yaml=\" routeros.DhcpServerLease \" pulumi-lang-java=\" routeros.DhcpServerLease \"\u003e routeros.DhcpServerLease \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.IpDhcpServerLease\n\" pulumi-lang-dotnet=\" routeros.IpDhcpServerLease\n\" pulumi-lang-go=\" IpDhcpServerLease\n\" pulumi-lang-python=\" IpDhcpServerLease\n\" pulumi-lang-yaml=\" routeros.IpDhcpServerLease\n\" pulumi-lang-java=\" routeros.IpDhcpServerLease\n\"\u003e routeros.IpDhcpServerLease\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"activeAddress":{"type":"string","description":"The IP address of the machine currently holding the DHCP lease."},"activeClientId":{"type":"string","description":"Actual client-id of the client."},"activeHostname":{"type":"string","description":"The hostname of the machine currently holding the DHCP lease."},"activeMacAddress":{"type":"string","description":"The MAC address of of the machine currently holding the DHCP lease."},"activeServer":{"type":"string","description":"Actual dhcp server, which serves this client."},"address":{"type":"string","description":"The IP address of the DHCP lease to be created."},"addressLists":{"type":"string","description":"Address list to which address will be added if lease is bound."},"agentCircuitId":{"type":"string","description":"Circuit ID of DHCP relay agent. If each character should be valid ASCII text symbol or else this value is displayed as hex dump."},"agentRemoteId":{"type":"string","description":"Remote ID, set by DHCP relay agent."},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, uses the MAC address and DUID for identification."},"alwaysBroadcast":{"type":"boolean","description":"Send all replies as broadcasts."},"blockAccess":{"type":"boolean","description":"Whether to block access for this DHCP client (true|false)."},"blocked":{"type":"boolean","description":"Whether the lease is blocked."},"classId":{"type":"string","description":"Class ID of the client. This option is available in RouterOS starting from version 7.16."},"clientId":{"type":"string","description":"If specified, must match DHCP 'client identifier' option of the request."},"comment":{"type":"string"},"dhcpOption":{"type":"string","description":"Add additional DHCP options."},"dhcpOptionSet":{"type":"string","description":"Add additional set of DHCP options."},"dhcpServerLeaseId":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Whether the dhcp lease is static or dynamic. Dynamic leases are not guaranteed to continue to be assigned to that specific device."},"expiresAfter":{"type":"string","description":"Time until lease expires."},"hostName":{"type":"string","description":"The hostname of the device"},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set."},"lastSeen":{"type":"string"},"leaseTime":{"type":"string","description":"Time that the client may use the address. If set to 0s lease will never expire."},"macAddress":{"type":"string","description":"The MAC addreess of the DHCP lease to be created."},"radius":{"type":"string","description":"Shows if this dynamic lease is authenticated by RADIUS or not."},"rateLimit":{"type":"string","description":"Adds a dynamic simple queue to limit IP's bandwidth to a specified rate. Requires the lease to be static."},"server":{"type":"string","description":"Server name which serves this client."},"srcMacAddress":{"type":"string","description":"Source MAC address."},"status":{"type":"string","description":"Lease status."},"useSrcMac":{"type":"boolean","description":"When this option is set server uses source MAC address instead of received CHADDR to assign address."}},"type":"object","required":["activeAddress","activeClientId","activeHostname","activeMacAddress","activeServer","address","agentCircuitId","agentRemoteId","blocked","classId","dhcpServerLeaseId","dynamic","expiresAfter","hostName","lastSeen","macAddress","radius","srcMacAddress","status"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The IP address of the DHCP lease to be created."},"addressLists":{"type":"string","description":"Address list to which address will be added if lease is bound."},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, uses the MAC address and DUID for identification."},"alwaysBroadcast":{"type":"boolean","description":"Send all replies as broadcasts."},"blockAccess":{"type":"boolean","description":"Whether to block access for this DHCP client (true|false)."},"clientId":{"type":"string","description":"If specified, must match DHCP 'client identifier' option of the request."},"comment":{"type":"string"},"dhcpOption":{"type":"string","description":"Add additional DHCP options."},"dhcpOptionSet":{"type":"string","description":"Add additional set of DHCP options."},"dhcpServerLeaseId":{"type":"string"},"disabled":{"type":"boolean"},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set."},"leaseTime":{"type":"string","description":"Time that the client may use the address. If set to 0s lease will never expire."},"macAddress":{"type":"string","description":"The MAC addreess of the DHCP lease to be created."},"rateLimit":{"type":"string","description":"Adds a dynamic simple queue to limit IP's bandwidth to a specified rate. Requires the lease to be static."},"server":{"type":"string","description":"Server name which serves this client."},"useSrcMac":{"type":"boolean","description":"When this option is set server uses source MAC address instead of received CHADDR to assign address."}},"requiredInputs":["address","macAddress"],"stateInputs":{"description":"Input properties used for looking up and filtering DhcpServerLease resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"activeAddress":{"type":"string","description":"The IP address of the machine currently holding the DHCP lease."},"activeClientId":{"type":"string","description":"Actual client-id of the client."},"activeHostname":{"type":"string","description":"The hostname of the machine currently holding the DHCP lease."},"activeMacAddress":{"type":"string","description":"The MAC address of of the machine currently holding the DHCP lease."},"activeServer":{"type":"string","description":"Actual dhcp server, which serves this client."},"address":{"type":"string","description":"The IP address of the DHCP lease to be created."},"addressLists":{"type":"string","description":"Address list to which address will be added if lease is bound."},"agentCircuitId":{"type":"string","description":"Circuit ID of DHCP relay agent. If each character should be valid ASCII text symbol or else this value is displayed as hex dump."},"agentRemoteId":{"type":"string","description":"Remote ID, set by DHCP relay agent."},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, uses the MAC address and DUID for identification."},"alwaysBroadcast":{"type":"boolean","description":"Send all replies as broadcasts."},"blockAccess":{"type":"boolean","description":"Whether to block access for this DHCP client (true|false)."},"blocked":{"type":"boolean","description":"Whether the lease is blocked."},"classId":{"type":"string","description":"Class ID of the client. This option is available in RouterOS starting from version 7.16."},"clientId":{"type":"string","description":"If specified, must match DHCP 'client identifier' option of the request."},"comment":{"type":"string"},"dhcpOption":{"type":"string","description":"Add additional DHCP options."},"dhcpOptionSet":{"type":"string","description":"Add additional set of DHCP options."},"dhcpServerLeaseId":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Whether the dhcp lease is static or dynamic. Dynamic leases are not guaranteed to continue to be assigned to that specific device."},"expiresAfter":{"type":"string","description":"Time until lease expires."},"hostName":{"type":"string","description":"The hostname of the device"},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set."},"lastSeen":{"type":"string"},"leaseTime":{"type":"string","description":"Time that the client may use the address. If set to 0s lease will never expire."},"macAddress":{"type":"string","description":"The MAC addreess of the DHCP lease to be created."},"radius":{"type":"string","description":"Shows if this dynamic lease is authenticated by RADIUS or not."},"rateLimit":{"type":"string","description":"Adds a dynamic simple queue to limit IP's bandwidth to a specified rate. Requires the lease to be static."},"server":{"type":"string","description":"Server name which serves this client."},"srcMacAddress":{"type":"string","description":"Source MAC address."},"status":{"type":"string","description":"Lease status."},"useSrcMac":{"type":"boolean","description":"When this option is set server uses source MAC address instead of received CHADDR to assign address."}},"type":"object"}},"routeros:index/dhcpServerNetwork:DhcpServerNetwork":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.DhcpServerNetwork \" pulumi-lang-dotnet=\" routeros.DhcpServerNetwork \" pulumi-lang-go=\" DhcpServerNetwork \" pulumi-lang-python=\" DhcpServerNetwork \" pulumi-lang-yaml=\" routeros.DhcpServerNetwork \" pulumi-lang-java=\" routeros.DhcpServerNetwork \"\u003e routeros.DhcpServerNetwork \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.IpDhcpServerNetwork\n\" pulumi-lang-dotnet=\" routeros.IpDhcpServerNetwork\n\" pulumi-lang-go=\" IpDhcpServerNetwork\n\" pulumi-lang-python=\" IpDhcpServerNetwork\n\" pulumi-lang-yaml=\" routeros.IpDhcpServerNetwork\n\" pulumi-lang-java=\" routeros.IpDhcpServerNetwork\n\"\u003e routeros.IpDhcpServerNetwork\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The network DHCP server(s) will lease addresses from."},"bootFileName":{"type":"string","description":"Boot filename."},"capsManagers":{"type":"array","items":{"type":"string"},"description":"A list of IP addresses for one or more CAPsMAN system managers. DHCP Option 138 (capwap) will be used."},"comment":{"type":"string"},"dhcpOptionSet":{"type":"string","description":"Add an additional set of DHCP options."},"dhcpOptions":{"type":"array","items":{"type":"string"},"description":"Add additional DHCP options from the option list."},"dhcpServerNetworkId":{"type":"string"},"dnsNone":{"type":"boolean","description":"If set, then DHCP Server will not pass dynamic DNS servers configured on the router to the DHCP clients if no DNS Server in DNS-server is set."},"dnsServers":{"type":"array","items":{"type":"string"},"description":"The DHCP client will use these as the default DNS servers. Two DNS servers can be specified to be used by the DHCP client as primary and secondary DNS servers."},"domain":{"type":"string","description":"The DHCP client will use this as the 'DNS domain' setting for the network adapter."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"gateway":{"type":"string","description":"The default gateway to be used by DHCP Client."},"netmask":{"type":"number","description":"The actual network mask is to be used by the DHCP client. If set to '0' - netmask from network address will be used."},"nextServer":{"type":"string","description":"The IP address of the next server to use in bootstrap."},"ntpNone":{"type":"boolean","description":"If set, then DHCP Server will not pass NTP servers configured on the router to the DHCP clients."},"ntpServers":{"type":"array","items":{"type":"string"},"description":"The DHCP client will use these as the default NTP servers. Two NTP servers can be specified to be used by the DHCP client as primary and secondary NTP servers"},"winsServers":{"type":"array","items":{"type":"string"},"description":"The Windows DHCP client will use these as the default WINS servers. Two WINS servers can be specified to be used by the DHCP client as primary and secondary WINS servers"}},"type":"object","required":["address","dhcpServerNetworkId","dynamic"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The network DHCP server(s) will lease addresses from."},"bootFileName":{"type":"string","description":"Boot filename."},"capsManagers":{"type":"array","items":{"type":"string"},"description":"A list of IP addresses for one or more CAPsMAN system managers. DHCP Option 138 (capwap) will be used."},"comment":{"type":"string"},"dhcpOptionSet":{"type":"string","description":"Add an additional set of DHCP options."},"dhcpOptions":{"type":"array","items":{"type":"string"},"description":"Add additional DHCP options from the option list."},"dhcpServerNetworkId":{"type":"string"},"dnsNone":{"type":"boolean","description":"If set, then DHCP Server will not pass dynamic DNS servers configured on the router to the DHCP clients if no DNS Server in DNS-server is set."},"dnsServers":{"type":"array","items":{"type":"string"},"description":"The DHCP client will use these as the default DNS servers. Two DNS servers can be specified to be used by the DHCP client as primary and secondary DNS servers."},"domain":{"type":"string","description":"The DHCP client will use this as the 'DNS domain' setting for the network adapter."},"gateway":{"type":"string","description":"The default gateway to be used by DHCP Client."},"netmask":{"type":"number","description":"The actual network mask is to be used by the DHCP client. If set to '0' - netmask from network address will be used."},"nextServer":{"type":"string","description":"The IP address of the next server to use in bootstrap."},"ntpNone":{"type":"boolean","description":"If set, then DHCP Server will not pass NTP servers configured on the router to the DHCP clients."},"ntpServers":{"type":"array","items":{"type":"string"},"description":"The DHCP client will use these as the default NTP servers. Two NTP servers can be specified to be used by the DHCP client as primary and secondary NTP servers"},"winsServers":{"type":"array","items":{"type":"string"},"description":"The Windows DHCP client will use these as the default WINS servers. Two WINS servers can be specified to be used by the DHCP client as primary and secondary WINS servers"}},"requiredInputs":["address"],"stateInputs":{"description":"Input properties used for looking up and filtering DhcpServerNetwork resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The network DHCP server(s) will lease addresses from."},"bootFileName":{"type":"string","description":"Boot filename."},"capsManagers":{"type":"array","items":{"type":"string"},"description":"A list of IP addresses for one or more CAPsMAN system managers. DHCP Option 138 (capwap) will be used."},"comment":{"type":"string"},"dhcpOptionSet":{"type":"string","description":"Add an additional set of DHCP options."},"dhcpOptions":{"type":"array","items":{"type":"string"},"description":"Add additional DHCP options from the option list."},"dhcpServerNetworkId":{"type":"string"},"dnsNone":{"type":"boolean","description":"If set, then DHCP Server will not pass dynamic DNS servers configured on the router to the DHCP clients if no DNS Server in DNS-server is set."},"dnsServers":{"type":"array","items":{"type":"string"},"description":"The DHCP client will use these as the default DNS servers. Two DNS servers can be specified to be used by the DHCP client as primary and secondary DNS servers."},"domain":{"type":"string","description":"The DHCP client will use this as the 'DNS domain' setting for the network adapter."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"gateway":{"type":"string","description":"The default gateway to be used by DHCP Client."},"netmask":{"type":"number","description":"The actual network mask is to be used by the DHCP client. If set to '0' - netmask from network address will be used."},"nextServer":{"type":"string","description":"The IP address of the next server to use in bootstrap."},"ntpNone":{"type":"boolean","description":"If set, then DHCP Server will not pass NTP servers configured on the router to the DHCP clients."},"ntpServers":{"type":"array","items":{"type":"string"},"description":"The DHCP client will use these as the default NTP servers. Two NTP servers can be specified to be used by the DHCP client as primary and secondary NTP servers"},"winsServers":{"type":"array","items":{"type":"string"},"description":"The Windows DHCP client will use these as the default WINS servers. Two WINS servers can be specified to be used by the DHCP client as primary and secondary WINS servers"}},"type":"object"}},"routeros:index/diskSettings:DiskSettings":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.DiskSettings(\"test\", {\n    autoSmbSharing: false,\n    autoSmbUser: \"guest\",\n    autoMediaSharing: false,\n    autoMediaInterface: \"lo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.DiskSettings(\"test\",\n    auto_smb_sharing=False,\n    auto_smb_user=\"guest\",\n    auto_media_sharing=False,\n    auto_media_interface=\"lo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.DiskSettings(\"test\", new()\n    {\n        AutoSmbSharing = false,\n        AutoSmbUser = \"guest\",\n        AutoMediaSharing = false,\n        AutoMediaInterface = \"lo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewDiskSettings(ctx, \"test\", \u0026routeros.DiskSettingsArgs{\n\t\t\tAutoSmbSharing:     pulumi.Bool(false),\n\t\t\tAutoSmbUser:        pulumi.String(\"guest\"),\n\t\t\tAutoMediaSharing:   pulumi.Bool(false),\n\t\t\tAutoMediaInterface: pulumi.String(\"lo\"),\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.routeros.DiskSettings;\nimport com.pulumi.routeros.DiskSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new DiskSettings(\"test\", DiskSettingsArgs.builder()\n            .autoSmbSharing(false)\n            .autoSmbUser(\"guest\")\n            .autoMediaSharing(false)\n            .autoMediaInterface(\"lo\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:DiskSettings\n    properties:\n      autoSmbSharing: false\n      autoSmbUser: guest\n      autoMediaSharing: false\n      autoMediaInterface: lo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/diskSettings:DiskSettings test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoMediaInterface":{"type":"string","description":"Interface that will be used in dynamic instance for ip/media when new disk/partition item is added in '/disk'.\n"},"autoMediaSharing":{"type":"boolean","description":"Enables media dynamically when new disk/partition item is added in '/disk'.\n"},"autoSmbSharing":{"type":"boolean","description":"Enables dynamic SMB shares when new disk/partition item is added in '/disk'.\n"},"autoSmbUser":{"type":"string","description":"Default value for smb-sharing/smb-user setting, when new disk/partition item is added in '/disk'.\n"},"defaultMountPointTemplate":{"type":"string","description":"Sets the default mount point template for each item added in `/disk`.\n"},"diskSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["diskSettingsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoMediaInterface":{"type":"string","description":"Interface that will be used in dynamic instance for ip/media when new disk/partition item is added in '/disk'.\n"},"autoMediaSharing":{"type":"boolean","description":"Enables media dynamically when new disk/partition item is added in '/disk'.\n"},"autoSmbSharing":{"type":"boolean","description":"Enables dynamic SMB shares when new disk/partition item is added in '/disk'.\n"},"autoSmbUser":{"type":"string","description":"Default value for smb-sharing/smb-user setting, when new disk/partition item is added in '/disk'.\n"},"defaultMountPointTemplate":{"type":"string","description":"Sets the default mount point template for each item added in `/disk`.\n"},"diskSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering DiskSettings resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoMediaInterface":{"type":"string","description":"Interface that will be used in dynamic instance for ip/media when new disk/partition item is added in '/disk'.\n"},"autoMediaSharing":{"type":"boolean","description":"Enables media dynamically when new disk/partition item is added in '/disk'.\n"},"autoSmbSharing":{"type":"boolean","description":"Enables dynamic SMB shares when new disk/partition item is added in '/disk'.\n"},"autoSmbUser":{"type":"string","description":"Default value for smb-sharing/smb-user setting, when new disk/partition item is added in '/disk'.\n"},"defaultMountPointTemplate":{"type":"string","description":"Sets the default mount point template for each item added in `/disk`.\n"},"diskSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/dns:Dns":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.Dns \" pulumi-lang-dotnet=\" routeros.Dns \" pulumi-lang-go=\" Dns \" pulumi-lang-python=\" Dns \" pulumi-lang-yaml=\" routeros.Dns \" pulumi-lang-java=\" routeros.Dns \"\u003e routeros.Dns \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.IpDns\n\" pulumi-lang-dotnet=\" routeros.IpDns\n\" pulumi-lang-go=\" IpDns\n\" pulumi-lang-python=\" IpDns\n\" pulumi-lang-yaml=\" routeros.IpDns\n\" pulumi-lang-java=\" routeros.IpDns\n\"\u003e routeros.IpDns\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressListExtraTime":{"type":"string"},"allowRemoteRequests":{"type":"boolean","description":"Specifies whether to allow network requests."},"cacheMaxTtl":{"type":"string","description":"Maximum time-to-live for cache records. In other words, cache records will expire unconditionally after cache-max-ttl time. Shorter TTL received from DNS servers are respected. *Default: 1w*"},"cacheSize":{"type":"number","description":"Specifies the size of DNS cache in KiB (64..4294967295). *Default: 2048*"},"cacheUsed":{"type":"number","description":"Shows the currently used cache size in KiB."},"dnsId":{"type":"string"},"dohMaxConcurrentQueries":{"type":"number","description":"Specifies how many DoH concurrent queries are allowed."},"dohMaxServerConnections":{"type":"number","description":"Specifies how many concurrent connections to the DoH server are allowed."},"dohTimeout":{"type":"string","description":"Specifies how long to wait for query response from the DoH server."},"dynamicServers":{"type":"string","description":"List of dynamically added DNS server from different services, for example, DHCP."},"maxConcurrentQueries":{"type":"number","description":"Specifies how much concurrent queries are allowed. *Default: 100*"},"maxConcurrentTcpSessions":{"type":"number","description":"Specifies how much concurrent TCP sessions are allowed. *Default: 20*"},"maxUdpPacketSize":{"type":"number","description":"Maximum size of allowed UDP packet. *Default: 4096*"},"mdnsRepeatIfaces":{"type":"array","items":{"type":"string"},"description":"An option to enable mDNS repeater on specified interfaces. This option is available in RouterOS starting from version 7.16."},"queryServerTimeout":{"type":"string","description":"Specifies how long to wait for query response from one server. Time can be specified in milliseconds. *Default: 2s*"},"queryTotalTimeout":{"type":"string","description":"Specifies how long to wait for query response in total. Note that this setting must be configured taking into account\u003cspan pulumi-lang-nodejs=\" queryServerTimeout \" pulumi-lang-dotnet=\" QueryServerTimeout \" pulumi-lang-go=\" queryServerTimeout \" pulumi-lang-python=\" query_server_timeout \" pulumi-lang-yaml=\" queryServerTimeout \" pulumi-lang-java=\" queryServerTimeout \"\u003e query_server_timeout \u003c/span\u003eand number of used DNS server. Time can be specified in milliseconds. *Default: 10s*"},"servers":{"type":"array","items":{"type":"string"},"description":"List of DNS server IPv4/IPv6 addresses."},"useDohServer":{"type":"string","description":"DNS over HTTPS (DoH) server URL.\n\t\u003e Mikrotik strongly suggest not use third-party download links for certificate fetching. \n\tUse the Certificate Authority's own website.\n\n\t\u003e RouterOS prioritize DoH over DNS server if both are configured on the device."},"verifyDohCert":{"type":"boolean","description":"DoH certificate verification. [See docs](https://wiki.mikrotik.com/wiki/Manual:IP/DNS#DNS_over_HTTPS)."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"type":"object","required":["cacheMaxTtl","cacheSize","cacheUsed","dnsId","dohMaxConcurrentQueries","dohMaxServerConnections","dohTimeout","dynamicServers","maxConcurrentQueries","maxConcurrentTcpSessions","maxUdpPacketSize","queryServerTimeout","queryTotalTimeout"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressListExtraTime":{"type":"string"},"allowRemoteRequests":{"type":"boolean","description":"Specifies whether to allow network requests."},"cacheMaxTtl":{"type":"string","description":"Maximum time-to-live for cache records. In other words, cache records will expire unconditionally after cache-max-ttl time. Shorter TTL received from DNS servers are respected. *Default: 1w*"},"cacheSize":{"type":"number","description":"Specifies the size of DNS cache in KiB (64..4294967295). *Default: 2048*"},"dnsId":{"type":"string"},"dohMaxConcurrentQueries":{"type":"number","description":"Specifies how many DoH concurrent queries are allowed."},"dohMaxServerConnections":{"type":"number","description":"Specifies how many concurrent connections to the DoH server are allowed."},"dohTimeout":{"type":"string","description":"Specifies how long to wait for query response from the DoH server."},"maxConcurrentQueries":{"type":"number","description":"Specifies how much concurrent queries are allowed. *Default: 100*"},"maxConcurrentTcpSessions":{"type":"number","description":"Specifies how much concurrent TCP sessions are allowed. *Default: 20*"},"maxUdpPacketSize":{"type":"number","description":"Maximum size of allowed UDP packet. *Default: 4096*"},"mdnsRepeatIfaces":{"type":"array","items":{"type":"string"},"description":"An option to enable mDNS repeater on specified interfaces. This option is available in RouterOS starting from version 7.16."},"queryServerTimeout":{"type":"string","description":"Specifies how long to wait for query response from one server. Time can be specified in milliseconds. *Default: 2s*"},"queryTotalTimeout":{"type":"string","description":"Specifies how long to wait for query response in total. Note that this setting must be configured taking into account\u003cspan pulumi-lang-nodejs=\" queryServerTimeout \" pulumi-lang-dotnet=\" QueryServerTimeout \" pulumi-lang-go=\" queryServerTimeout \" pulumi-lang-python=\" query_server_timeout \" pulumi-lang-yaml=\" queryServerTimeout \" pulumi-lang-java=\" queryServerTimeout \"\u003e query_server_timeout \u003c/span\u003eand number of used DNS server. Time can be specified in milliseconds. *Default: 10s*"},"servers":{"type":"array","items":{"type":"string"},"description":"List of DNS server IPv4/IPv6 addresses."},"useDohServer":{"type":"string","description":"DNS over HTTPS (DoH) server URL.\n\t\u003e Mikrotik strongly suggest not use third-party download links for certificate fetching. \n\tUse the Certificate Authority's own website.\n\n\t\u003e RouterOS prioritize DoH over DNS server if both are configured on the device."},"verifyDohCert":{"type":"boolean","description":"DoH certificate verification. [See docs](https://wiki.mikrotik.com/wiki/Manual:IP/DNS#DNS_over_HTTPS)."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"stateInputs":{"description":"Input properties used for looking up and filtering Dns resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressListExtraTime":{"type":"string"},"allowRemoteRequests":{"type":"boolean","description":"Specifies whether to allow network requests."},"cacheMaxTtl":{"type":"string","description":"Maximum time-to-live for cache records. In other words, cache records will expire unconditionally after cache-max-ttl time. Shorter TTL received from DNS servers are respected. *Default: 1w*"},"cacheSize":{"type":"number","description":"Specifies the size of DNS cache in KiB (64..4294967295). *Default: 2048*"},"cacheUsed":{"type":"number","description":"Shows the currently used cache size in KiB."},"dnsId":{"type":"string"},"dohMaxConcurrentQueries":{"type":"number","description":"Specifies how many DoH concurrent queries are allowed."},"dohMaxServerConnections":{"type":"number","description":"Specifies how many concurrent connections to the DoH server are allowed."},"dohTimeout":{"type":"string","description":"Specifies how long to wait for query response from the DoH server."},"dynamicServers":{"type":"string","description":"List of dynamically added DNS server from different services, for example, DHCP."},"maxConcurrentQueries":{"type":"number","description":"Specifies how much concurrent queries are allowed. *Default: 100*"},"maxConcurrentTcpSessions":{"type":"number","description":"Specifies how much concurrent TCP sessions are allowed. *Default: 20*"},"maxUdpPacketSize":{"type":"number","description":"Maximum size of allowed UDP packet. *Default: 4096*"},"mdnsRepeatIfaces":{"type":"array","items":{"type":"string"},"description":"An option to enable mDNS repeater on specified interfaces. This option is available in RouterOS starting from version 7.16."},"queryServerTimeout":{"type":"string","description":"Specifies how long to wait for query response from one server. Time can be specified in milliseconds. *Default: 2s*"},"queryTotalTimeout":{"type":"string","description":"Specifies how long to wait for query response in total. Note that this setting must be configured taking into account\u003cspan pulumi-lang-nodejs=\" queryServerTimeout \" pulumi-lang-dotnet=\" QueryServerTimeout \" pulumi-lang-go=\" queryServerTimeout \" pulumi-lang-python=\" query_server_timeout \" pulumi-lang-yaml=\" queryServerTimeout \" pulumi-lang-java=\" queryServerTimeout \"\u003e query_server_timeout \u003c/span\u003eand number of used DNS server. Time can be specified in milliseconds. *Default: 10s*"},"servers":{"type":"array","items":{"type":"string"},"description":"List of DNS server IPv4/IPv6 addresses."},"useDohServer":{"type":"string","description":"DNS over HTTPS (DoH) server URL.\n\t\u003e Mikrotik strongly suggest not use third-party download links for certificate fetching. \n\tUse the Certificate Authority's own website.\n\n\t\u003e RouterOS prioritize DoH over DNS server if both are configured on the device."},"verifyDohCert":{"type":"boolean","description":"DoH certificate verification. [See docs](https://wiki.mikrotik.com/wiki/Manual:IP/DNS#DNS_over_HTTPS)."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"type":"object"}},"routeros:index/dnsRecord:DnsRecord":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.DnsRecord \" pulumi-lang-dotnet=\" routeros.DnsRecord \" pulumi-lang-go=\" DnsRecord \" pulumi-lang-python=\" DnsRecord \" pulumi-lang-yaml=\" routeros.DnsRecord \" pulumi-lang-java=\" routeros.DnsRecord \"\u003e routeros.DnsRecord \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.IpDnsRecord\n\" pulumi-lang-dotnet=\" routeros.IpDnsRecord\n\" pulumi-lang-go=\" IpDnsRecord\n\" pulumi-lang-python=\" IpDnsRecord\n\" pulumi-lang-yaml=\" routeros.IpDnsRecord\n\" pulumi-lang-java=\" routeros.IpDnsRecord\n\"\u003e routeros.IpDnsRecord\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The A record to be returend from the DNS hostname."},"addressList":{"type":"string","description":"Name of the Firewall address list to which address must be dynamically added when some request matches the entry."},"cname":{"type":"string","description":"Alias name for a domain name."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dnsRecordId":{"type":"string"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"forwardTo":{"type":"string","description":"The IP address of a domain name server to which a particular DNS request must be forwarded."},"matchSubdomain":{"type":"boolean","description":"Whether the record will match requests for subdomains."},"mxExchange":{"type":"string","description":"The domain name of the MX server."},"mxPreference":{"type":"number","description":"Preference of the particular MX record."},"name":{"type":"string","description":"The name of the DNS hostname to be created."},"ns":{"type":"string","description":"Name of the authoritative domain name server for the particular record."},"regexp":{"type":"string","description":"DNS regexp. Regexp entries are case sensitive, but since DNS requests are not case sensitive, RouterOS converts DNS names to lowercase, you should write regex only with lowercase letters."},"srvPort":{"type":"number","description":"The TCP or UDP port on which the service is to be found."},"srvPriority":{"type":"number","description":"Priority of the particular SRV record."},"srvTarget":{"type":"string","description":"The canonical hostname of the machine providing the service ends in a dot."},"srvWeight":{"type":"string","description":"Weight of the particular SRC record."},"text":{"type":"string","description":"Textual information about the domain name."},"ttl":{"type":"string","description":"The ttl of the DNS record."},"type":{"type":"string","description":"Type of the DNS record. Available values are: A, AAAA, CNAME, FWD, MX, NS, NXDOMAIN, SRV, TXT"}},"type":"object","required":["dnsRecordId","dynamic","mxPreference","name","srvPort","srvPriority","srvWeight","type"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The A record to be returend from the DNS hostname."},"addressList":{"type":"string","description":"Name of the Firewall address list to which address must be dynamically added when some request matches the entry."},"cname":{"type":"string","description":"Alias name for a domain name."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dnsRecordId":{"type":"string"},"forwardTo":{"type":"string","description":"The IP address of a domain name server to which a particular DNS request must be forwarded."},"matchSubdomain":{"type":"boolean","description":"Whether the record will match requests for subdomains."},"mxExchange":{"type":"string","description":"The domain name of the MX server."},"mxPreference":{"type":"number","description":"Preference of the particular MX record."},"name":{"type":"string","description":"The name of the DNS hostname to be created."},"ns":{"type":"string","description":"Name of the authoritative domain name server for the particular record."},"regexp":{"type":"string","description":"DNS regexp. Regexp entries are case sensitive, but since DNS requests are not case sensitive, RouterOS converts DNS names to lowercase, you should write regex only with lowercase letters."},"srvPort":{"type":"number","description":"The TCP or UDP port on which the service is to be found."},"srvPriority":{"type":"number","description":"Priority of the particular SRV record."},"srvTarget":{"type":"string","description":"The canonical hostname of the machine providing the service ends in a dot."},"srvWeight":{"type":"string","description":"Weight of the particular SRC record."},"text":{"type":"string","description":"Textual information about the domain name."},"ttl":{"type":"string","description":"The ttl of the DNS record."},"type":{"type":"string","description":"Type of the DNS record. Available values are: A, AAAA, CNAME, FWD, MX, NS, NXDOMAIN, SRV, TXT"}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering DnsRecord resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The A record to be returend from the DNS hostname."},"addressList":{"type":"string","description":"Name of the Firewall address list to which address must be dynamically added when some request matches the entry."},"cname":{"type":"string","description":"Alias name for a domain name."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dnsRecordId":{"type":"string"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"forwardTo":{"type":"string","description":"The IP address of a domain name server to which a particular DNS request must be forwarded."},"matchSubdomain":{"type":"boolean","description":"Whether the record will match requests for subdomains."},"mxExchange":{"type":"string","description":"The domain name of the MX server."},"mxPreference":{"type":"number","description":"Preference of the particular MX record."},"name":{"type":"string","description":"The name of the DNS hostname to be created."},"ns":{"type":"string","description":"Name of the authoritative domain name server for the particular record."},"regexp":{"type":"string","description":"DNS regexp. Regexp entries are case sensitive, but since DNS requests are not case sensitive, RouterOS converts DNS names to lowercase, you should write regex only with lowercase letters."},"srvPort":{"type":"number","description":"The TCP or UDP port on which the service is to be found."},"srvPriority":{"type":"number","description":"Priority of the particular SRV record."},"srvTarget":{"type":"string","description":"The canonical hostname of the machine providing the service ends in a dot."},"srvWeight":{"type":"string","description":"Weight of the particular SRC record."},"text":{"type":"string","description":"Textual information about the domain name."},"ttl":{"type":"string","description":"The ttl of the DNS record."},"type":{"type":"string","description":"Type of the DNS record. Available values are: A, AAAA, CNAME, FWD, MX, NS, NXDOMAIN, SRV, TXT"}},"type":"object"}},"routeros:index/file:File":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.File(\"test\", {\n    name: \"test\",\n    contents: \"This is a test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.File(\"test\",\n    name=\"test\",\n    contents=\"This is a test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.File(\"test\", new()\n    {\n        Name = \"test\",\n        Contents = \"This is a test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewFile(ctx, \"test\", \u0026routeros.FileArgs{\n\t\t\tName:     pulumi.String(\"test\"),\n\t\t\tContents: pulumi.String(\"This is a test\"),\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.routeros.File;\nimport com.pulumi.routeros.FileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new File(\"test\", FileArgs.builder()\n            .name(\"test\")\n            .contents(\"This is a test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:File\n    properties:\n      name: test\n      contents: This is a test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/file get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/file:File test \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/file:File test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"contents":{"type":"string","description":"The actual content of the file\n"},"creationTime":{"type":"string","description":"A time when the file was created\n"},"fileId":{"type":"string","description":"The ID of this resource.\n"},"lastModified":{"type":"string","description":"A time when the file was modified\n"},"name":{"type":"string","description":"Name of the file\n"},"packageArchitecture":{"type":"string","description":"Architecture that package is built for. Applies only to RouterOS \".npk\" files\n"},"packageBuiltTime":{"type":"string","description":"A time when the package was built. Applies only to RouterOS \".npk\" files\n"},"packageName":{"type":"string","description":"Name of the installable package. Applies only to RouterOS \".npk\" files\n"},"packageVersion":{"type":"string","description":"A version of the installable package. Applies only to RouterOS \".npk\" files\n"},"size":{"type":"number","description":"File size in bytes\n"},"type":{"type":"string","description":"Type of the file. For folders, the file type is the directory\n"}},"type":"object","required":["creationTime","fileId","lastModified","name","packageArchitecture","packageBuiltTime","packageName","packageVersion","size","type"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"contents":{"type":"string","description":"The actual content of the file\n"},"fileId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Name of the file\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering File resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"contents":{"type":"string","description":"The actual content of the file\n"},"creationTime":{"type":"string","description":"A time when the file was created\n"},"fileId":{"type":"string","description":"The ID of this resource.\n"},"lastModified":{"type":"string","description":"A time when the file was modified\n"},"name":{"type":"string","description":"Name of the file\n"},"packageArchitecture":{"type":"string","description":"Architecture that package is built for. Applies only to RouterOS \".npk\" files\n"},"packageBuiltTime":{"type":"string","description":"A time when the package was built. Applies only to RouterOS \".npk\" files\n"},"packageName":{"type":"string","description":"Name of the installable package. Applies only to RouterOS \".npk\" files\n"},"packageVersion":{"type":"string","description":"A version of the installable package. Applies only to RouterOS \".npk\" files\n"},"size":{"type":"number","description":"File size in bytes\n"},"type":{"type":"string","description":"Type of the file. For folders, the file type is the directory\n"}},"type":"object"}},"routeros:index/firewallAddrList:FirewallAddrList":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.FirewallAddrList \" pulumi-lang-dotnet=\" routeros.FirewallAddrList \" pulumi-lang-go=\" FirewallAddrList \" pulumi-lang-python=\" FirewallAddrList \" pulumi-lang-yaml=\" routeros.FirewallAddrList \" pulumi-lang-java=\" routeros.FirewallAddrList \"\u003e routeros.FirewallAddrList \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.IpFirewallAddrList\n\" pulumi-lang-dotnet=\" routeros.IpFirewallAddrList\n\" pulumi-lang-go=\" IpFirewallAddrList\n\" pulumi-lang-python=\" IpFirewallAddrList\n\" pulumi-lang-yaml=\" routeros.IpFirewallAddrList\n\" pulumi-lang-java=\" routeros.IpFirewallAddrList\n\"\u003e routeros.IpFirewallAddrList\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"A single IP address or range of IPs to add to address list or DNS name. You can input for example, '192.168.0.0-192.168.1.255' and it will auto modify the typed entry to 192.168.0.0/23 on saving."},"comment":{"type":"string"},"creationTime":{"type":"string","description":"Rule creation time"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"firewallAddrListId":{"type":"string"},"list":{"type":"string","description":"Name for the address list of the added IP address."},"timeout":{"type":"string"}},"type":"object","required":["address","creationTime","dynamic","firewallAddrListId","list"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"A single IP address or range of IPs to add to address list or DNS name. You can input for example, '192.168.0.0-192.168.1.255' and it will auto modify the typed entry to 192.168.0.0/23 on saving."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"firewallAddrListId":{"type":"string"},"list":{"type":"string","description":"Name for the address list of the added IP address."},"timeout":{"type":"string"}},"requiredInputs":["address","list"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallAddrList resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"A single IP address or range of IPs to add to address list or DNS name. You can input for example, '192.168.0.0-192.168.1.255' and it will auto modify the typed entry to 192.168.0.0/23 on saving."},"comment":{"type":"string"},"creationTime":{"type":"string","description":"Rule creation time"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"firewallAddrListId":{"type":"string"},"list":{"type":"string","description":"Name for the address list of the added IP address."},"timeout":{"type":"string"}},"type":"object"}},"routeros:index/firewallFilter:FirewallFilter":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.FirewallFilter \" pulumi-lang-dotnet=\" routeros.FirewallFilter \" pulumi-lang-go=\" FirewallFilter \" pulumi-lang-python=\" FirewallFilter \" pulumi-lang-yaml=\" routeros.FirewallFilter \" pulumi-lang-java=\" routeros.FirewallFilter \"\u003e routeros.FirewallFilter \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.IpFirewallFilter\n\" pulumi-lang-dotnet=\" routeros.IpFirewallFilter\n\" pulumi-lang-go=\" IpFirewallFilter\n\" pulumi-lang-python=\" IpFirewallFilter\n\" pulumi-lang-yaml=\" routeros.IpFirewallFilter\n\" pulumi-lang-java=\" routeros.IpFirewallFilter\n\"\u003e routeros.IpFirewallFilter\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list used in 'add-dst-to-address-list' and 'add-src-to-address-list' actions."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"firewallFilterId":{"type":"string"},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"hwOffload":{"type":"boolean","description":"Connection offloading for Fasttrack."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"rejectWith":{"type":"string","description":"Specifies ICMP error to be sent back if the packet is rejected. Applicable if action=reject."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"routingTable":{"type":"string","description":"Matches packets which destination address is resolved in specific a routing table."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object","required":["action","chain","dynamic","firewallFilterId","invalid"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list used in 'add-dst-to-address-list' and 'add-src-to-address-list' actions."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"firewallFilterId":{"type":"string"},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"hwOffload":{"type":"boolean","description":"Connection offloading for Fasttrack."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"rejectWith":{"type":"string","description":"Specifies ICMP error to be sent back if the packet is rejected. Applicable if action=reject."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"routingTable":{"type":"string","description":"Matches packets which destination address is resolved in specific a routing table."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"requiredInputs":["action","chain"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallFilter resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list used in 'add-dst-to-address-list' and 'add-src-to-address-list' actions."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"firewallFilterId":{"type":"string"},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"hwOffload":{"type":"boolean","description":"Connection offloading for Fasttrack."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"rejectWith":{"type":"string","description":"Specifies ICMP error to be sent back if the packet is rejected. Applicable if action=reject."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"routingTable":{"type":"string","description":"Matches packets which destination address is resolved in specific a routing table."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object"}},"routeros:index/firewallMangle:FirewallMangle":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.FirewallMangle \" pulumi-lang-dotnet=\" routeros.FirewallMangle \" pulumi-lang-go=\" FirewallMangle \" pulumi-lang-python=\" FirewallMangle \" pulumi-lang-yaml=\" routeros.FirewallMangle \" pulumi-lang-java=\" routeros.FirewallMangle \"\u003e routeros.FirewallMangle \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.IpFirewallMangle\n\" pulumi-lang-dotnet=\" routeros.IpFirewallMangle\n\" pulumi-lang-go=\" IpFirewallMangle\n\" pulumi-lang-python=\" IpFirewallMangle\n\" pulumi-lang-yaml=\" routeros.IpFirewallMangle\n\" pulumi-lang-java=\" routeros.IpFirewallMangle\n\"\u003e routeros.IpFirewallMangle\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule."},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"firewallMangleId":{"type":"string"},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"newConnectionMark":{"type":"string","description":"Sets a new connection-mark value."},"newDscp":{"type":"number","description":"Sets a new DSCP value for a packet."},"newMss":{"type":"string","description":"Sets a new MSS for a packet.\n  * clamp-to-pmtu feature sets (DF) bit in the IP header to dynamically discover the PMTU of a path.\n  * Host sends all datagrams on that path with the DF bit set until receives ICMP.\n  * Destination Unreachable messages with a code meaning `fragmentation needed and DF set`.\n  * Upon receipt of such a message, the source host reduces its assumed PMTU for the path."},"newPacketMark":{"type":"string","description":"Sets a new packet-mark value."},"newPriority":{"type":"string","description":"Sets a new priority for a packet. This can be the VLAN, WMM, DSCP or MPLS EXP priority. This property can also be used to set an internal priority."},"newRoutingMark":{"type":"string","description":"Sets a new routing-mark value."},"newTtl":{"type":"string","description":"Sets a new TTL for a packet."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"passthrough":{"type":"boolean","description":"Whether to let the packet to pass further (like action passthrough) into the firewall or not (property only valid some actions)."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"routeDst":{"type":"string","description":"Matches packets with a specific gateway."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object","required":["action","chain","dynamic","firewallMangleId","invalid","passthrough"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule."},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"firewallMangleId":{"type":"string"},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"newConnectionMark":{"type":"string","description":"Sets a new connection-mark value."},"newDscp":{"type":"number","description":"Sets a new DSCP value for a packet."},"newMss":{"type":"string","description":"Sets a new MSS for a packet.\n  * clamp-to-pmtu feature sets (DF) bit in the IP header to dynamically discover the PMTU of a path.\n  * Host sends all datagrams on that path with the DF bit set until receives ICMP.\n  * Destination Unreachable messages with a code meaning `fragmentation needed and DF set`.\n  * Upon receipt of such a message, the source host reduces its assumed PMTU for the path."},"newPacketMark":{"type":"string","description":"Sets a new packet-mark value."},"newPriority":{"type":"string","description":"Sets a new priority for a packet. This can be the VLAN, WMM, DSCP or MPLS EXP priority. This property can also be used to set an internal priority."},"newRoutingMark":{"type":"string","description":"Sets a new routing-mark value."},"newTtl":{"type":"string","description":"Sets a new TTL for a packet."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"passthrough":{"type":"boolean","description":"Whether to let the packet to pass further (like action passthrough) into the firewall or not (property only valid some actions)."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"routeDst":{"type":"string","description":"Matches packets with a specific gateway."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"requiredInputs":["action","chain"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallMangle resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule."},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"firewallMangleId":{"type":"string"},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"newConnectionMark":{"type":"string","description":"Sets a new connection-mark value."},"newDscp":{"type":"number","description":"Sets a new DSCP value for a packet."},"newMss":{"type":"string","description":"Sets a new MSS for a packet.\n  * clamp-to-pmtu feature sets (DF) bit in the IP header to dynamically discover the PMTU of a path.\n  * Host sends all datagrams on that path with the DF bit set until receives ICMP.\n  * Destination Unreachable messages with a code meaning `fragmentation needed and DF set`.\n  * Upon receipt of such a message, the source host reduces its assumed PMTU for the path."},"newPacketMark":{"type":"string","description":"Sets a new packet-mark value."},"newPriority":{"type":"string","description":"Sets a new priority for a packet. This can be the VLAN, WMM, DSCP or MPLS EXP priority. This property can also be used to set an internal priority."},"newRoutingMark":{"type":"string","description":"Sets a new routing-mark value."},"newTtl":{"type":"string","description":"Sets a new TTL for a packet."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"passthrough":{"type":"boolean","description":"Whether to let the packet to pass further (like action passthrough) into the firewall or not (property only valid some actions)."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"routeDst":{"type":"string","description":"Matches packets with a specific gateway."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object"}},"routeros:index/firewallNat:FirewallNat":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.FirewallNat \" pulumi-lang-dotnet=\" routeros.FirewallNat \" pulumi-lang-go=\" FirewallNat \" pulumi-lang-python=\" FirewallNat \" pulumi-lang-yaml=\" routeros.FirewallNat \" pulumi-lang-java=\" routeros.FirewallNat \"\u003e routeros.FirewallNat \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.IpFirewallNat\n\" pulumi-lang-dotnet=\" routeros.IpFirewallNat\n\" pulumi-lang-go=\" IpFirewallNat\n\" pulumi-lang-python=\" IpFirewallNat\n\" pulumi-lang-yaml=\" routeros.IpFirewallNat\n\" pulumi-lang-java=\" routeros.IpFirewallNat\n\"\u003e routeros.IpFirewallNat\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"firewallNatId":{"type":"string"},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"randomisePorts":{"type":"boolean","description":"Randomize to which public port connections will be mapped."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"sameNotByDst":{"type":"boolean","description":"Specifies whether to take into account or not destination IP address when selecting a new source IP address. Applicable if action=same"},"socks5Port":{"type":"number","description":"Listening port of the SOCKS5 proxy server."},"socks5Server":{"type":"string","description":"IP address of the SOCKS5 proxy server. (only IPv4 addresses are supported)"},"socksifyService":{"type":"string","description":"Name of existing socksify service."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"toAddresses":{"type":"string","description":"Replace original address with specified one. Applicable if action is dst-nat, netmap, same, src-nat."},"toPorts":{"type":"string","description":"Replace the original port with the specified one. Applicable if action is dst-nat, redirect, masquerade, netmap, same, src-nat."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object","required":["action","chain","dynamic","firewallNatId","invalid"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"firewallNatId":{"type":"string"},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"randomisePorts":{"type":"boolean","description":"Randomize to which public port connections will be mapped."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"sameNotByDst":{"type":"boolean","description":"Specifies whether to take into account or not destination IP address when selecting a new source IP address. Applicable if action=same"},"socks5Port":{"type":"number","description":"Listening port of the SOCKS5 proxy server."},"socks5Server":{"type":"string","description":"IP address of the SOCKS5 proxy server. (only IPv4 addresses are supported)"},"socksifyService":{"type":"string","description":"Name of existing socksify service."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"toAddresses":{"type":"string","description":"Replace original address with specified one. Applicable if action is dst-nat, netmap, same, src-nat."},"toPorts":{"type":"string","description":"Replace the original port with the specified one. Applicable if action is dst-nat, redirect, masquerade, netmap, same, src-nat."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"requiredInputs":["action","chain"],"stateInputs":{"description":"Input properties used for looking up and filtering FirewallNat resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"firewallNatId":{"type":"string"},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"randomisePorts":{"type":"boolean","description":"Randomize to which public port connections will be mapped."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"sameNotByDst":{"type":"boolean","description":"Specifies whether to take into account or not destination IP address when selecting a new source IP address. Applicable if action=same"},"socks5Port":{"type":"number","description":"Listening port of the SOCKS5 proxy server."},"socks5Server":{"type":"string","description":"IP address of the SOCKS5 proxy server. (only IPv4 addresses are supported)"},"socksifyService":{"type":"string","description":"Name of existing socksify service."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"toAddresses":{"type":"string","description":"Replace original address with specified one. Applicable if action is dst-nat, netmap, same, src-nat."},"toPorts":{"type":"string","description":"Replace the original port with the specified one. Applicable if action is dst-nat, redirect, masquerade, netmap, same, src-nat."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object"}},"routeros:index/gre:Gre":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.Gre \" pulumi-lang-dotnet=\" routeros.Gre \" pulumi-lang-go=\" Gre \" pulumi-lang-python=\" Gre \" pulumi-lang-yaml=\" routeros.Gre \" pulumi-lang-java=\" routeros.Gre \"\u003e routeros.Gre \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceGre\n\" pulumi-lang-dotnet=\" routeros.InterfaceGre\n\" pulumi-lang-go=\" InterfaceGre\n\" pulumi-lang-python=\" InterfaceGre\n\" pulumi-lang-yaml=\" routeros.InterfaceGre\n\" pulumi-lang-java=\" routeros.InterfaceGre\n\"\u003e routeros.InterfaceGre\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used."},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic."},"greId":{"type":"string"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel."},"running":{"type":"boolean"}},"type":"object","required":["actualMtu","greId","l2mtu","mtu","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used."},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic."},"greId":{"type":"string"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel."}},"stateInputs":{"description":"Input properties used for looking up and filtering Gre resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used."},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic."},"greId":{"type":"string"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel."},"running":{"type":"boolean"}},"type":"object"}},"routeros:index/identity:Identity":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.Identity \" pulumi-lang-dotnet=\" routeros.Identity \" pulumi-lang-go=\" Identity \" pulumi-lang-python=\" Identity \" pulumi-lang-yaml=\" routeros.Identity \" pulumi-lang-java=\" routeros.Identity \"\u003e routeros.Identity \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.SystemIdentity\n\" pulumi-lang-dotnet=\" routeros.SystemIdentity\n\" pulumi-lang-go=\" SystemIdentity\n\" pulumi-lang-python=\" SystemIdentity\n\" pulumi-lang-yaml=\" routeros.SystemIdentity\n\" pulumi-lang-java=\" routeros.SystemIdentity\n\"\u003e routeros.SystemIdentity\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"identityId":{"type":"string"},"name":{"type":"string","description":"Device name."}},"type":"object","required":["identityId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"identityId":{"type":"string"},"name":{"type":"string","description":"Device name."}},"stateInputs":{"description":"Input properties used for looking up and filtering Identity resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"identityId":{"type":"string"},"name":{"type":"string","description":"Device name."}},"type":"object"}},"routeros:index/interface6to4:Interface6to4":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.Interface6to4(\"test\", {\n    name: \"6to4-tunnel1\",\n    keepalive: \"10,10\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.Interface6to4(\"test\",\n    name=\"6to4-tunnel1\",\n    keepalive=\"10,10\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.Interface6to4(\"test\", new()\n    {\n        Name = \"6to4-tunnel1\",\n        Keepalive = \"10,10\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterface6to4(ctx, \"test\", \u0026routeros.Interface6to4Args{\n\t\t\tName:      pulumi.String(\"6to4-tunnel1\"),\n\t\t\tKeepalive: pulumi.String(\"10,10\"),\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.routeros.Interface6to4;\nimport com.pulumi.routeros.Interface6to4Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Interface6to4(\"test\", Interface6to4Args.builder()\n            .name(\"6to4-tunnel1\")\n            .keepalive(\"10,10\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:Interface6to4\n    properties:\n      name: 6to4-tunnel1\n      keepalive: 10,10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/6to4 get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interface6to4:Interface6to4 test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interface6to4:Interface6to4 test \"name=6to4-tunnel1\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"interface6to4Id":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string","description":"Interface name.\n"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"},"running":{"type":"boolean"}},"type":"object","required":["actualMtu","interface6to4Id","mtu","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"interface6to4Id":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string","description":"Interface name.\n"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Interface6to4 resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"interface6to4Id":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string","description":"Interface name.\n"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"},"running":{"type":"boolean"}},"type":"object"}},"routeros:index/interfaceBonding:InterfaceBonding":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceBonding(\"test\", {\n    name: \"bonding-test\",\n    slaves: [\n        \"ether3\",\n        \"ether4\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceBonding(\"test\",\n    name=\"bonding-test\",\n    slaves=[\n        \"ether3\",\n        \"ether4\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceBonding(\"test\", new()\n    {\n        Name = \"bonding-test\",\n        Slaves = new[]\n        {\n            \"ether3\",\n            \"ether4\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceBonding(ctx, \"test\", \u0026routeros.InterfaceBondingArgs{\n\t\t\tName: pulumi.String(\"bonding-test\"),\n\t\t\tSlaves: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ether3\"),\n\t\t\t\tpulumi.String(\"ether4\"),\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.routeros.InterfaceBonding;\nimport com.pulumi.routeros.InterfaceBondingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceBonding(\"test\", InterfaceBondingArgs.builder()\n            .name(\"bonding-test\")\n            .slaves(            \n                \"ether3\",\n                \"ether4\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceBonding\n    properties:\n      name: bonding-test\n      slaves:\n        - ether3\n        - ether4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/bonding get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceBonding:InterfaceBonding test \"*0\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol for the interface. disabled - the interface will not use ARP enabled - the interface will use ARP proxy-arp - the interface will use the ARP proxy feature reply-only -the interface will only reply to requests originated from matching IPaddress/MAC address combinations which are entered as static entries inthe '/ip arp' table. No dynamic entries will be automatically stored inthe '/ip arp' table. Therefore for communications to be successful, avalid static entry must already exist."},"arpInterval":{"type":"string","description":"Time in milliseconds defines how often to monitor ARP requests."},"arpIpTargets":{"type":"string","description":"IP target address which will be monitored if link-monitoring is set to arp. You can specify multiple IP addresses, separated by a comma."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"downDelay":{"type":"string","description":"If a link failure has been detected, the bonding interface is disabled for a down-delay time. The value should be a multiple of mii-interval, otherwise, it will be rounded down to the nearest value. This property only has an effect when link-monitoring is set to mii."},"forcedMacAddress":{"type":"string","description":"Bydefault, the bonding interface will use the MAC address of the firstselected slave interface. This property allows to configure static MACaddress for the bond interface (all zeros, broadcast or multicastaddresses will not apply). RouterOS will automatically change the MACaddress for slave interfaces and it will be visible in /interface ethernet configuration export."},"interfaceBondingId":{"type":"string"},"lacpMode":{"type":"string","description":"Specifies whether ports actively or passively participates in the LACP:\n    - **active** - ports actively initiate LACP communication, regardless of the partner's LACP mode (i.e, it \"speaks\" even if the partner is silent)\n    - **passive** - ports only respond to LACP messages and do not initiate them unless the partner is in active mode (i.e., it \"listens\" and responds only if spoken to)."},"lacpRate":{"type":"string","description":"LinkAggregation Control Protocol rate specifies how often to exchange withLACPDUs between bonding peers. Used to determine whether a link is up orother changes have occurred in the network. LACP tries to adapt tothese changes providing failover."},"lacpUserKey":{"type":"number","description":"Specifiesthe upper 10 bits of the port key. The lower 6 bits are automaticallyassigned based on individual port link speed and duplex. The setting isavailable only since RouterOS v7.3."},"linkMonitoring":{"type":"string","description":"Method to use for monitoring the link (whether it is up or down) arp - uses Address Resolution Protocol to determine whether the remote interface is reachable mii - uses Media Independent Interface to determine link status. Link status determination relies on the device driver. none - no method for link monitoring is used. Note: some bonding modes require specific link monitoring to work properly."},"macAddress":{"type":"string","description":"Current mac address."},"miiInterval":{"type":"string","description":"How often to monitor the link for failures (the parameter used only if link-monitoring is mii)"},"minLinks":{"type":"number","description":"How many active slave links needed for bonding to become active."},"mlagId":{"type":"number","description":"ChangesMLAG ID for bonding interface. The same MLAG ID should be used on bothpeer devices to successfully create a single MLAG. See more details on MLAG ."},"mode":{"type":"string","description":"Specifies one of the bonding policies:\n  * 802.3ad -IEEE 802.3ad dynamic link aggregation. In this mode, the interfaces areaggregated in a group where each slave shares the same speed. Itprovides fault tolerance and load balancing. Slave selection foroutgoing traffic is done according to the transmit-hash-policy\n  * active-backup - provides link backup. Only one slave can be active at a time. Another slave only becomes active, if the first one fails.\n  * balance-alb - adaptive load balancing. The same as balance-tlb but received traffic is also balanced. The device driver should have support for changing it's MAC address.\n  * balance-rr -round-robin load balancing. Slaves in a bonding interface will transmitand receive data in sequential order. It provides load balancing andfault tolerance.\n  * balance-tlb -Outgoing traffic is distributed according to the current load on eachslave. Incoming traffic is not balanced and is received by the currentslave. If receiving slave fails, then another slave takes the MACaddress of the failed slave.\n  * balance-xor - Transmit based on the selected transmit-hash-policy. This mode provides load balancing and fault tolerance.\n  * broadcast -Broadcasts the same data on all interfaces at once. This provides faulttolerance but slows down traffic throughput on some slow machines."},"mtu":{"type":"number","description":"MaximumTransmit Unit in bytes. Must be smaller or equal to the smallest L2MTUvalue of a bonding slave. L2MTU of a bonding interface is determined bythe lowest L2MTU value among its slave interfaces."},"name":{"type":"string","description":"Name of the bonding interface."},"primary":{"type":"string","description":"Controlsthe primary interface between active slave ports, works only foractive-backup, balance-tlb and balance-alb modes. For active-backupmode, it controls which running interface is supposed to send andreceive the traffic. For balance-tlb mode, it controls which runninginterface is supposed to receive all the traffic, but for balance-albmode, it controls which interface is supposed to receive the unbalanced  traffic (the non-IPv4 traffic). When none of the interfaces are selectedas primary, device will automatically select the interface that isconfigured as the first one."},"running":{"type":"boolean"},"slaves":{"type":"array","items":{"type":"string"},"description":"At least two ethernet-like interfaces separated by a comma, which will be used for bonding"},"transmitHashPolicy":{"type":"string","description":"Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes:\n  * layer-2 -Uses XOR of hardware MAC addresses to generate the hash. This algorithm  will place all traffic to a particular network peer on the same slave.This algorithm is 802.3ad compliant.\n  * layer-2-and-3 -This policy uses a combination of layer2 and layer3 protocolinformation to generate the hash. Uses XOR of hardware MAC addresses andIP addresses to generate the hash. This algorithm will place alltraffic to a particular network peer on the same slave. For non-IPtraffic, the formula is the same as for the layer2 transmit hash policy.This policy is intended to provide a more balanced distribution oftraffic than layer2 alone, especially in environments where a layer3gateway device is required to reach most destinations. This algorithm is802.3ad compliant.\n  * layer-3-and-4 - This policyuses upper layer protocol information, when available, to generate thehash. This allows for traffic to a particular network peer to spanmultiple slaves, although a single connection will not span multipleslaves. For fragmented TCP or UDP packets and all other IP protocoltraffic, the source and destination port information is omitted. Fornon-IP traffic, the formula is the same as for the layer2 transmit hashpolicy. This algorithm is not fully 802.3ad compliant."},"upDelay":{"type":"string","description":"If a link has been brought up, the bonding interface is disabled for up-delay time and after this time it is enabled. The value should be a multiple of mii-interval , otherwise, it will be rounded down to the nearest value. This property only has an effect when link-monitoring is set to mii."}},"type":"object","required":["interfaceBondingId","macAddress","name","running","slaves"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol for the interface. disabled - the interface will not use ARP enabled - the interface will use ARP proxy-arp - the interface will use the ARP proxy feature reply-only -the interface will only reply to requests originated from matching IPaddress/MAC address combinations which are entered as static entries inthe '/ip arp' table. No dynamic entries will be automatically stored inthe '/ip arp' table. Therefore for communications to be successful, avalid static entry must already exist."},"arpInterval":{"type":"string","description":"Time in milliseconds defines how often to monitor ARP requests."},"arpIpTargets":{"type":"string","description":"IP target address which will be monitored if link-monitoring is set to arp. You can specify multiple IP addresses, separated by a comma."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"downDelay":{"type":"string","description":"If a link failure has been detected, the bonding interface is disabled for a down-delay time. The value should be a multiple of mii-interval, otherwise, it will be rounded down to the nearest value. This property only has an effect when link-monitoring is set to mii."},"forcedMacAddress":{"type":"string","description":"Bydefault, the bonding interface will use the MAC address of the firstselected slave interface. This property allows to configure static MACaddress for the bond interface (all zeros, broadcast or multicastaddresses will not apply). RouterOS will automatically change the MACaddress for slave interfaces and it will be visible in /interface ethernet configuration export."},"interfaceBondingId":{"type":"string"},"lacpMode":{"type":"string","description":"Specifies whether ports actively or passively participates in the LACP:\n    - **active** - ports actively initiate LACP communication, regardless of the partner's LACP mode (i.e, it \"speaks\" even if the partner is silent)\n    - **passive** - ports only respond to LACP messages and do not initiate them unless the partner is in active mode (i.e., it \"listens\" and responds only if spoken to)."},"lacpRate":{"type":"string","description":"LinkAggregation Control Protocol rate specifies how often to exchange withLACPDUs between bonding peers. Used to determine whether a link is up orother changes have occurred in the network. LACP tries to adapt tothese changes providing failover."},"lacpUserKey":{"type":"number","description":"Specifiesthe upper 10 bits of the port key. The lower 6 bits are automaticallyassigned based on individual port link speed and duplex. The setting isavailable only since RouterOS v7.3."},"linkMonitoring":{"type":"string","description":"Method to use for monitoring the link (whether it is up or down) arp - uses Address Resolution Protocol to determine whether the remote interface is reachable mii - uses Media Independent Interface to determine link status. Link status determination relies on the device driver. none - no method for link monitoring is used. Note: some bonding modes require specific link monitoring to work properly."},"miiInterval":{"type":"string","description":"How often to monitor the link for failures (the parameter used only if link-monitoring is mii)"},"minLinks":{"type":"number","description":"How many active slave links needed for bonding to become active."},"mlagId":{"type":"number","description":"ChangesMLAG ID for bonding interface. The same MLAG ID should be used on bothpeer devices to successfully create a single MLAG. See more details on MLAG ."},"mode":{"type":"string","description":"Specifies one of the bonding policies:\n  * 802.3ad -IEEE 802.3ad dynamic link aggregation. In this mode, the interfaces areaggregated in a group where each slave shares the same speed. Itprovides fault tolerance and load balancing. Slave selection foroutgoing traffic is done according to the transmit-hash-policy\n  * active-backup - provides link backup. Only one slave can be active at a time. Another slave only becomes active, if the first one fails.\n  * balance-alb - adaptive load balancing. The same as balance-tlb but received traffic is also balanced. The device driver should have support for changing it's MAC address.\n  * balance-rr -round-robin load balancing. Slaves in a bonding interface will transmitand receive data in sequential order. It provides load balancing andfault tolerance.\n  * balance-tlb -Outgoing traffic is distributed according to the current load on eachslave. Incoming traffic is not balanced and is received by the currentslave. If receiving slave fails, then another slave takes the MACaddress of the failed slave.\n  * balance-xor - Transmit based on the selected transmit-hash-policy. This mode provides load balancing and fault tolerance.\n  * broadcast -Broadcasts the same data on all interfaces at once. This provides faulttolerance but slows down traffic throughput on some slow machines."},"mtu":{"type":"number","description":"MaximumTransmit Unit in bytes. Must be smaller or equal to the smallest L2MTUvalue of a bonding slave. L2MTU of a bonding interface is determined bythe lowest L2MTU value among its slave interfaces."},"name":{"type":"string","description":"Name of the bonding interface."},"primary":{"type":"string","description":"Controlsthe primary interface between active slave ports, works only foractive-backup, balance-tlb and balance-alb modes. For active-backupmode, it controls which running interface is supposed to send andreceive the traffic. For balance-tlb mode, it controls which runninginterface is supposed to receive all the traffic, but for balance-albmode, it controls which interface is supposed to receive the unbalanced  traffic (the non-IPv4 traffic). When none of the interfaces are selectedas primary, device will automatically select the interface that isconfigured as the first one."},"slaves":{"type":"array","items":{"type":"string"},"description":"At least two ethernet-like interfaces separated by a comma, which will be used for bonding"},"transmitHashPolicy":{"type":"string","description":"Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes:\n  * layer-2 -Uses XOR of hardware MAC addresses to generate the hash. This algorithm  will place all traffic to a particular network peer on the same slave.This algorithm is 802.3ad compliant.\n  * layer-2-and-3 -This policy uses a combination of layer2 and layer3 protocolinformation to generate the hash. Uses XOR of hardware MAC addresses andIP addresses to generate the hash. This algorithm will place alltraffic to a particular network peer on the same slave. For non-IPtraffic, the formula is the same as for the layer2 transmit hash policy.This policy is intended to provide a more balanced distribution oftraffic than layer2 alone, especially in environments where a layer3gateway device is required to reach most destinations. This algorithm is802.3ad compliant.\n  * layer-3-and-4 - This policyuses upper layer protocol information, when available, to generate thehash. This allows for traffic to a particular network peer to spanmultiple slaves, although a single connection will not span multipleslaves. For fragmented TCP or UDP packets and all other IP protocoltraffic, the source and destination port information is omitted. Fornon-IP traffic, the formula is the same as for the layer2 transmit hashpolicy. This algorithm is not fully 802.3ad compliant."},"upDelay":{"type":"string","description":"If a link has been brought up, the bonding interface is disabled for up-delay time and after this time it is enabled. The value should be a multiple of mii-interval , otherwise, it will be rounded down to the nearest value. This property only has an effect when link-monitoring is set to mii."}},"requiredInputs":["slaves"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceBonding resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol for the interface. disabled - the interface will not use ARP enabled - the interface will use ARP proxy-arp - the interface will use the ARP proxy feature reply-only -the interface will only reply to requests originated from matching IPaddress/MAC address combinations which are entered as static entries inthe '/ip arp' table. No dynamic entries will be automatically stored inthe '/ip arp' table. Therefore for communications to be successful, avalid static entry must already exist."},"arpInterval":{"type":"string","description":"Time in milliseconds defines how often to monitor ARP requests."},"arpIpTargets":{"type":"string","description":"IP target address which will be monitored if link-monitoring is set to arp. You can specify multiple IP addresses, separated by a comma."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"downDelay":{"type":"string","description":"If a link failure has been detected, the bonding interface is disabled for a down-delay time. The value should be a multiple of mii-interval, otherwise, it will be rounded down to the nearest value. This property only has an effect when link-monitoring is set to mii."},"forcedMacAddress":{"type":"string","description":"Bydefault, the bonding interface will use the MAC address of the firstselected slave interface. This property allows to configure static MACaddress for the bond interface (all zeros, broadcast or multicastaddresses will not apply). RouterOS will automatically change the MACaddress for slave interfaces and it will be visible in /interface ethernet configuration export."},"interfaceBondingId":{"type":"string"},"lacpMode":{"type":"string","description":"Specifies whether ports actively or passively participates in the LACP:\n    - **active** - ports actively initiate LACP communication, regardless of the partner's LACP mode (i.e, it \"speaks\" even if the partner is silent)\n    - **passive** - ports only respond to LACP messages and do not initiate them unless the partner is in active mode (i.e., it \"listens\" and responds only if spoken to)."},"lacpRate":{"type":"string","description":"LinkAggregation Control Protocol rate specifies how often to exchange withLACPDUs between bonding peers. Used to determine whether a link is up orother changes have occurred in the network. LACP tries to adapt tothese changes providing failover."},"lacpUserKey":{"type":"number","description":"Specifiesthe upper 10 bits of the port key. The lower 6 bits are automaticallyassigned based on individual port link speed and duplex. The setting isavailable only since RouterOS v7.3."},"linkMonitoring":{"type":"string","description":"Method to use for monitoring the link (whether it is up or down) arp - uses Address Resolution Protocol to determine whether the remote interface is reachable mii - uses Media Independent Interface to determine link status. Link status determination relies on the device driver. none - no method for link monitoring is used. Note: some bonding modes require specific link monitoring to work properly."},"macAddress":{"type":"string","description":"Current mac address."},"miiInterval":{"type":"string","description":"How often to monitor the link for failures (the parameter used only if link-monitoring is mii)"},"minLinks":{"type":"number","description":"How many active slave links needed for bonding to become active."},"mlagId":{"type":"number","description":"ChangesMLAG ID for bonding interface. The same MLAG ID should be used on bothpeer devices to successfully create a single MLAG. See more details on MLAG ."},"mode":{"type":"string","description":"Specifies one of the bonding policies:\n  * 802.3ad -IEEE 802.3ad dynamic link aggregation. In this mode, the interfaces areaggregated in a group where each slave shares the same speed. Itprovides fault tolerance and load balancing. Slave selection foroutgoing traffic is done according to the transmit-hash-policy\n  * active-backup - provides link backup. Only one slave can be active at a time. Another slave only becomes active, if the first one fails.\n  * balance-alb - adaptive load balancing. The same as balance-tlb but received traffic is also balanced. The device driver should have support for changing it's MAC address.\n  * balance-rr -round-robin load balancing. Slaves in a bonding interface will transmitand receive data in sequential order. It provides load balancing andfault tolerance.\n  * balance-tlb -Outgoing traffic is distributed according to the current load on eachslave. Incoming traffic is not balanced and is received by the currentslave. If receiving slave fails, then another slave takes the MACaddress of the failed slave.\n  * balance-xor - Transmit based on the selected transmit-hash-policy. This mode provides load balancing and fault tolerance.\n  * broadcast -Broadcasts the same data on all interfaces at once. This provides faulttolerance but slows down traffic throughput on some slow machines."},"mtu":{"type":"number","description":"MaximumTransmit Unit in bytes. Must be smaller or equal to the smallest L2MTUvalue of a bonding slave. L2MTU of a bonding interface is determined bythe lowest L2MTU value among its slave interfaces."},"name":{"type":"string","description":"Name of the bonding interface."},"primary":{"type":"string","description":"Controlsthe primary interface between active slave ports, works only foractive-backup, balance-tlb and balance-alb modes. For active-backupmode, it controls which running interface is supposed to send andreceive the traffic. For balance-tlb mode, it controls which runninginterface is supposed to receive all the traffic, but for balance-albmode, it controls which interface is supposed to receive the unbalanced  traffic (the non-IPv4 traffic). When none of the interfaces are selectedas primary, device will automatically select the interface that isconfigured as the first one."},"running":{"type":"boolean"},"slaves":{"type":"array","items":{"type":"string"},"description":"At least two ethernet-like interfaces separated by a comma, which will be used for bonding"},"transmitHashPolicy":{"type":"string","description":"Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes:\n  * layer-2 -Uses XOR of hardware MAC addresses to generate the hash. This algorithm  will place all traffic to a particular network peer on the same slave.This algorithm is 802.3ad compliant.\n  * layer-2-and-3 -This policy uses a combination of layer2 and layer3 protocolinformation to generate the hash. Uses XOR of hardware MAC addresses andIP addresses to generate the hash. This algorithm will place alltraffic to a particular network peer on the same slave. For non-IPtraffic, the formula is the same as for the layer2 transmit hash policy.This policy is intended to provide a more balanced distribution oftraffic than layer2 alone, especially in environments where a layer3gateway device is required to reach most destinations. This algorithm is802.3ad compliant.\n  * layer-3-and-4 - This policyuses upper layer protocol information, when available, to generate thehash. This allows for traffic to a particular network peer to spanmultiple slaves, although a single connection will not span multipleslaves. For fragmented TCP or UDP packets and all other IP protocoltraffic, the source and destination port information is omitted. Fornon-IP traffic, the formula is the same as for the layer2 transmit hashpolicy. This algorithm is not fully 802.3ad compliant."},"upDelay":{"type":"string","description":"If a link has been brought up, the bonding interface is disabled for up-delay time and after this time it is enabled. The value should be a multiple of mii-interval , otherwise, it will be rounded down to the nearest value. This property only has an effect when link-monitoring is set to mii."}},"type":"object"}},"routeros:index/interfaceBridge:InterfaceBridge":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst bridge = new routeros.InterfaceBridge(\"bridge\", {\n    name: \"bridge\",\n    vlanFiltering: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nbridge = routeros.InterfaceBridge(\"bridge\",\n    name=\"bridge\",\n    vlan_filtering=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var bridge = new Routeros.InterfaceBridge(\"bridge\", new()\n    {\n        Name = \"bridge\",\n        VlanFiltering = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceBridge(ctx, \"bridge\", \u0026routeros.InterfaceBridgeArgs{\n\t\t\tName:          pulumi.String(\"bridge\"),\n\t\t\tVlanFiltering: 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.routeros.InterfaceBridge;\nimport com.pulumi.routeros.InterfaceBridgeArgs;\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 bridge = new InterfaceBridge(\"bridge\", InterfaceBridgeArgs.builder()\n            .name(\"bridge\")\n            .vlanFiltering(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bridge:\n    type: routeros:InterfaceBridge\n    properties:\n      name: bridge\n      vlanFiltering: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/bridge get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceBridge:InterfaceBridge bridge \"*1\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"addDhcpOption82":{"type":"boolean","description":"Whether to add DHCP Option-82 information (Agent Remote ID and Agent Circuit ID) to DHCP packets. Can be used together with Option-82 capable DHCP server to assign IP addresses and implement policies. This property only has effect when dhcp-snooping is set to yes."},"adminMac":{"type":"string","description":"Static MAC address of the bridge. This property only has effect when auto-mac is set to no."},"ageingTime":{"type":"string","description":"How long a host's information will be kept in the bridge database."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"autoMac":{"type":"boolean","description":"Automatically select one MAC address of bridge ports as a bridge MAC address, bridge MAC will be chosen from the first added bridge port. After a device reboot, the bridge MAC can change depending on the port-number."},"comment":{"type":"string"},"dhcpSnooping":{"type":"boolean"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"etherType":{"type":"string","description":"This property only has effect when vlan-filtering is set to yes."},"fastForward":{"type":"boolean"},"forwardDelay":{"type":"string","description":"Time which is spent during the initialization phase of the bridge interface (i.e., after router startup or enabling the interface) in listening/learning state before the bridge will start functioning normally."},"forwardReservedAddresses":{"type":"boolean","description":"An option whether to forward IEEE reserved multicast MAC addresses that are in the `01:80:C2:00:00:0x` range. This option is available in RouterOS starting from version 7.16."},"frameTypes":{"type":"string","description":"Specifies allowed frame types on a bridge port. This property only has effect when vlan-filtering is set to yes."},"igmpSnooping":{"type":"boolean","description":"Enables multicast group and port learning to prevent multicast traffic from flooding all interfaces in a bridge."},"igmpVersion":{"type":"number","description":"Selects the IGMP version in which IGMP general membership queries will be generated. This property only has effect when igmp-snooping is set to yes."},"ingressFiltering":{"type":"boolean","description":"Enables or disables VLAN ingress filtering, which checks if the ingress port is a member of the received VLAN ID in the bridge VLAN table. Should be used with frame-types to specify if the ingress traffic should be tagged or untagged. This property only has effect when vlan-filtering is set to yes."},"interfaceBridgeId":{"type":"string"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"lastMemberInterval":{"type":"string","description":"If a port has fast-leave set to no and a bridge port receives a IGMP Leave message, then a IGMP Snooping enabled bridge will send a IGMP query to make sure that no devices has subscribed to a certain multicast stream on a bridge port."},"lastMemberQueryCount":{"type":"number","description":"How many times should last-member-interval pass until a IGMP Snooping bridge will stop forwarding a certain multicast stream. This property only has effect when igmp-snooping is set to yes."},"macAddress":{"type":"string","description":"Current mac address."},"maxHops":{"type":"number","description":"Bridge count which BPDU can pass in a MSTP enabled network in the same region before BPDU is being ignored. This property only has effect when protocol-mode is set to mstp."},"maxLearnedEntries":{"type":"string","description":"An option to set the maximum number of learned hosts for the bridge interface. This option is available in RouterOS starting from version 7.16."},"maxMessageAge":{"type":"string","description":"Changes the Max Age value in BPDU packets, which is transmitted by the root bridge. This property only has effect when protocol-mode is set to stp or rstp. Value: 6s..40s"},"membershipInterval":{"type":"string","description":"Amount of time after an entry in the Multicast Database (MDB) is removed if a IGMP membership report is not received on a certain port. This property only has effect when igmp-snooping is set to yes."},"mldVersion":{"type":"number","description":"Selects the MLD version. Version 2 adds support for source-specific multicast. This property only has effect when RouterOS IPv6 package is enabled and igmp-snooping is set to yes."},"mtu":{"type":"string","description":"The default bridge MTU value without any bridge ports added is 1500. The MTU value can be set manually, but it cannot exceed the bridge L2MTU or the lowest bridge port L2MTU. If a new bridge port is added with L2MTU which is smaller than the actual-mtu of the bridge (set by the mtu property), then manually set value will be ignored and the bridge will act as if mtu=auto is set."},"multicastQuerier":{"type":"boolean","description":"Multicast querier generates IGMP general membership queries to which all IGMP capable devices respond with an IGMP membership report, usually a PIM (multicast) router or IGMP proxy generates these queries. This property only has an effect when igmp-snooping is set to yes. Additionally, the igmp-snooping should be disabled/enabled after changing multicast-querier property."},"multicastRouter":{"type":"string","description":"A multicast router port is a port where a multicast router or querier is connected. On this port, unregistered multicast streams and IGMP/MLD membership reports will be sent. This setting changes the state of the multicast router for a bridge interface itself. This property can be used to send IGMP/MLD membership reports and multicast traffic to the bridge interface for further multicast routing or proxying. This property only has an effect when igmp-snooping is set to yes."},"mvrp":{"type":"boolean","description":"Enables MVRP for bridge (available since RouterOS 7.15). It ensures that the MAC address 01:80:C2:00:00:21 is trapped and not forwarded, the vlan-filtering must be enabled."},"name":{"type":"string"},"portCostMode":{"type":"string","description":"An option that changes the port path cost and internal path cost mode for bridged ports, utilizing automatic values based on interface speed."},"priority":{"type":"string","description":"Bridge priority, used by STP to determine root bridge, used by MSTP to determine CIST and IST regional root bridge. This property has no effect when protocol-mode is set to none."},"protocolMode":{"type":"string","description":"Select Spanning tree protocol (STP) or Rapid spanning tree protocol (RSTP) to ensure a loop-free topology for any bridged LAN."},"pvid":{"type":"number","description":"Port VLAN ID (pvid) specifies which VLAN the untagged ingress traffic is assigned to. It applies e.g. to frames sent from bridge IP and destined to a bridge port. This property only has effect when vlan-filtering is set to yes."},"querierInterval":{"type":"string","description":"Used to change the interval how often a bridge checks if it is the active multicast querier. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"queryInterval":{"type":"string","description":"Used to change the interval how often IGMP general membership queries are sent out. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"queryResponseInterval":{"type":"string","description":"Interval in which a IGMP capable device must reply to a IGMP query with a IGMP membership report. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"regionName":{"type":"string","description":"MSTP region name. This property only has effect when protocol-mode is set to mstp."},"regionRevision":{"type":"number","description":"MSTP configuration revision number. This property only has effect when protocol-mode is set to mstp."},"running":{"type":"boolean"},"startupQueryCount":{"type":"number","description":"Specifies how many times must startup-query-interval pass until the bridge starts sending out IGMP general membership queries periodically. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"startupQueryInterval":{"type":"string","description":"Used to change the amount of time after a bridge starts sending out IGMP general membership queries after the bridge is enabled. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"transmitHoldCount":{"type":"number","description":"The Transmit Hold Count used by the Port Transmit state machine to limit transmission rate."},"vlanFiltering":{"type":"boolean","description":"Globally enables or disables VLAN functionality for bridge."}},"type":"object","required":["actualMtu","adminMac","dynamic","fastForward","igmpVersion","interfaceBridgeId","l2mtu","lastMemberInterval","lastMemberQueryCount","macAddress","maxHops","membershipInterval","mldVersion","multicastRouter","name","querierInterval","queryInterval","queryResponseInterval","running","startupQueryCount","startupQueryInterval"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDhcpOption82":{"type":"boolean","description":"Whether to add DHCP Option-82 information (Agent Remote ID and Agent Circuit ID) to DHCP packets. Can be used together with Option-82 capable DHCP server to assign IP addresses and implement policies. This property only has effect when dhcp-snooping is set to yes."},"adminMac":{"type":"string","description":"Static MAC address of the bridge. This property only has effect when auto-mac is set to no."},"ageingTime":{"type":"string","description":"How long a host's information will be kept in the bridge database."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"autoMac":{"type":"boolean","description":"Automatically select one MAC address of bridge ports as a bridge MAC address, bridge MAC will be chosen from the first added bridge port. After a device reboot, the bridge MAC can change depending on the port-number."},"comment":{"type":"string"},"dhcpSnooping":{"type":"boolean"},"disabled":{"type":"boolean"},"etherType":{"type":"string","description":"This property only has effect when vlan-filtering is set to yes."},"fastForward":{"type":"boolean"},"forwardDelay":{"type":"string","description":"Time which is spent during the initialization phase of the bridge interface (i.e., after router startup or enabling the interface) in listening/learning state before the bridge will start functioning normally."},"forwardReservedAddresses":{"type":"boolean","description":"An option whether to forward IEEE reserved multicast MAC addresses that are in the `01:80:C2:00:00:0x` range. This option is available in RouterOS starting from version 7.16."},"frameTypes":{"type":"string","description":"Specifies allowed frame types on a bridge port. This property only has effect when vlan-filtering is set to yes."},"igmpSnooping":{"type":"boolean","description":"Enables multicast group and port learning to prevent multicast traffic from flooding all interfaces in a bridge."},"igmpVersion":{"type":"number","description":"Selects the IGMP version in which IGMP general membership queries will be generated. This property only has effect when igmp-snooping is set to yes."},"ingressFiltering":{"type":"boolean","description":"Enables or disables VLAN ingress filtering, which checks if the ingress port is a member of the received VLAN ID in the bridge VLAN table. Should be used with frame-types to specify if the ingress traffic should be tagged or untagged. This property only has effect when vlan-filtering is set to yes."},"interfaceBridgeId":{"type":"string"},"lastMemberInterval":{"type":"string","description":"If a port has fast-leave set to no and a bridge port receives a IGMP Leave message, then a IGMP Snooping enabled bridge will send a IGMP query to make sure that no devices has subscribed to a certain multicast stream on a bridge port."},"lastMemberQueryCount":{"type":"number","description":"How many times should last-member-interval pass until a IGMP Snooping bridge will stop forwarding a certain multicast stream. This property only has effect when igmp-snooping is set to yes."},"maxHops":{"type":"number","description":"Bridge count which BPDU can pass in a MSTP enabled network in the same region before BPDU is being ignored. This property only has effect when protocol-mode is set to mstp."},"maxLearnedEntries":{"type":"string","description":"An option to set the maximum number of learned hosts for the bridge interface. This option is available in RouterOS starting from version 7.16."},"maxMessageAge":{"type":"string","description":"Changes the Max Age value in BPDU packets, which is transmitted by the root bridge. This property only has effect when protocol-mode is set to stp or rstp. Value: 6s..40s"},"membershipInterval":{"type":"string","description":"Amount of time after an entry in the Multicast Database (MDB) is removed if a IGMP membership report is not received on a certain port. This property only has effect when igmp-snooping is set to yes."},"mldVersion":{"type":"number","description":"Selects the MLD version. Version 2 adds support for source-specific multicast. This property only has effect when RouterOS IPv6 package is enabled and igmp-snooping is set to yes."},"mtu":{"type":"string","description":"The default bridge MTU value without any bridge ports added is 1500. The MTU value can be set manually, but it cannot exceed the bridge L2MTU or the lowest bridge port L2MTU. If a new bridge port is added with L2MTU which is smaller than the actual-mtu of the bridge (set by the mtu property), then manually set value will be ignored and the bridge will act as if mtu=auto is set."},"multicastQuerier":{"type":"boolean","description":"Multicast querier generates IGMP general membership queries to which all IGMP capable devices respond with an IGMP membership report, usually a PIM (multicast) router or IGMP proxy generates these queries. This property only has an effect when igmp-snooping is set to yes. Additionally, the igmp-snooping should be disabled/enabled after changing multicast-querier property."},"multicastRouter":{"type":"string","description":"A multicast router port is a port where a multicast router or querier is connected. On this port, unregistered multicast streams and IGMP/MLD membership reports will be sent. This setting changes the state of the multicast router for a bridge interface itself. This property can be used to send IGMP/MLD membership reports and multicast traffic to the bridge interface for further multicast routing or proxying. This property only has an effect when igmp-snooping is set to yes."},"mvrp":{"type":"boolean","description":"Enables MVRP for bridge (available since RouterOS 7.15). It ensures that the MAC address 01:80:C2:00:00:21 is trapped and not forwarded, the vlan-filtering must be enabled."},"name":{"type":"string"},"portCostMode":{"type":"string","description":"An option that changes the port path cost and internal path cost mode for bridged ports, utilizing automatic values based on interface speed."},"priority":{"type":"string","description":"Bridge priority, used by STP to determine root bridge, used by MSTP to determine CIST and IST regional root bridge. This property has no effect when protocol-mode is set to none."},"protocolMode":{"type":"string","description":"Select Spanning tree protocol (STP) or Rapid spanning tree protocol (RSTP) to ensure a loop-free topology for any bridged LAN."},"pvid":{"type":"number","description":"Port VLAN ID (pvid) specifies which VLAN the untagged ingress traffic is assigned to. It applies e.g. to frames sent from bridge IP and destined to a bridge port. This property only has effect when vlan-filtering is set to yes."},"querierInterval":{"type":"string","description":"Used to change the interval how often a bridge checks if it is the active multicast querier. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"queryInterval":{"type":"string","description":"Used to change the interval how often IGMP general membership queries are sent out. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"queryResponseInterval":{"type":"string","description":"Interval in which a IGMP capable device must reply to a IGMP query with a IGMP membership report. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"regionName":{"type":"string","description":"MSTP region name. This property only has effect when protocol-mode is set to mstp."},"regionRevision":{"type":"number","description":"MSTP configuration revision number. This property only has effect when protocol-mode is set to mstp."},"startupQueryCount":{"type":"number","description":"Specifies how many times must startup-query-interval pass until the bridge starts sending out IGMP general membership queries periodically. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"startupQueryInterval":{"type":"string","description":"Used to change the amount of time after a bridge starts sending out IGMP general membership queries after the bridge is enabled. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"transmitHoldCount":{"type":"number","description":"The Transmit Hold Count used by the Port Transmit state machine to limit transmission rate."},"vlanFiltering":{"type":"boolean","description":"Globally enables or disables VLAN functionality for bridge."}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceBridge resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"addDhcpOption82":{"type":"boolean","description":"Whether to add DHCP Option-82 information (Agent Remote ID and Agent Circuit ID) to DHCP packets. Can be used together with Option-82 capable DHCP server to assign IP addresses and implement policies. This property only has effect when dhcp-snooping is set to yes."},"adminMac":{"type":"string","description":"Static MAC address of the bridge. This property only has effect when auto-mac is set to no."},"ageingTime":{"type":"string","description":"How long a host's information will be kept in the bridge database."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"autoMac":{"type":"boolean","description":"Automatically select one MAC address of bridge ports as a bridge MAC address, bridge MAC will be chosen from the first added bridge port. After a device reboot, the bridge MAC can change depending on the port-number."},"comment":{"type":"string"},"dhcpSnooping":{"type":"boolean"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"etherType":{"type":"string","description":"This property only has effect when vlan-filtering is set to yes."},"fastForward":{"type":"boolean"},"forwardDelay":{"type":"string","description":"Time which is spent during the initialization phase of the bridge interface (i.e., after router startup or enabling the interface) in listening/learning state before the bridge will start functioning normally."},"forwardReservedAddresses":{"type":"boolean","description":"An option whether to forward IEEE reserved multicast MAC addresses that are in the `01:80:C2:00:00:0x` range. This option is available in RouterOS starting from version 7.16."},"frameTypes":{"type":"string","description":"Specifies allowed frame types on a bridge port. This property only has effect when vlan-filtering is set to yes."},"igmpSnooping":{"type":"boolean","description":"Enables multicast group and port learning to prevent multicast traffic from flooding all interfaces in a bridge."},"igmpVersion":{"type":"number","description":"Selects the IGMP version in which IGMP general membership queries will be generated. This property only has effect when igmp-snooping is set to yes."},"ingressFiltering":{"type":"boolean","description":"Enables or disables VLAN ingress filtering, which checks if the ingress port is a member of the received VLAN ID in the bridge VLAN table. Should be used with frame-types to specify if the ingress traffic should be tagged or untagged. This property only has effect when vlan-filtering is set to yes."},"interfaceBridgeId":{"type":"string"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"lastMemberInterval":{"type":"string","description":"If a port has fast-leave set to no and a bridge port receives a IGMP Leave message, then a IGMP Snooping enabled bridge will send a IGMP query to make sure that no devices has subscribed to a certain multicast stream on a bridge port."},"lastMemberQueryCount":{"type":"number","description":"How many times should last-member-interval pass until a IGMP Snooping bridge will stop forwarding a certain multicast stream. This property only has effect when igmp-snooping is set to yes."},"macAddress":{"type":"string","description":"Current mac address."},"maxHops":{"type":"number","description":"Bridge count which BPDU can pass in a MSTP enabled network in the same region before BPDU is being ignored. This property only has effect when protocol-mode is set to mstp."},"maxLearnedEntries":{"type":"string","description":"An option to set the maximum number of learned hosts for the bridge interface. This option is available in RouterOS starting from version 7.16."},"maxMessageAge":{"type":"string","description":"Changes the Max Age value in BPDU packets, which is transmitted by the root bridge. This property only has effect when protocol-mode is set to stp or rstp. Value: 6s..40s"},"membershipInterval":{"type":"string","description":"Amount of time after an entry in the Multicast Database (MDB) is removed if a IGMP membership report is not received on a certain port. This property only has effect when igmp-snooping is set to yes."},"mldVersion":{"type":"number","description":"Selects the MLD version. Version 2 adds support for source-specific multicast. This property only has effect when RouterOS IPv6 package is enabled and igmp-snooping is set to yes."},"mtu":{"type":"string","description":"The default bridge MTU value without any bridge ports added is 1500. The MTU value can be set manually, but it cannot exceed the bridge L2MTU or the lowest bridge port L2MTU. If a new bridge port is added with L2MTU which is smaller than the actual-mtu of the bridge (set by the mtu property), then manually set value will be ignored and the bridge will act as if mtu=auto is set."},"multicastQuerier":{"type":"boolean","description":"Multicast querier generates IGMP general membership queries to which all IGMP capable devices respond with an IGMP membership report, usually a PIM (multicast) router or IGMP proxy generates these queries. This property only has an effect when igmp-snooping is set to yes. Additionally, the igmp-snooping should be disabled/enabled after changing multicast-querier property."},"multicastRouter":{"type":"string","description":"A multicast router port is a port where a multicast router or querier is connected. On this port, unregistered multicast streams and IGMP/MLD membership reports will be sent. This setting changes the state of the multicast router for a bridge interface itself. This property can be used to send IGMP/MLD membership reports and multicast traffic to the bridge interface for further multicast routing or proxying. This property only has an effect when igmp-snooping is set to yes."},"mvrp":{"type":"boolean","description":"Enables MVRP for bridge (available since RouterOS 7.15). It ensures that the MAC address 01:80:C2:00:00:21 is trapped and not forwarded, the vlan-filtering must be enabled."},"name":{"type":"string"},"portCostMode":{"type":"string","description":"An option that changes the port path cost and internal path cost mode for bridged ports, utilizing automatic values based on interface speed."},"priority":{"type":"string","description":"Bridge priority, used by STP to determine root bridge, used by MSTP to determine CIST and IST regional root bridge. This property has no effect when protocol-mode is set to none."},"protocolMode":{"type":"string","description":"Select Spanning tree protocol (STP) or Rapid spanning tree protocol (RSTP) to ensure a loop-free topology for any bridged LAN."},"pvid":{"type":"number","description":"Port VLAN ID (pvid) specifies which VLAN the untagged ingress traffic is assigned to. It applies e.g. to frames sent from bridge IP and destined to a bridge port. This property only has effect when vlan-filtering is set to yes."},"querierInterval":{"type":"string","description":"Used to change the interval how often a bridge checks if it is the active multicast querier. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"queryInterval":{"type":"string","description":"Used to change the interval how often IGMP general membership queries are sent out. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"queryResponseInterval":{"type":"string","description":"Interval in which a IGMP capable device must reply to a IGMP query with a IGMP membership report. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"regionName":{"type":"string","description":"MSTP region name. This property only has effect when protocol-mode is set to mstp."},"regionRevision":{"type":"number","description":"MSTP configuration revision number. This property only has effect when protocol-mode is set to mstp."},"running":{"type":"boolean"},"startupQueryCount":{"type":"number","description":"Specifies how many times must startup-query-interval pass until the bridge starts sending out IGMP general membership queries periodically. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"startupQueryInterval":{"type":"string","description":"Used to change the amount of time after a bridge starts sending out IGMP general membership queries after the bridge is enabled. This property only has effect when igmp-snooping and multicast-querier is set to yes."},"transmitHoldCount":{"type":"number","description":"The Transmit Hold Count used by the Port Transmit state machine to limit transmission rate."},"vlanFiltering":{"type":"boolean","description":"Globally enables or disables VLAN functionality for bridge."}},"type":"object"}},"routeros:index/interfaceBridgeFilter:InterfaceBridgeFilter":{"description":"## Example Usage\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/bridge/filter get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceBridgeFilter:InterfaceBridgeFilter rule \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceBridgeFilter:InterfaceBridgeFilter rule \"dst_address=224.0.0.251/32\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"arpDstMacAddress":{"type":"string","description":"ARP destination MAC address"},"arpGratuitous":{"type":"boolean","description":"Matches ARP gratuitous packets."},"arpHardwareType":{"type":"number","description":"ARP hardware type. This is normally Ethernet (Type 1)."},"arpOpcode":{"type":"string","description":"Action to take if a packet is matched by the rule"},"arpPacketType":{"type":"number","description":"ARP Packet Type"},"arpSrcAddress":{"type":"string","description":"ARP source IP address."},"arpSrcMacAddress":{"type":"string","description":"ARP source MAC address."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"Destination IP address (only if MAC protocol is set to IP)."},"dstMacAddress":{"type":"string","description":"Destination MAC address."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"inBridge":{"type":"string","description":"Bridge interface through which the packet is coming in."},"inBridgeList":{"type":"string","description":"Set of bridge interfaces defined in interface list. Works the same as in-bridge."},"inInterface":{"type":"string","description":"Physical interface (i.e., bridge port) through which the packet is coming in."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Integer. Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP,or MPLS EXP bit."},"interfaceBridgeFilterId":{"type":"string"},"ipProtocol":{"type":"string","description":"IP protocol (only if MAC protocol is set to IPv4)"},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"macProtocol":{"type":"string","description":"Ethernet payload type (MAC-level protocol). To match protocol type for VLAN encapsulated frames (0x8100 or 0x88a8), a vlan-encap property should be used."},"newPacketMark":{"type":"string","description":"Sets a new packet-mark value."},"newPriority":{"type":"number","description":"Sets a new priority for a packet. This can be the VLAN, WMM or MPLS EXP priority"},"outBridge":{"type":"string","description":"Bridge interface through which the packet going out."},"outBridgeList":{"type":"string","description":"Set of bridge interfaces defined in interface list. Works the same as out-bridge."},"outInterface":{"type":"string","description":"Interface the packet has entered the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Match packets with a certain packet mark."},"packetType":{"type":"string","description":"Match packets with a certain packet mark."},"passthrough":{"type":"boolean","description":"Whether to let the packet to pass further (like action passthrough) into the filter or not (property only valid some actions)."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"srcAddress":{"type":"string","description":"Source port number or range (only for TCP or UDP protocols)."},"srcMacAddress":{"type":"string","description":"Source MAC address."},"srcPort":{"type":"string","description":"List of source port numbers or port number ranges."},"stpFlags":{"type":"string","description":"Match packets with a certain packet mark."},"stpForwardDelay":{"type":"number","description":"Forward delay timer."},"stpHelloTime":{"type":"number","description":"STP hello packets time."},"stpMaxAge":{"type":"number","description":"Maximal STP message age."},"stpPort":{"type":"number","description":"STP port identifier."},"stpRootAddress":{"type":"string","description":"Root bridge MAC address"},"stpRootCost":{"type":"number","description":"Root bridge cost."},"stpRootPriority":{"type":"number"},"stpSenderAddress":{"type":"string","description":"STP message sender MAC address."},"stpSenderPriority":{"type":"number","description":"STP sender priority."},"stpType":{"type":"string","description":"The BPDU type: config - configuration BPDU OR tcn - topology change notification"},"tlsHost":{"type":"string","description":"Allows matching https traffic based on TLS SNI hostname. Accepts GLOB syntax for wildcard matching"},"vlanEncap":{"type":"number","description":"Matches the MAC protocol type encapsulated in the VLAN frame."},"vlanId":{"type":"number","description":"Matches the VLAN identifier field."},"vlanPriority":{"type":"number","description":"Matches the VLAN identifier field."}},"type":"object","required":["action","chain","dynamic","interfaceBridgeFilterId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"arpDstMacAddress":{"type":"string","description":"ARP destination MAC address"},"arpGratuitous":{"type":"boolean","description":"Matches ARP gratuitous packets."},"arpHardwareType":{"type":"number","description":"ARP hardware type. This is normally Ethernet (Type 1)."},"arpOpcode":{"type":"string","description":"Action to take if a packet is matched by the rule"},"arpPacketType":{"type":"number","description":"ARP Packet Type"},"arpSrcAddress":{"type":"string","description":"ARP source IP address."},"arpSrcMacAddress":{"type":"string","description":"ARP source MAC address."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"Destination IP address (only if MAC protocol is set to IP)."},"dstMacAddress":{"type":"string","description":"Destination MAC address."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"inBridge":{"type":"string","description":"Bridge interface through which the packet is coming in."},"inBridgeList":{"type":"string","description":"Set of bridge interfaces defined in interface list. Works the same as in-bridge."},"inInterface":{"type":"string","description":"Physical interface (i.e., bridge port) through which the packet is coming in."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Integer. Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP,or MPLS EXP bit."},"interfaceBridgeFilterId":{"type":"string"},"ipProtocol":{"type":"string","description":"IP protocol (only if MAC protocol is set to IPv4)"},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"macProtocol":{"type":"string","description":"Ethernet payload type (MAC-level protocol). To match protocol type for VLAN encapsulated frames (0x8100 or 0x88a8), a vlan-encap property should be used."},"newPacketMark":{"type":"string","description":"Sets a new packet-mark value."},"newPriority":{"type":"number","description":"Sets a new priority for a packet. This can be the VLAN, WMM or MPLS EXP priority"},"outBridge":{"type":"string","description":"Bridge interface through which the packet going out."},"outBridgeList":{"type":"string","description":"Set of bridge interfaces defined in interface list. Works the same as out-bridge."},"outInterface":{"type":"string","description":"Interface the packet has entered the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Match packets with a certain packet mark."},"packetType":{"type":"string","description":"Match packets with a certain packet mark."},"passthrough":{"type":"boolean","description":"Whether to let the packet to pass further (like action passthrough) into the filter or not (property only valid some actions)."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"srcAddress":{"type":"string","description":"Source port number or range (only for TCP or UDP protocols)."},"srcMacAddress":{"type":"string","description":"Source MAC address."},"srcPort":{"type":"string","description":"List of source port numbers or port number ranges."},"stpFlags":{"type":"string","description":"Match packets with a certain packet mark."},"stpForwardDelay":{"type":"number","description":"Forward delay timer."},"stpHelloTime":{"type":"number","description":"STP hello packets time."},"stpMaxAge":{"type":"number","description":"Maximal STP message age."},"stpPort":{"type":"number","description":"STP port identifier."},"stpRootAddress":{"type":"string","description":"Root bridge MAC address"},"stpRootCost":{"type":"number","description":"Root bridge cost."},"stpRootPriority":{"type":"number"},"stpSenderAddress":{"type":"string","description":"STP message sender MAC address."},"stpSenderPriority":{"type":"number","description":"STP sender priority."},"stpType":{"type":"string","description":"The BPDU type: config - configuration BPDU OR tcn - topology change notification"},"tlsHost":{"type":"string","description":"Allows matching https traffic based on TLS SNI hostname. Accepts GLOB syntax for wildcard matching"},"vlanEncap":{"type":"number","description":"Matches the MAC protocol type encapsulated in the VLAN frame."},"vlanId":{"type":"number","description":"Matches the VLAN identifier field."},"vlanPriority":{"type":"number","description":"Matches the VLAN identifier field."}},"requiredInputs":["action","chain"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceBridgeFilter resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"arpDstMacAddress":{"type":"string","description":"ARP destination MAC address"},"arpGratuitous":{"type":"boolean","description":"Matches ARP gratuitous packets."},"arpHardwareType":{"type":"number","description":"ARP hardware type. This is normally Ethernet (Type 1)."},"arpOpcode":{"type":"string","description":"Action to take if a packet is matched by the rule"},"arpPacketType":{"type":"number","description":"ARP Packet Type"},"arpSrcAddress":{"type":"string","description":"ARP source IP address."},"arpSrcMacAddress":{"type":"string","description":"ARP source MAC address."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"Destination IP address (only if MAC protocol is set to IP)."},"dstMacAddress":{"type":"string","description":"Destination MAC address."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"inBridge":{"type":"string","description":"Bridge interface through which the packet is coming in."},"inBridgeList":{"type":"string","description":"Set of bridge interfaces defined in interface list. Works the same as in-bridge."},"inInterface":{"type":"string","description":"Physical interface (i.e., bridge port) through which the packet is coming in."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Integer. Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP,or MPLS EXP bit."},"interfaceBridgeFilterId":{"type":"string"},"ipProtocol":{"type":"string","description":"IP protocol (only if MAC protocol is set to IPv4)"},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"macProtocol":{"type":"string","description":"Ethernet payload type (MAC-level protocol). To match protocol type for VLAN encapsulated frames (0x8100 or 0x88a8), a vlan-encap property should be used."},"newPacketMark":{"type":"string","description":"Sets a new packet-mark value."},"newPriority":{"type":"number","description":"Sets a new priority for a packet. This can be the VLAN, WMM or MPLS EXP priority"},"outBridge":{"type":"string","description":"Bridge interface through which the packet going out."},"outBridgeList":{"type":"string","description":"Set of bridge interfaces defined in interface list. Works the same as out-bridge."},"outInterface":{"type":"string","description":"Interface the packet has entered the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Match packets with a certain packet mark."},"packetType":{"type":"string","description":"Match packets with a certain packet mark."},"passthrough":{"type":"boolean","description":"Whether to let the packet to pass further (like action passthrough) into the filter or not (property only valid some actions)."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"srcAddress":{"type":"string","description":"Source port number or range (only for TCP or UDP protocols)."},"srcMacAddress":{"type":"string","description":"Source MAC address."},"srcPort":{"type":"string","description":"List of source port numbers or port number ranges."},"stpFlags":{"type":"string","description":"Match packets with a certain packet mark."},"stpForwardDelay":{"type":"number","description":"Forward delay timer."},"stpHelloTime":{"type":"number","description":"STP hello packets time."},"stpMaxAge":{"type":"number","description":"Maximal STP message age."},"stpPort":{"type":"number","description":"STP port identifier."},"stpRootAddress":{"type":"string","description":"Root bridge MAC address"},"stpRootCost":{"type":"number","description":"Root bridge cost."},"stpRootPriority":{"type":"number"},"stpSenderAddress":{"type":"string","description":"STP message sender MAC address."},"stpSenderPriority":{"type":"number","description":"STP sender priority."},"stpType":{"type":"string","description":"The BPDU type: config - configuration BPDU OR tcn - topology change notification"},"tlsHost":{"type":"string","description":"Allows matching https traffic based on TLS SNI hostname. Accepts GLOB syntax for wildcard matching"},"vlanEncap":{"type":"number","description":"Matches the MAC protocol type encapsulated in the VLAN frame."},"vlanId":{"type":"number","description":"Matches the VLAN identifier field."},"vlanPriority":{"type":"number","description":"Matches the VLAN identifier field."}},"type":"object"}},"routeros:index/interfaceBridgePort:InterfaceBridgePort":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst bridgePort = new routeros.InterfaceBridgePort(\"bridge_port\", {\n    bridge: \"bridge\",\n    \"interface\": \"ether5\",\n    pvid: 50,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nbridge_port = routeros.InterfaceBridgePort(\"bridge_port\",\n    bridge=\"bridge\",\n    interface=\"ether5\",\n    pvid=50)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var bridgePort = new Routeros.InterfaceBridgePort(\"bridge_port\", new()\n    {\n        Bridge = \"bridge\",\n        Interface = \"ether5\",\n        Pvid = 50,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceBridgePort(ctx, \"bridge_port\", \u0026routeros.InterfaceBridgePortArgs{\n\t\t\tBridge:    pulumi.String(\"bridge\"),\n\t\t\tInterface: pulumi.String(\"ether5\"),\n\t\t\tPvid:      pulumi.Float64(50),\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.routeros.InterfaceBridgePort;\nimport com.pulumi.routeros.InterfaceBridgePortArgs;\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 bridgePort = new InterfaceBridgePort(\"bridgePort\", InterfaceBridgePortArgs.builder()\n            .bridge(\"bridge\")\n            .interface_(\"ether5\")\n            .pvid(50.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bridgePort:\n    type: routeros:InterfaceBridgePort\n    name: bridge_port\n    properties:\n      bridge: bridge\n      interface: ether5\n      pvid: '50'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/bridge/port get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceBridgePort:InterfaceBridgePort bridge_port \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceBridgePort:InterfaceBridgePort bridge_port \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoIsolate":{"type":"boolean","description":"When enabled, prevents a port moving from discarding into forwarding state if no BPDUs are received from the neighboring bridge. The port will change into a forwarding state only when a BPDU is received. This property only has an effect when protocol-mode is set to rstp or mstp and edge is set to no.\n"},"bpduGuard":{"type":"boolean","description":"This property has no effect when protocol-mode is set to none.\n"},"bridge":{"type":"string"},"broadcastFlood":{"type":"boolean","description":"When enabled, bridge floods broadcast traffic to all bridge egress ports. When disabled, drops broadcast traffic on egress ports.\n"},"comment":{"type":"string"},"designatedBridge":{"type":"string","description":"Root bridge ID (bridge priority and the bridge MAC address).\n"},"designatedBridgeId":{"type":"string","description":"Shows the designated bridge identifier, as determined from the port's priority vector.\n"},"designatedCost":{"type":"string","description":"Designated cost.\n"},"designatedPortId":{"type":"string","description":"Shows the designated port identifier, as determined from the port's priority vector.\n"},"designatedPortNumber":{"type":"number","description":"Designated port number.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"edge":{"type":"string","description":"Set port as edge port or non-edge port, or enable edge discovery. Edge ports are connected to a LAN that has no other bridges attached.\n"},"edgePort":{"type":"boolean","description":"Whether port is an edge port or not.\n"},"edgePortDiscovery":{"type":"boolean","description":"Whether port is set to automatically detect edge ports.\n"},"externalFdbStatus":{"type":"boolean","description":"Whether registration table is used instead of forwarding data base.\n"},"fastLeave":{"type":"boolean","description":"Enables IGMP Fast leave feature on the port.\n"},"forwarding":{"type":"boolean","description":"Shows if the port is not blocked by (R/M)STP.\n"},"frameTypes":{"type":"string","description":"Specifies allowed ingress frame types on a bridge port. This property only has effect when vlan-filtering is set to yes.\n"},"horizon":{"type":"string","description":"Use split horizon bridging to prevent bridging loops. Set the same value for group of ports, to prevent them from sending data to ports with the same horizon value. Split horizon is a software feature that disables hardware offloading. This value is integer '0'..'429496729' or 'none'.\n"},"hw":{"type":"boolean","description":"Enable or disable Hardware Offloading of the interface.\n"},"hwOffload":{"type":"boolean","description":"Hardware offloading state.\n"},"hwOffloadGroup":{"type":"string","description":"Switch chip used by the port.\n"},"inactive":{"type":"boolean"},"ingressFiltering":{"type":"boolean","description":"Enables or disables VLAN ingress filtering, which checks if the ingress port is a member of the received VLAN ID in the bridge VLAN table. Should be used with frame-types to specify if the ingress traffic should be tagged or untagged. This property only has effect when vlan-filtering is set to yes.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceBridgePortId":{"type":"string","description":"The ID of this resource.\n"},"internalPathCost":{"type":"number","description":"Path cost to the interface for MSTI0 inside a region. This property only has effect when protocol-mode is set to mstp.\n"},"lastTopologyChange":{"type":"string","description":"Last topology change timer, records time since the last change.\n"},"learn":{"type":"string","description":"Changes MAC learning behaviour on a bridge port\n"},"learning":{"type":"boolean","description":"Shows whether the port is capable of learning MAC addresses.\n"},"multicastRouter":{"type":"string","description":"Changes the state of a bridge port whether IGMP membership reports are going to be forwarded to this port.\n"},"mvrpApplicantState":{"type":"string","description":"MVRP applicant options (available since RouterOS 7.15): - non-participant - port does not send any MRP messages; - normal-participant - port participates normally in MRP exchanges.\n"},"mvrpRegistrarState":{"type":"string","description":"MVRP registrar options (available since RouterOS 7.15): - fixed - port ignores all MRP messages, and remains Registered (IN) in all configured vlans. - normal - port receives MRP messages and handles them according to the standard.\n"},"nextid":{"type":"string"},"pathCost":{"type":"string","description":"Path cost to the interface, used by STP to determine the \"best\" path, used by MSTP todetermine \"best\" path between regions. This property has no effect when protocol-mode is set to none.\n"},"pointToPoint":{"type":"string","description":"Specifies if a bridge port is connected to a bridge using a point-to-point link for faster convergence in case of failure. This property has no effect when protocol-mode is set to none.\n"},"pointToPointPort":{"type":"boolean","description":"Whether the port is connected to a bridge port using full-duplex (true) or half-duplex (false).\n"},"portId":{"type":"string","description":"In Spanning Tree Protocol each port has a unique Port Identifier. Priority[hex] + port number.\n"},"priority":{"type":"string","description":"The priority of the interface, used by STP to determine the root port, used by MSTP to determine root port between regions.\n"},"pvid":{"type":"number","description":"ort VLAN ID (pvid) specifies which VLAN the untagged ingress traffic is assigned to. This property only has effect when vlan-filtering is set to yes.\n"},"restrictedRole":{"type":"boolean","description":"Enable the restricted role on a port, used by STP to forbid a port becoming a root port. This property only has effect when protocol-mode is set to mstp.\n"},"restrictedTcn":{"type":"boolean","description":"Disable topology change notification (TCN) sending on a port, used by STP to forbid network topology changes to propagate. This property only has effect when protocol-mode is set to mstp.\n"},"role":{"type":"string","description":"(R/M)STP algorithm assigned role of the port\n"},"rootPathCost":{"type":"number","description":"The total cost of the path to the root-bridge.\n"},"sendingRstp":{"type":"string","description":"Whether the port is sending RSTP or MSTP BPDU types. A port will transit to STP type when RSTP/MSTP enabled port receives a STP BPDU\n"},"status":{"type":"string","description":"Port status ('in-bridge' - port is enabled).\n"},"tagStacking":{"type":"boolean","description":"Forces all packets to be treated as untagged packets. Packets on ingress port will be tagged with another VLAN tag regardless if a VLAN tag already exists, packets will be tagged with a VLAN ID that matches the pvid value and will use EtherType that is specified in ether-type. This property only has effect when vlan-filtering is set to yes.\n"},"trusted":{"type":"boolean","description":"When enabled, it allows to forward DHCP packets towards DHCP server through this port. Mainly used to limit unauthorized servers to provide malicious information for users. This property only has effect when dhcp-snooping is set to yes.\n"},"unknownMulticastFlood":{"type":"boolean","description":"When enabled, bridge floods unknown multicast traffic to all bridge egress ports.\n"},"unknownUnicastFlood":{"type":"boolean","description":"When enabled, bridge floods unknown unicast traffic to all bridge egress ports.\n"}},"type":"object","required":["bridge","designatedBridge","designatedBridgeId","designatedCost","designatedPortId","designatedPortNumber","dynamic","edgePort","edgePortDiscovery","externalFdbStatus","forwarding","hw","hwOffload","hwOffloadGroup","inactive","ingressFiltering","interface","interfaceBridgePortId","lastTopologyChange","learning","nextid","pointToPointPort","portId","role","rootPathCost","sendingRstp","status"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoIsolate":{"type":"boolean","description":"When enabled, prevents a port moving from discarding into forwarding state if no BPDUs are received from the neighboring bridge. The port will change into a forwarding state only when a BPDU is received. This property only has an effect when protocol-mode is set to rstp or mstp and edge is set to no.\n"},"bpduGuard":{"type":"boolean","description":"This property has no effect when protocol-mode is set to none.\n"},"bridge":{"type":"string"},"broadcastFlood":{"type":"boolean","description":"When enabled, bridge floods broadcast traffic to all bridge egress ports. When disabled, drops broadcast traffic on egress ports.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"edge":{"type":"string","description":"Set port as edge port or non-edge port, or enable edge discovery. Edge ports are connected to a LAN that has no other bridges attached.\n"},"fastLeave":{"type":"boolean","description":"Enables IGMP Fast leave feature on the port.\n"},"frameTypes":{"type":"string","description":"Specifies allowed ingress frame types on a bridge port. This property only has effect when vlan-filtering is set to yes.\n"},"horizon":{"type":"string","description":"Use split horizon bridging to prevent bridging loops. Set the same value for group of ports, to prevent them from sending data to ports with the same horizon value. Split horizon is a software feature that disables hardware offloading. This value is integer '0'..'429496729' or 'none'.\n"},"hw":{"type":"boolean","description":"Enable or disable Hardware Offloading of the interface.\n"},"ingressFiltering":{"type":"boolean","description":"Enables or disables VLAN ingress filtering, which checks if the ingress port is a member of the received VLAN ID in the bridge VLAN table. Should be used with frame-types to specify if the ingress traffic should be tagged or untagged. This property only has effect when vlan-filtering is set to yes.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceBridgePortId":{"type":"string","description":"The ID of this resource.\n"},"internalPathCost":{"type":"number","description":"Path cost to the interface for MSTI0 inside a region. This property only has effect when protocol-mode is set to mstp.\n"},"learn":{"type":"string","description":"Changes MAC learning behaviour on a bridge port\n"},"multicastRouter":{"type":"string","description":"Changes the state of a bridge port whether IGMP membership reports are going to be forwarded to this port.\n"},"mvrpApplicantState":{"type":"string","description":"MVRP applicant options (available since RouterOS 7.15): - non-participant - port does not send any MRP messages; - normal-participant - port participates normally in MRP exchanges.\n"},"mvrpRegistrarState":{"type":"string","description":"MVRP registrar options (available since RouterOS 7.15): - fixed - port ignores all MRP messages, and remains Registered (IN) in all configured vlans. - normal - port receives MRP messages and handles them according to the standard.\n"},"pathCost":{"type":"string","description":"Path cost to the interface, used by STP to determine the \"best\" path, used by MSTP todetermine \"best\" path between regions. This property has no effect when protocol-mode is set to none.\n"},"pointToPoint":{"type":"string","description":"Specifies if a bridge port is connected to a bridge using a point-to-point link for faster convergence in case of failure. This property has no effect when protocol-mode is set to none.\n"},"priority":{"type":"string","description":"The priority of the interface, used by STP to determine the root port, used by MSTP to determine root port between regions.\n"},"pvid":{"type":"number","description":"ort VLAN ID (pvid) specifies which VLAN the untagged ingress traffic is assigned to. This property only has effect when vlan-filtering is set to yes.\n"},"restrictedRole":{"type":"boolean","description":"Enable the restricted role on a port, used by STP to forbid a port becoming a root port. This property only has effect when protocol-mode is set to mstp.\n"},"restrictedTcn":{"type":"boolean","description":"Disable topology change notification (TCN) sending on a port, used by STP to forbid network topology changes to propagate. This property only has effect when protocol-mode is set to mstp.\n"},"tagStacking":{"type":"boolean","description":"Forces all packets to be treated as untagged packets. Packets on ingress port will be tagged with another VLAN tag regardless if a VLAN tag already exists, packets will be tagged with a VLAN ID that matches the pvid value and will use EtherType that is specified in ether-type. This property only has effect when vlan-filtering is set to yes.\n"},"trusted":{"type":"boolean","description":"When enabled, it allows to forward DHCP packets towards DHCP server through this port. Mainly used to limit unauthorized servers to provide malicious information for users. This property only has effect when dhcp-snooping is set to yes.\n"},"unknownMulticastFlood":{"type":"boolean","description":"When enabled, bridge floods unknown multicast traffic to all bridge egress ports.\n"},"unknownUnicastFlood":{"type":"boolean","description":"When enabled, bridge floods unknown unicast traffic to all bridge egress ports.\n"}},"requiredInputs":["bridge","interface"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceBridgePort resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoIsolate":{"type":"boolean","description":"When enabled, prevents a port moving from discarding into forwarding state if no BPDUs are received from the neighboring bridge. The port will change into a forwarding state only when a BPDU is received. This property only has an effect when protocol-mode is set to rstp or mstp and edge is set to no.\n"},"bpduGuard":{"type":"boolean","description":"This property has no effect when protocol-mode is set to none.\n"},"bridge":{"type":"string"},"broadcastFlood":{"type":"boolean","description":"When enabled, bridge floods broadcast traffic to all bridge egress ports. When disabled, drops broadcast traffic on egress ports.\n"},"comment":{"type":"string"},"designatedBridge":{"type":"string","description":"Root bridge ID (bridge priority and the bridge MAC address).\n"},"designatedBridgeId":{"type":"string","description":"Shows the designated bridge identifier, as determined from the port's priority vector.\n"},"designatedCost":{"type":"string","description":"Designated cost.\n"},"designatedPortId":{"type":"string","description":"Shows the designated port identifier, as determined from the port's priority vector.\n"},"designatedPortNumber":{"type":"number","description":"Designated port number.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"edge":{"type":"string","description":"Set port as edge port or non-edge port, or enable edge discovery. Edge ports are connected to a LAN that has no other bridges attached.\n"},"edgePort":{"type":"boolean","description":"Whether port is an edge port or not.\n"},"edgePortDiscovery":{"type":"boolean","description":"Whether port is set to automatically detect edge ports.\n"},"externalFdbStatus":{"type":"boolean","description":"Whether registration table is used instead of forwarding data base.\n"},"fastLeave":{"type":"boolean","description":"Enables IGMP Fast leave feature on the port.\n"},"forwarding":{"type":"boolean","description":"Shows if the port is not blocked by (R/M)STP.\n"},"frameTypes":{"type":"string","description":"Specifies allowed ingress frame types on a bridge port. This property only has effect when vlan-filtering is set to yes.\n"},"horizon":{"type":"string","description":"Use split horizon bridging to prevent bridging loops. Set the same value for group of ports, to prevent them from sending data to ports with the same horizon value. Split horizon is a software feature that disables hardware offloading. This value is integer '0'..'429496729' or 'none'.\n"},"hw":{"type":"boolean","description":"Enable or disable Hardware Offloading of the interface.\n"},"hwOffload":{"type":"boolean","description":"Hardware offloading state.\n"},"hwOffloadGroup":{"type":"string","description":"Switch chip used by the port.\n"},"inactive":{"type":"boolean"},"ingressFiltering":{"type":"boolean","description":"Enables or disables VLAN ingress filtering, which checks if the ingress port is a member of the received VLAN ID in the bridge VLAN table. Should be used with frame-types to specify if the ingress traffic should be tagged or untagged. This property only has effect when vlan-filtering is set to yes.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceBridgePortId":{"type":"string","description":"The ID of this resource.\n"},"internalPathCost":{"type":"number","description":"Path cost to the interface for MSTI0 inside a region. This property only has effect when protocol-mode is set to mstp.\n"},"lastTopologyChange":{"type":"string","description":"Last topology change timer, records time since the last change.\n"},"learn":{"type":"string","description":"Changes MAC learning behaviour on a bridge port\n"},"learning":{"type":"boolean","description":"Shows whether the port is capable of learning MAC addresses.\n"},"multicastRouter":{"type":"string","description":"Changes the state of a bridge port whether IGMP membership reports are going to be forwarded to this port.\n"},"mvrpApplicantState":{"type":"string","description":"MVRP applicant options (available since RouterOS 7.15): - non-participant - port does not send any MRP messages; - normal-participant - port participates normally in MRP exchanges.\n"},"mvrpRegistrarState":{"type":"string","description":"MVRP registrar options (available since RouterOS 7.15): - fixed - port ignores all MRP messages, and remains Registered (IN) in all configured vlans. - normal - port receives MRP messages and handles them according to the standard.\n"},"nextid":{"type":"string"},"pathCost":{"type":"string","description":"Path cost to the interface, used by STP to determine the \"best\" path, used by MSTP todetermine \"best\" path between regions. This property has no effect when protocol-mode is set to none.\n"},"pointToPoint":{"type":"string","description":"Specifies if a bridge port is connected to a bridge using a point-to-point link for faster convergence in case of failure. This property has no effect when protocol-mode is set to none.\n"},"pointToPointPort":{"type":"boolean","description":"Whether the port is connected to a bridge port using full-duplex (true) or half-duplex (false).\n"},"portId":{"type":"string","description":"In Spanning Tree Protocol each port has a unique Port Identifier. Priority[hex] + port number.\n"},"priority":{"type":"string","description":"The priority of the interface, used by STP to determine the root port, used by MSTP to determine root port between regions.\n"},"pvid":{"type":"number","description":"ort VLAN ID (pvid) specifies which VLAN the untagged ingress traffic is assigned to. This property only has effect when vlan-filtering is set to yes.\n"},"restrictedRole":{"type":"boolean","description":"Enable the restricted role on a port, used by STP to forbid a port becoming a root port. This property only has effect when protocol-mode is set to mstp.\n"},"restrictedTcn":{"type":"boolean","description":"Disable topology change notification (TCN) sending on a port, used by STP to forbid network topology changes to propagate. This property only has effect when protocol-mode is set to mstp.\n"},"role":{"type":"string","description":"(R/M)STP algorithm assigned role of the port\n"},"rootPathCost":{"type":"number","description":"The total cost of the path to the root-bridge.\n"},"sendingRstp":{"type":"string","description":"Whether the port is sending RSTP or MSTP BPDU types. A port will transit to STP type when RSTP/MSTP enabled port receives a STP BPDU\n"},"status":{"type":"string","description":"Port status ('in-bridge' - port is enabled).\n"},"tagStacking":{"type":"boolean","description":"Forces all packets to be treated as untagged packets. Packets on ingress port will be tagged with another VLAN tag regardless if a VLAN tag already exists, packets will be tagged with a VLAN ID that matches the pvid value and will use EtherType that is specified in ether-type. This property only has effect when vlan-filtering is set to yes.\n"},"trusted":{"type":"boolean","description":"When enabled, it allows to forward DHCP packets towards DHCP server through this port. Mainly used to limit unauthorized servers to provide malicious information for users. This property only has effect when dhcp-snooping is set to yes.\n"},"unknownMulticastFlood":{"type":"boolean","description":"When enabled, bridge floods unknown multicast traffic to all bridge egress ports.\n"},"unknownUnicastFlood":{"type":"boolean","description":"When enabled, bridge floods unknown unicast traffic to all bridge egress ports.\n"}},"type":"object"}},"routeros:index/interfaceBridgeSettings:InterfaceBridgeSettings":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.InterfaceBridgeSettings(\"settings\", {useIpFirewall: true});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.InterfaceBridgeSettings(\"settings\", use_ip_firewall=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.InterfaceBridgeSettings(\"settings\", new()\n    {\n        UseIpFirewall = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceBridgeSettings(ctx, \"settings\", \u0026routeros.InterfaceBridgeSettingsArgs{\n\t\t\tUseIpFirewall: 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.routeros.InterfaceBridgeSettings;\nimport com.pulumi.routeros.InterfaceBridgeSettingsArgs;\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 settings = new InterfaceBridgeSettings(\"settings\", InterfaceBridgeSettingsArgs.builder()\n            .useIpFirewall(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:InterfaceBridgeSettings\n    properties:\n      useIpFirewall: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/interfaceBridgeSettings:InterfaceBridgeSettings settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowFastPath":{"type":"boolean","description":"Whether to enable a bridge FastPath globally.\n"},"bridgeFastForwardBytes":{"type":"number","description":"Shows byte count forwarded by Bridge Fast Forward.\n"},"bridgeFastForwardPackets":{"type":"number","description":"Shows packet count forwarded by Bridge Fast Forward.\n"},"bridgeFastPathActive":{"type":"boolean","description":"Shows whether a bridge FastPath is active globally, FastPatch status per bridge interface is not displayed.\n"},"bridgeFastPathBytes":{"type":"number","description":"Shows byte count forwarded by Bridge Fast Path.\n"},"bridgeFastPathPackets":{"type":"number","description":"Shows packet count forwarded by Bridge FastPath.\n"},"interfaceBridgeSettingsId":{"type":"string","description":"The ID of this resource.\n"},"useIpFirewall":{"type":"boolean","description":"Force bridged traffic to also be processed by prerouting, forward and postrouting sections of IP routing ( Packet Flow). This does not apply to routed traffic. This property is required in case you want to assign Simple Queues or global Queue Tree to traffic in a bridge. Property use-ip-firewall-for-vlan is required in case bridge vlan-filtering is used.\n"},"useIpFirewallForPppoe":{"type":"boolean","description":"Send bridged un-encrypted PPPoE traffic to also be processed by IP/Firewall. This property only has effect when use-ip-firewall is set to yes. This property is required in case you want to assign Simple Queues or global Queue Tree to PPPoE traffic in a bridge.\n"},"useIpFirewallForVlan":{"type":"boolean","description":"Send bridged VLAN traffic to also be processed by IP/Firewall. This property only has effect when use-ip-firewall is set to yes. This property is required in case you want to assign Simple Queues or global Queue Tree to VLAN traffic in a bridge.\n"}},"type":"object","required":["bridgeFastForwardBytes","bridgeFastForwardPackets","bridgeFastPathActive","bridgeFastPathBytes","bridgeFastPathPackets","interfaceBridgeSettingsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowFastPath":{"type":"boolean","description":"Whether to enable a bridge FastPath globally.\n"},"interfaceBridgeSettingsId":{"type":"string","description":"The ID of this resource.\n"},"useIpFirewall":{"type":"boolean","description":"Force bridged traffic to also be processed by prerouting, forward and postrouting sections of IP routing ( Packet Flow). This does not apply to routed traffic. This property is required in case you want to assign Simple Queues or global Queue Tree to traffic in a bridge. Property use-ip-firewall-for-vlan is required in case bridge vlan-filtering is used.\n"},"useIpFirewallForPppoe":{"type":"boolean","description":"Send bridged un-encrypted PPPoE traffic to also be processed by IP/Firewall. This property only has effect when use-ip-firewall is set to yes. This property is required in case you want to assign Simple Queues or global Queue Tree to PPPoE traffic in a bridge.\n"},"useIpFirewallForVlan":{"type":"boolean","description":"Send bridged VLAN traffic to also be processed by IP/Firewall. This property only has effect when use-ip-firewall is set to yes. This property is required in case you want to assign Simple Queues or global Queue Tree to VLAN traffic in a bridge.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceBridgeSettings resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowFastPath":{"type":"boolean","description":"Whether to enable a bridge FastPath globally.\n"},"bridgeFastForwardBytes":{"type":"number","description":"Shows byte count forwarded by Bridge Fast Forward.\n"},"bridgeFastForwardPackets":{"type":"number","description":"Shows packet count forwarded by Bridge Fast Forward.\n"},"bridgeFastPathActive":{"type":"boolean","description":"Shows whether a bridge FastPath is active globally, FastPatch status per bridge interface is not displayed.\n"},"bridgeFastPathBytes":{"type":"number","description":"Shows byte count forwarded by Bridge Fast Path.\n"},"bridgeFastPathPackets":{"type":"number","description":"Shows packet count forwarded by Bridge FastPath.\n"},"interfaceBridgeSettingsId":{"type":"string","description":"The ID of this resource.\n"},"useIpFirewall":{"type":"boolean","description":"Force bridged traffic to also be processed by prerouting, forward and postrouting sections of IP routing ( Packet Flow). This does not apply to routed traffic. This property is required in case you want to assign Simple Queues or global Queue Tree to traffic in a bridge. Property use-ip-firewall-for-vlan is required in case bridge vlan-filtering is used.\n"},"useIpFirewallForPppoe":{"type":"boolean","description":"Send bridged un-encrypted PPPoE traffic to also be processed by IP/Firewall. This property only has effect when use-ip-firewall is set to yes. This property is required in case you want to assign Simple Queues or global Queue Tree to PPPoE traffic in a bridge.\n"},"useIpFirewallForVlan":{"type":"boolean","description":"Send bridged VLAN traffic to also be processed by IP/Firewall. This property only has effect when use-ip-firewall is set to yes. This property is required in case you want to assign Simple Queues or global Queue Tree to VLAN traffic in a bridge.\n"}},"type":"object"}},"routeros:index/interfaceBridgeVlan:InterfaceBridgeVlan":{"description":"## Example Usage\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/bridge/vlan get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceBridgeVlan:InterfaceBridgeVlan bridge_vlan \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceBridgeVlan:InterfaceBridgeVlan bridge_vlan \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"The bridge interface which the respective VLAN entry is intended for.\n"},"comment":{"type":"string"},"currentTaggeds":{"type":"array","items":{"type":"string"}},"currentUntaggeds":{"type":"array","items":{"type":"string"}},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"interfaceBridgeVlanId":{"type":"string","description":"The ID of this resource.\n"},"mvrpForbiddens":{"type":"array","items":{"type":"string"},"description":"Ports that ignore all MRP messages and remains Not Registered (MT), as well as disables applicant from declaring specific VLAN ID (available since RouterOS 7.15).\n"},"taggeds":{"type":"array","items":{"type":"string"},"description":"Interface list with a VLAN tag adding action in egress. This setting accepts comma separated values. E.g. tagged=ether1,ether2.\n"},"untaggeds":{"type":"array","items":{"type":"string"},"description":"Interface list with a VLAN tag removing action in egress. This setting accepts comma separated values. E.g. untagged=ether3,ether4\n"},"vlanIds":{"type":"array","items":{"type":"string"},"description":"The list of VLAN IDs for certain port configuration. This setting accepts VLAN ID range as well as comma separated values. E.g. `vlan-ids=[\"100-115\",\"120\",\"122\",\"128-130\"]`.\n"}},"type":"object","required":["bridge","currentTaggeds","currentUntaggeds","dynamic","interfaceBridgeVlanId","vlanIds"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"The bridge interface which the respective VLAN entry is intended for.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaceBridgeVlanId":{"type":"string","description":"The ID of this resource.\n"},"mvrpForbiddens":{"type":"array","items":{"type":"string"},"description":"Ports that ignore all MRP messages and remains Not Registered (MT), as well as disables applicant from declaring specific VLAN ID (available since RouterOS 7.15).\n"},"taggeds":{"type":"array","items":{"type":"string"},"description":"Interface list with a VLAN tag adding action in egress. This setting accepts comma separated values. E.g. tagged=ether1,ether2.\n"},"untaggeds":{"type":"array","items":{"type":"string"},"description":"Interface list with a VLAN tag removing action in egress. This setting accepts comma separated values. E.g. untagged=ether3,ether4\n"},"vlanIds":{"type":"array","items":{"type":"string"},"description":"The list of VLAN IDs for certain port configuration. This setting accepts VLAN ID range as well as comma separated values. E.g. `vlan-ids=[\"100-115\",\"120\",\"122\",\"128-130\"]`.\n"}},"requiredInputs":["bridge","vlanIds"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceBridgeVlan resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"The bridge interface which the respective VLAN entry is intended for.\n"},"comment":{"type":"string"},"currentTaggeds":{"type":"array","items":{"type":"string"}},"currentUntaggeds":{"type":"array","items":{"type":"string"}},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"interfaceBridgeVlanId":{"type":"string","description":"The ID of this resource.\n"},"mvrpForbiddens":{"type":"array","items":{"type":"string"},"description":"Ports that ignore all MRP messages and remains Not Registered (MT), as well as disables applicant from declaring specific VLAN ID (available since RouterOS 7.15).\n"},"taggeds":{"type":"array","items":{"type":"string"},"description":"Interface list with a VLAN tag adding action in egress. This setting accepts comma separated values. E.g. tagged=ether1,ether2.\n"},"untaggeds":{"type":"array","items":{"type":"string"},"description":"Interface list with a VLAN tag removing action in egress. This setting accepts comma separated values. E.g. untagged=ether3,ether4\n"},"vlanIds":{"type":"array","items":{"type":"string"},"description":"The list of VLAN IDs for certain port configuration. This setting accepts VLAN ID range as well as comma separated values. E.g. `vlan-ids=[\"100-115\",\"120\",\"122\",\"128-130\"]`.\n"}},"type":"object"}},"routeros:index/interfaceDetectInternet:InterfaceDetectInternet":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceDetectInternet(\"test\", {\n    internetInterfaceList: \"all\",\n    wanInterfaceList: \"all\",\n    lanInterfaceList: \"all\",\n    detectInterfaceList: \"all\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceDetectInternet(\"test\",\n    internet_interface_list=\"all\",\n    wan_interface_list=\"all\",\n    lan_interface_list=\"all\",\n    detect_interface_list=\"all\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceDetectInternet(\"test\", new()\n    {\n        InternetInterfaceList = \"all\",\n        WanInterfaceList = \"all\",\n        LanInterfaceList = \"all\",\n        DetectInterfaceList = \"all\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceDetectInternet(ctx, \"test\", \u0026routeros.InterfaceDetectInternetArgs{\n\t\t\tInternetInterfaceList: pulumi.String(\"all\"),\n\t\t\tWanInterfaceList:      pulumi.String(\"all\"),\n\t\t\tLanInterfaceList:      pulumi.String(\"all\"),\n\t\t\tDetectInterfaceList:   pulumi.String(\"all\"),\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.routeros.InterfaceDetectInternet;\nimport com.pulumi.routeros.InterfaceDetectInternetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceDetectInternet(\"test\", InterfaceDetectInternetArgs.builder()\n            .internetInterfaceList(\"all\")\n            .wanInterfaceList(\"all\")\n            .lanInterfaceList(\"all\")\n            .detectInterfaceList(\"all\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceDetectInternet\n    properties:\n      internetInterfaceList: all\n      wanInterfaceList: all\n      lanInterfaceList: all\n      detectInterfaceList: all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/interfaceDetectInternet:InterfaceDetectInternet test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"detectInterfaceList":{"type":"string","description":"All interfaces in the list will be monitored by Detect Internet.\n"},"interfaceDetectInternetId":{"type":"string","description":"The ID of this resource.\n"},"internetInterfaceList":{"type":"string","description":"Interfaces with state Internet will be dynamically added to this list.\n"},"lanInterfaceList":{"type":"string","description":"Interfaces with state Lan will be dynamically added to this list.\n"},"wanInterfaceList":{"type":"string","description":"Interfaces with state Wan will be dynamically added to this list.\n"}},"type":"object","required":["interfaceDetectInternetId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"detectInterfaceList":{"type":"string","description":"All interfaces in the list will be monitored by Detect Internet.\n"},"interfaceDetectInternetId":{"type":"string","description":"The ID of this resource.\n"},"internetInterfaceList":{"type":"string","description":"Interfaces with state Internet will be dynamically added to this list.\n"},"lanInterfaceList":{"type":"string","description":"Interfaces with state Lan will be dynamically added to this list.\n"},"wanInterfaceList":{"type":"string","description":"Interfaces with state Wan will be dynamically added to this list.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceDetectInternet resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"detectInterfaceList":{"type":"string","description":"All interfaces in the list will be monitored by Detect Internet.\n"},"interfaceDetectInternetId":{"type":"string","description":"The ID of this resource.\n"},"internetInterfaceList":{"type":"string","description":"Interfaces with state Internet will be dynamically added to this list.\n"},"lanInterfaceList":{"type":"string","description":"Interfaces with state Lan will be dynamically added to this list.\n"},"wanInterfaceList":{"type":"string","description":"Interfaces with state Wan will be dynamically added to this list.\n"}},"type":"object"}},"routeros:index/interfaceDot1xClient:InterfaceDot1xClient":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst ether2 = new routeros.InterfaceDot1xClient(\"ether2\", {\n    eapMethods: [\n        \"eap-peap\",\n        \"eap-mschapv2\",\n    ],\n    identity: \"router\",\n    \"interface\": \"ether2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nether2 = routeros.InterfaceDot1xClient(\"ether2\",\n    eap_methods=[\n        \"eap-peap\",\n        \"eap-mschapv2\",\n    ],\n    identity=\"router\",\n    interface=\"ether2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ether2 = new Routeros.InterfaceDot1xClient(\"ether2\", new()\n    {\n        EapMethods = new[]\n        {\n            \"eap-peap\",\n            \"eap-mschapv2\",\n        },\n        Identity = \"router\",\n        Interface = \"ether2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceDot1xClient(ctx, \"ether2\", \u0026routeros.InterfaceDot1xClientArgs{\n\t\t\tEapMethods: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"eap-peap\"),\n\t\t\t\tpulumi.String(\"eap-mschapv2\"),\n\t\t\t},\n\t\t\tIdentity:  pulumi.String(\"router\"),\n\t\t\tInterface: pulumi.String(\"ether2\"),\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.routeros.InterfaceDot1xClient;\nimport com.pulumi.routeros.InterfaceDot1xClientArgs;\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 ether2 = new InterfaceDot1xClient(\"ether2\", InterfaceDot1xClientArgs.builder()\n            .eapMethods(            \n                \"eap-peap\",\n                \"eap-mschapv2\")\n            .identity(\"router\")\n            .interface_(\"ether2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ether2:\n    type: routeros:InterfaceDot1xClient\n    properties:\n      eapMethods:\n        - eap-peap\n        - eap-mschapv2\n      identity: router\n      interface: ether2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/dot1x/client get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceDot1xClient:InterfaceDot1xClient ether2 *1\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceDot1xClient:InterfaceDot1xClient ether2 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"anonIdentity":{"type":"string","description":"Identity for outer layer EAP authentication. Used only with `eap-ttls` and `eap-peap` methods. If not set, the value from the identity parameter will be used for outer layer EAP authentication.\n"},"certificate":{"type":"string","description":"Name of a certificate. Required when the `eap-tls` method is used.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"eapMethods":{"type":"array","items":{"type":"string"},"description":"A set of EAP methods used for authentication: `eap-tls`, `eap-ttls`, `eap-peap`, `eap-mschapv2`.\n"},"identity":{"type":"string","description":"The supplicant identity that is used for EAP authentication.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceDot1xClientId":{"type":"string","description":"The ID of this resource.\n"},"password":{"type":"string","description":"Cleartext password for the supplicant.\n","secret":true},"status":{"type":"string"}},"type":"object","required":["eapMethods","identity","interface","interfaceDot1xClientId","status"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"anonIdentity":{"type":"string","description":"Identity for outer layer EAP authentication. Used only with `eap-ttls` and `eap-peap` methods. If not set, the value from the identity parameter will be used for outer layer EAP authentication.\n"},"certificate":{"type":"string","description":"Name of a certificate. Required when the `eap-tls` method is used.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"eapMethods":{"type":"array","items":{"type":"string"},"description":"A set of EAP methods used for authentication: `eap-tls`, `eap-ttls`, `eap-peap`, `eap-mschapv2`.\n"},"identity":{"type":"string","description":"The supplicant identity that is used for EAP authentication.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceDot1xClientId":{"type":"string","description":"The ID of this resource.\n"},"password":{"type":"string","description":"Cleartext password for the supplicant.\n","secret":true}},"requiredInputs":["eapMethods","identity","interface"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceDot1xClient resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"anonIdentity":{"type":"string","description":"Identity for outer layer EAP authentication. Used only with `eap-ttls` and `eap-peap` methods. If not set, the value from the identity parameter will be used for outer layer EAP authentication.\n"},"certificate":{"type":"string","description":"Name of a certificate. Required when the `eap-tls` method is used.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"eapMethods":{"type":"array","items":{"type":"string"},"description":"A set of EAP methods used for authentication: `eap-tls`, `eap-ttls`, `eap-peap`, `eap-mschapv2`.\n"},"identity":{"type":"string","description":"The supplicant identity that is used for EAP authentication.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceDot1xClientId":{"type":"string","description":"The ID of this resource.\n"},"password":{"type":"string","description":"Cleartext password for the supplicant.\n","secret":true},"status":{"type":"string"}},"type":"object"}},"routeros:index/interfaceDot1xServer:InterfaceDot1xServer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst ether2 = new routeros.InterfaceDot1xServer(\"ether2\", {\n    authTypes: [\"mac-auth\"],\n    \"interface\": \"ether2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nether2 = routeros.InterfaceDot1xServer(\"ether2\",\n    auth_types=[\"mac-auth\"],\n    interface=\"ether2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ether2 = new Routeros.InterfaceDot1xServer(\"ether2\", new()\n    {\n        AuthTypes = new[]\n        {\n            \"mac-auth\",\n        },\n        Interface = \"ether2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceDot1xServer(ctx, \"ether2\", \u0026routeros.InterfaceDot1xServerArgs{\n\t\t\tAuthTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"mac-auth\"),\n\t\t\t},\n\t\t\tInterface: pulumi.String(\"ether2\"),\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.routeros.InterfaceDot1xServer;\nimport com.pulumi.routeros.InterfaceDot1xServerArgs;\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 ether2 = new InterfaceDot1xServer(\"ether2\", InterfaceDot1xServerArgs.builder()\n            .authTypes(\"mac-auth\")\n            .interface_(\"ether2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ether2:\n    type: routeros:InterfaceDot1xServer\n    properties:\n      authTypes:\n        - mac-auth\n      interface: ether2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/dot1x/server get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceDot1xServer:InterfaceDot1xServer ether2 *1\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceDot1xServer:InterfaceDot1xServer ether2 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"Whether to send RADIUS accounting requests to the authentication server.\n"},"authTimeout":{"type":"string","description":"Total time available for EAP authentication.\n"},"authTypes":{"type":"array","items":{"type":"string"},"description":"Used authentication type on a server interface. Comma-separated list of \u003cspan pulumi-lang-nodejs=\"`dot1x`\" pulumi-lang-dotnet=\"`Dot1x`\" pulumi-lang-go=\"`dot1x`\" pulumi-lang-python=\"`dot1x`\" pulumi-lang-yaml=\"`dot1x`\" pulumi-lang-java=\"`dot1x`\"\u003e`dot1x`\u003c/span\u003e and `mac-auth`.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"guestVlanId":{"type":"number","description":"Assigned VLAN when end devices do not support dot1x authentication and no mac-auth fallback is configured.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceDot1xServerId":{"type":"string","description":"The ID of this resource.\n"},"interimUpdate":{"type":"string","description":"Interval between scheduled RADIUS Interim-Update messages.\n"},"macAuthMode":{"type":"string","description":"An option that allows to control User-Name and User-Password RADIUS attributes when using MAC authentication.\n"},"radiusMacFormat":{"type":"string","description":"An option that controls how the MAC address of the client is encoded in the User-Name and User-Password attributes when using MAC authentication.\n"},"reauthTimeout":{"type":"string","description":"An option that enables server port re-authentication.\n"},"rejectVlanId":{"type":"number","description":"Assigned VLAN when authentication failed, and a RADIUS server responded with an Access-Reject message.\n"},"retransTimeout":{"type":"string","description":"The time interval between message re-transmissions if no response is received from the supplicant.\n"},"serverFailVlanId":{"type":"number","description":"Assigned VLAN when RADIUS server is not responding and request timed out.\n"}},"type":"object","required":["interface","interfaceDot1xServerId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"Whether to send RADIUS accounting requests to the authentication server.\n"},"authTimeout":{"type":"string","description":"Total time available for EAP authentication.\n"},"authTypes":{"type":"array","items":{"type":"string"},"description":"Used authentication type on a server interface. Comma-separated list of \u003cspan pulumi-lang-nodejs=\"`dot1x`\" pulumi-lang-dotnet=\"`Dot1x`\" pulumi-lang-go=\"`dot1x`\" pulumi-lang-python=\"`dot1x`\" pulumi-lang-yaml=\"`dot1x`\" pulumi-lang-java=\"`dot1x`\"\u003e`dot1x`\u003c/span\u003e and `mac-auth`.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"guestVlanId":{"type":"number","description":"Assigned VLAN when end devices do not support dot1x authentication and no mac-auth fallback is configured.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceDot1xServerId":{"type":"string","description":"The ID of this resource.\n"},"interimUpdate":{"type":"string","description":"Interval between scheduled RADIUS Interim-Update messages.\n"},"macAuthMode":{"type":"string","description":"An option that allows to control User-Name and User-Password RADIUS attributes when using MAC authentication.\n"},"radiusMacFormat":{"type":"string","description":"An option that controls how the MAC address of the client is encoded in the User-Name and User-Password attributes when using MAC authentication.\n"},"reauthTimeout":{"type":"string","description":"An option that enables server port re-authentication.\n"},"rejectVlanId":{"type":"number","description":"Assigned VLAN when authentication failed, and a RADIUS server responded with an Access-Reject message.\n"},"retransTimeout":{"type":"string","description":"The time interval between message re-transmissions if no response is received from the supplicant.\n"},"serverFailVlanId":{"type":"number","description":"Assigned VLAN when RADIUS server is not responding and request timed out.\n"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceDot1xServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"Whether to send RADIUS accounting requests to the authentication server.\n"},"authTimeout":{"type":"string","description":"Total time available for EAP authentication.\n"},"authTypes":{"type":"array","items":{"type":"string"},"description":"Used authentication type on a server interface. Comma-separated list of \u003cspan pulumi-lang-nodejs=\"`dot1x`\" pulumi-lang-dotnet=\"`Dot1x`\" pulumi-lang-go=\"`dot1x`\" pulumi-lang-python=\"`dot1x`\" pulumi-lang-yaml=\"`dot1x`\" pulumi-lang-java=\"`dot1x`\"\u003e`dot1x`\u003c/span\u003e and `mac-auth`.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"guestVlanId":{"type":"number","description":"Assigned VLAN when end devices do not support dot1x authentication and no mac-auth fallback is configured.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceDot1xServerId":{"type":"string","description":"The ID of this resource.\n"},"interimUpdate":{"type":"string","description":"Interval between scheduled RADIUS Interim-Update messages.\n"},"macAuthMode":{"type":"string","description":"An option that allows to control User-Name and User-Password RADIUS attributes when using MAC authentication.\n"},"radiusMacFormat":{"type":"string","description":"An option that controls how the MAC address of the client is encoded in the User-Name and User-Password attributes when using MAC authentication.\n"},"reauthTimeout":{"type":"string","description":"An option that enables server port re-authentication.\n"},"rejectVlanId":{"type":"number","description":"Assigned VLAN when authentication failed, and a RADIUS server responded with an Access-Reject message.\n"},"retransTimeout":{"type":"string","description":"The time interval between message re-transmissions if no response is received from the supplicant.\n"},"serverFailVlanId":{"type":"number","description":"Assigned VLAN when RADIUS server is not responding and request timed out.\n"}},"type":"object"}},"routeros:index/interfaceEoip:InterfaceEoip":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst eoipTunnel1 = new routeros.InterfaceEoip(\"eoip_tunnel1\", {\n    name: \"eoip-tunnel1\",\n    localAddress: \"192.168.88.1\",\n    remoteAddress: \"192.168.88.2\",\n    disabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\neoip_tunnel1 = routeros.InterfaceEoip(\"eoip_tunnel1\",\n    name=\"eoip-tunnel1\",\n    local_address=\"192.168.88.1\",\n    remote_address=\"192.168.88.2\",\n    disabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var eoipTunnel1 = new Routeros.InterfaceEoip(\"eoip_tunnel1\", new()\n    {\n        Name = \"eoip-tunnel1\",\n        LocalAddress = \"192.168.88.1\",\n        RemoteAddress = \"192.168.88.2\",\n        Disabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceEoip(ctx, \"eoip_tunnel1\", \u0026routeros.InterfaceEoipArgs{\n\t\t\tName:          pulumi.String(\"eoip-tunnel1\"),\n\t\t\tLocalAddress:  pulumi.String(\"192.168.88.1\"),\n\t\t\tRemoteAddress: pulumi.String(\"192.168.88.2\"),\n\t\t\tDisabled:      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.routeros.InterfaceEoip;\nimport com.pulumi.routeros.InterfaceEoipArgs;\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 eoipTunnel1 = new InterfaceEoip(\"eoipTunnel1\", InterfaceEoipArgs.builder()\n            .name(\"eoip-tunnel1\")\n            .localAddress(\"192.168.88.1\")\n            .remoteAddress(\"192.168.88.2\")\n            .disabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  eoipTunnel1:\n    type: routeros:InterfaceEoip\n    name: eoip_tunnel1\n    properties:\n      name: eoip-tunnel1\n      localAddress: 192.168.88.1\n      remoteAddress: 192.168.88.2\n      disabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/eoip get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceEoip:InterfaceEoip eoip_tunnel1 *B\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceEoip:InterfaceEoip eoip_tunnel1 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic."},"interfaceEoipId":{"type":"string"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"string"},"macAddress":{"type":"string","description":"Current mac address."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel."},"running":{"type":"boolean"},"tunnelId":{"type":"number","description":"Unique tunnel identifier, which must match the other side of the tunnel."}},"type":"object","required":["actualMtu","interfaceEoipId","l2mtu","loopProtectStatus","macAddress","mtu","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic."},"interfaceEoipId":{"type":"string"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel."},"tunnelId":{"type":"number","description":"Unique tunnel identifier, which must match the other side of the tunnel."}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEoip resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic."},"interfaceEoipId":{"type":"string"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"string"},"macAddress":{"type":"string","description":"Current mac address."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel."},"running":{"type":"boolean"},"tunnelId":{"type":"number","description":"Unique tunnel identifier, which must match the other side of the tunnel."}},"type":"object"}},"routeros:index/interfaceEthernet:InterfaceEthernet":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceEthernet(\"test\", {\n    factoryName: \"sfp-sfpplus8\",\n    name: \"swtich-eth0\",\n    mtu: 9000,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceEthernet(\"test\",\n    factory_name=\"sfp-sfpplus8\",\n    name=\"swtich-eth0\",\n    mtu=9000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceEthernet(\"test\", new()\n    {\n        FactoryName = \"sfp-sfpplus8\",\n        Name = \"swtich-eth0\",\n        Mtu = 9000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceEthernet(ctx, \"test\", \u0026routeros.InterfaceEthernetArgs{\n\t\t\tFactoryName: pulumi.String(\"sfp-sfpplus8\"),\n\t\t\tName:        pulumi.String(\"swtich-eth0\"),\n\t\t\tMtu:         pulumi.Float64(9000),\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.routeros.InterfaceEthernet;\nimport com.pulumi.routeros.InterfaceEthernetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceEthernet(\"test\", InterfaceEthernetArgs.builder()\n            .factoryName(\"sfp-sfpplus8\")\n            .name(\"swtich-eth0\")\n            .mtu(9000.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceEthernet\n    properties:\n      factoryName: sfp-sfpplus8\n      name: swtich-eth0\n      mtu: 9000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ethernet get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceEthernet:InterfaceEthernet test \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceEthernet:InterfaceEthernet test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"advertise":{"type":"string","description":"Advertised speed and duplex modes for Ethernet interfaces over twisted pair, \n\t\t\t\tonly applies when auto-negotiation is enabled. Advertising higher speeds than \n\t\t\t\tthe actual interface supported speed will have no effect, multiple options are allowed."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"autoNegotiation":{"type":"boolean","description":"When enabled, the interface \"advertises\" its maximum capabilities to achieve the best connection possible.\n\t\t\t\t\tNote1: Auto-negotiation should not be disabled on one end only, otherwise Ethernet Interfaces may not work properly.\n\t\t\t\t\tNote2: Gigabit Ethernet and NBASE-T Ethernet links cannot work with auto-negotiation disabled."},"bandwidth":{"type":"string","description":"Sets max rx/tx bandwidth in kbps that will be handled by an interface. TX limit is supported on all Atheros switch-chip ports. \n\t\t\t\tRX limit is supported only on Atheros8327/QCA8337 switch-chip ports."},"cableSettings":{"type":"string","description":"Changes the cable length setting (only applicable to NS DP83815/6 cards)"},"comboMode":{"type":"string","description":"When auto mode is selected, the port that was first connected will establish the link. In case this link fails, the other port will try to establish a new link. If both ports are connected at the same time (e.g. after reboot), \n\t\t\t\tthe priority will be the SFP/SFP+ port. When sfp mode is selected, the interface will only work through SFP/SFP+ cage.\n\t\t\t\tWhen copper mode is selected, the interface will only work through RJ45 Ethernet port."},"comment":{"type":"string"},"defaultName":{"type":"string","description":"The default name for an interface."},"disableRunningCheck":{"type":"boolean","description":"Disable running check. If this value is set to 'no', the router automatically detects whether the NIC is connected with a device in the network or not.\n\t\t\tDefault value is 'yes' because older NICs do not support it. (only applicable to x86)"},"disabled":{"type":"boolean"},"factoryName":{"type":"string","description":"The factory name of the identifier, serves as resource identifier. Determines which interface will be updated."},"fecMode":{"type":"string","description":"Changes Forward Error Correction (FEC) mode for SFP28, QSFP+ and QSFP28 interfaces. Same mode should be used on both link ends, otherwise FEC mismatch could result in non-working link or even false link-ups."},"fullDuplex":{"type":"boolean","description":"Defines whether the transmission of data appears in two directions simultaneously, only applies when auto-negotiation is disabled."},"interfaceEthernetId":{"type":"string"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"string"},"macAddress":{"type":"string","description":"Media Access Control number of an interface."},"mdixEnable":{"type":"boolean","description":"Whether the MDI/X auto cross over cable correction feature is enabled for the port (Hardware specific, e.g. ether1 on RB500 can be set to yes/no. Fixed to 'yes' on other hardware.)"},"mtu":{"type":"number","description":"Layer3 Maximum transmission unit"},"name":{"type":"string","description":"Name of the ethernet interface."},"origMacAddress":{"type":"string","description":"Original Media Access Control number of an interface. (read only)"},"poeLldpEnabled":{"type":"boolean","description":"An option that enables LLDP for managing devices."},"poeOut":{"type":"string","description":"PoE settings: (https://wiki.mikrotik.com/wiki/Manual:PoE-Out)"},"poePriority":{"type":"number","description":"PoE settings: (https://wiki.mikrotik.com/wiki/Manual:PoE-Out)"},"poeVoltage":{"type":"string","description":"An option that allows us to manually control the voltage outputs on the PoE port."},"powerCycleInterval":{"type":"string","description":"An options that disables PoE-Out power for 5s between the specified intervals."},"powerCyclePingAddress":{"type":"string","description":"An address to monitor."},"powerCyclePingEnabled":{"type":"boolean","description":"An option that enables ping watchdog of power cycles on the port if a host does not respond to ICMP or MAC-Telnet packets."},"powerCyclePingTimeout":{"type":"string","description":"If the host does not respond over the specified period, the PoE-Out port is switched off for 5s."},"running":{"type":"boolean","description":"Whether interface is running. Note that some interface does not have running check and they are always reported as \"running\""},"rxFlowControl":{"type":"string","description":"When set to on, the port will process received pause frames and suspend transmission if required.\n\t\t\t\t\tauto is the same as on except when auto-negotiation=yes flow control status is resolved by taking into account what other end advertises."},"sfpIgnoreRxLos":{"type":"boolean","description":"An option to ignore RX LOS (Loss of Signal) status of the SFP module."},"sfpRateSelect":{"type":"string","description":"Allows to control rate select pin for SFP ports. Values: high | low"},"sfpShutdownTemperature":{"type":"number","description":"The temperature in Celsius at which the interface will be temporarily turned off due to too high detected SFP module temperature (introduced v6.48).The default value for SFP/SFP+/SFP28 interfaces is 95, and for QSFP+/QSFP28 interfaces 80 (introduced v7.6)."},"slave":{"type":"boolean","description":"Whether interface is configured as a slave of another interface (for example Bonding)"},"speed":{"type":"string","description":"Sets interface data transmission speed which takes effect only when ``\u003cspan pulumi-lang-nodejs=\"`autoNegotiation`\" pulumi-lang-dotnet=\"`AutoNegotiation`\" pulumi-lang-go=\"`autoNegotiation`\" pulumi-lang-python=\"`auto_negotiation`\" pulumi-lang-yaml=\"`autoNegotiation`\" pulumi-lang-java=\"`autoNegotiation`\"\u003e`auto_negotiation`\u003c/span\u003e`` is disabled."},"switch":{"type":"string","description":"ID to which switch chip interface belongs to."},"txFlowControl":{"type":"string","description":"When set to on, the port will generate pause frames to the upstream device to temporarily stop the packet transmission. \n\t\t\t\t\tPause frames are only generated when some routers output interface is congested and packets cannot be transmitted anymore. \n\t\t\t\t\tAuto is the same as on except when auto-negotiation=yes flow control status is resolved by taking into account what other end advertises."}},"type":"object","required":["defaultName","factoryName","interfaceEthernetId","loopProtectStatus","name","origMacAddress","running","slave","switch"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"advertise":{"type":"string","description":"Advertised speed and duplex modes for Ethernet interfaces over twisted pair, \n\t\t\t\tonly applies when auto-negotiation is enabled. Advertising higher speeds than \n\t\t\t\tthe actual interface supported speed will have no effect, multiple options are allowed."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"autoNegotiation":{"type":"boolean","description":"When enabled, the interface \"advertises\" its maximum capabilities to achieve the best connection possible.\n\t\t\t\t\tNote1: Auto-negotiation should not be disabled on one end only, otherwise Ethernet Interfaces may not work properly.\n\t\t\t\t\tNote2: Gigabit Ethernet and NBASE-T Ethernet links cannot work with auto-negotiation disabled."},"bandwidth":{"type":"string","description":"Sets max rx/tx bandwidth in kbps that will be handled by an interface. TX limit is supported on all Atheros switch-chip ports. \n\t\t\t\tRX limit is supported only on Atheros8327/QCA8337 switch-chip ports."},"cableSettings":{"type":"string","description":"Changes the cable length setting (only applicable to NS DP83815/6 cards)"},"comboMode":{"type":"string","description":"When auto mode is selected, the port that was first connected will establish the link. In case this link fails, the other port will try to establish a new link. If both ports are connected at the same time (e.g. after reboot), \n\t\t\t\tthe priority will be the SFP/SFP+ port. When sfp mode is selected, the interface will only work through SFP/SFP+ cage.\n\t\t\t\tWhen copper mode is selected, the interface will only work through RJ45 Ethernet port."},"comment":{"type":"string"},"disableRunningCheck":{"type":"boolean","description":"Disable running check. If this value is set to 'no', the router automatically detects whether the NIC is connected with a device in the network or not.\n\t\t\tDefault value is 'yes' because older NICs do not support it. (only applicable to x86)"},"disabled":{"type":"boolean"},"factoryName":{"type":"string","description":"The factory name of the identifier, serves as resource identifier. Determines which interface will be updated."},"fecMode":{"type":"string","description":"Changes Forward Error Correction (FEC) mode for SFP28, QSFP+ and QSFP28 interfaces. Same mode should be used on both link ends, otherwise FEC mismatch could result in non-working link or even false link-ups."},"fullDuplex":{"type":"boolean","description":"Defines whether the transmission of data appears in two directions simultaneously, only applies when auto-negotiation is disabled."},"interfaceEthernetId":{"type":"string"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"macAddress":{"type":"string","description":"Media Access Control number of an interface."},"mdixEnable":{"type":"boolean","description":"Whether the MDI/X auto cross over cable correction feature is enabled for the port (Hardware specific, e.g. ether1 on RB500 can be set to yes/no. Fixed to 'yes' on other hardware.)"},"mtu":{"type":"number","description":"Layer3 Maximum transmission unit"},"name":{"type":"string","description":"Name of the ethernet interface."},"poeLldpEnabled":{"type":"boolean","description":"An option that enables LLDP for managing devices."},"poeOut":{"type":"string","description":"PoE settings: (https://wiki.mikrotik.com/wiki/Manual:PoE-Out)"},"poePriority":{"type":"number","description":"PoE settings: (https://wiki.mikrotik.com/wiki/Manual:PoE-Out)"},"poeVoltage":{"type":"string","description":"An option that allows us to manually control the voltage outputs on the PoE port."},"powerCycleInterval":{"type":"string","description":"An options that disables PoE-Out power for 5s between the specified intervals."},"powerCyclePingAddress":{"type":"string","description":"An address to monitor."},"powerCyclePingEnabled":{"type":"boolean","description":"An option that enables ping watchdog of power cycles on the port if a host does not respond to ICMP or MAC-Telnet packets."},"powerCyclePingTimeout":{"type":"string","description":"If the host does not respond over the specified period, the PoE-Out port is switched off for 5s."},"rxFlowControl":{"type":"string","description":"When set to on, the port will process received pause frames and suspend transmission if required.\n\t\t\t\t\tauto is the same as on except when auto-negotiation=yes flow control status is resolved by taking into account what other end advertises."},"sfpIgnoreRxLos":{"type":"boolean","description":"An option to ignore RX LOS (Loss of Signal) status of the SFP module."},"sfpRateSelect":{"type":"string","description":"Allows to control rate select pin for SFP ports. Values: high | low"},"sfpShutdownTemperature":{"type":"number","description":"The temperature in Celsius at which the interface will be temporarily turned off due to too high detected SFP module temperature (introduced v6.48).The default value for SFP/SFP+/SFP28 interfaces is 95, and for QSFP+/QSFP28 interfaces 80 (introduced v7.6)."},"speed":{"type":"string","description":"Sets interface data transmission speed which takes effect only when ``\u003cspan pulumi-lang-nodejs=\"`autoNegotiation`\" pulumi-lang-dotnet=\"`AutoNegotiation`\" pulumi-lang-go=\"`autoNegotiation`\" pulumi-lang-python=\"`auto_negotiation`\" pulumi-lang-yaml=\"`autoNegotiation`\" pulumi-lang-java=\"`autoNegotiation`\"\u003e`auto_negotiation`\u003c/span\u003e`` is disabled."},"txFlowControl":{"type":"string","description":"When set to on, the port will generate pause frames to the upstream device to temporarily stop the packet transmission. \n\t\t\t\t\tPause frames are only generated when some routers output interface is congested and packets cannot be transmitted anymore. \n\t\t\t\t\tAuto is the same as on except when auto-negotiation=yes flow control status is resolved by taking into account what other end advertises."}},"requiredInputs":["factoryName"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEthernet resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"advertise":{"type":"string","description":"Advertised speed and duplex modes for Ethernet interfaces over twisted pair, \n\t\t\t\tonly applies when auto-negotiation is enabled. Advertising higher speeds than \n\t\t\t\tthe actual interface supported speed will have no effect, multiple options are allowed."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"autoNegotiation":{"type":"boolean","description":"When enabled, the interface \"advertises\" its maximum capabilities to achieve the best connection possible.\n\t\t\t\t\tNote1: Auto-negotiation should not be disabled on one end only, otherwise Ethernet Interfaces may not work properly.\n\t\t\t\t\tNote2: Gigabit Ethernet and NBASE-T Ethernet links cannot work with auto-negotiation disabled."},"bandwidth":{"type":"string","description":"Sets max rx/tx bandwidth in kbps that will be handled by an interface. TX limit is supported on all Atheros switch-chip ports. \n\t\t\t\tRX limit is supported only on Atheros8327/QCA8337 switch-chip ports."},"cableSettings":{"type":"string","description":"Changes the cable length setting (only applicable to NS DP83815/6 cards)"},"comboMode":{"type":"string","description":"When auto mode is selected, the port that was first connected will establish the link. In case this link fails, the other port will try to establish a new link. If both ports are connected at the same time (e.g. after reboot), \n\t\t\t\tthe priority will be the SFP/SFP+ port. When sfp mode is selected, the interface will only work through SFP/SFP+ cage.\n\t\t\t\tWhen copper mode is selected, the interface will only work through RJ45 Ethernet port."},"comment":{"type":"string"},"defaultName":{"type":"string","description":"The default name for an interface."},"disableRunningCheck":{"type":"boolean","description":"Disable running check. If this value is set to 'no', the router automatically detects whether the NIC is connected with a device in the network or not.\n\t\t\tDefault value is 'yes' because older NICs do not support it. (only applicable to x86)"},"disabled":{"type":"boolean"},"factoryName":{"type":"string","description":"The factory name of the identifier, serves as resource identifier. Determines which interface will be updated."},"fecMode":{"type":"string","description":"Changes Forward Error Correction (FEC) mode for SFP28, QSFP+ and QSFP28 interfaces. Same mode should be used on both link ends, otherwise FEC mismatch could result in non-working link or even false link-ups."},"fullDuplex":{"type":"boolean","description":"Defines whether the transmission of data appears in two directions simultaneously, only applies when auto-negotiation is disabled."},"interfaceEthernetId":{"type":"string"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"string"},"macAddress":{"type":"string","description":"Media Access Control number of an interface."},"mdixEnable":{"type":"boolean","description":"Whether the MDI/X auto cross over cable correction feature is enabled for the port (Hardware specific, e.g. ether1 on RB500 can be set to yes/no. Fixed to 'yes' on other hardware.)"},"mtu":{"type":"number","description":"Layer3 Maximum transmission unit"},"name":{"type":"string","description":"Name of the ethernet interface."},"origMacAddress":{"type":"string","description":"Original Media Access Control number of an interface. (read only)"},"poeLldpEnabled":{"type":"boolean","description":"An option that enables LLDP for managing devices."},"poeOut":{"type":"string","description":"PoE settings: (https://wiki.mikrotik.com/wiki/Manual:PoE-Out)"},"poePriority":{"type":"number","description":"PoE settings: (https://wiki.mikrotik.com/wiki/Manual:PoE-Out)"},"poeVoltage":{"type":"string","description":"An option that allows us to manually control the voltage outputs on the PoE port."},"powerCycleInterval":{"type":"string","description":"An options that disables PoE-Out power for 5s between the specified intervals."},"powerCyclePingAddress":{"type":"string","description":"An address to monitor."},"powerCyclePingEnabled":{"type":"boolean","description":"An option that enables ping watchdog of power cycles on the port if a host does not respond to ICMP or MAC-Telnet packets."},"powerCyclePingTimeout":{"type":"string","description":"If the host does not respond over the specified period, the PoE-Out port is switched off for 5s."},"running":{"type":"boolean","description":"Whether interface is running. Note that some interface does not have running check and they are always reported as \"running\""},"rxFlowControl":{"type":"string","description":"When set to on, the port will process received pause frames and suspend transmission if required.\n\t\t\t\t\tauto is the same as on except when auto-negotiation=yes flow control status is resolved by taking into account what other end advertises."},"sfpIgnoreRxLos":{"type":"boolean","description":"An option to ignore RX LOS (Loss of Signal) status of the SFP module."},"sfpRateSelect":{"type":"string","description":"Allows to control rate select pin for SFP ports. Values: high | low"},"sfpShutdownTemperature":{"type":"number","description":"The temperature in Celsius at which the interface will be temporarily turned off due to too high detected SFP module temperature (introduced v6.48).The default value for SFP/SFP+/SFP28 interfaces is 95, and for QSFP+/QSFP28 interfaces 80 (introduced v7.6)."},"slave":{"type":"boolean","description":"Whether interface is configured as a slave of another interface (for example Bonding)"},"speed":{"type":"string","description":"Sets interface data transmission speed which takes effect only when ``\u003cspan pulumi-lang-nodejs=\"`autoNegotiation`\" pulumi-lang-dotnet=\"`AutoNegotiation`\" pulumi-lang-go=\"`autoNegotiation`\" pulumi-lang-python=\"`auto_negotiation`\" pulumi-lang-yaml=\"`autoNegotiation`\" pulumi-lang-java=\"`autoNegotiation`\"\u003e`auto_negotiation`\u003c/span\u003e`` is disabled."},"switch":{"type":"string","description":"ID to which switch chip interface belongs to."},"txFlowControl":{"type":"string","description":"When set to on, the port will generate pause frames to the upstream device to temporarily stop the packet transmission. \n\t\t\t\t\tPause frames are only generated when some routers output interface is congested and packets cannot be transmitted anymore. \n\t\t\t\t\tAuto is the same as on except when auto-negotiation=yes flow control status is resolved by taking into account what other end advertises."}},"type":"object"}},"routeros:index/interfaceEthernetSwitch:InterfaceEthernetSwitch":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst sw0 = new routeros.InterfaceEthernetSwitch(\"sw0\", {\n    switchId: \"0\",\n    name: \"new switch\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsw0 = routeros.InterfaceEthernetSwitch(\"sw0\",\n    switch_id=\"0\",\n    name=\"new switch\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sw0 = new Routeros.InterfaceEthernetSwitch(\"sw0\", new()\n    {\n        SwitchId = \"0\",\n        Name = \"new switch\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceEthernetSwitch(ctx, \"sw0\", \u0026routeros.InterfaceEthernetSwitchArgs{\n\t\t\tSwitchId: pulumi.String(\"0\"),\n\t\t\tName:     pulumi.String(\"new switch\"),\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.routeros.InterfaceEthernetSwitch;\nimport com.pulumi.routeros.InterfaceEthernetSwitchArgs;\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 sw0 = new InterfaceEthernetSwitch(\"sw0\", InterfaceEthernetSwitchArgs.builder()\n            .switchId(\"0\")\n            .name(\"new switch\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sw0:\n    type: routeros:InterfaceEthernetSwitch\n    properties:\n      switchId: 0 # Optional\n      name: new switch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ethernet/switch get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitch:InterfaceEthernetSwitch sw0 *0\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"cpuFlowControl":{"type":"boolean","description":"All switch chips have a special port that is called switchX-cpu, this is the CPU port for a switch chip, it is meant to forward traffic from a switch chip to the CPU, such a port is required for management traffic and for routing features. By default the switch chip ensures that this special CPU port is not congested and sends out Pause Frames when link capacity is exceeded to make sure the port is not oversaturated, this feature is called CPU Flow Control. Without this feature packets that might be crucial for routing or management purposes might get dropped.\n"},"interfaceEthernetSwitchId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"l3HwOffloading":{"type":"boolean","description":"Layer 3 Hardware Offloading (L3HW, otherwise known as IP switching or HW routing) allows to offload some router features onto the switch chip. This allows reaching wire speeds when routing packets, which simply would not be possible with the CPU.\n"},"mirrorEgressTarget":{"type":"string","description":"Selects a single mirroring egress target port, only available on 88E6393X, 88E6191X and 88E6190 switch chips. Mirrored packets from `mirror-egress` (see the property in port menu) will be sent to the selected port.\n"},"mirrorSource":{"type":"string","description":"Selects a single mirroring source port. Ingress and egress traffic will be sent to the mirror-target port. Note that mirror-target port has to belong to the same switch (see which port belongs to which switch in /interface ethernet menu).\n"},"mirrorTarget":{"type":"string","description":"Selects a single mirroring target port. Mirrored packets from mirror-source and mirror (see the property in rule and host table) will be sent to the selected port.\n"},"name":{"type":"string","description":"Name of the switch.\n"},"qosHwOffloading":{"type":"boolean","description":"Allows enabling QoS for the given switch chip (if the latter supports QoS).\n"},"rspan":{"type":"boolean","description":"Enables Remote Switch Port Analyzer (RSPAN) feature on mirror-target. Traffic marked for ingress or egress mirroring is carried over a specified remote analyzer VLAN - `rspan-egress-vlan-id` and `rspan-ingress-vlan-id`.\n"},"rspanEgressVlanId":{"type":"number","description":"RSPAN egress VLAN Id.\n"},"rspanIngressVlanId":{"type":"number","description":"RSPAN ingress VLAN Id.\n"},"switchId":{"type":"string","description":"Switch-chip id. Default .id = *0\n"},"type":{"type":"string","description":"Switch-chip type.\n"}},"type":"object","required":["interfaceEthernetSwitchId","invalid","name","type"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"cpuFlowControl":{"type":"boolean","description":"All switch chips have a special port that is called switchX-cpu, this is the CPU port for a switch chip, it is meant to forward traffic from a switch chip to the CPU, such a port is required for management traffic and for routing features. By default the switch chip ensures that this special CPU port is not congested and sends out Pause Frames when link capacity is exceeded to make sure the port is not oversaturated, this feature is called CPU Flow Control. Without this feature packets that might be crucial for routing or management purposes might get dropped.\n"},"interfaceEthernetSwitchId":{"type":"string","description":"The ID of this resource.\n"},"l3HwOffloading":{"type":"boolean","description":"Layer 3 Hardware Offloading (L3HW, otherwise known as IP switching or HW routing) allows to offload some router features onto the switch chip. This allows reaching wire speeds when routing packets, which simply would not be possible with the CPU.\n"},"mirrorEgressTarget":{"type":"string","description":"Selects a single mirroring egress target port, only available on 88E6393X, 88E6191X and 88E6190 switch chips. Mirrored packets from `mirror-egress` (see the property in port menu) will be sent to the selected port.\n"},"mirrorSource":{"type":"string","description":"Selects a single mirroring source port. Ingress and egress traffic will be sent to the mirror-target port. Note that mirror-target port has to belong to the same switch (see which port belongs to which switch in /interface ethernet menu).\n"},"mirrorTarget":{"type":"string","description":"Selects a single mirroring target port. Mirrored packets from mirror-source and mirror (see the property in rule and host table) will be sent to the selected port.\n"},"name":{"type":"string","description":"Name of the switch.\n"},"qosHwOffloading":{"type":"boolean","description":"Allows enabling QoS for the given switch chip (if the latter supports QoS).\n"},"rspan":{"type":"boolean","description":"Enables Remote Switch Port Analyzer (RSPAN) feature on mirror-target. Traffic marked for ingress or egress mirroring is carried over a specified remote analyzer VLAN - `rspan-egress-vlan-id` and `rspan-ingress-vlan-id`.\n"},"rspanEgressVlanId":{"type":"number","description":"RSPAN egress VLAN Id.\n"},"rspanIngressVlanId":{"type":"number","description":"RSPAN ingress VLAN Id.\n"},"switchId":{"type":"string","description":"Switch-chip id. Default .id = *0\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEthernetSwitch resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"cpuFlowControl":{"type":"boolean","description":"All switch chips have a special port that is called switchX-cpu, this is the CPU port for a switch chip, it is meant to forward traffic from a switch chip to the CPU, such a port is required for management traffic and for routing features. By default the switch chip ensures that this special CPU port is not congested and sends out Pause Frames when link capacity is exceeded to make sure the port is not oversaturated, this feature is called CPU Flow Control. Without this feature packets that might be crucial for routing or management purposes might get dropped.\n"},"interfaceEthernetSwitchId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"l3HwOffloading":{"type":"boolean","description":"Layer 3 Hardware Offloading (L3HW, otherwise known as IP switching or HW routing) allows to offload some router features onto the switch chip. This allows reaching wire speeds when routing packets, which simply would not be possible with the CPU.\n"},"mirrorEgressTarget":{"type":"string","description":"Selects a single mirroring egress target port, only available on 88E6393X, 88E6191X and 88E6190 switch chips. Mirrored packets from `mirror-egress` (see the property in port menu) will be sent to the selected port.\n"},"mirrorSource":{"type":"string","description":"Selects a single mirroring source port. Ingress and egress traffic will be sent to the mirror-target port. Note that mirror-target port has to belong to the same switch (see which port belongs to which switch in /interface ethernet menu).\n"},"mirrorTarget":{"type":"string","description":"Selects a single mirroring target port. Mirrored packets from mirror-source and mirror (see the property in rule and host table) will be sent to the selected port.\n"},"name":{"type":"string","description":"Name of the switch.\n"},"qosHwOffloading":{"type":"boolean","description":"Allows enabling QoS for the given switch chip (if the latter supports QoS).\n"},"rspan":{"type":"boolean","description":"Enables Remote Switch Port Analyzer (RSPAN) feature on mirror-target. Traffic marked for ingress or egress mirroring is carried over a specified remote analyzer VLAN - `rspan-egress-vlan-id` and `rspan-ingress-vlan-id`.\n"},"rspanEgressVlanId":{"type":"number","description":"RSPAN egress VLAN Id.\n"},"rspanIngressVlanId":{"type":"number","description":"RSPAN ingress VLAN Id.\n"},"switchId":{"type":"string","description":"Switch-chip id. Default .id = *0\n"},"type":{"type":"string","description":"Switch-chip type.\n"}},"type":"object"}},"routeros:index/interfaceEthernetSwitchCrs:InterfaceEthernetSwitchCrs":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceEthernetSwitchCrs \" pulumi-lang-dotnet=\" routeros.InterfaceEthernetSwitchCrs \" pulumi-lang-go=\" InterfaceEthernetSwitchCrs \" pulumi-lang-python=\" InterfaceEthernetSwitchCrs \" pulumi-lang-yaml=\" routeros.InterfaceEthernetSwitchCrs \" pulumi-lang-java=\" routeros.InterfaceEthernetSwitchCrs \"\u003e routeros.InterfaceEthernetSwitchCrs \u003c/span\u003e(Resource)\n\nResource for managing CRS (Cloud Router Switch) series device properties.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  sw0:\n    type: routeros:InterfaceEthernetSwitchCrs\n    properties:\n      switchId: 0\n      name: new switch\n      dropIfInvalidOrSrcPortNotMemberOfVlanOnPorts:\n        - ether1\n        - ether2\n        - ether3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchCrs:InterfaceEthernetSwitchCrs sw0 .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridgeType":{"type":"string","description":"The bridge type defines which VLAN tag is used as Lookup-VID. Lookup-VID serves as the VLAN key for all VLAN-based lookups.\n"},"bypassIngressPortPolicingFors":{"type":"array","items":{"type":"string"},"description":"Protocols that are excluded from Ingress Port Policing. (arp, dhcpv4, dhcpv6, eapol, igmp, mld, nd, pppoe-discovery, ripv1).\n"},"bypassL2SecurityCheckFilterFors":{"type":"array","items":{"type":"string"},"description":"Protocols that are excluded from Policy rule security check. (arp, dhcpv4, dhcpv6, eapol, igmp, mld, nd, pppoe-discovery, ripv1).\n"},"bypassVlanIngressFilterFors":{"type":"array","items":{"type":"string"},"description":"Protocols that are excluded from Ingress VLAN filtering. These protocols are not dropped if they have invalid VLAN. (arp, dhcpv4, dhcpv6,eapol, igmp, mld, nd, pppoe-discovery, ripv1).\n"},"dropIfInvalidOrSrcPortNotMemberOfVlanOnPorts":{"type":"array","items":{"type":"string"},"description":"Ports that drop invalid and other port VLAN ID frames.\n"},"dropIfNoVlanAssignmentOnPorts":{"type":"array","items":{"type":"string"},"description":"Ports which drop frames if no MAC-based, Protocol-based VLAN assignment or Ingress VLAN Translation is applied.\n"},"egressMirror0s":{"type":"array","items":{"type":"string"},"description":"The first egress mirroring analyzer port or trunk and mirroring format:analyzer-configured - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the analyzer port.modified - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the egress port.original - Traffic is mirrored without any change to the original incoming packet format. But the service VLAN tag is stripped in the edge port.\n"},"egressMirror1s":{"type":"array","items":{"type":"string"},"description":"The second egress mirroring analyzer port or trunk and mirroring format:analyzer-configured - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the analyzer port.modified - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the egress port.original - Traffic is mirrored without any change to the original incoming packet format. But the service VLAN tag is stripped in the edge port.\n"},"egressMirrorRatio":{"type":"string","description":"Proportion of egress mirrored packets compared to all packets.\n"},"fdbUses":{"type":"string","description":"Analyzer port used for FDB-based mirroring.\n"},"forwardUnknownVlan":{"type":"boolean","description":"Whether to allow forwarding VLANs that are not members of the VLAN table.\n"},"ingressMirror0s":{"type":"array","items":{"type":"string"},"description":"The first ingress mirroring analyzer port or trunk and mirroring format:analyzer-configured - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the analyzer port.modified - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the egress port.original - Traffic is mirrored without any change to the original incoming packet format. But the service VLAN tag is stripped in the edge port.\n"},"ingressMirror1s":{"type":"array","items":{"type":"string"},"description":"The second ingress mirroring analyzer port or trunk and mirroring format:analyzer-configured - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the analyzer port.modified - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the egress port.original - Traffic is mirrored without any change to the original incoming packet format. But the service VLAN tag is stripped in the edge port.\n"},"ingressMirrorRatio":{"type":"string","description":"The proportion of ingress mirrored packets compared to all packets.\n"},"interfaceEthernetSwitchCrsId":{"type":"string","description":"The ID of this resource.\n"},"macLevelIsolation":{"type":"boolean","description":"Globally enables or disables MAC level isolation. Once enabled, the switch will check the source and destination MAC address entries and their isolation-profile from the unicast forwarding table. By default, the switch will learn MAC addresses and place them into a promiscuous isolation profile. Other isolation profiles can be used when creating static unicast entries. If the source or destination MAC address is located on a promiscuous isolation profile, the packet is forwarded. If both source and destination MAC addresses are located on the same community1 or community2 isolation profile, the packet is forwarded. The packet is dropped when the source and destination MAC address isolation profile is isolated, or when the source and destination MAC address isolation profiles are from different communities (e.g. source MAC address is community1 and destination MAC address is community2). When MAC level isolation is globally disabled, the isolation is bypassed.\n"},"mirrorEgressIfIngressMirrored":{"type":"boolean","description":"When a packet is applied to both ingress and egress mirroring, only ingress mirroring is performed on the packet, if this setting is disabled. If this setting is enabled both mirroring types are applied.\n"},"mirrorTxOnMirrorPort":{"type":"boolean"},"mirroredPacketDropPrecedence":{"type":"string","description":"Remarked drop precedence in mirrored packets. This QoS attribute is used for mirrored packet enqueuing or dropping.\n"},"mirroredPacketQosPriority":{"type":"number","description":"Remarked priority in mirrored packets.\n"},"multicastLookupMode":{"type":"string","description":"Lookup mode for IPv4 multicast bridging.dst-mac-and-vid-always - For all packet types lookup key is the destination MAC and VLAN ID.dst-ip-and-vid-for-ipv4 - For IPv4 packets lookup key is the destination IP and VLAN ID. For other packet types, the lookup key is the destination MAC and VLAN ID.\n"},"name":{"type":"string","description":"Name of the switch.\n"},"overrideExistingWhenUfdbFull":{"type":"boolean","description":"Enable or disable to override existing entry which has the lowest aging value when UFDB is full.\n"},"type":{"type":"string","description":"Switch-chip type.\n"},"unicastFdbTimeout":{"type":"string","description":"Timeout for Unicast FDB entries.\n"},"unknownVlanLookupMode":{"type":"string","description":"Lookup and learning mode for packets with invalid VLAN.\n"},"useCvidInOne2oneVlanLookup":{"type":"boolean","description":"Whether to use customer VLAN ID for 1:1 VLAN switching lookup.\n"},"useSvidInOne2oneVlanLookup":{"type":"boolean","description":"Whether to use service VLAN ID for 1:1 VLAN switching lookup.\n"},"vlanUses":{"type":"string","description":"Analyzer port used for VLAN-based mirroring.\n"}},"type":"object","required":["interfaceEthernetSwitchCrsId","name","type"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridgeType":{"type":"string","description":"The bridge type defines which VLAN tag is used as Lookup-VID. Lookup-VID serves as the VLAN key for all VLAN-based lookups.\n"},"bypassIngressPortPolicingFors":{"type":"array","items":{"type":"string"},"description":"Protocols that are excluded from Ingress Port Policing. (arp, dhcpv4, dhcpv6, eapol, igmp, mld, nd, pppoe-discovery, ripv1).\n"},"bypassL2SecurityCheckFilterFors":{"type":"array","items":{"type":"string"},"description":"Protocols that are excluded from Policy rule security check. (arp, dhcpv4, dhcpv6, eapol, igmp, mld, nd, pppoe-discovery, ripv1).\n"},"bypassVlanIngressFilterFors":{"type":"array","items":{"type":"string"},"description":"Protocols that are excluded from Ingress VLAN filtering. These protocols are not dropped if they have invalid VLAN. (arp, dhcpv4, dhcpv6,eapol, igmp, mld, nd, pppoe-discovery, ripv1).\n"},"dropIfInvalidOrSrcPortNotMemberOfVlanOnPorts":{"type":"array","items":{"type":"string"},"description":"Ports that drop invalid and other port VLAN ID frames.\n"},"dropIfNoVlanAssignmentOnPorts":{"type":"array","items":{"type":"string"},"description":"Ports which drop frames if no MAC-based, Protocol-based VLAN assignment or Ingress VLAN Translation is applied.\n"},"egressMirror0s":{"type":"array","items":{"type":"string"},"description":"The first egress mirroring analyzer port or trunk and mirroring format:analyzer-configured - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the analyzer port.modified - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the egress port.original - Traffic is mirrored without any change to the original incoming packet format. But the service VLAN tag is stripped in the edge port.\n"},"egressMirror1s":{"type":"array","items":{"type":"string"},"description":"The second egress mirroring analyzer port or trunk and mirroring format:analyzer-configured - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the analyzer port.modified - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the egress port.original - Traffic is mirrored without any change to the original incoming packet format. But the service VLAN tag is stripped in the edge port.\n"},"egressMirrorRatio":{"type":"string","description":"Proportion of egress mirrored packets compared to all packets.\n"},"fdbUses":{"type":"string","description":"Analyzer port used for FDB-based mirroring.\n"},"forwardUnknownVlan":{"type":"boolean","description":"Whether to allow forwarding VLANs that are not members of the VLAN table.\n"},"ingressMirror0s":{"type":"array","items":{"type":"string"},"description":"The first ingress mirroring analyzer port or trunk and mirroring format:analyzer-configured - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the analyzer port.modified - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the egress port.original - Traffic is mirrored without any change to the original incoming packet format. But the service VLAN tag is stripped in the edge port.\n"},"ingressMirror1s":{"type":"array","items":{"type":"string"},"description":"The second ingress mirroring analyzer port or trunk and mirroring format:analyzer-configured - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the analyzer port.modified - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the egress port.original - Traffic is mirrored without any change to the original incoming packet format. But the service VLAN tag is stripped in the edge port.\n"},"ingressMirrorRatio":{"type":"string","description":"The proportion of ingress mirrored packets compared to all packets.\n"},"interfaceEthernetSwitchCrsId":{"type":"string","description":"The ID of this resource.\n"},"macLevelIsolation":{"type":"boolean","description":"Globally enables or disables MAC level isolation. Once enabled, the switch will check the source and destination MAC address entries and their isolation-profile from the unicast forwarding table. By default, the switch will learn MAC addresses and place them into a promiscuous isolation profile. Other isolation profiles can be used when creating static unicast entries. If the source or destination MAC address is located on a promiscuous isolation profile, the packet is forwarded. If both source and destination MAC addresses are located on the same community1 or community2 isolation profile, the packet is forwarded. The packet is dropped when the source and destination MAC address isolation profile is isolated, or when the source and destination MAC address isolation profiles are from different communities (e.g. source MAC address is community1 and destination MAC address is community2). When MAC level isolation is globally disabled, the isolation is bypassed.\n"},"mirrorEgressIfIngressMirrored":{"type":"boolean","description":"When a packet is applied to both ingress and egress mirroring, only ingress mirroring is performed on the packet, if this setting is disabled. If this setting is enabled both mirroring types are applied.\n"},"mirrorTxOnMirrorPort":{"type":"boolean"},"mirroredPacketDropPrecedence":{"type":"string","description":"Remarked drop precedence in mirrored packets. This QoS attribute is used for mirrored packet enqueuing or dropping.\n"},"mirroredPacketQosPriority":{"type":"number","description":"Remarked priority in mirrored packets.\n"},"multicastLookupMode":{"type":"string","description":"Lookup mode for IPv4 multicast bridging.dst-mac-and-vid-always - For all packet types lookup key is the destination MAC and VLAN ID.dst-ip-and-vid-for-ipv4 - For IPv4 packets lookup key is the destination IP and VLAN ID. For other packet types, the lookup key is the destination MAC and VLAN ID.\n"},"name":{"type":"string","description":"Name of the switch.\n"},"overrideExistingWhenUfdbFull":{"type":"boolean","description":"Enable or disable to override existing entry which has the lowest aging value when UFDB is full.\n"},"unicastFdbTimeout":{"type":"string","description":"Timeout for Unicast FDB entries.\n"},"unknownVlanLookupMode":{"type":"string","description":"Lookup and learning mode for packets with invalid VLAN.\n"},"useCvidInOne2oneVlanLookup":{"type":"boolean","description":"Whether to use customer VLAN ID for 1:1 VLAN switching lookup.\n"},"useSvidInOne2oneVlanLookup":{"type":"boolean","description":"Whether to use service VLAN ID for 1:1 VLAN switching lookup.\n"},"vlanUses":{"type":"string","description":"Analyzer port used for VLAN-based mirroring.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEthernetSwitchCrs resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridgeType":{"type":"string","description":"The bridge type defines which VLAN tag is used as Lookup-VID. Lookup-VID serves as the VLAN key for all VLAN-based lookups.\n"},"bypassIngressPortPolicingFors":{"type":"array","items":{"type":"string"},"description":"Protocols that are excluded from Ingress Port Policing. (arp, dhcpv4, dhcpv6, eapol, igmp, mld, nd, pppoe-discovery, ripv1).\n"},"bypassL2SecurityCheckFilterFors":{"type":"array","items":{"type":"string"},"description":"Protocols that are excluded from Policy rule security check. (arp, dhcpv4, dhcpv6, eapol, igmp, mld, nd, pppoe-discovery, ripv1).\n"},"bypassVlanIngressFilterFors":{"type":"array","items":{"type":"string"},"description":"Protocols that are excluded from Ingress VLAN filtering. These protocols are not dropped if they have invalid VLAN. (arp, dhcpv4, dhcpv6,eapol, igmp, mld, nd, pppoe-discovery, ripv1).\n"},"dropIfInvalidOrSrcPortNotMemberOfVlanOnPorts":{"type":"array","items":{"type":"string"},"description":"Ports that drop invalid and other port VLAN ID frames.\n"},"dropIfNoVlanAssignmentOnPorts":{"type":"array","items":{"type":"string"},"description":"Ports which drop frames if no MAC-based, Protocol-based VLAN assignment or Ingress VLAN Translation is applied.\n"},"egressMirror0s":{"type":"array","items":{"type":"string"},"description":"The first egress mirroring analyzer port or trunk and mirroring format:analyzer-configured - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the analyzer port.modified - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the egress port.original - Traffic is mirrored without any change to the original incoming packet format. But the service VLAN tag is stripped in the edge port.\n"},"egressMirror1s":{"type":"array","items":{"type":"string"},"description":"The second egress mirroring analyzer port or trunk and mirroring format:analyzer-configured - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the analyzer port.modified - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the egress port.original - Traffic is mirrored without any change to the original incoming packet format. But the service VLAN tag is stripped in the edge port.\n"},"egressMirrorRatio":{"type":"string","description":"Proportion of egress mirrored packets compared to all packets.\n"},"fdbUses":{"type":"string","description":"Analyzer port used for FDB-based mirroring.\n"},"forwardUnknownVlan":{"type":"boolean","description":"Whether to allow forwarding VLANs that are not members of the VLAN table.\n"},"ingressMirror0s":{"type":"array","items":{"type":"string"},"description":"The first ingress mirroring analyzer port or trunk and mirroring format:analyzer-configured - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the analyzer port.modified - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the egress port.original - Traffic is mirrored without any change to the original incoming packet format. But the service VLAN tag is stripped in the edge port.\n"},"ingressMirror1s":{"type":"array","items":{"type":"string"},"description":"The second ingress mirroring analyzer port or trunk and mirroring format:analyzer-configured - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the analyzer port.modified - The packet is the same as the packet to the destination. VLAN format is modified based on the VLAN configurations of the egress port.original - Traffic is mirrored without any change to the original incoming packet format. But the service VLAN tag is stripped in the edge port.\n"},"ingressMirrorRatio":{"type":"string","description":"The proportion of ingress mirrored packets compared to all packets.\n"},"interfaceEthernetSwitchCrsId":{"type":"string","description":"The ID of this resource.\n"},"macLevelIsolation":{"type":"boolean","description":"Globally enables or disables MAC level isolation. Once enabled, the switch will check the source and destination MAC address entries and their isolation-profile from the unicast forwarding table. By default, the switch will learn MAC addresses and place them into a promiscuous isolation profile. Other isolation profiles can be used when creating static unicast entries. If the source or destination MAC address is located on a promiscuous isolation profile, the packet is forwarded. If both source and destination MAC addresses are located on the same community1 or community2 isolation profile, the packet is forwarded. The packet is dropped when the source and destination MAC address isolation profile is isolated, or when the source and destination MAC address isolation profiles are from different communities (e.g. source MAC address is community1 and destination MAC address is community2). When MAC level isolation is globally disabled, the isolation is bypassed.\n"},"mirrorEgressIfIngressMirrored":{"type":"boolean","description":"When a packet is applied to both ingress and egress mirroring, only ingress mirroring is performed on the packet, if this setting is disabled. If this setting is enabled both mirroring types are applied.\n"},"mirrorTxOnMirrorPort":{"type":"boolean"},"mirroredPacketDropPrecedence":{"type":"string","description":"Remarked drop precedence in mirrored packets. This QoS attribute is used for mirrored packet enqueuing or dropping.\n"},"mirroredPacketQosPriority":{"type":"number","description":"Remarked priority in mirrored packets.\n"},"multicastLookupMode":{"type":"string","description":"Lookup mode for IPv4 multicast bridging.dst-mac-and-vid-always - For all packet types lookup key is the destination MAC and VLAN ID.dst-ip-and-vid-for-ipv4 - For IPv4 packets lookup key is the destination IP and VLAN ID. For other packet types, the lookup key is the destination MAC and VLAN ID.\n"},"name":{"type":"string","description":"Name of the switch.\n"},"overrideExistingWhenUfdbFull":{"type":"boolean","description":"Enable or disable to override existing entry which has the lowest aging value when UFDB is full.\n"},"type":{"type":"string","description":"Switch-chip type.\n"},"unicastFdbTimeout":{"type":"string","description":"Timeout for Unicast FDB entries.\n"},"unknownVlanLookupMode":{"type":"string","description":"Lookup and learning mode for packets with invalid VLAN.\n"},"useCvidInOne2oneVlanLookup":{"type":"boolean","description":"Whether to use customer VLAN ID for 1:1 VLAN switching lookup.\n"},"useSvidInOne2oneVlanLookup":{"type":"boolean","description":"Whether to use service VLAN ID for 1:1 VLAN switching lookup.\n"},"vlanUses":{"type":"string","description":"Analyzer port used for VLAN-based mirroring.\n"}},"type":"object"}},"routeros:index/interfaceEthernetSwitchCrsEgressVlanTag:InterfaceEthernetSwitchCrsEgressVlanTag":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceEthernetSwitchCrsEgressVlanTag \" pulumi-lang-dotnet=\" routeros.InterfaceEthernetSwitchCrsEgressVlanTag \" pulumi-lang-go=\" InterfaceEthernetSwitchCrsEgressVlanTag \" pulumi-lang-python=\" InterfaceEthernetSwitchCrsEgressVlanTag \" pulumi-lang-yaml=\" routeros.InterfaceEthernetSwitchCrsEgressVlanTag \" pulumi-lang-java=\" routeros.InterfaceEthernetSwitchCrsEgressVlanTag \"\u003e routeros.InterfaceEthernetSwitchCrsEgressVlanTag \u003c/span\u003e(Resource)\n\nResource for managing CRS (Cloud Router Switch) series device properties.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceEthernetSwitchCrsEgressVlanTag(\"test\", {\n    vlanId: 100,\n    taggedPorts: [\n        \"ether1\",\n        \"ether2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceEthernetSwitchCrsEgressVlanTag(\"test\",\n    vlan_id=100,\n    tagged_ports=[\n        \"ether1\",\n        \"ether2\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceEthernetSwitchCrsEgressVlanTag(\"test\", new()\n    {\n        VlanId = 100,\n        TaggedPorts = new[]\n        {\n            \"ether1\",\n            \"ether2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceEthernetSwitchCrsEgressVlanTag(ctx, \"test\", \u0026routeros.InterfaceEthernetSwitchCrsEgressVlanTagArgs{\n\t\t\tVlanId: pulumi.Float64(100),\n\t\t\tTaggedPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ether1\"),\n\t\t\t\tpulumi.String(\"ether2\"),\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.routeros.InterfaceEthernetSwitchCrsEgressVlanTag;\nimport com.pulumi.routeros.InterfaceEthernetSwitchCrsEgressVlanTagArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceEthernetSwitchCrsEgressVlanTag(\"test\", InterfaceEthernetSwitchCrsEgressVlanTagArgs.builder()\n            .vlanId(100.0)\n            .taggedPorts(            \n                \"ether1\",\n                \"ether2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceEthernetSwitchCrsEgressVlanTag\n    properties:\n      vlanId: 100\n      taggedPorts:\n        - ether1\n        - ether2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ethernet/switch/egress-vlan-tag get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchCrsEgressVlanTag:InterfaceEthernetSwitchCrsEgressVlanTag test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchCrsEgressVlanTag:InterfaceEthernetSwitchCrsEgressVlanTag test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"interfaceEthernetSwitchCrsEgressVlanTagId":{"type":"string","description":"The ID of this resource.\n"},"taggedPorts":{"type":"array","items":{"type":"string"},"description":"Ports that are tagged in egress.\n"},"vlanId":{"type":"number","description":"VLAN ID which is tagged in egress.\n"}},"type":"object","required":["dynamic","interfaceEthernetSwitchCrsEgressVlanTagId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaceEthernetSwitchCrsEgressVlanTagId":{"type":"string","description":"The ID of this resource.\n"},"taggedPorts":{"type":"array","items":{"type":"string"},"description":"Ports that are tagged in egress.\n"},"vlanId":{"type":"number","description":"VLAN ID which is tagged in egress.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEthernetSwitchCrsEgressVlanTag resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"interfaceEthernetSwitchCrsEgressVlanTagId":{"type":"string","description":"The ID of this resource.\n"},"taggedPorts":{"type":"array","items":{"type":"string"},"description":"Ports that are tagged in egress.\n"},"vlanId":{"type":"number","description":"VLAN ID which is tagged in egress.\n"}},"type":"object"}},"routeros:index/interfaceEthernetSwitchCrsEgressVlanTranslation:InterfaceEthernetSwitchCrsEgressVlanTranslation":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceEthernetSwitchCrsEgressVlanTranslation \" pulumi-lang-dotnet=\" routeros.InterfaceEthernetSwitchCrsEgressVlanTranslation \" pulumi-lang-go=\" InterfaceEthernetSwitchCrsEgressVlanTranslation \" pulumi-lang-python=\" InterfaceEthernetSwitchCrsEgressVlanTranslation \" pulumi-lang-yaml=\" routeros.InterfaceEthernetSwitchCrsEgressVlanTranslation \" pulumi-lang-java=\" routeros.InterfaceEthernetSwitchCrsEgressVlanTranslation \"\u003e routeros.InterfaceEthernetSwitchCrsEgressVlanTranslation \u003c/span\u003e(Resource)\n\nResource for managing CRS (Cloud Router Switch) series device properties.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceEthernetSwitchCrsEgressVlanTranslation(\"test\", {\n    ports: [\"ether1\"],\n    serviceVlanFormat: \"any\",\n    customerVlanFormat: \"any\",\n    customerVid: \"100\",\n    newCustomerVid: \"0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceEthernetSwitchCrsEgressVlanTranslation(\"test\",\n    ports=[\"ether1\"],\n    service_vlan_format=\"any\",\n    customer_vlan_format=\"any\",\n    customer_vid=\"100\",\n    new_customer_vid=\"0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceEthernetSwitchCrsEgressVlanTranslation(\"test\", new()\n    {\n        Ports = new[]\n        {\n            \"ether1\",\n        },\n        ServiceVlanFormat = \"any\",\n        CustomerVlanFormat = \"any\",\n        CustomerVid = \"100\",\n        NewCustomerVid = \"0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceEthernetSwitchCrsEgressVlanTranslation(ctx, \"test\", \u0026routeros.InterfaceEthernetSwitchCrsEgressVlanTranslationArgs{\n\t\t\tPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ether1\"),\n\t\t\t},\n\t\t\tServiceVlanFormat:  pulumi.String(\"any\"),\n\t\t\tCustomerVlanFormat: pulumi.String(\"any\"),\n\t\t\tCustomerVid:        pulumi.String(\"100\"),\n\t\t\tNewCustomerVid:     pulumi.String(\"0\"),\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.routeros.InterfaceEthernetSwitchCrsEgressVlanTranslation;\nimport com.pulumi.routeros.InterfaceEthernetSwitchCrsEgressVlanTranslationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceEthernetSwitchCrsEgressVlanTranslation(\"test\", InterfaceEthernetSwitchCrsEgressVlanTranslationArgs.builder()\n            .ports(\"ether1\")\n            .serviceVlanFormat(\"any\")\n            .customerVlanFormat(\"any\")\n            .customerVid(\"100\")\n            .newCustomerVid(\"0\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceEthernetSwitchCrsEgressVlanTranslation\n    properties:\n      ports:\n        - ether1\n      serviceVlanFormat: any\n      customerVlanFormat: any\n      customerVid: 100\n      newCustomerVid: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ethernet/switch/egress-vlan-translation get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchCrsEgressVlanTranslation:InterfaceEthernetSwitchCrsEgressVlanTranslation test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchCrsEgressVlanTranslation:InterfaceEthernetSwitchCrsEgressVlanTranslation test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"customerDei":{"type":"string","description":"Matching DEI of the customer tag.\n"},"customerPcp":{"type":"string","description":"Matching PCP of the customer tag.\n"},"customerVid":{"type":"string","description":"Matching the VLAN ID of the customer tag.\n"},"customerVlanFormat":{"type":"string","description":"Type of frames with customer tag for which VLAN translation rule is valid.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"interfaceEthernetSwitchCrsEgressVlanTranslationId":{"type":"string","description":"The ID of this resource.\n"},"newCustomerVid":{"type":"string","description":"The new customer VLAN ID replaces the matching customer VLAN ID. If set to 4095 and ingress VLAN translation is used, then traffic is dropped.\n"},"newServiceVid":{"type":"string","description":"The new service VLAN ID replaces the matching service VLAN ID.\n"},"pcpPropagation":{"type":"string","description":"Enables or disables PCP propagation.If the port type is Edge, the customer PCP is copied from the service PCP.If the port type is Network, the service PCP is copied from the customer PCP.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Matching switch ports for VLAN translation rule.\n"},"serviceDei":{"type":"string","description":"Matching DEI of the service tag.\n"},"servicePcp":{"type":"string","description":"Matching PCP of the service tag.\n"},"serviceVid":{"type":"string","description":"Matching VLAN ID of the service tag.\n"},"serviceVlanFormat":{"type":"string","description":"Type of frames with service tag for which VLAN translation rule is valid.\n"},"swapVids":{"type":"string"}},"type":"object","required":["dynamic","interfaceEthernetSwitchCrsEgressVlanTranslationId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"customerDei":{"type":"string","description":"Matching DEI of the customer tag.\n"},"customerPcp":{"type":"string","description":"Matching PCP of the customer tag.\n"},"customerVid":{"type":"string","description":"Matching the VLAN ID of the customer tag.\n"},"customerVlanFormat":{"type":"string","description":"Type of frames with customer tag for which VLAN translation rule is valid.\n"},"disabled":{"type":"boolean"},"interfaceEthernetSwitchCrsEgressVlanTranslationId":{"type":"string","description":"The ID of this resource.\n"},"newCustomerVid":{"type":"string","description":"The new customer VLAN ID replaces the matching customer VLAN ID. If set to 4095 and ingress VLAN translation is used, then traffic is dropped.\n"},"newServiceVid":{"type":"string","description":"The new service VLAN ID replaces the matching service VLAN ID.\n"},"pcpPropagation":{"type":"string","description":"Enables or disables PCP propagation.If the port type is Edge, the customer PCP is copied from the service PCP.If the port type is Network, the service PCP is copied from the customer PCP.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Matching switch ports for VLAN translation rule.\n"},"serviceDei":{"type":"string","description":"Matching DEI of the service tag.\n"},"servicePcp":{"type":"string","description":"Matching PCP of the service tag.\n"},"serviceVid":{"type":"string","description":"Matching VLAN ID of the service tag.\n"},"serviceVlanFormat":{"type":"string","description":"Type of frames with service tag for which VLAN translation rule is valid.\n"},"swapVids":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEthernetSwitchCrsEgressVlanTranslation resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"customerDei":{"type":"string","description":"Matching DEI of the customer tag.\n"},"customerPcp":{"type":"string","description":"Matching PCP of the customer tag.\n"},"customerVid":{"type":"string","description":"Matching the VLAN ID of the customer tag.\n"},"customerVlanFormat":{"type":"string","description":"Type of frames with customer tag for which VLAN translation rule is valid.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"interfaceEthernetSwitchCrsEgressVlanTranslationId":{"type":"string","description":"The ID of this resource.\n"},"newCustomerVid":{"type":"string","description":"The new customer VLAN ID replaces the matching customer VLAN ID. If set to 4095 and ingress VLAN translation is used, then traffic is dropped.\n"},"newServiceVid":{"type":"string","description":"The new service VLAN ID replaces the matching service VLAN ID.\n"},"pcpPropagation":{"type":"string","description":"Enables or disables PCP propagation.If the port type is Edge, the customer PCP is copied from the service PCP.If the port type is Network, the service PCP is copied from the customer PCP.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Matching switch ports for VLAN translation rule.\n"},"serviceDei":{"type":"string","description":"Matching DEI of the service tag.\n"},"servicePcp":{"type":"string","description":"Matching PCP of the service tag.\n"},"serviceVid":{"type":"string","description":"Matching VLAN ID of the service tag.\n"},"serviceVlanFormat":{"type":"string","description":"Type of frames with service tag for which VLAN translation rule is valid.\n"},"swapVids":{"type":"string"}},"type":"object"}},"routeros:index/interfaceEthernetSwitchCrsIngressVlanTranslation:InterfaceEthernetSwitchCrsIngressVlanTranslation":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceEthernetSwitchCrsIngressVlanTranslation \" pulumi-lang-dotnet=\" routeros.InterfaceEthernetSwitchCrsIngressVlanTranslation \" pulumi-lang-go=\" InterfaceEthernetSwitchCrsIngressVlanTranslation \" pulumi-lang-python=\" InterfaceEthernetSwitchCrsIngressVlanTranslation \" pulumi-lang-yaml=\" routeros.InterfaceEthernetSwitchCrsIngressVlanTranslation \" pulumi-lang-java=\" routeros.InterfaceEthernetSwitchCrsIngressVlanTranslation \"\u003e routeros.InterfaceEthernetSwitchCrsIngressVlanTranslation \u003c/span\u003e(Resource)\n\nResource for managing CRS (Cloud Router Switch) series device properties.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceEthernetSwitchCrsIngressVlanTranslation(\"test\", {\n    ports: [\"ether1\"],\n    serviceVlanFormat: \"any\",\n    customerVlanFormat: \"any\",\n    customerVid: \"0\",\n    newCustomerVid: \"100\",\n    saLearning: \"true\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceEthernetSwitchCrsIngressVlanTranslation(\"test\",\n    ports=[\"ether1\"],\n    service_vlan_format=\"any\",\n    customer_vlan_format=\"any\",\n    customer_vid=\"0\",\n    new_customer_vid=\"100\",\n    sa_learning=\"true\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceEthernetSwitchCrsIngressVlanTranslation(\"test\", new()\n    {\n        Ports = new[]\n        {\n            \"ether1\",\n        },\n        ServiceVlanFormat = \"any\",\n        CustomerVlanFormat = \"any\",\n        CustomerVid = \"0\",\n        NewCustomerVid = \"100\",\n        SaLearning = \"true\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceEthernetSwitchCrsIngressVlanTranslation(ctx, \"test\", \u0026routeros.InterfaceEthernetSwitchCrsIngressVlanTranslationArgs{\n\t\t\tPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ether1\"),\n\t\t\t},\n\t\t\tServiceVlanFormat:  pulumi.String(\"any\"),\n\t\t\tCustomerVlanFormat: pulumi.String(\"any\"),\n\t\t\tCustomerVid:        pulumi.String(\"0\"),\n\t\t\tNewCustomerVid:     pulumi.String(\"100\"),\n\t\t\tSaLearning:         pulumi.String(\"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.routeros.InterfaceEthernetSwitchCrsIngressVlanTranslation;\nimport com.pulumi.routeros.InterfaceEthernetSwitchCrsIngressVlanTranslationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceEthernetSwitchCrsIngressVlanTranslation(\"test\", InterfaceEthernetSwitchCrsIngressVlanTranslationArgs.builder()\n            .ports(\"ether1\")\n            .serviceVlanFormat(\"any\")\n            .customerVlanFormat(\"any\")\n            .customerVid(\"0\")\n            .newCustomerVid(\"100\")\n            .saLearning(\"true\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceEthernetSwitchCrsIngressVlanTranslation\n    properties:\n      ports:\n        - ether1\n      serviceVlanFormat: any\n      customerVlanFormat: any\n      customerVid: 0\n      newCustomerVid: 100\n      saLearning: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ethernet/switch/ingress-vlan-translation get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchCrsIngressVlanTranslation:InterfaceEthernetSwitchCrsIngressVlanTranslation test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchCrsIngressVlanTranslation:InterfaceEthernetSwitchCrsIngressVlanTranslation test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"customerDei":{"type":"string","description":"Matching DEI of the customer tag.\n"},"customerPcp":{"type":"string","description":"Matching PCP of the customer tag.\n"},"customerVid":{"type":"string","description":"Matching the VLAN ID of the customer tag.\n"},"customerVlanFormat":{"type":"string","description":"Type of frames with customer tag for which VLAN translation rule is valid.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"interfaceEthernetSwitchCrsIngressVlanTranslationId":{"type":"string","description":"The ID of this resource.\n"},"newCustomerVid":{"type":"string","description":"The new customer VLAN ID replaces the matching customer VLAN ID. If set to 4095 and ingress VLAN translation is used, then traffic is dropped.\n"},"newServiceVid":{"type":"string","description":"The new service VLAN ID replaces the matching service VLAN ID.\n"},"pcpPropagation":{"type":"string","description":"Enables or disables PCP propagation.If the port type is Edge, the customer PCP is copied from the service PCP.If the port type is Network, the service PCP is copied from the customer PCP.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Matching switch ports for VLAN translation rule.\n"},"protocol":{"type":"string","description":"Matching Ethernet protocol (only for Ingress VLAN Translation).\n"},"saLearning":{"type":"string","description":"Enables or disables source MAC learning after VLAN translation (only for Ingress VLAN Translation).\n"},"serviceDei":{"type":"string","description":"Matching DEI of the service tag.\n"},"servicePcp":{"type":"string","description":"Matching PCP of the service tag.\n"},"serviceVid":{"type":"string","description":"Matching VLAN ID of the service tag.\n"},"serviceVlanFormat":{"type":"string","description":"Type of frames with service tag for which VLAN translation rule is valid.\n"},"swapVids":{"type":"string"}},"type":"object","required":["dynamic","interfaceEthernetSwitchCrsIngressVlanTranslationId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"customerDei":{"type":"string","description":"Matching DEI of the customer tag.\n"},"customerPcp":{"type":"string","description":"Matching PCP of the customer tag.\n"},"customerVid":{"type":"string","description":"Matching the VLAN ID of the customer tag.\n"},"customerVlanFormat":{"type":"string","description":"Type of frames with customer tag for which VLAN translation rule is valid.\n"},"disabled":{"type":"boolean"},"interfaceEthernetSwitchCrsIngressVlanTranslationId":{"type":"string","description":"The ID of this resource.\n"},"newCustomerVid":{"type":"string","description":"The new customer VLAN ID replaces the matching customer VLAN ID. If set to 4095 and ingress VLAN translation is used, then traffic is dropped.\n"},"newServiceVid":{"type":"string","description":"The new service VLAN ID replaces the matching service VLAN ID.\n"},"pcpPropagation":{"type":"string","description":"Enables or disables PCP propagation.If the port type is Edge, the customer PCP is copied from the service PCP.If the port type is Network, the service PCP is copied from the customer PCP.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Matching switch ports for VLAN translation rule.\n"},"protocol":{"type":"string","description":"Matching Ethernet protocol (only for Ingress VLAN Translation).\n"},"saLearning":{"type":"string","description":"Enables or disables source MAC learning after VLAN translation (only for Ingress VLAN Translation).\n"},"serviceDei":{"type":"string","description":"Matching DEI of the service tag.\n"},"servicePcp":{"type":"string","description":"Matching PCP of the service tag.\n"},"serviceVid":{"type":"string","description":"Matching VLAN ID of the service tag.\n"},"serviceVlanFormat":{"type":"string","description":"Type of frames with service tag for which VLAN translation rule is valid.\n"},"swapVids":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEthernetSwitchCrsIngressVlanTranslation resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"customerDei":{"type":"string","description":"Matching DEI of the customer tag.\n"},"customerPcp":{"type":"string","description":"Matching PCP of the customer tag.\n"},"customerVid":{"type":"string","description":"Matching the VLAN ID of the customer tag.\n"},"customerVlanFormat":{"type":"string","description":"Type of frames with customer tag for which VLAN translation rule is valid.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"interfaceEthernetSwitchCrsIngressVlanTranslationId":{"type":"string","description":"The ID of this resource.\n"},"newCustomerVid":{"type":"string","description":"The new customer VLAN ID replaces the matching customer VLAN ID. If set to 4095 and ingress VLAN translation is used, then traffic is dropped.\n"},"newServiceVid":{"type":"string","description":"The new service VLAN ID replaces the matching service VLAN ID.\n"},"pcpPropagation":{"type":"string","description":"Enables or disables PCP propagation.If the port type is Edge, the customer PCP is copied from the service PCP.If the port type is Network, the service PCP is copied from the customer PCP.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Matching switch ports for VLAN translation rule.\n"},"protocol":{"type":"string","description":"Matching Ethernet protocol (only for Ingress VLAN Translation).\n"},"saLearning":{"type":"string","description":"Enables or disables source MAC learning after VLAN translation (only for Ingress VLAN Translation).\n"},"serviceDei":{"type":"string","description":"Matching DEI of the service tag.\n"},"servicePcp":{"type":"string","description":"Matching PCP of the service tag.\n"},"serviceVid":{"type":"string","description":"Matching VLAN ID of the service tag.\n"},"serviceVlanFormat":{"type":"string","description":"Type of frames with service tag for which VLAN translation rule is valid.\n"},"swapVids":{"type":"string"}},"type":"object"}},"routeros:index/interfaceEthernetSwitchCrsVlan:InterfaceEthernetSwitchCrsVlan":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceEthernetSwitchCrsVlan \" pulumi-lang-dotnet=\" routeros.InterfaceEthernetSwitchCrsVlan \" pulumi-lang-go=\" InterfaceEthernetSwitchCrsVlan \" pulumi-lang-python=\" InterfaceEthernetSwitchCrsVlan \" pulumi-lang-yaml=\" routeros.InterfaceEthernetSwitchCrsVlan \" pulumi-lang-java=\" routeros.InterfaceEthernetSwitchCrsVlan \"\u003e routeros.InterfaceEthernetSwitchCrsVlan \u003c/span\u003e(Resource)\n\nResource for managing CRS (Cloud Router Switch) series device properties.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceEthernetSwitchCrsVlan\n    properties:\n      ports:\n        - ether1\n      vlanId: 10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ethernet/switch/vlan get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchCrsVlan:InterfaceEthernetSwitchCrsVlan test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchCrsVlan:InterfaceEthernetSwitchCrsVlan test \"comment=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"flood":{"type":"boolean","description":"Enables or disables forced VLAN flooding per VLAN. If the feature is enabled, the result of the destination MAC lookup in the UFDB or MFDB is ignored,and the packet is forced to flood in the VLAN."},"ingressMirror":{"type":"boolean","description":"Enable the ingress mirror per VLAN to support the VLAN-based mirror function."},"interfaceEthernetSwitchCrsVlanId":{"type":"string"},"learn":{"type":"boolean","description":"Enables or disables source MAC learning for VLAN."},"ports":{"type":"string","description":"Member ports of the VLAN."},"qosGroup":{"type":"string","description":"Defined QoS group from QoS group menu."},"svl":{"type":"boolean","description":"FDB lookup mode for lookup in UFDB and MFDB.\n    -  Shared VLAN Learning (svl) - learning/lookup is based on MAC addresses - not on VLAN IDs.\n    -  Independent VLAN Learning (ivl) - learning/lookup is based on both MAC addresses and VLAN IDs."},"vlanId":{"type":"number","description":"VLAN ID of the VLAN member entry."}},"type":"object","required":["dynamic","interfaceEthernetSwitchCrsVlanId","vlanId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"flood":{"type":"boolean","description":"Enables or disables forced VLAN flooding per VLAN. If the feature is enabled, the result of the destination MAC lookup in the UFDB or MFDB is ignored,and the packet is forced to flood in the VLAN."},"ingressMirror":{"type":"boolean","description":"Enable the ingress mirror per VLAN to support the VLAN-based mirror function."},"interfaceEthernetSwitchCrsVlanId":{"type":"string"},"learn":{"type":"boolean","description":"Enables or disables source MAC learning for VLAN."},"ports":{"type":"string","description":"Member ports of the VLAN."},"qosGroup":{"type":"string","description":"Defined QoS group from QoS group menu."},"svl":{"type":"boolean","description":"FDB lookup mode for lookup in UFDB and MFDB.\n    -  Shared VLAN Learning (svl) - learning/lookup is based on MAC addresses - not on VLAN IDs.\n    -  Independent VLAN Learning (ivl) - learning/lookup is based on both MAC addresses and VLAN IDs."},"vlanId":{"type":"number","description":"VLAN ID of the VLAN member entry."}},"requiredInputs":["vlanId"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEthernetSwitchCrsVlan resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"flood":{"type":"boolean","description":"Enables or disables forced VLAN flooding per VLAN. If the feature is enabled, the result of the destination MAC lookup in the UFDB or MFDB is ignored,and the packet is forced to flood in the VLAN."},"ingressMirror":{"type":"boolean","description":"Enable the ingress mirror per VLAN to support the VLAN-based mirror function."},"interfaceEthernetSwitchCrsVlanId":{"type":"string"},"learn":{"type":"boolean","description":"Enables or disables source MAC learning for VLAN."},"ports":{"type":"string","description":"Member ports of the VLAN."},"qosGroup":{"type":"string","description":"Defined QoS group from QoS group menu."},"svl":{"type":"boolean","description":"FDB lookup mode for lookup in UFDB and MFDB.\n    -  Shared VLAN Learning (svl) - learning/lookup is based on MAC addresses - not on VLAN IDs.\n    -  Independent VLAN Learning (ivl) - learning/lookup is based on both MAC addresses and VLAN IDs."},"vlanId":{"type":"number","description":"VLAN ID of the VLAN member entry."}},"type":"object"}},"routeros:index/interfaceEthernetSwitchHost:InterfaceEthernetSwitchHost":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceEthernetSwitchHost(\"test\", {\n    \"switch\": \"switch1\",\n    macAddress: \"00:00:00:00:00:00\",\n    ports: [\"ether1\"],\n    mirror: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceEthernetSwitchHost(\"test\",\n    switch=\"switch1\",\n    mac_address=\"00:00:00:00:00:00\",\n    ports=[\"ether1\"],\n    mirror=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceEthernetSwitchHost(\"test\", new()\n    {\n        Switch = \"switch1\",\n        MacAddress = \"00:00:00:00:00:00\",\n        Ports = new[]\n        {\n            \"ether1\",\n        },\n        Mirror = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceEthernetSwitchHost(ctx, \"test\", \u0026routeros.InterfaceEthernetSwitchHostArgs{\n\t\t\tSwitch:     pulumi.String(\"switch1\"),\n\t\t\tMacAddress: pulumi.String(\"00:00:00:00:00:00\"),\n\t\t\tPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ether1\"),\n\t\t\t},\n\t\t\tMirror: 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.routeros.InterfaceEthernetSwitchHost;\nimport com.pulumi.routeros.InterfaceEthernetSwitchHostArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceEthernetSwitchHost(\"test\", InterfaceEthernetSwitchHostArgs.builder()\n            .switch_(\"switch1\")\n            .macAddress(\"00:00:00:00:00:00\")\n            .ports(\"ether1\")\n            .mirror(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceEthernetSwitchHost\n    properties:\n      switch: switch1\n      macAddress: 00:00:00:00:00:00\n      ports:\n        - ether1\n      mirror: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ethernet/switch/host get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchHost:InterfaceEthernetSwitchHost test *0\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchHost:InterfaceEthernetSwitchHost test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"copyToCpu":{"type":"boolean","description":"Whether to send a frame copy to switch CPU port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"drop":{"type":"boolean","description":"Whether to drop a frame with matching MAC source address received on a certain port (matching destination or source address for CRS3xx series switches).\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"interfaceEthernetSwitchHostId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"macAddress":{"type":"string","description":"Host's MAC address.\n"},"mirror":{"type":"boolean","description":"Whether to send a frame copy to mirror-target port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Name of the interface, static MAC address can be mapped to more that one port, including switch CPU port.\n"},"redirectToCpu":{"type":"boolean","description":"Whether to redirect a frame to switch CPU port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"shareVlanLearned":{"type":"boolean","description":"Whether the static host MAC address lookup is used with shared-VLAN-learning (SVL) or independent-VLAN-learning (IVL). The SVL mode is used for those VLAN entries that do not support IVL or IVL is disabled (independent-learning=no).\n"},"switch":{"type":"string","description":"Name of the switch to which the MAC address is going to be assigned to.\n"},"vlanId":{"type":"number","description":"VLAN ID for the statically added MAC address entry.\n"}},"type":"object","required":["dynamic","interfaceEthernetSwitchHostId","invalid","macAddress","ports","switch"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"copyToCpu":{"type":"boolean","description":"Whether to send a frame copy to switch CPU port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"drop":{"type":"boolean","description":"Whether to drop a frame with matching MAC source address received on a certain port (matching destination or source address for CRS3xx series switches).\n"},"interfaceEthernetSwitchHostId":{"type":"string","description":"The ID of this resource.\n"},"macAddress":{"type":"string","description":"Host's MAC address.\n"},"mirror":{"type":"boolean","description":"Whether to send a frame copy to mirror-target port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Name of the interface, static MAC address can be mapped to more that one port, including switch CPU port.\n"},"redirectToCpu":{"type":"boolean","description":"Whether to redirect a frame to switch CPU port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"shareVlanLearned":{"type":"boolean","description":"Whether the static host MAC address lookup is used with shared-VLAN-learning (SVL) or independent-VLAN-learning (IVL). The SVL mode is used for those VLAN entries that do not support IVL or IVL is disabled (independent-learning=no).\n"},"switch":{"type":"string","description":"Name of the switch to which the MAC address is going to be assigned to.\n"},"vlanId":{"type":"number","description":"VLAN ID for the statically added MAC address entry.\n"}},"requiredInputs":["macAddress","ports","switch"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEthernetSwitchHost resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"copyToCpu":{"type":"boolean","description":"Whether to send a frame copy to switch CPU port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"drop":{"type":"boolean","description":"Whether to drop a frame with matching MAC source address received on a certain port (matching destination or source address for CRS3xx series switches).\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"interfaceEthernetSwitchHostId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"macAddress":{"type":"string","description":"Host's MAC address.\n"},"mirror":{"type":"boolean","description":"Whether to send a frame copy to mirror-target port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Name of the interface, static MAC address can be mapped to more that one port, including switch CPU port.\n"},"redirectToCpu":{"type":"boolean","description":"Whether to redirect a frame to switch CPU port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"shareVlanLearned":{"type":"boolean","description":"Whether the static host MAC address lookup is used with shared-VLAN-learning (SVL) or independent-VLAN-learning (IVL). The SVL mode is used for those VLAN entries that do not support IVL or IVL is disabled (independent-learning=no).\n"},"switch":{"type":"string","description":"Name of the switch to which the MAC address is going to be assigned to.\n"},"vlanId":{"type":"number","description":"VLAN ID for the statically added MAC address entry.\n"}},"type":"object"}},"routeros:index/interfaceEthernetSwitchPort:InterfaceEthernetSwitchPort":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceEthernetSwitchPort(\"test\", {\n    name: \"ether1\",\n    vlanMode: \"check\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceEthernetSwitchPort(\"test\",\n    name=\"ether1\",\n    vlan_mode=\"check\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceEthernetSwitchPort(\"test\", new()\n    {\n        Name = \"ether1\",\n        VlanMode = \"check\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceEthernetSwitchPort(ctx, \"test\", \u0026routeros.InterfaceEthernetSwitchPortArgs{\n\t\t\tName:     pulumi.String(\"ether1\"),\n\t\t\tVlanMode: pulumi.String(\"check\"),\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.routeros.InterfaceEthernetSwitchPort;\nimport com.pulumi.routeros.InterfaceEthernetSwitchPortArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceEthernetSwitchPort(\"test\", InterfaceEthernetSwitchPortArgs.builder()\n            .name(\"ether1\")\n            .vlanMode(\"check\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceEthernetSwitchPort\n    properties:\n      name: ether1\n      vlanMode: check\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ethernet/switch/port get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchPort:InterfaceEthernetSwitchPort test *1\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchPort:InterfaceEthernetSwitchPort test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"defaultVlanId":{"type":"string","description":"Adds a VLAN tag with the specified VLAN ID on all untagged ingress traffic on a port, should be used with `vlan-header` set to `always-strip` on a port to configure the port to be the access port. For hybrid ports `default-vlan-id` is used to tag untagged traffic. If two ports have the same `default-vlan-id`, then VLAN tag is not added since the switch chip assumes that traffic is being forwarded between access ports.\n"},"interfaceEthernetSwitchPortId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"mirrorEgress":{"type":"boolean","description":"Whether to send egress packet copy to the `mirror-egress-target` port, only available on 88E6393X, 88E6191X and 88E6190 switch chips.\n"},"mirrorIngress":{"type":"boolean","description":"Whether to send ingress packet copy to the `mirror-ingress-target` port, only available on 88E6393X, 88E6191X and 88E6190 switch chips.\n"},"mirrorIngressTarget":{"type":"string","description":"Selects a single mirroring ingress target port, only available on  88E6393X, 88E6191X and 88E6190 switch chips. Mirrored packets from `mirror-ingress` will be sent to the selected port.\n"},"name":{"type":"string","description":"Port name.\n"},"running":{"type":"boolean"},"switch":{"type":"string","description":"Name of the switch.\n"},"vlanHeader":{"type":"string","description":"Sets action which is performed on the port for egress traffic.\n"},"vlanMode":{"type":"string","description":"Changes the VLAN lookup mechanism against the VLAN Table for ingress traffic.\n"}},"type":"object","required":["interfaceEthernetSwitchPortId","invalid","name","running","switch"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"defaultVlanId":{"type":"string","description":"Adds a VLAN tag with the specified VLAN ID on all untagged ingress traffic on a port, should be used with `vlan-header` set to `always-strip` on a port to configure the port to be the access port. For hybrid ports `default-vlan-id` is used to tag untagged traffic. If two ports have the same `default-vlan-id`, then VLAN tag is not added since the switch chip assumes that traffic is being forwarded between access ports.\n"},"interfaceEthernetSwitchPortId":{"type":"string","description":"The ID of this resource.\n"},"mirrorEgress":{"type":"boolean","description":"Whether to send egress packet copy to the `mirror-egress-target` port, only available on 88E6393X, 88E6191X and 88E6190 switch chips.\n"},"mirrorIngress":{"type":"boolean","description":"Whether to send ingress packet copy to the `mirror-ingress-target` port, only available on 88E6393X, 88E6191X and 88E6190 switch chips.\n"},"mirrorIngressTarget":{"type":"string","description":"Selects a single mirroring ingress target port, only available on  88E6393X, 88E6191X and 88E6190 switch chips. Mirrored packets from `mirror-ingress` will be sent to the selected port.\n"},"name":{"type":"string","description":"Port name.\n"},"vlanHeader":{"type":"string","description":"Sets action which is performed on the port for egress traffic.\n"},"vlanMode":{"type":"string","description":"Changes the VLAN lookup mechanism against the VLAN Table for ingress traffic.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEthernetSwitchPort resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"defaultVlanId":{"type":"string","description":"Adds a VLAN tag with the specified VLAN ID on all untagged ingress traffic on a port, should be used with `vlan-header` set to `always-strip` on a port to configure the port to be the access port. For hybrid ports `default-vlan-id` is used to tag untagged traffic. If two ports have the same `default-vlan-id`, then VLAN tag is not added since the switch chip assumes that traffic is being forwarded between access ports.\n"},"interfaceEthernetSwitchPortId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"mirrorEgress":{"type":"boolean","description":"Whether to send egress packet copy to the `mirror-egress-target` port, only available on 88E6393X, 88E6191X and 88E6190 switch chips.\n"},"mirrorIngress":{"type":"boolean","description":"Whether to send ingress packet copy to the `mirror-ingress-target` port, only available on 88E6393X, 88E6191X and 88E6190 switch chips.\n"},"mirrorIngressTarget":{"type":"string","description":"Selects a single mirroring ingress target port, only available on  88E6393X, 88E6191X and 88E6190 switch chips. Mirrored packets from `mirror-ingress` will be sent to the selected port.\n"},"name":{"type":"string","description":"Port name.\n"},"running":{"type":"boolean"},"switch":{"type":"string","description":"Name of the switch.\n"},"vlanHeader":{"type":"string","description":"Sets action which is performed on the port for egress traffic.\n"},"vlanMode":{"type":"string","description":"Changes the VLAN lookup mechanism against the VLAN Table for ingress traffic.\n"}},"type":"object"}},"routeros:index/interfaceEthernetSwitchPortIsolation:InterfaceEthernetSwitchPortIsolation":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceEthernetSwitchPortIsolation(\"test\", {\n    name: \"ether1\",\n    forwardingOverride: \"ether1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceEthernetSwitchPortIsolation(\"test\",\n    name=\"ether1\",\n    forwarding_override=\"ether1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceEthernetSwitchPortIsolation(\"test\", new()\n    {\n        Name = \"ether1\",\n        ForwardingOverride = \"ether1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceEthernetSwitchPortIsolation(ctx, \"test\", \u0026routeros.InterfaceEthernetSwitchPortIsolationArgs{\n\t\t\tName:               pulumi.String(\"ether1\"),\n\t\t\tForwardingOverride: pulumi.String(\"ether1\"),\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.routeros.InterfaceEthernetSwitchPortIsolation;\nimport com.pulumi.routeros.InterfaceEthernetSwitchPortIsolationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceEthernetSwitchPortIsolation(\"test\", InterfaceEthernetSwitchPortIsolationArgs.builder()\n            .name(\"ether1\")\n            .forwardingOverride(\"ether1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceEthernetSwitchPortIsolation\n    properties:\n      name: ether1\n      forwardingOverride: ether1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ethernet/switch/port-isolation get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchPortIsolation:InterfaceEthernetSwitchPortIsolation test *1\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchPortIsolation:InterfaceEthernetSwitchPortIsolation test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"forwardingOverride":{"type":"string","description":"Forces ingress traffic to be forwarded to a specific interface. Multiple interfaces can be specified by separating them with a comma.\n"},"interfaceEthernetSwitchPortIsolationId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"name":{"type":"string","description":"Port name.\n"},"switch":{"type":"string","description":"Name of the switch.\n"}},"type":"object","required":["interfaceEthernetSwitchPortIsolationId","invalid","name","switch"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"forwardingOverride":{"type":"string","description":"Forces ingress traffic to be forwarded to a specific interface. Multiple interfaces can be specified by separating them with a comma.\n"},"interfaceEthernetSwitchPortIsolationId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Port name.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEthernetSwitchPortIsolation resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"forwardingOverride":{"type":"string","description":"Forces ingress traffic to be forwarded to a specific interface. Multiple interfaces can be specified by separating them with a comma.\n"},"interfaceEthernetSwitchPortIsolationId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"name":{"type":"string","description":"Port name.\n"},"switch":{"type":"string","description":"Name of the switch.\n"}},"type":"object"}},"routeros:index/interfaceEthernetSwitchRule:InterfaceEthernetSwitchRule":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceEthernetSwitchRule(\"test\", {\n    \"switch\": \"switch1\",\n    ports: [\"ether1\"],\n    copyToCpu: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceEthernetSwitchRule(\"test\",\n    switch=\"switch1\",\n    ports=[\"ether1\"],\n    copy_to_cpu=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceEthernetSwitchRule(\"test\", new()\n    {\n        Switch = \"switch1\",\n        Ports = new[]\n        {\n            \"ether1\",\n        },\n        CopyToCpu = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceEthernetSwitchRule(ctx, \"test\", \u0026routeros.InterfaceEthernetSwitchRuleArgs{\n\t\t\tSwitch: pulumi.String(\"switch1\"),\n\t\t\tPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ether1\"),\n\t\t\t},\n\t\t\tCopyToCpu: 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.routeros.InterfaceEthernetSwitchRule;\nimport com.pulumi.routeros.InterfaceEthernetSwitchRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceEthernetSwitchRule(\"test\", InterfaceEthernetSwitchRuleArgs.builder()\n            .switch_(\"switch1\")\n            .ports(\"ether1\")\n            .copyToCpu(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceEthernetSwitchRule\n    properties:\n      switch: switch1\n      ports:\n        - ether1\n      copyToCpu: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ethernet/switch/rule get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchRule:InterfaceEthernetSwitchRule test *0\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchRule:InterfaceEthernetSwitchRule test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"copyToCpu":{"type":"boolean","description":"Whether to send a frame copy to switch CPU port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matching DSCP field of the packet.\n"},"dstAddress":{"type":"string","description":"Matching destination IP address and mask.\n"},"dstAddress6":{"type":"string","description":"Matching destination IPv6 address and mask.\n"},"dstMacAddress":{"type":"string","description":"Matching destination MAC address and mask.\n"},"dstPort":{"type":"number","description":"Matching destination protocol port number or range.\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"flowLabel":{"type":"number","description":"Matching IPv6 flow label.\n"},"interfaceEthernetSwitchRuleId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"macProtocol":{"type":"string","description":"Matching particular MAC protocol specified by protocol name or number (skips VLAN tags if any).\n"},"mirror":{"type":"boolean","description":"Whether to send a frame copy to mirror-target port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"mirrorPorts":{"type":"array","items":{"type":"string"},"description":"Selects multiple mirroring target ports, only available on 88E6393X switch chip. Matched packets in the ACL rule will be copied and sent to selected ports.\n"},"newDstPorts":{"type":"array","items":{"type":"string"},"description":"Changes the destination port as specified, multiple ports allowed, including a switch CPU port. An empty setting will drop the packet. When the parameter is not used, the packet will be accepted.\n"},"newVlanId":{"type":"number","description":"Changes the VLAN ID to the specified value or adds a new VLAN tag if one was not already present (the property only applies to the Atheros8316, and 88E6393X switch chips).\n"},"newVlanPriority":{"type":"number","description":"Changes the VLAN priority field (priority code point, the property only applies to Atheros8327, QCA8337 and Atheros8316 switch chips).\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Name of the interface on which the rule will apply on the received traffic, multiple ports are allowed.\n"},"protocol":{"type":"string","description":"Matching particular IP protocol specified by protocol name or number.\n"},"rate":{"type":"number","description":"Sets ingress traffic limitation (bits per second) for matched traffic, can only be applied to the first 32 rule slots (the property only applies to Atheros8327/QCA8337 switch chips).\n"},"redirectToCpu":{"type":"boolean","description":"Changes the destination port of a matching packet to the switch CPU.\n"},"srcAddress":{"type":"string","description":"Matching source IP address and mask.\n"},"srcAddress6":{"type":"string","description":"Matching source IPv6 address and mask.\n"},"srcMacAddress":{"type":"string","description":"Matching source MAC address and mask.\n"},"srcPort":{"type":"number","description":"Matching source protocol port number or range.\n"},"switch":{"type":"string","description":"Matching switch group on which will the rule apply.\n"},"trafficClass":{"type":"number","description":"Matching IPv6 traffic class.\n"},"vlanHeader":{"type":"string","description":"Matching VLAN header, whether the VLAN header is present or not (the property only applies to the Atheros8316, Atheros8327, QCA8337, 88E6393X switch chips).\n"},"vlanId":{"type":"number","description":"Matching VLAN ID (the property only applies to the Atheros8316, Atheros8327, QCA8337, 88E6393X switch chips).\n"},"vlanPriority":{"type":"number","description":"Matching VLAN priority (priority code point).\n"}},"type":"object","required":["dynamic","interfaceEthernetSwitchRuleId","invalid","ports","switch"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"copyToCpu":{"type":"boolean","description":"Whether to send a frame copy to switch CPU port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matching DSCP field of the packet.\n"},"dstAddress":{"type":"string","description":"Matching destination IP address and mask.\n"},"dstAddress6":{"type":"string","description":"Matching destination IPv6 address and mask.\n"},"dstMacAddress":{"type":"string","description":"Matching destination MAC address and mask.\n"},"dstPort":{"type":"number","description":"Matching destination protocol port number or range.\n"},"flowLabel":{"type":"number","description":"Matching IPv6 flow label.\n"},"interfaceEthernetSwitchRuleId":{"type":"string","description":"The ID of this resource.\n"},"macProtocol":{"type":"string","description":"Matching particular MAC protocol specified by protocol name or number (skips VLAN tags if any).\n"},"mirror":{"type":"boolean","description":"Whether to send a frame copy to mirror-target port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"mirrorPorts":{"type":"array","items":{"type":"string"},"description":"Selects multiple mirroring target ports, only available on 88E6393X switch chip. Matched packets in the ACL rule will be copied and sent to selected ports.\n"},"newDstPorts":{"type":"array","items":{"type":"string"},"description":"Changes the destination port as specified, multiple ports allowed, including a switch CPU port. An empty setting will drop the packet. When the parameter is not used, the packet will be accepted.\n"},"newVlanId":{"type":"number","description":"Changes the VLAN ID to the specified value or adds a new VLAN tag if one was not already present (the property only applies to the Atheros8316, and 88E6393X switch chips).\n"},"newVlanPriority":{"type":"number","description":"Changes the VLAN priority field (priority code point, the property only applies to Atheros8327, QCA8337 and Atheros8316 switch chips).\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Name of the interface on which the rule will apply on the received traffic, multiple ports are allowed.\n"},"protocol":{"type":"string","description":"Matching particular IP protocol specified by protocol name or number.\n"},"rate":{"type":"number","description":"Sets ingress traffic limitation (bits per second) for matched traffic, can only be applied to the first 32 rule slots (the property only applies to Atheros8327/QCA8337 switch chips).\n"},"redirectToCpu":{"type":"boolean","description":"Changes the destination port of a matching packet to the switch CPU.\n"},"srcAddress":{"type":"string","description":"Matching source IP address and mask.\n"},"srcAddress6":{"type":"string","description":"Matching source IPv6 address and mask.\n"},"srcMacAddress":{"type":"string","description":"Matching source MAC address and mask.\n"},"srcPort":{"type":"number","description":"Matching source protocol port number or range.\n"},"switch":{"type":"string","description":"Matching switch group on which will the rule apply.\n"},"trafficClass":{"type":"number","description":"Matching IPv6 traffic class.\n"},"vlanHeader":{"type":"string","description":"Matching VLAN header, whether the VLAN header is present or not (the property only applies to the Atheros8316, Atheros8327, QCA8337, 88E6393X switch chips).\n"},"vlanId":{"type":"number","description":"Matching VLAN ID (the property only applies to the Atheros8316, Atheros8327, QCA8337, 88E6393X switch chips).\n"},"vlanPriority":{"type":"number","description":"Matching VLAN priority (priority code point).\n"}},"requiredInputs":["ports","switch"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEthernetSwitchRule resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"copyToCpu":{"type":"boolean","description":"Whether to send a frame copy to switch CPU port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matching DSCP field of the packet.\n"},"dstAddress":{"type":"string","description":"Matching destination IP address and mask.\n"},"dstAddress6":{"type":"string","description":"Matching destination IPv6 address and mask.\n"},"dstMacAddress":{"type":"string","description":"Matching destination MAC address and mask.\n"},"dstPort":{"type":"number","description":"Matching destination protocol port number or range.\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"flowLabel":{"type":"number","description":"Matching IPv6 flow label.\n"},"interfaceEthernetSwitchRuleId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"macProtocol":{"type":"string","description":"Matching particular MAC protocol specified by protocol name or number (skips VLAN tags if any).\n"},"mirror":{"type":"boolean","description":"Whether to send a frame copy to mirror-target port from a frame with matching MAC destination address (matching destination or source address for CRS3xx series switches).\n"},"mirrorPorts":{"type":"array","items":{"type":"string"},"description":"Selects multiple mirroring target ports, only available on 88E6393X switch chip. Matched packets in the ACL rule will be copied and sent to selected ports.\n"},"newDstPorts":{"type":"array","items":{"type":"string"},"description":"Changes the destination port as specified, multiple ports allowed, including a switch CPU port. An empty setting will drop the packet. When the parameter is not used, the packet will be accepted.\n"},"newVlanId":{"type":"number","description":"Changes the VLAN ID to the specified value or adds a new VLAN tag if one was not already present (the property only applies to the Atheros8316, and 88E6393X switch chips).\n"},"newVlanPriority":{"type":"number","description":"Changes the VLAN priority field (priority code point, the property only applies to Atheros8327, QCA8337 and Atheros8316 switch chips).\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Name of the interface on which the rule will apply on the received traffic, multiple ports are allowed.\n"},"protocol":{"type":"string","description":"Matching particular IP protocol specified by protocol name or number.\n"},"rate":{"type":"number","description":"Sets ingress traffic limitation (bits per second) for matched traffic, can only be applied to the first 32 rule slots (the property only applies to Atheros8327/QCA8337 switch chips).\n"},"redirectToCpu":{"type":"boolean","description":"Changes the destination port of a matching packet to the switch CPU.\n"},"srcAddress":{"type":"string","description":"Matching source IP address and mask.\n"},"srcAddress6":{"type":"string","description":"Matching source IPv6 address and mask.\n"},"srcMacAddress":{"type":"string","description":"Matching source MAC address and mask.\n"},"srcPort":{"type":"number","description":"Matching source protocol port number or range.\n"},"switch":{"type":"string","description":"Matching switch group on which will the rule apply.\n"},"trafficClass":{"type":"number","description":"Matching IPv6 traffic class.\n"},"vlanHeader":{"type":"string","description":"Matching VLAN header, whether the VLAN header is present or not (the property only applies to the Atheros8316, Atheros8327, QCA8337, 88E6393X switch chips).\n"},"vlanId":{"type":"number","description":"Matching VLAN ID (the property only applies to the Atheros8316, Atheros8327, QCA8337, 88E6393X switch chips).\n"},"vlanPriority":{"type":"number","description":"Matching VLAN priority (priority code point).\n"}},"type":"object"}},"routeros:index/interfaceEthernetSwitchVlan:InterfaceEthernetSwitchVlan":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceEthernetSwitchVlan(\"test\", {\n    \"switch\": \"switch1\",\n    ports: [\"ether1\"],\n    vlanId: 10,\n    independentLearning: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceEthernetSwitchVlan(\"test\",\n    switch=\"switch1\",\n    ports=[\"ether1\"],\n    vlan_id=10,\n    independent_learning=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceEthernetSwitchVlan(\"test\", new()\n    {\n        Switch = \"switch1\",\n        Ports = new[]\n        {\n            \"ether1\",\n        },\n        VlanId = 10,\n        IndependentLearning = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceEthernetSwitchVlan(ctx, \"test\", \u0026routeros.InterfaceEthernetSwitchVlanArgs{\n\t\t\tSwitch: pulumi.String(\"switch1\"),\n\t\t\tPorts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ether1\"),\n\t\t\t},\n\t\t\tVlanId:              pulumi.Float64(10),\n\t\t\tIndependentLearning: 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.routeros.InterfaceEthernetSwitchVlan;\nimport com.pulumi.routeros.InterfaceEthernetSwitchVlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceEthernetSwitchVlan(\"test\", InterfaceEthernetSwitchVlanArgs.builder()\n            .switch_(\"switch1\")\n            .ports(\"ether1\")\n            .vlanId(10.0)\n            .independentLearning(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceEthernetSwitchVlan\n    properties:\n      switch: switch1\n      ports:\n        - ether1\n      vlanId: 10\n      independentLearning: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ethernet/switch/vlan get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchVlan:InterfaceEthernetSwitchVlan test *0\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceEthernetSwitchVlan:InterfaceEthernetSwitchVlan test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"independentLearning":{"type":"boolean","description":"Whether to use shared-VLAN-learning (SVL) or independent-VLAN-learning (IVL).\n"},"interfaceEthernetSwitchVlanId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"ports":{"type":"array","items":{"type":"string"},"description":"Interface member list for the respective VLAN.\n"},"switch":{"type":"string","description":"Name of the switch for which the respective VLAN entry is intended for.\n"},"vlanId":{"type":"number","description":"The VLAN ID for certain switch port configurations.\n"}},"type":"object","required":["interfaceEthernetSwitchVlanId","invalid","ports","switch"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"independentLearning":{"type":"boolean","description":"Whether to use shared-VLAN-learning (SVL) or independent-VLAN-learning (IVL).\n"},"interfaceEthernetSwitchVlanId":{"type":"string","description":"The ID of this resource.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"Interface member list for the respective VLAN.\n"},"switch":{"type":"string","description":"Name of the switch for which the respective VLAN entry is intended for.\n"},"vlanId":{"type":"number","description":"The VLAN ID for certain switch port configurations.\n"}},"requiredInputs":["ports","switch"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceEthernetSwitchVlan resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"independentLearning":{"type":"boolean","description":"Whether to use shared-VLAN-learning (SVL) or independent-VLAN-learning (IVL).\n"},"interfaceEthernetSwitchVlanId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"ports":{"type":"array","items":{"type":"string"},"description":"Interface member list for the respective VLAN.\n"},"switch":{"type":"string","description":"Name of the switch for which the respective VLAN entry is intended for.\n"},"vlanId":{"type":"number","description":"The VLAN ID for certain switch port configurations.\n"}},"type":"object"}},"routeros:index/interfaceGre6:InterfaceGre6":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst greHq = new routeros.InterfaceGre6(\"gre_hq\", {\n    name: \"gre-hq-ipv6\",\n    remoteAddress: \"2a02::2\",\n    disabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ngre_hq = routeros.InterfaceGre6(\"gre_hq\",\n    name=\"gre-hq-ipv6\",\n    remote_address=\"2a02::2\",\n    disabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var greHq = new Routeros.InterfaceGre6(\"gre_hq\", new()\n    {\n        Name = \"gre-hq-ipv6\",\n        RemoteAddress = \"2a02::2\",\n        Disabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceGre6(ctx, \"gre_hq\", \u0026routeros.InterfaceGre6Args{\n\t\t\tName:          pulumi.String(\"gre-hq-ipv6\"),\n\t\t\tRemoteAddress: pulumi.String(\"2a02::2\"),\n\t\t\tDisabled:      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.routeros.InterfaceGre6;\nimport com.pulumi.routeros.InterfaceGre6Args;\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 greHq = new InterfaceGre6(\"greHq\", InterfaceGre6Args.builder()\n            .name(\"gre-hq-ipv6\")\n            .remoteAddress(\"2a02::2\")\n            .disabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  greHq:\n    type: routeros:InterfaceGre6\n    name: gre_hq\n    properties:\n      name: gre-hq-ipv6\n      remoteAddress: 2a02::2\n      disabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/gre6 get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceGre6:InterfaceGre6 gre_hq \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceGre6:InterfaceGre6 gre_hq \"name=gre-hq-ipv6\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"interfaceGre6Id":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"},"running":{"type":"boolean"}},"type":"object","required":["actualMtu","interfaceGre6Id","l2mtu","mtu","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"interfaceGre6Id":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceGre6 resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"interfaceGre6Id":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"},"running":{"type":"boolean"}},"type":"object"}},"routeros:index/interfaceGre:InterfaceGre":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst greHq = new routeros.InterfaceGre(\"gre_hq\", {\n    name: \"gre-hq-1\",\n    remoteAddress: \"10.77.3.26\",\n    disabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ngre_hq = routeros.InterfaceGre(\"gre_hq\",\n    name=\"gre-hq-1\",\n    remote_address=\"10.77.3.26\",\n    disabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var greHq = new Routeros.InterfaceGre(\"gre_hq\", new()\n    {\n        Name = \"gre-hq-1\",\n        RemoteAddress = \"10.77.3.26\",\n        Disabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceGre(ctx, \"gre_hq\", \u0026routeros.InterfaceGreArgs{\n\t\t\tName:          pulumi.String(\"gre-hq-1\"),\n\t\t\tRemoteAddress: pulumi.String(\"10.77.3.26\"),\n\t\t\tDisabled:      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.routeros.InterfaceGre;\nimport com.pulumi.routeros.InterfaceGreArgs;\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 greHq = new InterfaceGre(\"greHq\", InterfaceGreArgs.builder()\n            .name(\"gre-hq-1\")\n            .remoteAddress(\"10.77.3.26\")\n            .disabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  greHq:\n    type: routeros:InterfaceGre\n    name: gre_hq\n    properties:\n      name: gre-hq-1\n      remoteAddress: 10.77.3.26\n      disabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/gre get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceGre:InterfaceGre gre_hq \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceGre:InterfaceGre gre_hq \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used.\n"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"interfaceGreId":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"},"running":{"type":"boolean"}},"type":"object","required":["actualMtu","interfaceGreId","l2mtu","mtu","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used.\n"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"interfaceGreId":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceGre resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used.\n"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"interfaceGreId":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"},"running":{"type":"boolean"}},"type":"object"}},"routeros:index/interfaceIpip:InterfaceIpip":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst ipipHq = new routeros.InterfaceIpip(\"ipip_hq\", {\n    name: \"ipip-hq-1\",\n    remoteAddress: \"10.77.3.26\",\n    disabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nipip_hq = routeros.InterfaceIpip(\"ipip_hq\",\n    name=\"ipip-hq-1\",\n    remote_address=\"10.77.3.26\",\n    disabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ipipHq = new Routeros.InterfaceIpip(\"ipip_hq\", new()\n    {\n        Name = \"ipip-hq-1\",\n        RemoteAddress = \"10.77.3.26\",\n        Disabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceIpip(ctx, \"ipip_hq\", \u0026routeros.InterfaceIpipArgs{\n\t\t\tName:          pulumi.String(\"ipip-hq-1\"),\n\t\t\tRemoteAddress: pulumi.String(\"10.77.3.26\"),\n\t\t\tDisabled:      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.routeros.InterfaceIpip;\nimport com.pulumi.routeros.InterfaceIpipArgs;\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 ipipHq = new InterfaceIpip(\"ipipHq\", InterfaceIpipArgs.builder()\n            .name(\"ipip-hq-1\")\n            .remoteAddress(\"10.77.3.26\")\n            .disabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ipipHq:\n    type: routeros:InterfaceIpip\n    name: ipip_hq\n    properties:\n      name: ipip-hq-1\n      remoteAddress: 10.77.3.26\n      disabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ipip get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceIpip:InterfaceIpip ipip_hq \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceIpip:InterfaceIpip ipip_hq \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used.\n"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"interfaceIpipId":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string","description":"Name of the ipip interface.\n"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"},"running":{"type":"boolean"}},"type":"object","required":["actualMtu","interfaceIpipId","l2mtu","mtu","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used.\n"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"interfaceIpipId":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string","description":"Name of the ipip interface.\n"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceIpip resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used.\n"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"interfaceIpipId":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string","description":"Name of the ipip interface.\n"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"},"running":{"type":"boolean"}},"type":"object"}},"routeros:index/interfaceL2tpClient:InterfaceL2tpClient":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceL2tpClient(\"test\", {\n    name: \"l2tp-test-out\",\n    connectTo: \"127.0.0.1\",\n    user: \"aaa\",\n    password: \"bbb\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceL2tpClient(\"test\",\n    name=\"l2tp-test-out\",\n    connect_to=\"127.0.0.1\",\n    user=\"aaa\",\n    password=\"bbb\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceL2tpClient(\"test\", new()\n    {\n        Name = \"l2tp-test-out\",\n        ConnectTo = \"127.0.0.1\",\n        User = \"aaa\",\n        Password = \"bbb\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceL2tpClient(ctx, \"test\", \u0026routeros.InterfaceL2tpClientArgs{\n\t\t\tName:      pulumi.String(\"l2tp-test-out\"),\n\t\t\tConnectTo: pulumi.String(\"127.0.0.1\"),\n\t\t\tUser:      pulumi.String(\"aaa\"),\n\t\t\tPassword:  pulumi.String(\"bbb\"),\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.routeros.InterfaceL2tpClient;\nimport com.pulumi.routeros.InterfaceL2tpClientArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceL2tpClient(\"test\", InterfaceL2tpClientArgs.builder()\n            .name(\"l2tp-test-out\")\n            .connectTo(\"127.0.0.1\")\n            .user(\"aaa\")\n            .password(\"bbb\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceL2tpClient\n    properties:\n      name: l2tp-test-out\n      connectTo: 127.0.0.1\n      user: aaa\n      password: bbb\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/l2tp/client get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceL2tpClient:InterfaceL2tpClient test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceL2tpClient:InterfaceL2tpClient test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"boolean","description":"Whether to add L2TP remote address as a default route.\n"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used.\n"},"allows":{"type":"array","items":{"type":"string"},"description":"Allowed authentication methods.\n"},"comment":{"type":"string"},"connectTo":{"type":"string","description":"Remote address of L2TP server (if the address is in VRF table, VRF should be specified) `/interface l2tp-client`\n`add connect-to=192.168.88.1@vrf1 name=l2tp-out1 user=l2tp-client`.\n"},"defaultRouteDistance":{"type":"number","description":"Since v6.2, sets distance value applied to auto created default route, if add-default-route is also selected.\n"},"dialOnDemand":{"type":"boolean","description":"Connects only when outbound traffic is generated. If selected, then route with gateway address from `10.112.112.0/24` network will be added while connection is not established.\n"},"disabled":{"type":"boolean"},"interfaceL2tpClientId":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"Preshared key used when use-ipsec is enabled.\n","secret":true},"keepaliveTimeout":{"type":"number","description":"Since v6.0rc13, tunnel keepalive timeout in seconds.\n"},"l2tpProtoVersion":{"type":"string","description":"Specify protocol version.\n"},"l2tpv3CircuitId":{"type":"string","description":"Set the virtual circuit identifier to bind the one end of the L2TPv3 control channel.\n"},"l2tpv3CookieLength":{"type":"number","description":"Configures an L2TPv3 pseudowire static session cookie.\n"},"l2tpv3DigestHash":{"type":"string","description":"Specifies which hash function to be used.\n"},"maxMru":{"type":"number","description":"Maximum Receive Unit. Max packet size that L2TP interface will be able to receive without packet fragmentation.\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit. Max packet size that L2TP interface will be able to send without packet fragmentation.\n"},"mrru":{"type":"string","description":"Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"name":{"type":"string","description":"Descriptive name of the interface.\n"},"password":{"type":"string","description":"Password used for authentication.\n","secret":true},"profile":{"type":"string","description":"Specifies which PPP profile configuration will be used when establishing the tunnel.\n"},"randomSourcePort":{"type":"boolean"},"running":{"type":"boolean"},"srcAddress":{"type":"string","description":"Specify source address.\n"},"useIpsec":{"type":"boolean","description":"When this option is enabled, dynamic IPSec peer configuration and policy (transport mode) is added to encapsulate L2TP connection into IPSec tunnel. Multiple L2tp/ipsec clients behind the same NAT will not work in this mode. To achieve such scenario, disable use-ipsec and set static policies for clients with enabled `tunnel=yes`, `level=unique` settings.\n"},"usePeerDns":{"type":"string","description":"To use peer dns.\n"},"user":{"type":"string","description":"User name used for authentication.\n"}},"type":"object","required":["interfaceL2tpClientId","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"boolean","description":"Whether to add L2TP remote address as a default route.\n"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used.\n"},"allows":{"type":"array","items":{"type":"string"},"description":"Allowed authentication methods.\n"},"comment":{"type":"string"},"connectTo":{"type":"string","description":"Remote address of L2TP server (if the address is in VRF table, VRF should be specified) `/interface l2tp-client`\n`add connect-to=192.168.88.1@vrf1 name=l2tp-out1 user=l2tp-client`.\n"},"defaultRouteDistance":{"type":"number","description":"Since v6.2, sets distance value applied to auto created default route, if add-default-route is also selected.\n"},"dialOnDemand":{"type":"boolean","description":"Connects only when outbound traffic is generated. If selected, then route with gateway address from `10.112.112.0/24` network will be added while connection is not established.\n"},"disabled":{"type":"boolean"},"interfaceL2tpClientId":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"Preshared key used when use-ipsec is enabled.\n","secret":true},"keepaliveTimeout":{"type":"number","description":"Since v6.0rc13, tunnel keepalive timeout in seconds.\n"},"l2tpProtoVersion":{"type":"string","description":"Specify protocol version.\n"},"l2tpv3CircuitId":{"type":"string","description":"Set the virtual circuit identifier to bind the one end of the L2TPv3 control channel.\n"},"l2tpv3CookieLength":{"type":"number","description":"Configures an L2TPv3 pseudowire static session cookie.\n"},"l2tpv3DigestHash":{"type":"string","description":"Specifies which hash function to be used.\n"},"maxMru":{"type":"number","description":"Maximum Receive Unit. Max packet size that L2TP interface will be able to receive without packet fragmentation.\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit. Max packet size that L2TP interface will be able to send without packet fragmentation.\n"},"mrru":{"type":"string","description":"Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"name":{"type":"string","description":"Descriptive name of the interface.\n"},"password":{"type":"string","description":"Password used for authentication.\n","secret":true},"profile":{"type":"string","description":"Specifies which PPP profile configuration will be used when establishing the tunnel.\n"},"randomSourcePort":{"type":"boolean"},"srcAddress":{"type":"string","description":"Specify source address.\n"},"useIpsec":{"type":"boolean","description":"When this option is enabled, dynamic IPSec peer configuration and policy (transport mode) is added to encapsulate L2TP connection into IPSec tunnel. Multiple L2tp/ipsec clients behind the same NAT will not work in this mode. To achieve such scenario, disable use-ipsec and set static policies for clients with enabled `tunnel=yes`, `level=unique` settings.\n"},"usePeerDns":{"type":"string","description":"To use peer dns.\n"},"user":{"type":"string","description":"User name used for authentication.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceL2tpClient resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"boolean","description":"Whether to add L2TP remote address as a default route.\n"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used.\n"},"allows":{"type":"array","items":{"type":"string"},"description":"Allowed authentication methods.\n"},"comment":{"type":"string"},"connectTo":{"type":"string","description":"Remote address of L2TP server (if the address is in VRF table, VRF should be specified) `/interface l2tp-client`\n`add connect-to=192.168.88.1@vrf1 name=l2tp-out1 user=l2tp-client`.\n"},"defaultRouteDistance":{"type":"number","description":"Since v6.2, sets distance value applied to auto created default route, if add-default-route is also selected.\n"},"dialOnDemand":{"type":"boolean","description":"Connects only when outbound traffic is generated. If selected, then route with gateway address from `10.112.112.0/24` network will be added while connection is not established.\n"},"disabled":{"type":"boolean"},"interfaceL2tpClientId":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"Preshared key used when use-ipsec is enabled.\n","secret":true},"keepaliveTimeout":{"type":"number","description":"Since v6.0rc13, tunnel keepalive timeout in seconds.\n"},"l2tpProtoVersion":{"type":"string","description":"Specify protocol version.\n"},"l2tpv3CircuitId":{"type":"string","description":"Set the virtual circuit identifier to bind the one end of the L2TPv3 control channel.\n"},"l2tpv3CookieLength":{"type":"number","description":"Configures an L2TPv3 pseudowire static session cookie.\n"},"l2tpv3DigestHash":{"type":"string","description":"Specifies which hash function to be used.\n"},"maxMru":{"type":"number","description":"Maximum Receive Unit. Max packet size that L2TP interface will be able to receive without packet fragmentation.\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit. Max packet size that L2TP interface will be able to send without packet fragmentation.\n"},"mrru":{"type":"string","description":"Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"name":{"type":"string","description":"Descriptive name of the interface.\n"},"password":{"type":"string","description":"Password used for authentication.\n","secret":true},"profile":{"type":"string","description":"Specifies which PPP profile configuration will be used when establishing the tunnel.\n"},"randomSourcePort":{"type":"boolean"},"running":{"type":"boolean"},"srcAddress":{"type":"string","description":"Specify source address.\n"},"useIpsec":{"type":"boolean","description":"When this option is enabled, dynamic IPSec peer configuration and policy (transport mode) is added to encapsulate L2TP connection into IPSec tunnel. Multiple L2tp/ipsec clients behind the same NAT will not work in this mode. To achieve such scenario, disable use-ipsec and set static policies for clients with enabled `tunnel=yes`, `level=unique` settings.\n"},"usePeerDns":{"type":"string","description":"To use peer dns.\n"},"user":{"type":"string","description":"User name used for authentication.\n"}},"type":"object"}},"routeros:index/interfaceList:InterfaceList":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst list = new routeros.InterfaceList(\"list\", {name: \"my-list\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nlist = routeros.InterfaceList(\"list\", name=\"my-list\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var list = new Routeros.InterfaceList(\"list\", new()\n    {\n        Name = \"my-list\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceList(ctx, \"list\", \u0026routeros.InterfaceListArgs{\n\t\t\tName: pulumi.String(\"my-list\"),\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.routeros.InterfaceList;\nimport com.pulumi.routeros.InterfaceListArgs;\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 list = new InterfaceList(\"list\", InterfaceListArgs.builder()\n            .name(\"my-list\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  list:\n    type: routeros:InterfaceList\n    properties:\n      name: my-list\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/list get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceList:InterfaceList list \"*2000010\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceList:InterfaceList list \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"builtin":{"type":"boolean"},"comment":{"type":"string"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"exclude":{"type":"string"},"include":{"type":"string"},"interfaceListId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"}},"type":"object","required":["builtin","dynamic","interfaceListId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"exclude":{"type":"string"},"include":{"type":"string"},"interfaceListId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceList resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"builtin":{"type":"boolean"},"comment":{"type":"string"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"exclude":{"type":"string"},"include":{"type":"string"},"interfaceListId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"}},"type":"object"}},"routeros:index/interfaceListMember:InterfaceListMember":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst listMember = new routeros.InterfaceListMember(\"list_member\", {\n    \"interface\": \"ether1\",\n    list: \"my-list\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nlist_member = routeros.InterfaceListMember(\"list_member\",\n    interface=\"ether1\",\n    list=\"my-list\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var listMember = new Routeros.InterfaceListMember(\"list_member\", new()\n    {\n        Interface = \"ether1\",\n        List = \"my-list\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceListMember(ctx, \"list_member\", \u0026routeros.InterfaceListMemberArgs{\n\t\t\tInterface: pulumi.String(\"ether1\"),\n\t\t\tList:      pulumi.String(\"my-list\"),\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.routeros.InterfaceListMember;\nimport com.pulumi.routeros.InterfaceListMemberArgs;\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 listMember = new InterfaceListMember(\"listMember\", InterfaceListMemberArgs.builder()\n            .interface_(\"ether1\")\n            .list(\"my-list\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  listMember:\n    type: routeros:InterfaceListMember\n    name: list_member\n    properties:\n      interface: ether1\n      list: my-list\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/list/member get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceListMember:InterfaceListMember list_member \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceListMember:InterfaceListMember list_member \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean"},"interface":{"type":"string"},"list":{"type":"string"}},"type":"object","required":["dynamic","interface","list"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string"},"list":{"type":"string"}},"requiredInputs":["interface","list"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceListMember resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean"},"interface":{"type":"string"},"list":{"type":"string"}},"type":"object"}},"routeros:index/interfaceLte:InterfaceLte":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceLte\n    properties:\n      allowRoaming: false\n      apnProfiles: default\n      bands: []\n      defaultName: lte1\n      disabled: false\n      mtu: '1500'\n      name: lte1\n      networkModes:\n        - 3g\n        - lte\n      smsProtocol: null\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceLte:InterfaceLte test *3\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowRoaming":{"type":"boolean","description":"Enable data roaming for connecting to other countries data-providers. Not all LTE modems support this feature. Some modems, that do not fully support this feature, will connect to the network but will not establish an IP data connection with allow-roaming set to no.\n"},"apnProfiles":{"type":"string","description":"Which APN profile to use for this interface.\n"},"bands":{"type":"array","items":{"type":"number"},"description":"LTE Frequency band used in communication [LTE Bands and bandwidths](https://en.wikipedia.org/wiki/LTE_frequency_bands#Frequency_bands_and_channel_bandwidths).\n"},"comment":{"type":"string"},"defaultName":{"type":"string","description":"The default name for an interface.\n"},"disabled":{"type":"boolean"},"inactive":{"type":"boolean"},"interfaceLteId":{"type":"string","description":"The ID of this resource.\n"},"modemInit":{"type":"string","description":"Modem init string (AT command that will be executed at modem startup).\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string","description":"Descriptive name of the interface.\n"},"networkModes":{"type":"array","items":{"type":"string"},"description":"Select/force mode for LTE interface to operate with.\n"},"nrBands":{"type":"array","items":{"type":"number"},"description":"5G NR Frequency band used in communication [5G NR Bands and bandwidths](https://en.wikipedia.org/wiki/5G_NR_frequency_bands).\n"},"operator":{"type":"number","description":"Used to lock the device to a specific operator full PLMN number is used for the lock consisting of MCC+MNC. [PLMN codes](https://en.wikipedia.org/wiki/Public_land_mobile_network).\n"},"pin":{"type":"string","description":"SIM Card's PIN code.\n"},"running":{"type":"boolean"},"smsProtocol":{"type":"string","description":"SMS functionality. \u003cspan pulumi-lang-nodejs=\"`mbim`\" pulumi-lang-dotnet=\"`Mbim`\" pulumi-lang-go=\"`mbim`\" pulumi-lang-python=\"`mbim`\" pulumi-lang-yaml=\"`mbim`\" pulumi-lang-java=\"`mbim`\"\u003e`mbim`\u003c/span\u003e: uses MBIM driver. \u003cspan pulumi-lang-nodejs=\"`at`\" pulumi-lang-dotnet=\"`At`\" pulumi-lang-go=\"`at`\" pulumi-lang-python=\"`at`\" pulumi-lang-yaml=\"`at`\" pulumi-lang-java=\"`at`\"\u003e`at`\u003c/span\u003e: uses AT-Commands. \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e: selects the appropriate option depending on the modem.\n"},"smsRead":{"type":"boolean"}},"type":"object","required":["defaultName","inactive","interfaceLteId","mtu","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowRoaming":{"type":"boolean","description":"Enable data roaming for connecting to other countries data-providers. Not all LTE modems support this feature. Some modems, that do not fully support this feature, will connect to the network but will not establish an IP data connection with allow-roaming set to no.\n"},"apnProfiles":{"type":"string","description":"Which APN profile to use for this interface.\n"},"bands":{"type":"array","items":{"type":"number"},"description":"LTE Frequency band used in communication [LTE Bands and bandwidths](https://en.wikipedia.org/wiki/LTE_frequency_bands#Frequency_bands_and_channel_bandwidths).\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaceLteId":{"type":"string","description":"The ID of this resource.\n"},"modemInit":{"type":"string","description":"Modem init string (AT command that will be executed at modem startup).\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string","description":"Descriptive name of the interface.\n"},"networkModes":{"type":"array","items":{"type":"string"},"description":"Select/force mode for LTE interface to operate with.\n"},"nrBands":{"type":"array","items":{"type":"number"},"description":"5G NR Frequency band used in communication [5G NR Bands and bandwidths](https://en.wikipedia.org/wiki/5G_NR_frequency_bands).\n"},"operator":{"type":"number","description":"Used to lock the device to a specific operator full PLMN number is used for the lock consisting of MCC+MNC. [PLMN codes](https://en.wikipedia.org/wiki/Public_land_mobile_network).\n"},"pin":{"type":"string","description":"SIM Card's PIN code.\n"},"smsProtocol":{"type":"string","description":"SMS functionality. \u003cspan pulumi-lang-nodejs=\"`mbim`\" pulumi-lang-dotnet=\"`Mbim`\" pulumi-lang-go=\"`mbim`\" pulumi-lang-python=\"`mbim`\" pulumi-lang-yaml=\"`mbim`\" pulumi-lang-java=\"`mbim`\"\u003e`mbim`\u003c/span\u003e: uses MBIM driver. \u003cspan pulumi-lang-nodejs=\"`at`\" pulumi-lang-dotnet=\"`At`\" pulumi-lang-go=\"`at`\" pulumi-lang-python=\"`at`\" pulumi-lang-yaml=\"`at`\" pulumi-lang-java=\"`at`\"\u003e`at`\u003c/span\u003e: uses AT-Commands. \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e: selects the appropriate option depending on the modem.\n"},"smsRead":{"type":"boolean"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceLte resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowRoaming":{"type":"boolean","description":"Enable data roaming for connecting to other countries data-providers. Not all LTE modems support this feature. Some modems, that do not fully support this feature, will connect to the network but will not establish an IP data connection with allow-roaming set to no.\n"},"apnProfiles":{"type":"string","description":"Which APN profile to use for this interface.\n"},"bands":{"type":"array","items":{"type":"number"},"description":"LTE Frequency band used in communication [LTE Bands and bandwidths](https://en.wikipedia.org/wiki/LTE_frequency_bands#Frequency_bands_and_channel_bandwidths).\n"},"comment":{"type":"string"},"defaultName":{"type":"string","description":"The default name for an interface.\n"},"disabled":{"type":"boolean"},"inactive":{"type":"boolean"},"interfaceLteId":{"type":"string","description":"The ID of this resource.\n"},"modemInit":{"type":"string","description":"Modem init string (AT command that will be executed at modem startup).\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string","description":"Descriptive name of the interface.\n"},"networkModes":{"type":"array","items":{"type":"string"},"description":"Select/force mode for LTE interface to operate with.\n"},"nrBands":{"type":"array","items":{"type":"number"},"description":"5G NR Frequency band used in communication [5G NR Bands and bandwidths](https://en.wikipedia.org/wiki/5G_NR_frequency_bands).\n"},"operator":{"type":"number","description":"Used to lock the device to a specific operator full PLMN number is used for the lock consisting of MCC+MNC. [PLMN codes](https://en.wikipedia.org/wiki/Public_land_mobile_network).\n"},"pin":{"type":"string","description":"SIM Card's PIN code.\n"},"running":{"type":"boolean"},"smsProtocol":{"type":"string","description":"SMS functionality. \u003cspan pulumi-lang-nodejs=\"`mbim`\" pulumi-lang-dotnet=\"`Mbim`\" pulumi-lang-go=\"`mbim`\" pulumi-lang-python=\"`mbim`\" pulumi-lang-yaml=\"`mbim`\" pulumi-lang-java=\"`mbim`\"\u003e`mbim`\u003c/span\u003e: uses MBIM driver. \u003cspan pulumi-lang-nodejs=\"`at`\" pulumi-lang-dotnet=\"`At`\" pulumi-lang-go=\"`at`\" pulumi-lang-python=\"`at`\" pulumi-lang-yaml=\"`at`\" pulumi-lang-java=\"`at`\"\u003e`at`\u003c/span\u003e: uses AT-Commands. \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e: selects the appropriate option depending on the modem.\n"},"smsRead":{"type":"boolean"}},"type":"object"}},"routeros:index/interfaceLteApn:InterfaceLteApn":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceLteApn(\"test\", {\n    name: \"apn1\",\n    apn: \"internet\",\n    authentication: \"pap\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceLteApn(\"test\",\n    name=\"apn1\",\n    apn=\"internet\",\n    authentication=\"pap\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceLteApn(\"test\", new()\n    {\n        Name = \"apn1\",\n        Apn = \"internet\",\n        Authentication = \"pap\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceLteApn(ctx, \"test\", \u0026routeros.InterfaceLteApnArgs{\n\t\t\tName:           pulumi.String(\"apn1\"),\n\t\t\tApn:            pulumi.String(\"internet\"),\n\t\t\tAuthentication: pulumi.String(\"pap\"),\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.routeros.InterfaceLteApn;\nimport com.pulumi.routeros.InterfaceLteApnArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceLteApn(\"test\", InterfaceLteApnArgs.builder()\n            .name(\"apn1\")\n            .apn(\"internet\")\n            .authentication(\"pap\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceLteApn\n    properties:\n      name: apn1\n      apn: internet\n      authentication: pap\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceLteApn:InterfaceLteApn test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceLteApn:InterfaceLteApn test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"boolean","description":"Whether to add a default route to forward all traffic over the LTE interface.\n"},"apn":{"type":"string","description":"Service Provider's Access Point Name.\n"},"authentication":{"type":"string","description":"Allowed protocol to use for authentication.\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"defaultRouteDistance":{"type":"number","description":"Sets distance value applied to auto-created default route, if add-default-route is also selected. LTE route by default is with distance 2 to prefer wired routes over LTE.\n"},"interfaceLteApnId":{"type":"string","description":"The ID of this resource.\n"},"ipType":{"type":"string","description":"Requested PDN type.\n"},"ipv6Interface":{"type":"string","description":"Interface on which to advertise IPv6 prefix.\n"},"name":{"type":"string","description":"APN profile name\n"},"number":{"type":"number","description":"APN profile number.\n"},"passthroughInterface":{"type":"string","description":"Interface to passthrough IP configuration (activates passthrough).\n"},"passthroughMac":{"type":"string","description":"If set to auto, then will learn MAC from the first packet.\n"},"passthroughSubnetSelection":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e selects the smallest possible subnet to be used for the passthrough interface. \u003cspan pulumi-lang-nodejs=\"`p2p`\" pulumi-lang-dotnet=\"`P2p`\" pulumi-lang-go=\"`p2p`\" pulumi-lang-python=\"`p2p`\" pulumi-lang-yaml=\"`p2p`\" pulumi-lang-java=\"`p2p`\"\u003e`p2p`\u003c/span\u003e sets the passthrough interface subnet as `/32` and picks gateway address from `10.177.0.0/16` range. The gateway address stays the same until the apn configuration is changed.\n"},"password":{"type":"string","description":"Password used if any of the authentication protocols are active.\n"},"useNetworkApn":{"type":"boolean","description":"Parameter is available starting from RouterOS v7 and used only for MBIM modems. If set to yes, uses network provided APN.\n"},"usePeerDns":{"type":"boolean","description":"If set to yes, uses DNS received from LTE interface.\n"},"user":{"type":"string","description":"Username used if any of the authentication protocols are active.\n"}},"type":"object","required":["default","interfaceLteApnId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"boolean","description":"Whether to add a default route to forward all traffic over the LTE interface.\n"},"apn":{"type":"string","description":"Service Provider's Access Point Name.\n"},"authentication":{"type":"string","description":"Allowed protocol to use for authentication.\n"},"comment":{"type":"string"},"defaultRouteDistance":{"type":"number","description":"Sets distance value applied to auto-created default route, if add-default-route is also selected. LTE route by default is with distance 2 to prefer wired routes over LTE.\n"},"interfaceLteApnId":{"type":"string","description":"The ID of this resource.\n"},"ipType":{"type":"string","description":"Requested PDN type.\n"},"ipv6Interface":{"type":"string","description":"Interface on which to advertise IPv6 prefix.\n"},"name":{"type":"string","description":"APN profile name\n"},"number":{"type":"number","description":"APN profile number.\n"},"passthroughInterface":{"type":"string","description":"Interface to passthrough IP configuration (activates passthrough).\n"},"passthroughMac":{"type":"string","description":"If set to auto, then will learn MAC from the first packet.\n"},"passthroughSubnetSelection":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e selects the smallest possible subnet to be used for the passthrough interface. \u003cspan pulumi-lang-nodejs=\"`p2p`\" pulumi-lang-dotnet=\"`P2p`\" pulumi-lang-go=\"`p2p`\" pulumi-lang-python=\"`p2p`\" pulumi-lang-yaml=\"`p2p`\" pulumi-lang-java=\"`p2p`\"\u003e`p2p`\u003c/span\u003e sets the passthrough interface subnet as `/32` and picks gateway address from `10.177.0.0/16` range. The gateway address stays the same until the apn configuration is changed.\n"},"password":{"type":"string","description":"Password used if any of the authentication protocols are active.\n"},"useNetworkApn":{"type":"boolean","description":"Parameter is available starting from RouterOS v7 and used only for MBIM modems. If set to yes, uses network provided APN.\n"},"usePeerDns":{"type":"boolean","description":"If set to yes, uses DNS received from LTE interface.\n"},"user":{"type":"string","description":"Username used if any of the authentication protocols are active.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceLteApn resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"boolean","description":"Whether to add a default route to forward all traffic over the LTE interface.\n"},"apn":{"type":"string","description":"Service Provider's Access Point Name.\n"},"authentication":{"type":"string","description":"Allowed protocol to use for authentication.\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"defaultRouteDistance":{"type":"number","description":"Sets distance value applied to auto-created default route, if add-default-route is also selected. LTE route by default is with distance 2 to prefer wired routes over LTE.\n"},"interfaceLteApnId":{"type":"string","description":"The ID of this resource.\n"},"ipType":{"type":"string","description":"Requested PDN type.\n"},"ipv6Interface":{"type":"string","description":"Interface on which to advertise IPv6 prefix.\n"},"name":{"type":"string","description":"APN profile name\n"},"number":{"type":"number","description":"APN profile number.\n"},"passthroughInterface":{"type":"string","description":"Interface to passthrough IP configuration (activates passthrough).\n"},"passthroughMac":{"type":"string","description":"If set to auto, then will learn MAC from the first packet.\n"},"passthroughSubnetSelection":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e selects the smallest possible subnet to be used for the passthrough interface. \u003cspan pulumi-lang-nodejs=\"`p2p`\" pulumi-lang-dotnet=\"`P2p`\" pulumi-lang-go=\"`p2p`\" pulumi-lang-python=\"`p2p`\" pulumi-lang-yaml=\"`p2p`\" pulumi-lang-java=\"`p2p`\"\u003e`p2p`\u003c/span\u003e sets the passthrough interface subnet as `/32` and picks gateway address from `10.177.0.0/16` range. The gateway address stays the same until the apn configuration is changed.\n"},"password":{"type":"string","description":"Password used if any of the authentication protocols are active.\n"},"useNetworkApn":{"type":"boolean","description":"Parameter is available starting from RouterOS v7 and used only for MBIM modems. If set to yes, uses network provided APN.\n"},"usePeerDns":{"type":"boolean","description":"If set to yes, uses DNS received from LTE interface.\n"},"user":{"type":"string","description":"Username used if any of the authentication protocols are active.\n"}},"type":"object"}},"routeros:index/interfaceMacvlan:InterfaceMacvlan":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceMacvlan(\"test\", {\n    \"interface\": \"ether1\",\n    name: \"macvlan1\",\n    disabled: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceMacvlan(\"test\",\n    interface=\"ether1\",\n    name=\"macvlan1\",\n    disabled=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceMacvlan(\"test\", new()\n    {\n        Interface = \"ether1\",\n        Name = \"macvlan1\",\n        Disabled = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceMacvlan(ctx, \"test\", \u0026routeros.InterfaceMacvlanArgs{\n\t\t\tInterface: pulumi.String(\"ether1\"),\n\t\t\tName:      pulumi.String(\"macvlan1\"),\n\t\t\tDisabled:  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.routeros.InterfaceMacvlan;\nimport com.pulumi.routeros.InterfaceMacvlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceMacvlan(\"test\", InterfaceMacvlanArgs.builder()\n            .interface_(\"ether1\")\n            .name(\"macvlan1\")\n            .disabled(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceMacvlan\n    properties:\n      interface: ether1\n      name: macvlan1\n      disabled: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/macvlan get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceMacvlan:InterfaceMacvlan test \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceMacvlan:InterfaceMacvlan test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"interfaceMacvlanId":{"type":"string"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"boolean","description":"Loop protect status"},"macAddress":{"type":"string","description":"Static MAC address of the interface. A randomly generated MAC address will be assigned when not specified."},"mode":{"type":"string","description":"Sets MACVLAN interface mode:\n  *\tprivate - does not allow communication between MACVLAN instances on the same parent interface.\n  * bridge - allows communication between MACVLAN instances on the same parent interface."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string"},"running":{"type":"boolean"}},"type":"object","required":["interface","interfaceMacvlanId","l2mtu","mtu","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"interfaceMacvlanId":{"type":"string"},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"boolean","description":"Loop protect status"},"macAddress":{"type":"string","description":"Static MAC address of the interface. A randomly generated MAC address will be assigned when not specified."},"mode":{"type":"string","description":"Sets MACVLAN interface mode:\n  *\tprivate - does not allow communication between MACVLAN instances on the same parent interface.\n  * bridge - allows communication between MACVLAN instances on the same parent interface."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceMacvlan resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"interfaceMacvlanId":{"type":"string"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"boolean","description":"Loop protect status"},"macAddress":{"type":"string","description":"Static MAC address of the interface. A randomly generated MAC address will be assigned when not specified."},"mode":{"type":"string","description":"Sets MACVLAN interface mode:\n  *\tprivate - does not allow communication between MACVLAN instances on the same parent interface.\n  * bridge - allows communication between MACVLAN instances on the same parent interface."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string"},"running":{"type":"boolean"}},"type":"object"}},"routeros:index/interfaceOvpnClient:InterfaceOvpnClient":{"properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"boolean","description":"Whether to add OVPN remote address as a default route.\n"},"auth":{"type":"string","description":"Authentication methods that the server will accept.\n"},"certificate":{"type":"string","description":"Name of the client certificate.\n"},"cipher":{"type":"string","description":"Allowed ciphers.\n"},"comment":{"type":"string"},"connectTo":{"type":"string","description":"Remote address of the OVPN server.\n"},"disabled":{"type":"boolean"},"hwCrypto":{"type":"boolean"},"interfaceOvpnClientId":{"type":"string","description":"The ID of this resource.\n"},"macAddress":{"type":"string","description":"Mac address of OVPN interface. Will be automatically generated if not specified.\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit. Max packet size that the OVPN interface will be able to send without packet fragmentation.\n"},"mode":{"type":"string","description":"Layer3 or layer2 tunnel mode (alternatively tun, tap)\n"},"name":{"type":"string","description":"Descriptive name of the interface.\n"},"password":{"type":"string","description":"Password used for authentication.\n","secret":true},"port":{"type":"number","description":"Port to connect to.\n"},"profile":{"type":"string","description":"Specifies which PPP profile configuration will be used when establishing the tunnel.\n"},"protocol":{"type":"string","description":"Indicates the protocol to use when connecting with the remote endpoint.\n"},"routeNopull":{"type":"boolean","description":"Specifies whether to allow the OVPN server to add routes to the OVPN client instance routing table.\n"},"running":{"type":"boolean"},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow.\n"},"usePeerDns":{"type":"boolean","description":"Whether to add DNS servers provided by the OVPN server to IP/DNS configuration.\n"},"user":{"type":"string","description":"User name used for authentication.\n"},"verifyServerCertificate":{"type":"boolean","description":"Checks the certificates CN or SAN against the \"connect-to\" parameter. The IP or hostname must be present in the server's certificate.\n"}},"type":"object","required":["connectTo","hwCrypto","interfaceOvpnClientId","name","running","user"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"boolean","description":"Whether to add OVPN remote address as a default route.\n"},"auth":{"type":"string","description":"Authentication methods that the server will accept.\n"},"certificate":{"type":"string","description":"Name of the client certificate.\n"},"cipher":{"type":"string","description":"Allowed ciphers.\n"},"comment":{"type":"string"},"connectTo":{"type":"string","description":"Remote address of the OVPN server.\n"},"disabled":{"type":"boolean"},"interfaceOvpnClientId":{"type":"string","description":"The ID of this resource.\n"},"macAddress":{"type":"string","description":"Mac address of OVPN interface. Will be automatically generated if not specified.\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit. Max packet size that the OVPN interface will be able to send without packet fragmentation.\n"},"mode":{"type":"string","description":"Layer3 or layer2 tunnel mode (alternatively tun, tap)\n"},"name":{"type":"string","description":"Descriptive name of the interface.\n"},"password":{"type":"string","description":"Password used for authentication.\n","secret":true},"port":{"type":"number","description":"Port to connect to.\n"},"profile":{"type":"string","description":"Specifies which PPP profile configuration will be used when establishing the tunnel.\n"},"protocol":{"type":"string","description":"Indicates the protocol to use when connecting with the remote endpoint.\n"},"routeNopull":{"type":"boolean","description":"Specifies whether to allow the OVPN server to add routes to the OVPN client instance routing table.\n"},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow.\n"},"usePeerDns":{"type":"boolean","description":"Whether to add DNS servers provided by the OVPN server to IP/DNS configuration.\n"},"user":{"type":"string","description":"User name used for authentication.\n"},"verifyServerCertificate":{"type":"boolean","description":"Checks the certificates CN or SAN against the \"connect-to\" parameter. The IP or hostname must be present in the server's certificate.\n"}},"requiredInputs":["connectTo","user"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceOvpnClient resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"boolean","description":"Whether to add OVPN remote address as a default route.\n"},"auth":{"type":"string","description":"Authentication methods that the server will accept.\n"},"certificate":{"type":"string","description":"Name of the client certificate.\n"},"cipher":{"type":"string","description":"Allowed ciphers.\n"},"comment":{"type":"string"},"connectTo":{"type":"string","description":"Remote address of the OVPN server.\n"},"disabled":{"type":"boolean"},"hwCrypto":{"type":"boolean"},"interfaceOvpnClientId":{"type":"string","description":"The ID of this resource.\n"},"macAddress":{"type":"string","description":"Mac address of OVPN interface. Will be automatically generated if not specified.\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit. Max packet size that the OVPN interface will be able to send without packet fragmentation.\n"},"mode":{"type":"string","description":"Layer3 or layer2 tunnel mode (alternatively tun, tap)\n"},"name":{"type":"string","description":"Descriptive name of the interface.\n"},"password":{"type":"string","description":"Password used for authentication.\n","secret":true},"port":{"type":"number","description":"Port to connect to.\n"},"profile":{"type":"string","description":"Specifies which PPP profile configuration will be used when establishing the tunnel.\n"},"protocol":{"type":"string","description":"Indicates the protocol to use when connecting with the remote endpoint.\n"},"routeNopull":{"type":"boolean","description":"Specifies whether to allow the OVPN server to add routes to the OVPN client instance routing table.\n"},"running":{"type":"boolean"},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow.\n"},"usePeerDns":{"type":"boolean","description":"Whether to add DNS servers provided by the OVPN server to IP/DNS configuration.\n"},"user":{"type":"string","description":"User name used for authentication.\n"},"verifyServerCertificate":{"type":"boolean","description":"Checks the certificates CN or SAN against the \"connect-to\" parameter. The IP or hostname must be present in the server's certificate.\n"}},"type":"object"}},"routeros:index/interfaceOvpnServer:InterfaceOvpnServer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst user1 = new routeros.InterfaceOvpnServer(\"user1\", {\n    name: \"ovpn-in1\",\n    user: \"user1\",\n}, {\n    dependsOn: [server],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nuser1 = routeros.InterfaceOvpnServer(\"user1\",\n    name=\"ovpn-in1\",\n    user=\"user1\",\n    opts = pulumi.ResourceOptions(depends_on=[server]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var user1 = new Routeros.InterfaceOvpnServer(\"user1\", new()\n    {\n        Name = \"ovpn-in1\",\n        User = \"user1\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            server,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceOvpnServer(ctx, \"user1\", \u0026routeros.InterfaceOvpnServerArgs{\n\t\t\tName: pulumi.String(\"ovpn-in1\"),\n\t\t\tUser: pulumi.String(\"user1\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tserver,\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.routeros.InterfaceOvpnServer;\nimport com.pulumi.routeros.InterfaceOvpnServerArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user1 = new InterfaceOvpnServer(\"user1\", InterfaceOvpnServerArgs.builder()\n            .name(\"ovpn-in1\")\n            .user(\"user1\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(server)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user1:\n    type: routeros:InterfaceOvpnServer\n    properties:\n      name: ovpn-in1\n      user: user1\n    options:\n      dependsOn:\n        - ${server}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/ovpn-server get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceOvpnServer:InterfaceOvpnServer user1 *29\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceOvpnServer:InterfaceOvpnServer user1 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"clientAddress":{"type":"string","description":"The address of the remote side.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"encoding":{"type":"string","description":"Encryption characteristics.\n"},"interfaceOvpnServerId":{"type":"string","description":"The ID of this resource.\n"},"mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"name":{"type":"string","description":"Interface name (Example: ovpn-in1).\n"},"running":{"type":"boolean"},"uptime":{"type":"string","description":"Connection uptime.\n"},"user":{"type":"string","description":"User name used for authentication.\n"}},"type":"object","required":["clientAddress","encoding","interfaceOvpnServerId","mtu","name","running","uptime"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaceOvpnServerId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Interface name (Example: ovpn-in1).\n"},"user":{"type":"string","description":"User name used for authentication.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceOvpnServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"clientAddress":{"type":"string","description":"The address of the remote side.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"encoding":{"type":"string","description":"Encryption characteristics.\n"},"interfaceOvpnServerId":{"type":"string","description":"The ID of this resource.\n"},"mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"name":{"type":"string","description":"Interface name (Example: ovpn-in1).\n"},"running":{"type":"boolean"},"uptime":{"type":"string","description":"Connection uptime.\n"},"user":{"type":"string","description":"User name used for authentication.\n"}},"type":"object"}},"routeros:index/interfacePppoeClient:InterfacePppoeClient":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfacePppoeClient(\"test\", {\n    \"interface\": \"ether1\",\n    password: \"StrongPass\",\n    serviceName: \"pppoeservice\",\n    name: \"PPPoE-Out\",\n    disabled: false,\n    user: \"MT-User\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfacePppoeClient(\"test\",\n    interface=\"ether1\",\n    password=\"StrongPass\",\n    service_name=\"pppoeservice\",\n    name=\"PPPoE-Out\",\n    disabled=False,\n    user=\"MT-User\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfacePppoeClient(\"test\", new()\n    {\n        Interface = \"ether1\",\n        Password = \"StrongPass\",\n        ServiceName = \"pppoeservice\",\n        Name = \"PPPoE-Out\",\n        Disabled = false,\n        User = \"MT-User\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfacePppoeClient(ctx, \"test\", \u0026routeros.InterfacePppoeClientArgs{\n\t\t\tInterface:   pulumi.String(\"ether1\"),\n\t\t\tPassword:    pulumi.String(\"StrongPass\"),\n\t\t\tServiceName: pulumi.String(\"pppoeservice\"),\n\t\t\tName:        pulumi.String(\"PPPoE-Out\"),\n\t\t\tDisabled:    pulumi.Bool(false),\n\t\t\tUser:        pulumi.String(\"MT-User\"),\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.routeros.InterfacePppoeClient;\nimport com.pulumi.routeros.InterfacePppoeClientArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfacePppoeClient(\"test\", InterfacePppoeClientArgs.builder()\n            .interface_(\"ether1\")\n            .password(\"StrongPass\")\n            .serviceName(\"pppoeservice\")\n            .name(\"PPPoE-Out\")\n            .disabled(false)\n            .user(\"MT-User\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfacePppoeClient\n    properties:\n      interface: ether1\n      password: StrongPass\n      serviceName: pppoeservice\n      name: PPPoE-Out\n      disabled: false\n      user: MT-User\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/pppoe-client get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfacePppoeClient:InterfacePppoeClient test \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfacePppoeClient:InterfacePppoeClient test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acName":{"type":"string","description":"Access Concentrator name, this may be left blank and the client will connect to any access concentrator on the broadcast domain.\n"},"addDefaultRoute":{"type":"boolean","description":"Enable/Disable whether to add default route automatically.\n"},"allows":{"type":"array","items":{"type":"string"},"description":"Allowed authentication methods, by default all methods are allowed.\n"},"comment":{"type":"string"},"defaultRouteDistance":{"type":"number","description":"sets distance value applied to auto created default route, if add-default-route is also selected.\n"},"dialOnDemand":{"type":"boolean","description":"connects to AC only when outbound traffic is generated. If selected, then route with gateway address from 10.112.112.0/24 network will be added while connection is not established.\n"},"disabled":{"type":"boolean"},"hostUniq":{"type":"string"},"interface":{"type":"string","description":"Interface name on which client will run.\n"},"interfacePppoeClientId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"keepaliveTimeout":{"type":"number","description":"Sets keepalive timeout in seconds.\n"},"maxMru":{"type":"string","description":"Maximum Receive Unit.\n"},"maxMtu":{"type":"string","description":"Maximum Transmission Unit.\n"},"mrru":{"type":"string","description":"Maximum packet size (512..65535 or disabled) that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"name":{"type":"string","description":"Name of the PPPoE interface.\n"},"password":{"type":"string","description":"Password used to authenticate.\n","secret":true},"profile":{"type":"string","description":"Specifies which PPP profile configuration will be used when establishing the tunnel.\n"},"running":{"type":"boolean"},"serviceName":{"type":"string","description":"Specifies the service name set on the access concentrator, can be left blank to connect to any PPPoE server.\n"},"usePeerDns":{"type":"boolean","description":"Enable/disable getting DNS settings from the peer.\n"},"user":{"type":"string","description":"Username used for authentication.\n"}},"type":"object","required":["allows","interface","interfacePppoeClientId","invalid","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acName":{"type":"string","description":"Access Concentrator name, this may be left blank and the client will connect to any access concentrator on the broadcast domain.\n"},"addDefaultRoute":{"type":"boolean","description":"Enable/Disable whether to add default route automatically.\n"},"allows":{"type":"array","items":{"type":"string"},"description":"Allowed authentication methods, by default all methods are allowed.\n"},"comment":{"type":"string"},"defaultRouteDistance":{"type":"number","description":"sets distance value applied to auto created default route, if add-default-route is also selected.\n"},"dialOnDemand":{"type":"boolean","description":"connects to AC only when outbound traffic is generated. If selected, then route with gateway address from 10.112.112.0/24 network will be added while connection is not established.\n"},"disabled":{"type":"boolean"},"hostUniq":{"type":"string"},"interface":{"type":"string","description":"Interface name on which client will run.\n"},"interfacePppoeClientId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"number","description":"Sets keepalive timeout in seconds.\n"},"maxMru":{"type":"string","description":"Maximum Receive Unit.\n"},"maxMtu":{"type":"string","description":"Maximum Transmission Unit.\n"},"mrru":{"type":"string","description":"Maximum packet size (512..65535 or disabled) that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"name":{"type":"string","description":"Name of the PPPoE interface.\n"},"password":{"type":"string","description":"Password used to authenticate.\n","secret":true},"profile":{"type":"string","description":"Specifies which PPP profile configuration will be used when establishing the tunnel.\n"},"serviceName":{"type":"string","description":"Specifies the service name set on the access concentrator, can be left blank to connect to any PPPoE server.\n"},"usePeerDns":{"type":"boolean","description":"Enable/disable getting DNS settings from the peer.\n"},"user":{"type":"string","description":"Username used for authentication.\n"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfacePppoeClient resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acName":{"type":"string","description":"Access Concentrator name, this may be left blank and the client will connect to any access concentrator on the broadcast domain.\n"},"addDefaultRoute":{"type":"boolean","description":"Enable/Disable whether to add default route automatically.\n"},"allows":{"type":"array","items":{"type":"string"},"description":"Allowed authentication methods, by default all methods are allowed.\n"},"comment":{"type":"string"},"defaultRouteDistance":{"type":"number","description":"sets distance value applied to auto created default route, if add-default-route is also selected.\n"},"dialOnDemand":{"type":"boolean","description":"connects to AC only when outbound traffic is generated. If selected, then route with gateway address from 10.112.112.0/24 network will be added while connection is not established.\n"},"disabled":{"type":"boolean"},"hostUniq":{"type":"string"},"interface":{"type":"string","description":"Interface name on which client will run.\n"},"interfacePppoeClientId":{"type":"string","description":"The ID of this resource.\n"},"invalid":{"type":"boolean"},"keepaliveTimeout":{"type":"number","description":"Sets keepalive timeout in seconds.\n"},"maxMru":{"type":"string","description":"Maximum Receive Unit.\n"},"maxMtu":{"type":"string","description":"Maximum Transmission Unit.\n"},"mrru":{"type":"string","description":"Maximum packet size (512..65535 or disabled) that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"name":{"type":"string","description":"Name of the PPPoE interface.\n"},"password":{"type":"string","description":"Password used to authenticate.\n","secret":true},"profile":{"type":"string","description":"Specifies which PPP profile configuration will be used when establishing the tunnel.\n"},"running":{"type":"boolean"},"serviceName":{"type":"string","description":"Specifies the service name set on the access concentrator, can be left blank to connect to any PPPoE server.\n"},"usePeerDns":{"type":"boolean","description":"Enable/disable getting DNS settings from the peer.\n"},"user":{"type":"string","description":"Username used for authentication.\n"}},"type":"object"}},"routeros:index/interfacePppoeServer:InterfacePppoeServer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfacePppoeServer(\"test\", {\n    comment: \"comment\",\n    disabled: true,\n    name: \"pppoe-in1\",\n    user: \"\",\n    service: \"\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfacePppoeServer(\"test\",\n    comment=\"comment\",\n    disabled=True,\n    name=\"pppoe-in1\",\n    user=\"\",\n    service=\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfacePppoeServer(\"test\", new()\n    {\n        Comment = \"comment\",\n        Disabled = true,\n        Name = \"pppoe-in1\",\n        User = \"\",\n        Service = \"\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfacePppoeServer(ctx, \"test\", \u0026routeros.InterfacePppoeServerArgs{\n\t\t\tComment:  pulumi.String(\"comment\"),\n\t\t\tDisabled: pulumi.Bool(true),\n\t\t\tName:     pulumi.String(\"pppoe-in1\"),\n\t\t\tUser:     pulumi.String(\"\"),\n\t\t\tService:  pulumi.String(\"\"),\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.routeros.InterfacePppoeServer;\nimport com.pulumi.routeros.InterfacePppoeServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfacePppoeServer(\"test\", InterfacePppoeServerArgs.builder()\n            .comment(\"comment\")\n            .disabled(true)\n            .name(\"pppoe-in1\")\n            .user(\"\")\n            .service(\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfacePppoeServer\n    properties:\n      comment: comment\n      disabled: true\n      name: pppoe-in1\n      user: \"\"\n      service: \"\"\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/pppoe/server get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfacePppoeServer:InterfacePppoeServer test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfacePppoeServer:InterfacePppoeServer test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authentications":{"type":"array","items":{"type":"string"},"description":"Authentication algorithm.\n"},"comment":{"type":"string"},"defaultProfile":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface that the clients are connected to\n"},"interfacePppoeServerId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"Defines the time period (in seconds) after which the router is starting to send keepalive packets every second. If there is no traffic and no keepalive responses arrive for that period of time (i.e. 2 * keepalive-timeout), the non responding client is proclaimed disconnected.\n"},"maxMru":{"type":"number","description":"Maximum Receive Unit. The optimal value is the MTU of the interface the tunnel is working over reduced by 20 (so, for 1500-byte Ethernet link, set the MTU to 1480 to avoid fragmentation of packets).\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit. The optimal value is the MTU of the interface the tunnel is working over reduced by 20 (so, for 1500-byte Ethernet link, set the MTU to 1480 to avoid fragmentation of packets).\n"},"maxSessions":{"type":"number","description":"Maximum number of clients that the AC can serve. '0' = no limitations.\n"},"mrru":{"type":"string","description":"Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"name":{"type":"string"},"oneSessionPerHost":{"type":"boolean","description":"Allow only one session per host (determined by MAC address). If a host tries to establish a new session, the old one will be closed.\n"},"pppoeOverVlanRange":{"type":"number","description":"This setting allows a PPPoE server to operate over 802.1Q VLANs. By default, a PPPoE server only accepts untagged packets on its interface. However, in scenarios where clients are on separate VLANs, instead of creating multiple 802.1Q VLAN interfaces and bridging them together or configuring individual PPPoE servers for each VLAN, you can specify the necessary VLANs directly in the PPPoE server settings. When you specify the VLAN IDs, the PPPoE server will accept both untagged packets and 802.1Q tagged packets from clients, and it will reply using the same VLAN. This setting can also be applied to both CVLAN and SVLAN interfaces. For example, when the use-service-tag=yes option is used on a VLAN interface, enabling QinQ setups as well. The setting supports a range of VLAN IDs, as well as individual VLANs specified using comma-separated values. For example: pppoe-over-vlan-range=100-115,120,122,128-130.\n"},"running":{"type":"boolean"},"service":{"type":"string","description":"This attribute is required in the ROS 7 version.\n"},"serviceName":{"type":"string","description":"The PPPoE service name. Server will accept clients which sends PADI message with service-names that matches this setting or if service-name field in PADI message is not set.\n"},"user":{"type":"string","description":"This attribute is required in the ROS 7 version.\n"}},"type":"object","required":["interfacePppoeServerId","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authentications":{"type":"array","items":{"type":"string"},"description":"Authentication algorithm.\n"},"comment":{"type":"string"},"defaultProfile":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface that the clients are connected to\n"},"interfacePppoeServerId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"Defines the time period (in seconds) after which the router is starting to send keepalive packets every second. If there is no traffic and no keepalive responses arrive for that period of time (i.e. 2 * keepalive-timeout), the non responding client is proclaimed disconnected.\n"},"maxMru":{"type":"number","description":"Maximum Receive Unit. The optimal value is the MTU of the interface the tunnel is working over reduced by 20 (so, for 1500-byte Ethernet link, set the MTU to 1480 to avoid fragmentation of packets).\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit. The optimal value is the MTU of the interface the tunnel is working over reduced by 20 (so, for 1500-byte Ethernet link, set the MTU to 1480 to avoid fragmentation of packets).\n"},"maxSessions":{"type":"number","description":"Maximum number of clients that the AC can serve. '0' = no limitations.\n"},"mrru":{"type":"string","description":"Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"name":{"type":"string"},"oneSessionPerHost":{"type":"boolean","description":"Allow only one session per host (determined by MAC address). If a host tries to establish a new session, the old one will be closed.\n"},"pppoeOverVlanRange":{"type":"number","description":"This setting allows a PPPoE server to operate over 802.1Q VLANs. By default, a PPPoE server only accepts untagged packets on its interface. However, in scenarios where clients are on separate VLANs, instead of creating multiple 802.1Q VLAN interfaces and bridging them together or configuring individual PPPoE servers for each VLAN, you can specify the necessary VLANs directly in the PPPoE server settings. When you specify the VLAN IDs, the PPPoE server will accept both untagged packets and 802.1Q tagged packets from clients, and it will reply using the same VLAN. This setting can also be applied to both CVLAN and SVLAN interfaces. For example, when the use-service-tag=yes option is used on a VLAN interface, enabling QinQ setups as well. The setting supports a range of VLAN IDs, as well as individual VLANs specified using comma-separated values. For example: pppoe-over-vlan-range=100-115,120,122,128-130.\n"},"service":{"type":"string","description":"This attribute is required in the ROS 7 version.\n"},"serviceName":{"type":"string","description":"The PPPoE service name. Server will accept clients which sends PADI message with service-names that matches this setting or if service-name field in PADI message is not set.\n"},"user":{"type":"string","description":"This attribute is required in the ROS 7 version.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfacePppoeServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authentications":{"type":"array","items":{"type":"string"},"description":"Authentication algorithm.\n"},"comment":{"type":"string"},"defaultProfile":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface that the clients are connected to\n"},"interfacePppoeServerId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"Defines the time period (in seconds) after which the router is starting to send keepalive packets every second. If there is no traffic and no keepalive responses arrive for that period of time (i.e. 2 * keepalive-timeout), the non responding client is proclaimed disconnected.\n"},"maxMru":{"type":"number","description":"Maximum Receive Unit. The optimal value is the MTU of the interface the tunnel is working over reduced by 20 (so, for 1500-byte Ethernet link, set the MTU to 1480 to avoid fragmentation of packets).\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit. The optimal value is the MTU of the interface the tunnel is working over reduced by 20 (so, for 1500-byte Ethernet link, set the MTU to 1480 to avoid fragmentation of packets).\n"},"maxSessions":{"type":"number","description":"Maximum number of clients that the AC can serve. '0' = no limitations.\n"},"mrru":{"type":"string","description":"Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"name":{"type":"string"},"oneSessionPerHost":{"type":"boolean","description":"Allow only one session per host (determined by MAC address). If a host tries to establish a new session, the old one will be closed.\n"},"pppoeOverVlanRange":{"type":"number","description":"This setting allows a PPPoE server to operate over 802.1Q VLANs. By default, a PPPoE server only accepts untagged packets on its interface. However, in scenarios where clients are on separate VLANs, instead of creating multiple 802.1Q VLAN interfaces and bridging them together or configuring individual PPPoE servers for each VLAN, you can specify the necessary VLANs directly in the PPPoE server settings. When you specify the VLAN IDs, the PPPoE server will accept both untagged packets and 802.1Q tagged packets from clients, and it will reply using the same VLAN. This setting can also be applied to both CVLAN and SVLAN interfaces. For example, when the use-service-tag=yes option is used on a VLAN interface, enabling QinQ setups as well. The setting supports a range of VLAN IDs, as well as individual VLANs specified using comma-separated values. For example: pppoe-over-vlan-range=100-115,120,122,128-130.\n"},"running":{"type":"boolean"},"service":{"type":"string","description":"This attribute is required in the ROS 7 version.\n"},"serviceName":{"type":"string","description":"The PPPoE service name. Server will accept clients which sends PADI message with service-names that matches this setting or if service-name field in PADI message is not set.\n"},"user":{"type":"string","description":"This attribute is required in the ROS 7 version.\n"}},"type":"object"}},"routeros:index/interfaceSstpClient:InterfaceSstpClient":{"properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"boolean","description":"Whether to add L2TP remote address as a default route.\n"},"addSni":{"type":"boolean","description":"Enables/disables service.\n"},"authentications":{"type":"array","items":{"type":"string"},"description":"Authentication algorithm.\n"},"certificate":{"type":"string","description":"Name of the certificate in use.\n"},"ciphers":{"type":"string","description":"Allowed ciphers.\n"},"comment":{"type":"string"},"connectTo":{"type":"string","description":"Remote address of the SSTP server.\n"},"defaultRouteDistance":{"type":"string","description":"Sets distance value applied to auto created default route, if add-default-route is also selected.\n"},"dialOnDemand":{"type":"boolean","description":"Connects only when outbound traffic is generated. If selected, then route with gateway address from 10.112.112.0/24 network will be added while connection is not established.\n"},"disabled":{"type":"boolean"},"httpProxy":{"type":"string","description":"Proxy address field.\n"},"hwCrypto":{"type":"boolean"},"interfaceSstpClientId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"Sets keepalive timeout in seconds.\n"},"maxMru":{"type":"number","description":"Maximum Receive Unit.\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit.\n"},"mrru":{"type":"string","description":"Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"name":{"type":"string","description":"Descriptive name of the interface.\n"},"password":{"type":"string","description":"Password used for authentication.\n","secret":true},"pfs":{"type":"boolean","description":"Specifies which TLS authentication to use. With pfs=yes, TLS will use ECDHE-RSA- and DHE-RSA-. For maximum security setting pfs=required will use only ECDHE.\n"},"port":{"type":"string","description":"Sets port used.\n"},"profile":{"type":"string","description":"Specifies which PPP profile configuration will be used when establishing the tunnel.\n"},"proxyPort":{"type":"string","description":"Sets proxy port.\n"},"running":{"type":"boolean"},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow.\n"},"user":{"type":"string","description":"User name used for authentication.\n"},"verifyServerAddressFromCertificate":{"type":"boolean","description":"SSTP client will verify server address in certificate.\n"},"verifyServerCertificate":{"type":"boolean","description":"SSTP client will verify server certificate.\n"}},"type":"object","required":["connectTo","hwCrypto","interfaceSstpClientId","name","password","running","user"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"boolean","description":"Whether to add L2TP remote address as a default route.\n"},"addSni":{"type":"boolean","description":"Enables/disables service.\n"},"authentications":{"type":"array","items":{"type":"string"},"description":"Authentication algorithm.\n"},"certificate":{"type":"string","description":"Name of the certificate in use.\n"},"ciphers":{"type":"string","description":"Allowed ciphers.\n"},"comment":{"type":"string"},"connectTo":{"type":"string","description":"Remote address of the SSTP server.\n"},"defaultRouteDistance":{"type":"string","description":"Sets distance value applied to auto created default route, if add-default-route is also selected.\n"},"dialOnDemand":{"type":"boolean","description":"Connects only when outbound traffic is generated. If selected, then route with gateway address from 10.112.112.0/24 network will be added while connection is not established.\n"},"disabled":{"type":"boolean"},"httpProxy":{"type":"string","description":"Proxy address field.\n"},"interfaceSstpClientId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"Sets keepalive timeout in seconds.\n"},"maxMru":{"type":"number","description":"Maximum Receive Unit.\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit.\n"},"mrru":{"type":"string","description":"Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"name":{"type":"string","description":"Descriptive name of the interface.\n"},"password":{"type":"string","description":"Password used for authentication.\n","secret":true},"pfs":{"type":"boolean","description":"Specifies which TLS authentication to use. With pfs=yes, TLS will use ECDHE-RSA- and DHE-RSA-. For maximum security setting pfs=required will use only ECDHE.\n"},"port":{"type":"string","description":"Sets port used.\n"},"profile":{"type":"string","description":"Specifies which PPP profile configuration will be used when establishing the tunnel.\n"},"proxyPort":{"type":"string","description":"Sets proxy port.\n"},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow.\n"},"user":{"type":"string","description":"User name used for authentication.\n"},"verifyServerAddressFromCertificate":{"type":"boolean","description":"SSTP client will verify server address in certificate.\n"},"verifyServerCertificate":{"type":"boolean","description":"SSTP client will verify server certificate.\n"}},"requiredInputs":["connectTo","password","user"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceSstpClient resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"boolean","description":"Whether to add L2TP remote address as a default route.\n"},"addSni":{"type":"boolean","description":"Enables/disables service.\n"},"authentications":{"type":"array","items":{"type":"string"},"description":"Authentication algorithm.\n"},"certificate":{"type":"string","description":"Name of the certificate in use.\n"},"ciphers":{"type":"string","description":"Allowed ciphers.\n"},"comment":{"type":"string"},"connectTo":{"type":"string","description":"Remote address of the SSTP server.\n"},"defaultRouteDistance":{"type":"string","description":"Sets distance value applied to auto created default route, if add-default-route is also selected.\n"},"dialOnDemand":{"type":"boolean","description":"Connects only when outbound traffic is generated. If selected, then route with gateway address from 10.112.112.0/24 network will be added while connection is not established.\n"},"disabled":{"type":"boolean"},"httpProxy":{"type":"string","description":"Proxy address field.\n"},"hwCrypto":{"type":"boolean"},"interfaceSstpClientId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"Sets keepalive timeout in seconds.\n"},"maxMru":{"type":"number","description":"Maximum Receive Unit.\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit.\n"},"mrru":{"type":"string","description":"Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"name":{"type":"string","description":"Descriptive name of the interface.\n"},"password":{"type":"string","description":"Password used for authentication.\n","secret":true},"pfs":{"type":"boolean","description":"Specifies which TLS authentication to use. With pfs=yes, TLS will use ECDHE-RSA- and DHE-RSA-. For maximum security setting pfs=required will use only ECDHE.\n"},"port":{"type":"string","description":"Sets port used.\n"},"profile":{"type":"string","description":"Specifies which PPP profile configuration will be used when establishing the tunnel.\n"},"proxyPort":{"type":"string","description":"Sets proxy port.\n"},"running":{"type":"boolean"},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow.\n"},"user":{"type":"string","description":"User name used for authentication.\n"},"verifyServerAddressFromCertificate":{"type":"boolean","description":"SSTP client will verify server address in certificate.\n"},"verifyServerCertificate":{"type":"boolean","description":"SSTP client will verify server certificate.\n"}},"type":"object"}},"routeros:index/interfaceSstpServer:InterfaceSstpServer":{"properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authentications":{"type":"array","items":{"type":"string"},"description":"Authentication algorithm.\n"},"certificate":{"type":"string","description":"Name of the certificate in use.\n"},"ciphers":{"type":"string","description":"Allowed ciphers.\n"},"defaultProfile":{"type":"string","description":"Default profile to use.\n"},"enabled":{"type":"boolean","description":"Enables/disables service.\n"},"interfaceSstpServerId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"Sets keepalive timeout in seconds.\n"},"maxMru":{"type":"number","description":"Maximum Receive Unit.\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit.\n"},"mrru":{"type":"string","description":"Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"pfs":{"type":"boolean","description":"Specifies which TLS authentication to use. With pfs=yes, TLS will use ECDHE-RSA- and DHE-RSA-. For maximum security setting pfs=required will use only ECDHE.\n"},"port":{"type":"string","description":"Sets port used.\n"},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow.\n"},"verifyClientCertificate":{"type":"boolean","description":"SSTP server will verify client certificate.\n"}},"type":"object","required":["interfaceSstpServerId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authentications":{"type":"array","items":{"type":"string"},"description":"Authentication algorithm.\n"},"certificate":{"type":"string","description":"Name of the certificate in use.\n"},"ciphers":{"type":"string","description":"Allowed ciphers.\n"},"defaultProfile":{"type":"string","description":"Default profile to use.\n"},"enabled":{"type":"boolean","description":"Enables/disables service.\n"},"interfaceSstpServerId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"Sets keepalive timeout in seconds.\n"},"maxMru":{"type":"number","description":"Maximum Receive Unit.\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit.\n"},"mrru":{"type":"string","description":"Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"pfs":{"type":"boolean","description":"Specifies which TLS authentication to use. With pfs=yes, TLS will use ECDHE-RSA- and DHE-RSA-. For maximum security setting pfs=required will use only ECDHE.\n"},"port":{"type":"string","description":"Sets port used.\n"},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow.\n"},"verifyClientCertificate":{"type":"boolean","description":"SSTP server will verify client certificate.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceSstpServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authentications":{"type":"array","items":{"type":"string"},"description":"Authentication algorithm.\n"},"certificate":{"type":"string","description":"Name of the certificate in use.\n"},"ciphers":{"type":"string","description":"Allowed ciphers.\n"},"defaultProfile":{"type":"string","description":"Default profile to use.\n"},"enabled":{"type":"boolean","description":"Enables/disables service.\n"},"interfaceSstpServerId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"Sets keepalive timeout in seconds.\n"},"maxMru":{"type":"number","description":"Maximum Receive Unit.\n"},"maxMtu":{"type":"number","description":"Maximum Transmission Unit.\n"},"mrru":{"type":"string","description":"Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.\n"},"pfs":{"type":"boolean","description":"Specifies which TLS authentication to use. With pfs=yes, TLS will use ECDHE-RSA- and DHE-RSA-. For maximum security setting pfs=required will use only ECDHE.\n"},"port":{"type":"string","description":"Sets port used.\n"},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow.\n"},"verifyClientCertificate":{"type":"boolean","description":"SSTP server will verify client certificate.\n"}},"type":"object"}},"routeros:index/interfaceVeth:InterfaceVeth":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceVeth(\"test\", {\n    name: \"veth-test\",\n    addresses: [\"192.168.120.2/24\"],\n    gateway: \"192.168.120.1\",\n    comment: \"Virtual interface\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceVeth(\"test\",\n    name=\"veth-test\",\n    addresses=[\"192.168.120.2/24\"],\n    gateway=\"192.168.120.1\",\n    comment=\"Virtual interface\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceVeth(\"test\", new()\n    {\n        Name = \"veth-test\",\n        Addresses = new[]\n        {\n            \"192.168.120.2/24\",\n        },\n        Gateway = \"192.168.120.1\",\n        Comment = \"Virtual interface\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceVeth(ctx, \"test\", \u0026routeros.InterfaceVethArgs{\n\t\t\tName: pulumi.String(\"veth-test\"),\n\t\t\tAddresses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.120.2/24\"),\n\t\t\t},\n\t\t\tGateway: pulumi.String(\"192.168.120.1\"),\n\t\t\tComment: pulumi.String(\"Virtual interface\"),\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.routeros.InterfaceVeth;\nimport com.pulumi.routeros.InterfaceVethArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceVeth(\"test\", InterfaceVethArgs.builder()\n            .name(\"veth-test\")\n            .addresses(\"192.168.120.2/24\")\n            .gateway(\"192.168.120.1\")\n            .comment(\"Virtual interface\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceVeth\n    properties:\n      name: veth-test\n      addresses:\n        - 192.168.120.2/24\n      gateway: 192.168.120.1\n      comment: Virtual interface\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/veth get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceVeth:InterfaceVeth test \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceVeth:InterfaceVeth test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addresses":{"type":"array","items":{"type":"string"},"description":"Ip address.\n"},"comment":{"type":"string"},"dhcp":{"type":"boolean"},"disabled":{"type":"boolean"},"gateway":{"type":"string","description":"Gateway IP address.\n"},"gateway6":{"type":"string","description":"Gateway IPv6 address.\n"},"interfaceVethId":{"type":"string","description":"The ID of this resource.\n"},"macAddress":{"type":"string","description":"MAC address.\n"},"name":{"type":"string","description":"Interface name.\n"},"running":{"type":"boolean"}},"type":"object","required":["interfaceVethId","macAddress","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addresses":{"type":"array","items":{"type":"string"},"description":"Ip address.\n"},"comment":{"type":"string"},"dhcp":{"type":"boolean"},"disabled":{"type":"boolean"},"gateway":{"type":"string","description":"Gateway IP address.\n"},"gateway6":{"type":"string","description":"Gateway IPv6 address.\n"},"interfaceVethId":{"type":"string","description":"The ID of this resource.\n"},"macAddress":{"type":"string","description":"MAC address.\n"},"name":{"type":"string","description":"Interface name.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceVeth resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addresses":{"type":"array","items":{"type":"string"},"description":"Ip address.\n"},"comment":{"type":"string"},"dhcp":{"type":"boolean"},"disabled":{"type":"boolean"},"gateway":{"type":"string","description":"Gateway IP address.\n"},"gateway6":{"type":"string","description":"Gateway IPv6 address.\n"},"interfaceVethId":{"type":"string","description":"The ID of this resource.\n"},"macAddress":{"type":"string","description":"MAC address.\n"},"name":{"type":"string","description":"Interface name.\n"},"running":{"type":"boolean"}},"type":"object"}},"routeros:index/interfaceVlan:InterfaceVlan":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst interfaceVlan = new routeros.InterfaceVlan(\"interface_vlan\", {\n    \"interface\": \"bridge\",\n    name: \"VLAN_TEST\",\n    vlanId: 50,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ninterface_vlan = routeros.InterfaceVlan(\"interface_vlan\",\n    interface=\"bridge\",\n    name=\"VLAN_TEST\",\n    vlan_id=50)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var interfaceVlan = new Routeros.InterfaceVlan(\"interface_vlan\", new()\n    {\n        Interface = \"bridge\",\n        Name = \"VLAN_TEST\",\n        VlanId = 50,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceVlan(ctx, \"interface_vlan\", \u0026routeros.InterfaceVlanArgs{\n\t\t\tInterface: pulumi.String(\"bridge\"),\n\t\t\tName:      pulumi.String(\"VLAN_TEST\"),\n\t\t\tVlanId:    pulumi.Float64(50),\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.routeros.InterfaceVlan;\nimport com.pulumi.routeros.InterfaceVlanArgs;\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 interfaceVlan = new InterfaceVlan(\"interfaceVlan\", InterfaceVlanArgs.builder()\n            .interface_(\"bridge\")\n            .name(\"VLAN_TEST\")\n            .vlanId(50.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  interfaceVlan:\n    type: routeros:InterfaceVlan\n    name: interface_vlan\n    properties:\n      interface: bridge\n      name: VLAN_TEST\n      vlanId: 50\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/vlan get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceVlan:InterfaceVlan interface_vlan \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceVlan:InterfaceVlan interface_vlan \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"hwOffloaded":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"interfaceVlanId":{"type":"string"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"string"},"macAddress":{"type":"string","description":"Current mac address."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"mvrp":{"type":"boolean","description":"Specifies whether this VLAN should declare its attributes through Multiple VLAN Registration Protocol (MVRP) as an applicant (available since RouterOS 7.15). It can be used to register the VLAN with connected bridges that support MVRP. This property only has an effect when use-service-tag is disabled."},"name":{"type":"string"},"running":{"type":"boolean"},"useServiceTag":{"type":"boolean"},"vlanId":{"type":"number","description":"Virtual LAN identifier or tag that is used to distinguish VLANs. Must be equal for all computers that belong to the same VLAN."}},"type":"object","required":["interface","interfaceVlanId","l2mtu","loopProtectStatus","macAddress","mtu","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"hwOffloaded":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"interfaceVlanId":{"type":"string"},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"mvrp":{"type":"boolean","description":"Specifies whether this VLAN should declare its attributes through Multiple VLAN Registration Protocol (MVRP) as an applicant (available since RouterOS 7.15). It can be used to register the VLAN with connected bridges that support MVRP. This property only has an effect when use-service-tag is disabled."},"name":{"type":"string"},"useServiceTag":{"type":"boolean"},"vlanId":{"type":"number","description":"Virtual LAN identifier or tag that is used to distinguish VLANs. Must be equal for all computers that belong to the same VLAN."}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceVlan resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"hwOffloaded":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"interfaceVlanId":{"type":"string"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"string"},"macAddress":{"type":"string","description":"Current mac address."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"mvrp":{"type":"boolean","description":"Specifies whether this VLAN should declare its attributes through Multiple VLAN Registration Protocol (MVRP) as an applicant (available since RouterOS 7.15). It can be used to register the VLAN with connected bridges that support MVRP. This property only has an effect when use-service-tag is disabled."},"name":{"type":"string"},"running":{"type":"boolean"},"useServiceTag":{"type":"boolean"},"vlanId":{"type":"number","description":"Virtual LAN identifier or tag that is used to distinguish VLANs. Must be equal for all computers that belong to the same VLAN."}},"type":"object"}},"routeros:index/interfaceVrrp:InterfaceVrrp":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst interfaceVrrp = new routeros.InterfaceVrrp(\"interface_vrrp\", {\n    \"interface\": \"bridge\",\n    name: \"lan_vrrp\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ninterface_vrrp = routeros.InterfaceVrrp(\"interface_vrrp\",\n    interface=\"bridge\",\n    name=\"lan_vrrp\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var interfaceVrrp = new Routeros.InterfaceVrrp(\"interface_vrrp\", new()\n    {\n        Interface = \"bridge\",\n        Name = \"lan_vrrp\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceVrrp(ctx, \"interface_vrrp\", \u0026routeros.InterfaceVrrpArgs{\n\t\t\tInterface: pulumi.String(\"bridge\"),\n\t\t\tName:      pulumi.String(\"lan_vrrp\"),\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.routeros.InterfaceVrrp;\nimport com.pulumi.routeros.InterfaceVrrpArgs;\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 interfaceVrrp = new InterfaceVrrp(\"interfaceVrrp\", InterfaceVrrpArgs.builder()\n            .interface_(\"bridge\")\n            .name(\"lan_vrrp\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  interfaceVrrp:\n    type: routeros:InterfaceVrrp\n    name: interface_vrrp\n    properties:\n      interface: bridge\n      name: lan_vrrp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/vrrp get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceVrrp:InterfaceVrrp interface_vrrp \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceVrrp:InterfaceVrrp interface_vrrp \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"authentication":{"type":"string","description":"Authentication method to use for VRRP advertisement packets."},"comment":{"type":"string"},"connectionTrackingMode":{"type":"string","description":"Specifies the mode for connection tracking synchronization. This setting is only relevant when `sync-connection-tracking=yes` is enabled."},"connectionTrackingPort":{"type":"number","description":"Specifies UDP port for connection tracking synchronization. This setting is only relevant when `sync-connection-tracking=yes` is enabled."},"disabled":{"type":"boolean"},"groupAuthority":{"type":"string","description":"Allows combining multiple VRRP interfaces to maintain the same VRRP status within the group. \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e was previously called \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e is kept for compatibility with scripts, but if both are set only \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e will be taken into account."},"groupMaster":{"type":"string","description":"Allows combining multiple VRRP interfaces to maintain the same VRRP status within the group. \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e was previously called \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e is kept for compatibility with scripts, but if both are set only \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e will be taken into account."},"interface":{"type":"string","description":"Name of the interface."},"interfaceVrrpId":{"type":"string"},"interval":{"type":"string","description":"VRRP update interval in seconds. Defines how often master sends advertisement packets."},"invalid":{"type":"boolean"},"macAddress":{"type":"string","description":"Current mac address."},"mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"name":{"type":"string"},"onBackup":{"type":"string","description":"Script to execute when the node is switched to the backup state."},"onFail":{"type":"string","description":"Script to execute when the node fails."},"onMaster":{"type":"string","description":"Script to execute when the node is switched to master state."},"password":{"type":"string","description":"Password required for authentication. Can be ignored if authentication is not used.","secret":true},"preemptionMode":{"type":"boolean","description":"Whether the master node always has the priority. When set to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e the backup node will not be elected to be a master until the current master fails, even if the backup node has higher priority than the current master. This setting is ignored if the owner router becomes available"},"priority":{"type":"number","description":"Priority of VRRP node used in Master election algorithm. A higher number means higher priority. \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e is reserved for the router that owns VR IP and \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e is reserved for the Master router to indicate that it is releasing responsibility."},"remoteAddress":{"type":"string","description":"Specifies the remote address of the other VRRP router for syncing connection tracking. If not set, the system autodetects the remote address via VRRP. The remote address is used only if \u003cspan pulumi-lang-nodejs=\"`syncConnectionTracking \" pulumi-lang-dotnet=\"`SyncConnectionTracking \" pulumi-lang-go=\"`syncConnectionTracking \" pulumi-lang-python=\"`sync_connection_tracking \" pulumi-lang-yaml=\"`syncConnectionTracking \" pulumi-lang-java=\"`syncConnectionTracking \"\u003e`sync_connection_tracking \u003c/span\u003e= true`.Sync connection tracking uses UDP port 8275."},"running":{"type":"boolean"},"syncConnectionTracking":{"type":"boolean","description":"Synchronize connection tracking entries from Master to Backup device."},"v3Protocol":{"type":"string","description":"A protocol that will be used by VRRPv3. Valid only if the version is 3."},"version":{"type":"number","description":"Which VRRP version to use."},"vrid":{"type":"number","description":"Virtual Router identifier. Each Virtual router must have a unique id number."}},"type":"object","required":["interface","interfaceVrrpId","invalid","macAddress","mtu","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"authentication":{"type":"string","description":"Authentication method to use for VRRP advertisement packets."},"comment":{"type":"string"},"connectionTrackingMode":{"type":"string","description":"Specifies the mode for connection tracking synchronization. This setting is only relevant when `sync-connection-tracking=yes` is enabled."},"connectionTrackingPort":{"type":"number","description":"Specifies UDP port for connection tracking synchronization. This setting is only relevant when `sync-connection-tracking=yes` is enabled."},"disabled":{"type":"boolean"},"groupAuthority":{"type":"string","description":"Allows combining multiple VRRP interfaces to maintain the same VRRP status within the group. \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e was previously called \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e is kept for compatibility with scripts, but if both are set only \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e will be taken into account."},"groupMaster":{"type":"string","description":"Allows combining multiple VRRP interfaces to maintain the same VRRP status within the group. \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e was previously called \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e is kept for compatibility with scripts, but if both are set only \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e will be taken into account."},"interface":{"type":"string","description":"Name of the interface."},"interfaceVrrpId":{"type":"string"},"interval":{"type":"string","description":"VRRP update interval in seconds. Defines how often master sends advertisement packets."},"name":{"type":"string"},"onBackup":{"type":"string","description":"Script to execute when the node is switched to the backup state."},"onFail":{"type":"string","description":"Script to execute when the node fails."},"onMaster":{"type":"string","description":"Script to execute when the node is switched to master state."},"password":{"type":"string","description":"Password required for authentication. Can be ignored if authentication is not used.","secret":true},"preemptionMode":{"type":"boolean","description":"Whether the master node always has the priority. When set to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e the backup node will not be elected to be a master until the current master fails, even if the backup node has higher priority than the current master. This setting is ignored if the owner router becomes available"},"priority":{"type":"number","description":"Priority of VRRP node used in Master election algorithm. A higher number means higher priority. \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e is reserved for the router that owns VR IP and \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e is reserved for the Master router to indicate that it is releasing responsibility."},"remoteAddress":{"type":"string","description":"Specifies the remote address of the other VRRP router for syncing connection tracking. If not set, the system autodetects the remote address via VRRP. The remote address is used only if \u003cspan pulumi-lang-nodejs=\"`syncConnectionTracking \" pulumi-lang-dotnet=\"`SyncConnectionTracking \" pulumi-lang-go=\"`syncConnectionTracking \" pulumi-lang-python=\"`sync_connection_tracking \" pulumi-lang-yaml=\"`syncConnectionTracking \" pulumi-lang-java=\"`syncConnectionTracking \"\u003e`sync_connection_tracking \u003c/span\u003e= true`.Sync connection tracking uses UDP port 8275."},"syncConnectionTracking":{"type":"boolean","description":"Synchronize connection tracking entries from Master to Backup device."},"v3Protocol":{"type":"string","description":"A protocol that will be used by VRRPv3. Valid only if the version is 3."},"version":{"type":"number","description":"Which VRRP version to use."},"vrid":{"type":"number","description":"Virtual Router identifier. Each Virtual router must have a unique id number."}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceVrrp resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"authentication":{"type":"string","description":"Authentication method to use for VRRP advertisement packets."},"comment":{"type":"string"},"connectionTrackingMode":{"type":"string","description":"Specifies the mode for connection tracking synchronization. This setting is only relevant when `sync-connection-tracking=yes` is enabled."},"connectionTrackingPort":{"type":"number","description":"Specifies UDP port for connection tracking synchronization. This setting is only relevant when `sync-connection-tracking=yes` is enabled."},"disabled":{"type":"boolean"},"groupAuthority":{"type":"string","description":"Allows combining multiple VRRP interfaces to maintain the same VRRP status within the group. \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e was previously called \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e is kept for compatibility with scripts, but if both are set only \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e will be taken into account."},"groupMaster":{"type":"string","description":"Allows combining multiple VRRP interfaces to maintain the same VRRP status within the group. \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e was previously called \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e is kept for compatibility with scripts, but if both are set only \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e will be taken into account."},"interface":{"type":"string","description":"Name of the interface."},"interfaceVrrpId":{"type":"string"},"interval":{"type":"string","description":"VRRP update interval in seconds. Defines how often master sends advertisement packets."},"invalid":{"type":"boolean"},"macAddress":{"type":"string","description":"Current mac address."},"mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"name":{"type":"string"},"onBackup":{"type":"string","description":"Script to execute when the node is switched to the backup state."},"onFail":{"type":"string","description":"Script to execute when the node fails."},"onMaster":{"type":"string","description":"Script to execute when the node is switched to master state."},"password":{"type":"string","description":"Password required for authentication. Can be ignored if authentication is not used.","secret":true},"preemptionMode":{"type":"boolean","description":"Whether the master node always has the priority. When set to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e the backup node will not be elected to be a master until the current master fails, even if the backup node has higher priority than the current master. This setting is ignored if the owner router becomes available"},"priority":{"type":"number","description":"Priority of VRRP node used in Master election algorithm. A higher number means higher priority. \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e is reserved for the router that owns VR IP and \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e is reserved for the Master router to indicate that it is releasing responsibility."},"remoteAddress":{"type":"string","description":"Specifies the remote address of the other VRRP router for syncing connection tracking. If not set, the system autodetects the remote address via VRRP. The remote address is used only if \u003cspan pulumi-lang-nodejs=\"`syncConnectionTracking \" pulumi-lang-dotnet=\"`SyncConnectionTracking \" pulumi-lang-go=\"`syncConnectionTracking \" pulumi-lang-python=\"`sync_connection_tracking \" pulumi-lang-yaml=\"`syncConnectionTracking \" pulumi-lang-java=\"`syncConnectionTracking \"\u003e`sync_connection_tracking \u003c/span\u003e= true`.Sync connection tracking uses UDP port 8275."},"running":{"type":"boolean"},"syncConnectionTracking":{"type":"boolean","description":"Synchronize connection tracking entries from Master to Backup device."},"v3Protocol":{"type":"string","description":"A protocol that will be used by VRRPv3. Valid only if the version is 3."},"version":{"type":"number","description":"Which VRRP version to use."},"vrid":{"type":"number","description":"Virtual Router identifier. Each Virtual router must have a unique id number."}},"type":"object"}},"routeros:index/interfaceVxlan:InterfaceVxlan":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceVxlan(\"test\", {\n    name: \"vxlan1-test\",\n    vni: 10,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceVxlan(\"test\",\n    name=\"vxlan1-test\",\n    vni=10)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceVxlan(\"test\", new()\n    {\n        Name = \"vxlan1-test\",\n        Vni = 10,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceVxlan(ctx, \"test\", \u0026routeros.InterfaceVxlanArgs{\n\t\t\tName: pulumi.String(\"vxlan1-test\"),\n\t\t\tVni:  pulumi.Float64(10),\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.routeros.InterfaceVxlan;\nimport com.pulumi.routeros.InterfaceVxlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceVxlan(\"test\", InterfaceVxlanArgs.builder()\n            .name(\"vxlan1-test\")\n            .vni(10.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceVxlan\n    properties:\n      name: vxlan1-test\n      vni: 10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/vxlan get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceVxlan:InterfaceVxlan test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceVxlan:InterfaceVxlan test \"name=vxlan1\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowFastPath":{"type":"boolean","description":"Whether to allow Fast Path processing. Fragmented and flooded packets over VXLAN are redirected via a slow path. Fast Path is disabled for VXLAN interface that uses IPv6 VTEP version or VRF. The setting is available since RouterOS version 7.8."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"checksum":{"type":"boolean","description":"Setting controls whether a UDP checksum is calculated in the transmitted outer VXLAN packets:\n    - \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e - the UDP checksum is set to zero in transmitted outer packets. This also allows receiving VXLAN packets over IPv6 that have a zero UDP checksum.\n    - \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e - the UDP checksum is calculated in transmitted outer packets.\nIf hardware offloading is used for packet transmission, this setting is ignored, and the behavior defaults to sending packets with a zero UDP checksum."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string","description":"The Don't Fragment (DF) flag controls whether a packet can be broken into smaller packets, called fragments, before being sent over a network. When configuring VXLAN, this setting determines the presence of the DF flag on the outer IPv4 header and can control packet fragmentation if the encapsulated packet exceeds the outgoing interface MTU. This setting has three options:\n  * disabled - the DF flag is not set on the outer IPv4 header, which means that packets can be fragmented if they are too large to be sent over the outgoing interface. This also allows packet fragmentation when VXLAN uses IPv6 underlay. \n  * enabled - the DF flag is always set on the outer IPv4 header, which means that packets will not be fragmented and will be dropped if they exceed the outgoing interface's MTU. This also avoids packet fragmentation when VXLAN uses IPv6 underlay.\n  * inherit - The DF flag on the outer IPv4 header is based on the inner IPv4 DF flag. If the inner IPv4 header has the DF flag set, the outer IPv4 header will also have it set. If the packet exceeds the outgoing interface's MTU and DF is set, it will be dropped. If the inner packet is non-IP, the outer IPv4 header will not have the DF flag set and packets can be fragmented. If the inner packet is IPv6, the outer IPv4 header will always set the DF flag and packets cannot be fragmented. Note that when VXLAN uses IPv6 underlay, this setting does not have any effect and is treated the same as disabled. The setting is available since RouterOS version 7.8."},"group":{"type":"string","description":"When specified, a multicast group address can be used to forward broadcast, unknown-unicast, and multicast traffic between VTEPs. This property requires specifying the interface setting. The interface will use IGMP or MLD to join the specified multicast group, make sure to add the necessary PIM and IGMP/MDL configuration. When this property is set, the vteps-ip-version automatically gets updated to the used multicast IP version."},"hw":{"type":"boolean"},"hwOffloaded":{"type":"boolean","description":"Indicates whether the route is eligible to be hardware offloaded on supported hardware."},"interface":{"type":"string","description":"Interface name used for multicast forwarding. This property requires specifying the group setting."},"interfaceVxlanId":{"type":"string"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"learning":{"type":"boolean","description":"Setting controls whether inner source MAC addresses and remote VTEP IP/IPv6 addresses are learned dynamically from received packets."},"localAddress":{"type":"string","description":"Specifies the local source address for the VXLAN interface. If not set, one IP address of the egress interface will be selected as a source address for VXLAN packets. When the property is set, the vteps-ip-version automatically gets updated to the used local IP version. The setting is available since RouterOS version 7.7."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"string"},"macAddress":{"type":"string","description":"Static MAC address of the interface. A randomly generated MAC address will be assigned when not specified."},"maxFdbSize":{"type":"number","description":"Limits the maximum number of MAC addresses that VXLAN can store in the forwarding database (FDB)."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string","description":"Name of the interface."},"port":{"type":"number","description":"Used UDP port number."},"remCsum":{"type":"string","description":"Changes the Remote Checksum Offload (RCO) settings for VXLAN interface. RCO is a technique for eliding the inner checksum of an encapsulated datagram, allowing the outer checksum to be offloaded by network driver. It does, however, involve a change to the encapsulation protocols, which the receiver must also support. For this reason, it is disabled by default and setting is available to ensure compatibility with systems that rely on this feature.\nIf hardware offloading is used, this setting is ignored, and the behavior defaults to \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e."},"running":{"type":"boolean"},"ttl":{"type":"string"},"vni":{"type":"number","description":"VXLAN Network Identifier (VNI)."},"vrf":{"type":"string","description":"The VRF table this resource operates on."},"vtepsIpVersion":{"type":"string","description":"Used IP protocol version for statically configured VTEPs. The RouterOS VXLAN interface does not support dual-stack, any configured remote VTEPs with the opposite IP version will be ignored. When multicast group or local-address properties are set, the vteps-ip-version automatically gets updated to the used IP version. The setting is available since RouterOS version 7.6."}},"type":"object","required":["hwOffloaded","interfaceVxlanId","l2mtu","loopProtectStatus","mtu","name","running","ttl"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowFastPath":{"type":"boolean","description":"Whether to allow Fast Path processing. Fragmented and flooded packets over VXLAN are redirected via a slow path. Fast Path is disabled for VXLAN interface that uses IPv6 VTEP version or VRF. The setting is available since RouterOS version 7.8."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"checksum":{"type":"boolean","description":"Setting controls whether a UDP checksum is calculated in the transmitted outer VXLAN packets:\n    - \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e - the UDP checksum is set to zero in transmitted outer packets. This also allows receiving VXLAN packets over IPv6 that have a zero UDP checksum.\n    - \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e - the UDP checksum is calculated in transmitted outer packets.\nIf hardware offloading is used for packet transmission, this setting is ignored, and the behavior defaults to sending packets with a zero UDP checksum."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string","description":"The Don't Fragment (DF) flag controls whether a packet can be broken into smaller packets, called fragments, before being sent over a network. When configuring VXLAN, this setting determines the presence of the DF flag on the outer IPv4 header and can control packet fragmentation if the encapsulated packet exceeds the outgoing interface MTU. This setting has three options:\n  * disabled - the DF flag is not set on the outer IPv4 header, which means that packets can be fragmented if they are too large to be sent over the outgoing interface. This also allows packet fragmentation when VXLAN uses IPv6 underlay. \n  * enabled - the DF flag is always set on the outer IPv4 header, which means that packets will not be fragmented and will be dropped if they exceed the outgoing interface's MTU. This also avoids packet fragmentation when VXLAN uses IPv6 underlay.\n  * inherit - The DF flag on the outer IPv4 header is based on the inner IPv4 DF flag. If the inner IPv4 header has the DF flag set, the outer IPv4 header will also have it set. If the packet exceeds the outgoing interface's MTU and DF is set, it will be dropped. If the inner packet is non-IP, the outer IPv4 header will not have the DF flag set and packets can be fragmented. If the inner packet is IPv6, the outer IPv4 header will always set the DF flag and packets cannot be fragmented. Note that when VXLAN uses IPv6 underlay, this setting does not have any effect and is treated the same as disabled. The setting is available since RouterOS version 7.8."},"group":{"type":"string","description":"When specified, a multicast group address can be used to forward broadcast, unknown-unicast, and multicast traffic between VTEPs. This property requires specifying the interface setting. The interface will use IGMP or MLD to join the specified multicast group, make sure to add the necessary PIM and IGMP/MDL configuration. When this property is set, the vteps-ip-version automatically gets updated to the used multicast IP version."},"hw":{"type":"boolean"},"interface":{"type":"string","description":"Interface name used for multicast forwarding. This property requires specifying the group setting."},"interfaceVxlanId":{"type":"string"},"learning":{"type":"boolean","description":"Setting controls whether inner source MAC addresses and remote VTEP IP/IPv6 addresses are learned dynamically from received packets."},"localAddress":{"type":"string","description":"Specifies the local source address for the VXLAN interface. If not set, one IP address of the egress interface will be selected as a source address for VXLAN packets. When the property is set, the vteps-ip-version automatically gets updated to the used local IP version. The setting is available since RouterOS version 7.7."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"macAddress":{"type":"string","description":"Static MAC address of the interface. A randomly generated MAC address will be assigned when not specified."},"maxFdbSize":{"type":"number","description":"Limits the maximum number of MAC addresses that VXLAN can store in the forwarding database (FDB)."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string","description":"Name of the interface."},"port":{"type":"number","description":"Used UDP port number."},"remCsum":{"type":"string","description":"Changes the Remote Checksum Offload (RCO) settings for VXLAN interface. RCO is a technique for eliding the inner checksum of an encapsulated datagram, allowing the outer checksum to be offloaded by network driver. It does, however, involve a change to the encapsulation protocols, which the receiver must also support. For this reason, it is disabled by default and setting is available to ensure compatibility with systems that rely on this feature.\nIf hardware offloading is used, this setting is ignored, and the behavior defaults to \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e."},"vni":{"type":"number","description":"VXLAN Network Identifier (VNI)."},"vrf":{"type":"string","description":"The VRF table this resource operates on."},"vtepsIpVersion":{"type":"string","description":"Used IP protocol version for statically configured VTEPs. The RouterOS VXLAN interface does not support dual-stack, any configured remote VTEPs with the opposite IP version will be ignored. When multicast group or local-address properties are set, the vteps-ip-version automatically gets updated to the used IP version. The setting is available since RouterOS version 7.6."}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceVxlan resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowFastPath":{"type":"boolean","description":"Whether to allow Fast Path processing. Fragmented and flooded packets over VXLAN are redirected via a slow path. Fast Path is disabled for VXLAN interface that uses IPv6 VTEP version or VRF. The setting is available since RouterOS version 7.8."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"checksum":{"type":"boolean","description":"Setting controls whether a UDP checksum is calculated in the transmitted outer VXLAN packets:\n    - \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e - the UDP checksum is set to zero in transmitted outer packets. This also allows receiving VXLAN packets over IPv6 that have a zero UDP checksum.\n    - \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e - the UDP checksum is calculated in transmitted outer packets.\nIf hardware offloading is used for packet transmission, this setting is ignored, and the behavior defaults to sending packets with a zero UDP checksum."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string","description":"The Don't Fragment (DF) flag controls whether a packet can be broken into smaller packets, called fragments, before being sent over a network. When configuring VXLAN, this setting determines the presence of the DF flag on the outer IPv4 header and can control packet fragmentation if the encapsulated packet exceeds the outgoing interface MTU. This setting has three options:\n  * disabled - the DF flag is not set on the outer IPv4 header, which means that packets can be fragmented if they are too large to be sent over the outgoing interface. This also allows packet fragmentation when VXLAN uses IPv6 underlay. \n  * enabled - the DF flag is always set on the outer IPv4 header, which means that packets will not be fragmented and will be dropped if they exceed the outgoing interface's MTU. This also avoids packet fragmentation when VXLAN uses IPv6 underlay.\n  * inherit - The DF flag on the outer IPv4 header is based on the inner IPv4 DF flag. If the inner IPv4 header has the DF flag set, the outer IPv4 header will also have it set. If the packet exceeds the outgoing interface's MTU and DF is set, it will be dropped. If the inner packet is non-IP, the outer IPv4 header will not have the DF flag set and packets can be fragmented. If the inner packet is IPv6, the outer IPv4 header will always set the DF flag and packets cannot be fragmented. Note that when VXLAN uses IPv6 underlay, this setting does not have any effect and is treated the same as disabled. The setting is available since RouterOS version 7.8."},"group":{"type":"string","description":"When specified, a multicast group address can be used to forward broadcast, unknown-unicast, and multicast traffic between VTEPs. This property requires specifying the interface setting. The interface will use IGMP or MLD to join the specified multicast group, make sure to add the necessary PIM and IGMP/MDL configuration. When this property is set, the vteps-ip-version automatically gets updated to the used multicast IP version."},"hw":{"type":"boolean"},"hwOffloaded":{"type":"boolean","description":"Indicates whether the route is eligible to be hardware offloaded on supported hardware."},"interface":{"type":"string","description":"Interface name used for multicast forwarding. This property requires specifying the group setting."},"interfaceVxlanId":{"type":"string"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"learning":{"type":"boolean","description":"Setting controls whether inner source MAC addresses and remote VTEP IP/IPv6 addresses are learned dynamically from received packets."},"localAddress":{"type":"string","description":"Specifies the local source address for the VXLAN interface. If not set, one IP address of the egress interface will be selected as a source address for VXLAN packets. When the property is set, the vteps-ip-version automatically gets updated to the used local IP version. The setting is available since RouterOS version 7.7."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"string"},"macAddress":{"type":"string","description":"Static MAC address of the interface. A randomly generated MAC address will be assigned when not specified."},"maxFdbSize":{"type":"number","description":"Limits the maximum number of MAC addresses that VXLAN can store in the forwarding database (FDB)."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string","description":"Name of the interface."},"port":{"type":"number","description":"Used UDP port number."},"remCsum":{"type":"string","description":"Changes the Remote Checksum Offload (RCO) settings for VXLAN interface. RCO is a technique for eliding the inner checksum of an encapsulated datagram, allowing the outer checksum to be offloaded by network driver. It does, however, involve a change to the encapsulation protocols, which the receiver must also support. For this reason, it is disabled by default and setting is available to ensure compatibility with systems that rely on this feature.\nIf hardware offloading is used, this setting is ignored, and the behavior defaults to \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e."},"running":{"type":"boolean"},"ttl":{"type":"string"},"vni":{"type":"number","description":"VXLAN Network Identifier (VNI)."},"vrf":{"type":"string","description":"The VRF table this resource operates on."},"vtepsIpVersion":{"type":"string","description":"Used IP protocol version for statically configured VTEPs. The RouterOS VXLAN interface does not support dual-stack, any configured remote VTEPs with the opposite IP version will be ignored. When multicast group or local-address properties are set, the vteps-ip-version automatically gets updated to the used IP version. The setting is available since RouterOS version 7.6."}},"type":"object"}},"routeros:index/interfaceVxlanVteps:InterfaceVxlanVteps":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test_2 = new routeros.InterfaceVxlan(\"test-2\", {\n    name: \"vxlan2-test\",\n    vni: 11,\n});\nconst test = new routeros.InterfaceVxlanVteps(\"test\", {\n    \"interface\": test_2.name,\n    remoteIp: \"192.168.10.10\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_2 = routeros.InterfaceVxlan(\"test-2\",\n    name=\"vxlan2-test\",\n    vni=11)\ntest = routeros.InterfaceVxlanVteps(\"test\",\n    interface=test_2.name,\n    remote_ip=\"192.168.10.10\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test_2 = new Routeros.InterfaceVxlan(\"test-2\", new()\n    {\n        Name = \"vxlan2-test\",\n        Vni = 11,\n    });\n\n    var test = new Routeros.InterfaceVxlanVteps(\"test\", new()\n    {\n        Interface = test_2.Name,\n        RemoteIp = \"192.168.10.10\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest_2, err := routeros.NewInterfaceVxlan(ctx, \"test-2\", \u0026routeros.InterfaceVxlanArgs{\n\t\t\tName: pulumi.String(\"vxlan2-test\"),\n\t\t\tVni:  pulumi.Float64(11),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewInterfaceVxlanVteps(ctx, \"test\", \u0026routeros.InterfaceVxlanVtepsArgs{\n\t\t\tInterface: test_2.Name,\n\t\t\tRemoteIp:  pulumi.String(\"192.168.10.10\"),\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.routeros.InterfaceVxlan;\nimport com.pulumi.routeros.InterfaceVxlanArgs;\nimport com.pulumi.routeros.InterfaceVxlanVteps;\nimport com.pulumi.routeros.InterfaceVxlanVtepsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test_2 = new InterfaceVxlan(\"test-2\", InterfaceVxlanArgs.builder()\n            .name(\"vxlan2-test\")\n            .vni(11.0)\n            .build());\n\n        var test = new InterfaceVxlanVteps(\"test\", InterfaceVxlanVtepsArgs.builder()\n            .interface_(test_2.name())\n            .remoteIp(\"192.168.10.10\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test-2:\n    type: routeros:InterfaceVxlan\n    properties:\n      name: vxlan2-test\n      vni: 11\n  test:\n    type: routeros:InterfaceVxlanVteps\n    properties:\n      interface: ${[\"test-2\"].name}\n      remoteIp: 192.168.10.10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/vxlan/vteps get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceVxlanVteps:InterfaceVxlanVteps test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceVxlanVteps:InterfaceVxlanVteps test \"interface=vxlan2-test\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"hwOffloaded":{"type":"boolean","description":"Indicates whether the route is eligible to be hardware offloaded on supported hardware.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceVxlanVtepsId":{"type":"string","description":"The ID of this resource.\n"},"port":{"type":"number","description":"Used UDP port number.\n"},"remoteIp":{"type":"string","description":"The IPv4 or IPv6 destination address of remote VTEP.\n"}},"type":"object","required":["hwOffloaded","interface","interfaceVxlanVtepsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceVxlanVtepsId":{"type":"string","description":"The ID of this resource.\n"},"port":{"type":"number","description":"Used UDP port number.\n"},"remoteIp":{"type":"string","description":"The IPv4 or IPv6 destination address of remote VTEP.\n"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceVxlanVteps resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"hwOffloaded":{"type":"boolean","description":"Indicates whether the route is eligible to be hardware offloaded on supported hardware.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceVxlanVtepsId":{"type":"string","description":"The ID of this resource.\n"},"port":{"type":"number","description":"Used UDP port number.\n"},"remoteIp":{"type":"string","description":"The IPv4 or IPv6 destination address of remote VTEP.\n"}},"type":"object"}},"routeros:index/interfaceW60g:InterfaceW60g":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceW60g\n    properties:\n      make: wlan60-1\n      password: put_your_safe_password_here\n      ssid: put_your_new_ssid_here\n      disabled: false\n      mode: ap-bridge\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/w60g get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceW60g:InterfaceW60g test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceW60g:InterfaceW60g test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"frequency":{"type":"string","description":"Frequency used in communication (Only active on bridge device)."},"interfaceW60gId":{"type":"string"},"isolateStations":{"type":"boolean","description":"Don't allow communication between connected clients (from RouterOS 6.41)."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"macAddress":{"type":"string","description":"MAC address of the radio interface."},"mdmgFix":{"type":"boolean","description":"Experimental feature working only on wAP60Gx3 devices, providing better point to multi point stability in some cases."},"mode":{"type":"string","description":"Operation mode."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string","description":"Name of the interface."},"password":{"type":"string","description":"Password used for AES encryption.","secret":true},"putStationsInBridge":{"type":"string","description":"Put newly created station device interfaces in this bridge."},"region":{"type":"string","description":"Parameter to limit frequency use."},"running":{"type":"boolean"},"scanLists":{"type":"array","items":{"type":"string"},"description":"Scan list to limit connectivity over frequencies in station mode."},"ssid":{"type":"string","description":"SSID (service set identifier) is a name that identifies wireless network (0..32 char)."},"txSector":{"type":"number","description":"Disables beamforming and locks to selected radiation pattern."}},"type":"object","required":["interfaceW60gId","mtu","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"frequency":{"type":"string","description":"Frequency used in communication (Only active on bridge device)."},"interfaceW60gId":{"type":"string"},"isolateStations":{"type":"boolean","description":"Don't allow communication between connected clients (from RouterOS 6.41)."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"macAddress":{"type":"string","description":"MAC address of the radio interface."},"mdmgFix":{"type":"boolean","description":"Experimental feature working only on wAP60Gx3 devices, providing better point to multi point stability in some cases."},"mode":{"type":"string","description":"Operation mode."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string","description":"Name of the interface."},"password":{"type":"string","description":"Password used for AES encryption.","secret":true},"putStationsInBridge":{"type":"string","description":"Put newly created station device interfaces in this bridge."},"region":{"type":"string","description":"Parameter to limit frequency use."},"scanLists":{"type":"array","items":{"type":"string"},"description":"Scan list to limit connectivity over frequencies in station mode."},"ssid":{"type":"string","description":"SSID (service set identifier) is a name that identifies wireless network (0..32 char)."},"txSector":{"type":"number","description":"Disables beamforming and locks to selected radiation pattern."}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceW60g resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"frequency":{"type":"string","description":"Frequency used in communication (Only active on bridge device)."},"interfaceW60gId":{"type":"string"},"isolateStations":{"type":"boolean","description":"Don't allow communication between connected clients (from RouterOS 6.41)."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"macAddress":{"type":"string","description":"MAC address of the radio interface."},"mdmgFix":{"type":"boolean","description":"Experimental feature working only on wAP60Gx3 devices, providing better point to multi point stability in some cases."},"mode":{"type":"string","description":"Operation mode."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string","description":"Name of the interface."},"password":{"type":"string","description":"Password used for AES encryption.","secret":true},"putStationsInBridge":{"type":"string","description":"Put newly created station device interfaces in this bridge."},"region":{"type":"string","description":"Parameter to limit frequency use."},"running":{"type":"boolean"},"scanLists":{"type":"array","items":{"type":"string"},"description":"Scan list to limit connectivity over frequencies in station mode."},"ssid":{"type":"string","description":"SSID (service set identifier) is a name that identifies wireless network (0..32 char)."},"txSector":{"type":"number","description":"Disables beamforming and locks to selected radiation pattern."}},"type":"object"}},"routeros:index/interfaceW60gStation:InterfaceW60gStation":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceW60gStation\n    properties:\n      name: wlan60-station-1\n      parent: wlan60-1\n      remote-address: AA:AA:AA:AA:AA:AA\n      put-in-bridge: parent\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/w60g/station get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceW60gStation:InterfaceW60gStation test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceW60gStation:InterfaceW60gStation test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"disabled":{"type":"boolean"},"interfaceW60gStationId":{"type":"string"},"macAddress":{"type":"string","description":"MAC address of the station interface."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string","description":"Name of the interface."},"parent":{"type":"string","description":"Parent interface name."},"putInBridge":{"type":"string","description":"Add station device interface to specific bridge."},"remoteAddress":{"type":"string","description":"MAC address of bridge interface, station is connecting to."},"running":{"type":"boolean"}},"type":"object","required":["interfaceW60gStationId","macAddress","mtu","name","parent","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"disabled":{"type":"boolean"},"interfaceW60gStationId":{"type":"string"},"macAddress":{"type":"string","description":"MAC address of the station interface."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string","description":"Name of the interface."},"parent":{"type":"string","description":"Parent interface name."},"putInBridge":{"type":"string","description":"Add station device interface to specific bridge."},"remoteAddress":{"type":"string","description":"MAC address of bridge interface, station is connecting to."}},"requiredInputs":["macAddress","parent"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceW60gStation resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"disabled":{"type":"boolean"},"interfaceW60gStationId":{"type":"string"},"macAddress":{"type":"string","description":"MAC address of the station interface."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string","description":"Name of the interface."},"parent":{"type":"string","description":"Parent interface name."},"putInBridge":{"type":"string","description":"Add station device interface to specific bridge."},"remoteAddress":{"type":"string","description":"MAC address of bridge interface, station is connecting to."},"running":{"type":"boolean"}},"type":"object"}},"routeros:index/interfaceWireguard:InterfaceWireguard":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testWgInterface = new routeros.InterfaceWireguard(\"test_wg_interface\", {\n    name: \"test_wg_interface\",\n    listenPort: 13231,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_wg_interface = routeros.InterfaceWireguard(\"test_wg_interface\",\n    name=\"test_wg_interface\",\n    listen_port=13231)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testWgInterface = new Routeros.InterfaceWireguard(\"test_wg_interface\", new()\n    {\n        Name = \"test_wg_interface\",\n        ListenPort = 13231,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceWireguard(ctx, \"test_wg_interface\", \u0026routeros.InterfaceWireguardArgs{\n\t\t\tName:       pulumi.String(\"test_wg_interface\"),\n\t\t\tListenPort: pulumi.Float64(13231),\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.routeros.InterfaceWireguard;\nimport com.pulumi.routeros.InterfaceWireguardArgs;\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 testWgInterface = new InterfaceWireguard(\"testWgInterface\", InterfaceWireguardArgs.builder()\n            .name(\"test_wg_interface\")\n            .listenPort(13231.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testWgInterface:\n    type: routeros:InterfaceWireguard\n    name: test_wg_interface\n    properties:\n      name: test_wg_interface\n      listenPort: '13231'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wireguard get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceWireguard:InterfaceWireguard test_wg_interface \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceWireguard:InterfaceWireguard test_wg_interface \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaceWireguardId":{"type":"string","description":"The ID of this resource.\n"},"listenPort":{"type":"number","description":"Port for WireGuard service to listen on for incoming sessions.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string"},"privateKey":{"type":"string","description":"A base64 private key. If not specified, it will be automatically generated upon interface creation.\n","secret":true},"publicKey":{"type":"string","description":"A base64 public key is calculated from the private key.\n"},"running":{"type":"boolean"}},"type":"object","required":["interfaceWireguardId","listenPort","mtu","name","privateKey","publicKey","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaceWireguardId":{"type":"string","description":"The ID of this resource.\n"},"listenPort":{"type":"number","description":"Port for WireGuard service to listen on for incoming sessions.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string"},"privateKey":{"type":"string","description":"A base64 private key. If not specified, it will be automatically generated upon interface creation.\n","secret":true}},"requiredInputs":["listenPort"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceWireguard resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaceWireguardId":{"type":"string","description":"The ID of this resource.\n"},"listenPort":{"type":"number","description":"Port for WireGuard service to listen on for incoming sessions.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string"},"privateKey":{"type":"string","description":"A base64 private key. If not specified, it will be automatically generated upon interface creation.\n","secret":true},"publicKey":{"type":"string","description":"A base64 public key is calculated from the private key.\n"},"running":{"type":"boolean"}},"type":"object"}},"routeros:index/interfaceWireguardPeer:InterfaceWireguardPeer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testWgInterface = new routeros.InterfaceWireguard(\"test_wg_interface\", {\n    name: \"test_wg_interface\",\n    listenPort: 13231,\n});\nconst wgPeer = new routeros.InterfaceWireguardPeer(\"wg_peer\", {\n    \"interface\": testWgInterface.name,\n    publicKey: \"MY_BASE_64_PUBLIC_KEY\",\n    allowedAddresses: [\n        \"192.168.0.0/16\",\n        \"172.16.0.0/12\",\n        \"10.0.0.0/8\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_wg_interface = routeros.InterfaceWireguard(\"test_wg_interface\",\n    name=\"test_wg_interface\",\n    listen_port=13231)\nwg_peer = routeros.InterfaceWireguardPeer(\"wg_peer\",\n    interface=test_wg_interface.name,\n    public_key=\"MY_BASE_64_PUBLIC_KEY\",\n    allowed_addresses=[\n        \"192.168.0.0/16\",\n        \"172.16.0.0/12\",\n        \"10.0.0.0/8\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testWgInterface = new Routeros.InterfaceWireguard(\"test_wg_interface\", new()\n    {\n        Name = \"test_wg_interface\",\n        ListenPort = 13231,\n    });\n\n    var wgPeer = new Routeros.InterfaceWireguardPeer(\"wg_peer\", new()\n    {\n        Interface = testWgInterface.Name,\n        PublicKey = \"MY_BASE_64_PUBLIC_KEY\",\n        AllowedAddresses = new[]\n        {\n            \"192.168.0.0/16\",\n            \"172.16.0.0/12\",\n            \"10.0.0.0/8\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestWgInterface, err := routeros.NewInterfaceWireguard(ctx, \"test_wg_interface\", \u0026routeros.InterfaceWireguardArgs{\n\t\t\tName:       pulumi.String(\"test_wg_interface\"),\n\t\t\tListenPort: pulumi.Float64(13231),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewInterfaceWireguardPeer(ctx, \"wg_peer\", \u0026routeros.InterfaceWireguardPeerArgs{\n\t\t\tInterface: testWgInterface.Name,\n\t\t\tPublicKey: pulumi.String(\"MY_BASE_64_PUBLIC_KEY\"),\n\t\t\tAllowedAddresses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.0.0/16\"),\n\t\t\t\tpulumi.String(\"172.16.0.0/12\"),\n\t\t\t\tpulumi.String(\"10.0.0.0/8\"),\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.routeros.InterfaceWireguard;\nimport com.pulumi.routeros.InterfaceWireguardArgs;\nimport com.pulumi.routeros.InterfaceWireguardPeer;\nimport com.pulumi.routeros.InterfaceWireguardPeerArgs;\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 testWgInterface = new InterfaceWireguard(\"testWgInterface\", InterfaceWireguardArgs.builder()\n            .name(\"test_wg_interface\")\n            .listenPort(13231.0)\n            .build());\n\n        var wgPeer = new InterfaceWireguardPeer(\"wgPeer\", InterfaceWireguardPeerArgs.builder()\n            .interface_(testWgInterface.name())\n            .publicKey(\"MY_BASE_64_PUBLIC_KEY\")\n            .allowedAddresses(            \n                \"192.168.0.0/16\",\n                \"172.16.0.0/12\",\n                \"10.0.0.0/8\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testWgInterface:\n    type: routeros:InterfaceWireguard\n    name: test_wg_interface\n    properties:\n      name: test_wg_interface\n      listenPort: '13231'\n  wgPeer:\n    type: routeros:InterfaceWireguardPeer\n    name: wg_peer\n    properties:\n      interface: ${testWgInterface.name}\n      publicKey: MY_BASE_64_PUBLIC_KEY\n      allowedAddresses:\n        - 192.168.0.0/16\n        - 172.16.0.0/12\n        - 10.0.0.0/8\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wireguard/peers get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceWireguardPeer:InterfaceWireguardPeer wg_peer \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceWireguardPeer:InterfaceWireguardPeer wg_peer \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowedAddresses":{"type":"array","items":{"type":"string"},"description":"List of IP (v4 or v6) addresses with CIDR masks from which incoming traffic for this peer is allowed and to which outgoing traffic for this peer is directed. The catch-all 0.0.0.0/0 may be specified for matching all IPv4 addresses, and ::/0 may be specified for matching all IPv6 addresses.\n"},"clientAddress":{"type":"string","description":"When imported using a qr code for a client (for example, a phone), then this address for the wg interface is set on that device.\n"},"clientDns":{"type":"string","description":"Specify when using WireGuard Server as a VPN gateway for peer traffic.\n"},"clientEndpoint":{"type":"string","description":"The IP address and port number of the WireGuard Server.\n"},"clientKeepalive":{"type":"string","description":"Same as persistent-keepalive but from peer side.\n"},"clientListenPort":{"type":"number","description":"The local port upon which this WireGuard tunnel will listen for incoming traffic from peers, and the port from which it will source outgoing packets.\n"},"comment":{"type":"string"},"currentEndpointAddress":{"type":"string","description":"The most recent source IP address of correctly authenticated packets from the peer.\n"},"currentEndpointPort":{"type":"number","description":"The most recent source IP port of correctly authenticated packets from the peer.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"endpointAddress":{"type":"string","description":"An endpoint IP or hostname can be left blank to allow remote connection from any address.\n"},"endpointPort":{"type":"string","description":"An endpoint port can be left blank to allow remote connection from any port.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceWireguardPeerId":{"type":"string","description":"The ID of this resource.\n"},"isResponder":{"type":"boolean","description":"Specifies if peer is intended to be connection initiator or only responder. Should be used on WireGuard devices that are used as \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e for other devices as clients to connect to. Otherwise router will all repeatedly try to connect `endpoint-address` or `current-endpoint-address` causing unnecessary system logs to be written.\n"},"lastHandshake":{"type":"string","description":"Time in seconds after the last successful handshake.\n"},"name":{"type":"string","description":"Name of the tunnel.\n"},"persistentKeepalive":{"type":"string","description":"A seconds interval, between 1 and 65535 inclusive, of how often to send an authenticated empty packet to the peer for the purpose of keeping a stateful firewall or NAT mapping valid persistently. For example, if the interface very rarely sends traffic, but it might at anytime receive traffic from a peer, and it is behind NAT, the interface might benefit from having a persistent keepalive interval of 25 seconds.\n"},"presharedKey":{"type":"string","description":"A **base64** preshared key. Optional, and may be omitted. This option adds an additional layer of symmetric-key cryptography to be mixed into the already existing public-key cryptography, for post-quantum resistance.\n","secret":true},"privateKey":{"type":"string","description":"A base64 private key. If not specified, it will be automatically generated upon interface creation.\n"},"publicKey":{"type":"string","description":"The remote peer's calculated public key.\n"},"rx":{"type":"string","description":"The total amount of bytes received from the peer.\n"},"tx":{"type":"string","description":"The total amount of bytes transmitted to the peer.\n"}},"type":"object","required":["allowedAddresses","currentEndpointAddress","currentEndpointPort","dynamic","endpointAddress","endpointPort","interface","interfaceWireguardPeerId","lastHandshake","name","publicKey","rx","tx"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowedAddresses":{"type":"array","items":{"type":"string"},"description":"List of IP (v4 or v6) addresses with CIDR masks from which incoming traffic for this peer is allowed and to which outgoing traffic for this peer is directed. The catch-all 0.0.0.0/0 may be specified for matching all IPv4 addresses, and ::/0 may be specified for matching all IPv6 addresses.\n"},"clientAddress":{"type":"string","description":"When imported using a qr code for a client (for example, a phone), then this address for the wg interface is set on that device.\n"},"clientDns":{"type":"string","description":"Specify when using WireGuard Server as a VPN gateway for peer traffic.\n"},"clientEndpoint":{"type":"string","description":"The IP address and port number of the WireGuard Server.\n"},"clientKeepalive":{"type":"string","description":"Same as persistent-keepalive but from peer side.\n"},"clientListenPort":{"type":"number","description":"The local port upon which this WireGuard tunnel will listen for incoming traffic from peers, and the port from which it will source outgoing packets.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"endpointAddress":{"type":"string","description":"An endpoint IP or hostname can be left blank to allow remote connection from any address.\n"},"endpointPort":{"type":"string","description":"An endpoint port can be left blank to allow remote connection from any port.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceWireguardPeerId":{"type":"string","description":"The ID of this resource.\n"},"isResponder":{"type":"boolean","description":"Specifies if peer is intended to be connection initiator or only responder. Should be used on WireGuard devices that are used as \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e for other devices as clients to connect to. Otherwise router will all repeatedly try to connect `endpoint-address` or `current-endpoint-address` causing unnecessary system logs to be written.\n"},"name":{"type":"string","description":"Name of the tunnel.\n"},"persistentKeepalive":{"type":"string","description":"A seconds interval, between 1 and 65535 inclusive, of how often to send an authenticated empty packet to the peer for the purpose of keeping a stateful firewall or NAT mapping valid persistently. For example, if the interface very rarely sends traffic, but it might at anytime receive traffic from a peer, and it is behind NAT, the interface might benefit from having a persistent keepalive interval of 25 seconds.\n"},"presharedKey":{"type":"string","description":"A **base64** preshared key. Optional, and may be omitted. This option adds an additional layer of symmetric-key cryptography to be mixed into the already existing public-key cryptography, for post-quantum resistance.\n","secret":true},"privateKey":{"type":"string","description":"A base64 private key. If not specified, it will be automatically generated upon interface creation.\n"},"publicKey":{"type":"string","description":"The remote peer's calculated public key.\n"}},"requiredInputs":["allowedAddresses","interface","publicKey"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceWireguardPeer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowedAddresses":{"type":"array","items":{"type":"string"},"description":"List of IP (v4 or v6) addresses with CIDR masks from which incoming traffic for this peer is allowed and to which outgoing traffic for this peer is directed. The catch-all 0.0.0.0/0 may be specified for matching all IPv4 addresses, and ::/0 may be specified for matching all IPv6 addresses.\n"},"clientAddress":{"type":"string","description":"When imported using a qr code for a client (for example, a phone), then this address for the wg interface is set on that device.\n"},"clientDns":{"type":"string","description":"Specify when using WireGuard Server as a VPN gateway for peer traffic.\n"},"clientEndpoint":{"type":"string","description":"The IP address and port number of the WireGuard Server.\n"},"clientKeepalive":{"type":"string","description":"Same as persistent-keepalive but from peer side.\n"},"clientListenPort":{"type":"number","description":"The local port upon which this WireGuard tunnel will listen for incoming traffic from peers, and the port from which it will source outgoing packets.\n"},"comment":{"type":"string"},"currentEndpointAddress":{"type":"string","description":"The most recent source IP address of correctly authenticated packets from the peer.\n"},"currentEndpointPort":{"type":"number","description":"The most recent source IP port of correctly authenticated packets from the peer.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"endpointAddress":{"type":"string","description":"An endpoint IP or hostname can be left blank to allow remote connection from any address.\n"},"endpointPort":{"type":"string","description":"An endpoint port can be left blank to allow remote connection from any port.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"interfaceWireguardPeerId":{"type":"string","description":"The ID of this resource.\n"},"isResponder":{"type":"boolean","description":"Specifies if peer is intended to be connection initiator or only responder. Should be used on WireGuard devices that are used as \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e for other devices as clients to connect to. Otherwise router will all repeatedly try to connect `endpoint-address` or `current-endpoint-address` causing unnecessary system logs to be written.\n"},"lastHandshake":{"type":"string","description":"Time in seconds after the last successful handshake.\n"},"name":{"type":"string","description":"Name of the tunnel.\n"},"persistentKeepalive":{"type":"string","description":"A seconds interval, between 1 and 65535 inclusive, of how often to send an authenticated empty packet to the peer for the purpose of keeping a stateful firewall or NAT mapping valid persistently. For example, if the interface very rarely sends traffic, but it might at anytime receive traffic from a peer, and it is behind NAT, the interface might benefit from having a persistent keepalive interval of 25 seconds.\n"},"presharedKey":{"type":"string","description":"A **base64** preshared key. Optional, and may be omitted. This option adds an additional layer of symmetric-key cryptography to be mixed into the already existing public-key cryptography, for post-quantum resistance.\n","secret":true},"privateKey":{"type":"string","description":"A base64 private key. If not specified, it will be automatically generated upon interface creation.\n"},"publicKey":{"type":"string","description":"The remote peer's calculated public key.\n"},"rx":{"type":"string","description":"The total amount of bytes received from the peer.\n"},"tx":{"type":"string","description":"The total amount of bytes transmitted to the peer.\n"}},"type":"object"}},"routeros:index/interfaceWireless:InterfaceWireless":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst config = new pulumi.Config();\nconst wlan2ghzDisabled = config.getBoolean(\"wlan2ghzDisabled\") || false;\nconst wlan_2ghz = new routeros.InterfaceWireless(\"wlan-2ghz\", {\n    name: \"wlan1\",\n    disabled: wlan2ghzDisabled,\n});\nconst test = new routeros.InterfaceWirelessSecurityProfiles(\"test\", {\n    name: \"test-profile\",\n    mode: \"dynamic-keys\",\n    authenticationTypes: [\n        \"wpa-psk\",\n        \"wpa2-psk\",\n    ],\n    wpaPreSharedKey: \"wpa_psk_key\",\n    wpa2PreSharedKey: \"wpa2_psk_key\",\n});\nconst testInterfaceWireless = new routeros.InterfaceWireless(\"test\", {\n    securityProfile: routerosInterfaceWirelessSecurityProfiles.test.name,\n    mode: \"ap-bridge\",\n    masterInterface: routerosInterfaceWireless[\"wlan-2ghz\"].name,\n    name: \"wlan-guest\",\n    ssid: \"guests\",\n    basicRatesAgs: [\n        \"6Mbps\",\n        \"9Mbps\",\n    ],\n}, {\n    dependsOn: [routerosInterfaceWirelessSecurityProfiles.test],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nconfig = pulumi.Config()\nwlan2ghz_disabled = config.get_bool(\"wlan2ghzDisabled\")\nif wlan2ghz_disabled is None:\n    wlan2ghz_disabled = False\nwlan_2ghz = routeros.InterfaceWireless(\"wlan-2ghz\",\n    name=\"wlan1\",\n    disabled=wlan2ghz_disabled)\ntest = routeros.InterfaceWirelessSecurityProfiles(\"test\",\n    name=\"test-profile\",\n    mode=\"dynamic-keys\",\n    authentication_types=[\n        \"wpa-psk\",\n        \"wpa2-psk\",\n    ],\n    wpa_pre_shared_key=\"wpa_psk_key\",\n    wpa2_pre_shared_key=\"wpa2_psk_key\")\ntest_interface_wireless = routeros.InterfaceWireless(\"test\",\n    security_profile=routeros_interface_wireless_security_profiles[\"test\"][\"name\"],\n    mode=\"ap-bridge\",\n    master_interface=routeros_interface_wireless[\"wlan-2ghz\"][\"name\"],\n    name=\"wlan-guest\",\n    ssid=\"guests\",\n    basic_rates_ags=[\n        \"6Mbps\",\n        \"9Mbps\",\n    ],\n    opts = pulumi.ResourceOptions(depends_on=[routeros_interface_wireless_security_profiles[\"test\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var wlan2ghzDisabled = config.GetBoolean(\"wlan2ghzDisabled\") ?? false;\n    var wlan_2ghz = new Routeros.InterfaceWireless(\"wlan-2ghz\", new()\n    {\n        Name = \"wlan1\",\n        Disabled = wlan2ghzDisabled,\n    });\n\n    var test = new Routeros.InterfaceWirelessSecurityProfiles(\"test\", new()\n    {\n        Name = \"test-profile\",\n        Mode = \"dynamic-keys\",\n        AuthenticationTypes = new[]\n        {\n            \"wpa-psk\",\n            \"wpa2-psk\",\n        },\n        WpaPreSharedKey = \"wpa_psk_key\",\n        Wpa2PreSharedKey = \"wpa2_psk_key\",\n    });\n\n    var testInterfaceWireless = new Routeros.InterfaceWireless(\"test\", new()\n    {\n        SecurityProfile = routerosInterfaceWirelessSecurityProfiles.Test.Name,\n        Mode = \"ap-bridge\",\n        MasterInterface = routerosInterfaceWireless.Wlan_2ghz.Name,\n        Name = \"wlan-guest\",\n        Ssid = \"guests\",\n        BasicRatesAgs = new[]\n        {\n            \"6Mbps\",\n            \"9Mbps\",\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            routerosInterfaceWirelessSecurityProfiles.Test,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\twlan2ghzDisabled := false\n\t\tif param := cfg.GetBool(\"wlan2ghzDisabled\"); param {\n\t\t\twlan2ghzDisabled = param\n\t\t}\n\t\t_, err := routeros.NewInterfaceWireless(ctx, \"wlan-2ghz\", \u0026routeros.InterfaceWirelessArgs{\n\t\t\tName:     pulumi.String(\"wlan1\"),\n\t\t\tDisabled: pulumi.Bool(wlan2ghzDisabled),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewInterfaceWirelessSecurityProfiles(ctx, \"test\", \u0026routeros.InterfaceWirelessSecurityProfilesArgs{\n\t\t\tName: pulumi.String(\"test-profile\"),\n\t\t\tMode: pulumi.String(\"dynamic-keys\"),\n\t\t\tAuthenticationTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"wpa-psk\"),\n\t\t\t\tpulumi.String(\"wpa2-psk\"),\n\t\t\t},\n\t\t\tWpaPreSharedKey:  pulumi.String(\"wpa_psk_key\"),\n\t\t\tWpa2PreSharedKey: pulumi.String(\"wpa2_psk_key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewInterfaceWireless(ctx, \"test\", \u0026routeros.InterfaceWirelessArgs{\n\t\t\tSecurityProfile: pulumi.Any(routerosInterfaceWirelessSecurityProfiles.Test.Name),\n\t\t\tMode:            pulumi.String(\"ap-bridge\"),\n\t\t\tMasterInterface: pulumi.Any(routerosInterfaceWireless.Wlan2ghz.Name),\n\t\t\tName:            pulumi.String(\"wlan-guest\"),\n\t\t\tSsid:            pulumi.String(\"guests\"),\n\t\t\tBasicRatesAgs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"6Mbps\"),\n\t\t\t\tpulumi.String(\"9Mbps\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\trouterosInterfaceWirelessSecurityProfiles.Test,\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.routeros.InterfaceWireless;\nimport com.pulumi.routeros.InterfaceWirelessArgs;\nimport com.pulumi.routeros.InterfaceWirelessSecurityProfiles;\nimport com.pulumi.routeros.InterfaceWirelessSecurityProfilesArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var wlan2ghzDisabled = config.get(\"wlan2ghzDisabled\").orElse(false);\n        var wlan_2ghz = new InterfaceWireless(\"wlan-2ghz\", InterfaceWirelessArgs.builder()\n            .name(\"wlan1\")\n            .disabled(wlan2ghzDisabled)\n            .build());\n\n        var test = new InterfaceWirelessSecurityProfiles(\"test\", InterfaceWirelessSecurityProfilesArgs.builder()\n            .name(\"test-profile\")\n            .mode(\"dynamic-keys\")\n            .authenticationTypes(            \n                \"wpa-psk\",\n                \"wpa2-psk\")\n            .wpaPreSharedKey(\"wpa_psk_key\")\n            .wpa2PreSharedKey(\"wpa2_psk_key\")\n            .build());\n\n        var testInterfaceWireless = new InterfaceWireless(\"testInterfaceWireless\", InterfaceWirelessArgs.builder()\n            .securityProfile(routerosInterfaceWirelessSecurityProfiles.test().name())\n            .mode(\"ap-bridge\")\n            .masterInterface(routerosInterfaceWireless.wlan-2ghz().name())\n            .name(\"wlan-guest\")\n            .ssid(\"guests\")\n            .basicRatesAgs(            \n                \"6Mbps\",\n                \"9Mbps\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(routerosInterfaceWirelessSecurityProfiles.test())\n                .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  wlan2ghzDisabled:\n    type: bool\n    default: false\nresources:\n  wlan-2ghz:\n    type: routeros:InterfaceWireless\n    properties:\n      name: wlan1\n      disabled: ${wlan2ghzDisabled}\n  test:\n    type: routeros:InterfaceWirelessSecurityProfiles\n    properties:\n      name: test-profile\n      mode: dynamic-keys\n      authenticationTypes:\n        - wpa-psk\n        - wpa2-psk\n      wpaPreSharedKey: wpa_psk_key\n      wpa2PreSharedKey: wpa2_psk_key\n  testInterfaceWireless:\n    type: routeros:InterfaceWireless\n    name: test\n    properties:\n      securityProfile: ${routerosInterfaceWirelessSecurityProfiles.test.name}\n      mode: ap-bridge\n      masterInterface: ${routerosInterfaceWireless\"wlan-2ghz\"[%!s(MISSING)].name}\n      name: wlan-guest\n      ssid: guests\n      basicRatesAgs:\n        - 6Mbps\n        - 9Mbps\n    options:\n      dependsOn:\n        - ${routerosInterfaceWirelessSecurityProfiles.test}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wireless get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceWireless:InterfaceWireless test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceWireless:InterfaceWireless test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"adaptiveNoiseImmunity":{"type":"string","description":"This property is only effective for cards based on Atheros chipset."},"allowSharedkey":{"type":"boolean","description":"Allow WEP Shared Key clients to connect. Note that no authentication is done for these clients (WEP Shared keys are not compared to anything) - they are just accepted at once (if access list allows that)."},"ampduPriorities":{"type":"array","items":{"type":"number"},"description":"Frame priorities for which AMPDU sending (aggregating frames and sending using block acknowledgment) should get negotiated and used. Using AMPDUs will increase throughput, but may increase latency, therefore, may not be desirable for real-time traffic (voice, video). Due to this, by default AMPDUs are enabled only for best-effort traffic."},"amsduLimit":{"type":"number","description":"Max AMSDU that device is allowed to prepare when negotiated. AMSDU aggregation may significantly increase throughput especially for small frames, but may increase latency in case of packet loss due to retransmission of aggregated frame. Sending and receiving AMSDUs will also increase CPU usage."},"amsduThreshold":{"type":"number","description":"Max frame size to allow including in AMSDU."},"antennaGain":{"type":"number","description":"Antenna gain in dBi, used to calculate maximum transmit power according to country regulations."},"antennaMode":{"type":"string","description":"Select antenna to use for transmitting and for receiving: `ant-a` - use only 'a'; antenna `ant-b` - use only 'b'; antenna `txa-rxb` - use antenna 'a' for transmitting, antenna 'b' for receiving; `rxa-txb` - use antenna 'b' for transmitting, antenna 'a' for receiving."},"area":{"type":"string","description":"Identifies group of wireless networks. This value is announced by AP, and can be matched in  connect-list  by area-prefix. This is a proprietary extension."},"arp":{"type":"string","description":"ARP Mode."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in `/ip settings`, default is 30s."},"band":{"type":"string","description":"Defines set of used data rates, channel frequencies and widths."},"basicRatesAgs":{"type":"array","items":{"type":"string"},"description":"Similar to the basic-rates-b property, but used for 5ghz, 5ghz-10mhz, 5ghz-5mhz, 5ghz-turbo, 2.4ghz-b/g, 2.4ghz-onlyg, 2ghz-10mhz, 2ghz-5mhz and 2.4ghz-g-turbo bands."},"basicRatesBs":{"type":"array","items":{"type":"string"},"description":"List of basic rates, used for `2.4ghz-b`, `2.4ghz-b/g` and `2.4ghz-onlyg` bands.Client will connect to AP only if it supports all basic rates announced by the AP. AP will establish WDS link only if it supports all basic rates of the other AP.This property has effect only in AP modes, and when value of rate-set is configured."},"bridgeMode":{"type":"string","description":"Allows to use station-bridge mode."},"burstTime":{"type":"string","description":"Time in microseconds which will be used to send data without stopping. Note that no other wireless cards in that network will be able to transmit data during burst-time microseconds. This setting is available only for AR5000, AR5001X, and AR5001X+ chipset based cards."},"channelWidth":{"type":"string","description":"Use of extension channels (e.g. `C`e, `eC` etc) allows additional 20MHz extension channels and if it should be located below or above the control (main) channel. Extension channel allows 802.11n devices to use up to 40MHz (802.11ac up to 160MHz) of spectrum in total thus increasing max throughput. Channel widths with `XX` and `XXXX` extensions automatically scan for a less crowded control channel frequency based on the number of concurrent devices running in every frequency and chooses the `C` - Control channel frequency automatically."},"comment":{"type":"string"},"compression":{"type":"boolean","description":"Setting this property to yes will allow the use of the hardware compression. Wireless interface must have support for hardware compression. Connections with devices that do not use compression will still work."},"country":{"type":"string","description":"Limits available bands, frequencies and maximum transmit power for each frequency. Also specifies default value of scan-list. Value\u003cspan pulumi-lang-nodejs=\" noCountrySet \" pulumi-lang-dotnet=\" NoCountrySet \" pulumi-lang-go=\" noCountrySet \" pulumi-lang-python=\" no_country_set \" pulumi-lang-yaml=\" noCountrySet \" pulumi-lang-java=\" noCountrySet \"\u003e no_country_set \u003c/span\u003eis an FCC compliant set of channels."},"defaultApTxLimit":{"type":"number","description":"This is the value of ap-tx-limit for clients that do not match any entry in the  access-list. 0 means no limit."},"defaultAuthentication":{"type":"boolean","description":"For AP mode, this is the value of authentication for clients that do not match any entry in the  access-list. For station mode, this is the value of connect for APs that do not match any entry in the  connect-list."},"defaultClientTxLimit":{"type":"number","description":"This is the value of `client-tx-limit` for clients that do not match any entry in the access-list. 0 means no limit."},"defaultForwarding":{"type":"boolean","description":"This is the value of forwarding for clients that do not match any entry in the access-list."},"defaultName":{"type":"string"},"disableRunningCheck":{"type":"boolean","description":"When set to yes interface will always have running flag. If value is set to no', the router determines whether the card is up and running - for AP one or more clients have to be registered to it, for station, it should be connected to an AP."},"disabled":{"type":"boolean"},"disconnectTimeout":{"type":"string","description":"This interval is measured from third sending failure on the lowest data rate. At this point `3 * (hw-retries + 1)` frame transmits on the lowest data rate had failed. During disconnect-timeout packet transmission will be retried with on-fail-retry-time interval. If no frame can be transmitted successfully during disconnect-timeout, the connection is closed, and this event is logged as `extensive data loss`. Successful frame transmission resets this timer."},"distance":{"type":"string","description":"How long to wait for confirmation of unicast frames (ACKs) before considering transmission unsuccessful, or in short ACK-Timeout. Distance value has these behaviors:\n  * Dynamic - causes AP to detect and use the smallest timeout that works with all connected clients.\n  * Indoor - uses the default ACK timeout value that the hardware chip manufacturer has set.\n  * Number - uses the input value in formula: `ACK-timeout = ((distance * 1000) + 299) / 300 us`\nAcknowledgments are not used in Nstreme/NV2 protocols."},"frameLifetime":{"type":"number","description":"Discard frames that have been queued for sending longer than frame-lifetime. By default, when value of this property is 0, frames are discarded only after connection is closed."},"frequency":{"type":"string","description":"Channel frequency value in MHz on which AP will operate. Allowed values depend on the selected band, and are restricted by country setting and wireless card capabilities. This setting has no effect if interface is in any of station modes, or in wds-slave mode, or if DFS is active.Note: If using mode \u003cspan pulumi-lang-nodejs=\"`superchannel`\" pulumi-lang-dotnet=\"`Superchannel`\" pulumi-lang-go=\"`superchannel`\" pulumi-lang-python=\"`superchannel`\" pulumi-lang-yaml=\"`superchannel`\" pulumi-lang-java=\"`superchannel`\"\u003e`superchannel`\u003c/span\u003e."},"frequencyMode":{"type":"string","description":"Three frequency modes are available:\n  * regulatory-domain - Limit available channels and maximum transmit power for each channel according to the value of country\n  * manual-txpower - Same as above, but do not limit maximum transmit power\n  *\u003cspan pulumi-lang-nodejs=\"`superchannel`\" pulumi-lang-dotnet=\"`Superchannel`\" pulumi-lang-go=\"`superchannel`\" pulumi-lang-python=\"`superchannel`\" pulumi-lang-yaml=\"`superchannel`\" pulumi-lang-java=\"`superchannel`\"\u003e`superchannel`\u003c/span\u003e - Conformance Testing Mode. Allow all channels supported by the card.\nList of available channels for each band can be seen in `/interface wireless` info allowed-channels. This mode allows you to test wireless channels outside the default scan-list and/or regulatory domain. This mode should only be used in controlled environments, or if you have special permission to use it in your region. Before v4.3 this was called Custom Frequency Upgrade, or Superchannel. Since RouterOS v4.3 this mode is available without special key upgrades to all installations."},"frequencyOffset":{"type":"number","description":"Allows to specify offset if the used wireless card operates at a different frequency than is shown in RouterOS, in case a frequency converter is used in the card. So if your card works at 4000MHz but RouterOS shows 5000MHz, set offset to 1000MHz and it will be displayed correctly. The value is in MHz and can be positive or negative."},"guardInterval":{"type":"string","description":"Whether to allow use of short guard interval (refer to 802.11n MCS specification to see how this may affect throughput). \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\"\u003e`any`\u003c/span\u003e will use either short or long, depending on data rate, \u003cspan pulumi-lang-nodejs=\"`long`\" pulumi-lang-dotnet=\"`Long`\" pulumi-lang-go=\"`long`\" pulumi-lang-python=\"`long`\" pulumi-lang-yaml=\"`long`\" pulumi-lang-java=\"`long`\"\u003e`long`\u003c/span\u003e will use long."},"hideSsid":{"type":"boolean","description":"\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 - AP does not include SSID in the beacon frames, and does not reply to probe requests that have broadcast SSID. \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 - AP includes SSID in the beacon frames, and replies to probe requests that have broadcast SSID.This property has an effect only in AP mode. Setting it to yes can remove this network from the list of wireless networks that are shown by some client software. Changing this setting does not improve the security of the wireless network, because SSID is included in other frames sent by the AP."},"htBasicMcs":{"type":"array","items":{"type":"string"},"description":"Modulation and Coding Schemes that every connecting client must support. Refer to 802.11n for MCS specification."},"htSupportedMcs":{"type":"array","items":{"type":"string"},"description":"Modulation and Coding Schemes that this device advertises as supported. Refer to 802.11n for MCS specification."},"hwFragmentationThreshold":{"type":"string","description":"Specifies maximum fragment size in bytes when transmitted over the wireless medium. 802.11 standard packet (MSDU in 802.11 terminologies) fragmentation allows packets to be fragmented before transmitting over a wireless medium to increase the probability of successful transmission (only fragments that did not transmit correctly are retransmitted). Note that transmission of a fragmented packet is less efficient than transmitting unfragmented packet because of protocol overhead and increased resource usage at both - transmitting and receiving party."},"hwProtectionMode":{"type":"string","description":"Frame protection support property."},"hwProtectionThreshold":{"type":"number","description":"Frame protection support property read more \u003e\u003e."},"hwRetries":{"type":"number","description":"Number of times sending frame is retried without considering it a transmission failure. Data-rate is decreased upon failure and the frame is sent again. Three sequential failures on the lowest supported rate suspend transmission to this destination for the duration of on-fail-retry-time. After that, the frame is sent again. The frame is being retransmitted until transmission success, or until the client is disconnected after disconnect-timeout. The frame can be discarded during this time if frame-lifetime is exceeded."},"installation":{"type":"string","description":"Adjusts scan-list to use indoor, outdoor or all frequencies for the country that is set."},"interfaceType":{"type":"string"},"interfaceWirelessId":{"type":"string"},"interworkingProfile":{"type":"string"},"keepaliveFrames":{"type":"string","description":"Applies only if wireless interface is in `mode = ap-bridge`. If a client has not communicated for around 20 seconds, AP sends a `keepalive-frame`. Note, disabling the feature can lead to \u003cspan pulumi-lang-nodejs=\"`ghost`\" pulumi-lang-dotnet=\"`Ghost`\" pulumi-lang-go=\"`ghost`\" pulumi-lang-python=\"`ghost`\" pulumi-lang-yaml=\"`ghost`\" pulumi-lang-java=\"`ghost`\"\u003e`ghost`\u003c/span\u003e clients in registration-table."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"macAddress":{"type":"string","description":"MAC address."},"masterInterface":{"type":"string","description":"Name of wireless interface that has virtual-ap capability. Virtual AP interface will only work if master interface is in ap-bridge, bridge, station or wds-slave mode. This property is only for virtual AP interfaces."},"maxStationCount":{"type":"number","description":"Maximum number of associated clients. WDS links also count toward this limit."},"mode":{"type":"string","description":"Selection between different station and access point (AP) modes.\n  * Station modes: \u003cspan pulumi-lang-nodejs=\"`station`\" pulumi-lang-dotnet=\"`Station`\" pulumi-lang-go=\"`station`\" pulumi-lang-python=\"`station`\" pulumi-lang-yaml=\"`station`\" pulumi-lang-java=\"`station`\"\u003e`station`\u003c/span\u003e - Basic station mode. Find and connect to acceptable AP. `station-wds` - Same as station, but create WDS link with AP, using proprietary extension. AP configuration has to allow WDS links with this device. Note that this mode does not use entries in wds. `station-pseudobridge` - Same as station, but additionally perform MAC address translation of all traffic. Allows interface to be bridged. `station-pseudobridge-clone` - Same as station-pseudobridge, but use station-bridge-clone-mac address to connect to AP. `station-bridge` - Provides support for transparent protocol-independent L2 bridging on the station device. RouterOS AP accepts clients in station-bridge mode when enabled using bridge-mode parameter. In this mode, the AP maintains a forwarding table with information on which MAC addresses are reachable over which station device. Only works with RouterOS APs. With station-bridge mode, it is not possible to connect to CAPsMAN controlled CAP.\n  * AP modes: `ap-bridge` - Basic access point mode. \u003cspan pulumi-lang-nodejs=\"`bridge`\" pulumi-lang-dotnet=\"`Bridge`\" pulumi-lang-go=\"`bridge`\" pulumi-lang-python=\"`bridge`\" pulumi-lang-yaml=\"`bridge`\" pulumi-lang-java=\"`bridge`\"\u003e`bridge`\u003c/span\u003e - Same as ap-bridge, but limited to one associated client. `wds-slave` - Same as ap-bridge, but scan for AP with the same ssid and establishes WDS link. If this link is lost or cannot be established, then continue scanning. If dfs-mode is radar-detect, then APs with enabled hide-ssid will not be found during scanning.\n  * Special modes: `alignment-only` - Put the interface in a continuous transmit mode that is used for aiming the remote antenna. `nstreme-dual-slave` - allow this interface to be used in nstreme-dual setup. MAC address translation in pseudobridge modes works by inspecting packets and building a table of corresponding IP and MAC addresses. All packets are sent to AP with the MAC address used by pseudobridge, and MAC addresses of received packets are restored from the address translation table. There is a single entry in the address translation table for all non-IP packets, hence more than one host in the bridged network cannot reliably use non-IP protocols. Note: Currently IPv6 doesn't work over Pseudobridge."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"multicastBuffering":{"type":"string","description":"For a client that has power saving, buffer multicast packets until next beacon time. A client should wake up to receive a beacon, by receiving beacon it sees that there are multicast packets pending, and it should wait for multicast packets to be sent."},"multicastHelper":{"type":"string","description":"When set to full, multicast packets will be sent with a unicast destination MAC address, resolving  multicast problem on the wireless link. This option should be enabled only on the access point, clients should be configured in station-bridge mode. Available starting from v5.15.disabled - disables the helper and sends multicast packets with multicast destination MAC addressesdhcp - dhcp packet mac addresses are changed to unicast mac addresses prior to sending them outfull - all multicast packet mac address are changed to unicast mac addresses prior to sending them outdefault - default choice that currently is set to dhcp. Value can be changed in future releases."},"name":{"type":"string","description":"Name of the interface."},"noiseFloorThreshold":{"type":"string","description":"For advanced use only, as it can badly affect the performance of the interface. It is possible to manually set noise floor threshold value. By default, it is dynamically calculated. This property also affects received signal strength. This property is only effective on non-AC chips."},"nv2CellRadius":{"type":"number","description":"Setting affects the size of contention time slot that AP allocates for clients to initiate connection and also size of time slots used for estimating distance to client. When setting is too small, clients that are farther away may have trouble connecting and/or disconnect with `ranging timeout` error. Although during normal operation the effect of this setting should be negligible, in order to maintain maximum performance, it is advised to not increase this setting if not necessary, so AP is not reserving time that is actually never used, but instead allocates it for actual data transfer.on AP: distance to farthest client in kmon station: no effect."},"nv2DownlinkRatio":{"type":"number","description":"Specifies the Nv2 downlink ratio. Uplink ratio is automatically calculated from the downlink-ratio value. When using dynamic-downlink mode the downlink-ratio is also used when link get fully saturated. Minimum value is 20 and maximum 80."},"nv2Mode":{"type":"string","description":"Specifies to use dynamic or fixed downlink/uplink ratio."},"nv2NoiseFloorOffset":{"type":"string"},"nv2PresharedKey":{"type":"string","description":"Specifies preshared key to be used.","secret":true},"nv2Qos":{"type":"string","description":"Sets the packet priority mechanism, firstly data from high priority queue is sent, then lower queue priority data until 0 queue priority is reached. When link is full with high priority queue data, lower priority data is not sent. Use it very carefully, setting works on APframe-priority - manual setting that can be tuned with Mangle rules.default - default setting where small packets receive priority for best latency."},"nv2QueueCount":{"type":"number","description":"Specifies how many priority queues are used in Nv2 network."},"nv2Security":{"type":"string","description":"Specifies Nv2 security mode."},"nv2SyncSecret":{"type":"string","description":"Specifies secret key for use in the Nv2 synchronization. Secret should match on Master and Slave devices in order to establish the synced state.","secret":true},"onFailRetryTime":{"type":"string","description":"After third sending failure on the lowest data rate, wait for specified time interval before retrying."},"periodicCalibration":{"type":"string","description":"Setting default enables periodic calibration if  info  default-periodic-calibration property is enabled. Value of that property depends on the type of wireless card. This property is only effective for cards based on Atheros chipset."},"periodicCalibrationInterval":{"type":"number","description":"This property is only effective for cards based on Atheros chipset."},"preambleMode":{"type":"string","description":"Short preamble mode is an option of 802.11b standard that reduces per-frame overhead.On AP:\n  * long - Do not use short preamble.\n  * short - Announce short preamble capability. Do not accept connections from clients that do not have this capability.\n  * both - Announce short preamble capability.\nOn station:\n  *long - do not use short preamble.\n  * short - do not connect to AP if it does not support short preamble.\n  * both - Use short preamble if AP supports it."},"prismCardtype":{"type":"string","description":"Specify type of the installed Prism wireless card."},"proprietaryExtensions":{"type":"string","description":"RouterOS includes proprietary information in an information element of management frames. This parameter controls how this information is included. `pre-2.9.25` - This is older method. It can interoperate with newer versions of RouterOS. This method is incompatible with some clients, for example, Centrino based ones. `post-2.9.25` - This uses standardized way of including vendor specific information, that is compatible with newer wireless clients."},"radioName":{"type":"string","description":"Descriptive name of the device, that is shown in registration table entries on the remote devices. This is a proprietary extension."},"rateSelection":{"type":"string","description":"Starting from v5.9 default value is advanced since legacy mode was inefficient."},"rateSet":{"type":"string","description":"Two options are available: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e - default basic and supported rate sets are used. Values from basic-rates and supported-rates parameters have no effect. \u003cspan pulumi-lang-nodejs=\"`configured`\" pulumi-lang-dotnet=\"`Configured`\" pulumi-lang-go=\"`configured`\" pulumi-lang-python=\"`configured`\" pulumi-lang-yaml=\"`configured`\" pulumi-lang-java=\"`configured`\"\u003e`configured`\u003c/span\u003e - use values from basic-rates, supported-rates, basic-mcs, mcs."},"running":{"type":"boolean"},"rxChains":{"type":"array","items":{"type":"number"},"description":"Which antennas to use for receive. In current MikroTik routers, both RX and TX chain must be enabled, for the chain to be enabled."},"scanList":{"type":"string","description":"The default value is all channels from selected band that are supported by card and allowed by the country and frequency-mode settings (this list can be seen in  info). For default scan list in 5ghz band channels are taken with 20MHz step, in 5ghz-turbo band - with 40MHz step, for all other bands - with 5MHz step. If scan-list is specified manually, then all matching channels are taken. (Example: scan-list=default,5200-5245,2412-2427 - This will use the default value of scan list for current band, and add to it supported frequencies from 5200-5245 or 2412-2427 range.) Since RouterOS v6.0 with Winbox or Webfig, for inputting of multiple frequencies, add each frequency or range of frequencies into separate multiple scan-lists. Using a comma to separate frequencies is no longer supported in Winbox/Webfig since v6.0.Since RouterOS v6.35 (wireless-rep) scan-list support step feature where it is possible to manually specify the scan step. Example: scan-list=5500-5600:20 will generate such scan-list values 5500,5520,5540,5560,5580,5600."},"secondaryFrequency":{"type":"string","description":"Specifies secondary channel, required to enable 80+80MHz transmission. To disable 80+80MHz functionality, set secondary-frequency to `` or unset the value via CLI/GUI."},"securityProfile":{"type":"string","description":"Name of profile from  security-profiles."},"skipDfsChannels":{"type":"string","description":"These values are used to skip all DFS channels or specifically skip DFS CAC channels in range 5600-5650MHz which detection could go up to 10min."},"ssid":{"type":"string","description":"SSID (service set identifier) is a name that identifies wireless network."},"stationBridgeCloneMac":{"type":"string","description":"This property has effect only in the station-pseudobridge-clone mode.Use this MAC address when connection to AP. If this value is 00:00:00:00:00:00, station will initially use MAC address of the wireless interface.As soon as packet with MAC address of another device needs to be transmitted, station will reconnect to AP using that address."},"stationRoaming":{"type":"string","description":"Station Roaming feature is available only for 802.11 wireless protocol and only for station modes."},"supportedRatesAg":{"type":"string","description":"List of supported rates, used for all bands except 2ghz-b."},"supportedRatesB":{"type":"string","description":"List of supported rates, used for `2ghz-b, `2ghz-b/g` and `2ghz-b/g/n` bands. Two devices will communicate only using rates that are supported by both devices. This property has effect only when value of rate-set is configured."},"tdmaPeriodSize":{"type":"number","description":"Specifies TDMA period in milliseconds. It could help on the longer distance links, it could slightly increase bandwidth, while latency is increased too."},"txChains":{"type":"array","items":{"type":"number"},"description":"Which antennas to use for transmitting. In current MikroTik routers, both RX and TX chain must be enabled, for the chain to be enabled."},"txPower":{"type":"number","description":"For 802.11ac wireless interface it's total power but for 802.11a/b/g/n it's power per chain."},"txPowerMode":{"type":"string","description":"Sets up tx-power mode for wireless card \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e - use values stored in the card `all-rates-fixed` - use same transmit power for all data rates. Can damage the card if transmit power is set above rated value of the card for used rate. `manual-table` - define transmit power for each rate separately. Can damage the card if transmit power is set above rated value of the card for used rate. `card-rates` - use transmit power calculated for each rate based on value of tx-power parameter. Legacy mode only compatible with currently discontinued products."},"updateStatsInterval":{"type":"string","description":"How often to request update of signals strength and ccq values from clients. Access to registration-table  also triggers update of these values.This is proprietary extension."},"vhtBasicMcs":{"type":"string","description":"Modulation and Coding Schemes that every connecting client must support. Refer to 802.11ac for MCS specification. You can set MCS interval for each of Spatial Stream\n  * none - will not use selected;\n  * mcs0-7 - client must support MCS-0 to MCS-7;\n  * mcs0-8 - client must support MCS-0 to MCS-8;\n  * mcs0-9 - client must support MCS-0 to MCS-9."},"vhtSupportedMcs":{"type":"string","description":"Modulation and Coding Schemes that this device advertises as supported. Refer to 802.11ac for MCS specification. You can set MCS interval for each of Spatial Stream\n  * none - will not use selected; \n  * mcs0-7 - devices will advertise as supported MCS-0 to MCS-7;\n  * mcs0-8 - devices will advertise as supported MCS-0 to MCS-8;\n  * mcs0-9 - devices will advertise as supported MCS-0 to MCS-9."},"vlanId":{"type":"number","description":"VLAN ID to use if doing VLAN tagging."},"vlanMode":{"type":"string","description":"VLAN tagging mode specifies if traffic coming from client should get tagged (and untagged when going to client)."},"wdsCostRange":{"type":"string","description":"Bridge port cost of WDS links are automatically adjusted, depending on measured link throughput. Port cost is recalculated and adjusted every 5 seconds if it has changed by more than 10%, or if more than 20 seconds have passed since the last adjustment.Setting this property to 0 disables automatic cost adjustment.Automatic adjustment does not work for WDS links that are manually configured as a bridge port."},"wdsDefaultBridge":{"type":"string","description":"When WDS link is established and status of the wds interface becomes running, it will be added as a bridge port to the bridge interface specified by this property. When WDS link is lost, wds interface is removed from the bridge. If wds interface is already included in a bridge setup when WDS link becomes active, it will not be added to bridge specified by , and will (needs editing)."},"wdsDefaultCost":{"type":"number","description":"Initial bridge port cost of the WDS links."},"wdsIgnoreSsid":{"type":"boolean","description":"By default, WDS link between two APs can be created only when they work on the same frequency and have the same SSID value. If this property is set to yes, then SSID of the remote AP will not be checked. This property has no effect on connections from clients in station-wds mode. It also does not work if wds-mode is static-mesh or dynamic-mesh."},"wdsMode":{"type":"string","description":"Controls how WDS links with other devices (APs and clients in station-wds mode) are established.\n  * disabled does not allow WDS links.\n  * static only allows WDS links that are manually configured in WDS.\n  * dynamic also allows WDS links with devices that are not configured in WDS, by creating required entries dynamically. Such dynamic WDS entries are removed automatically after the connection with the other AP is lost.\n  * -mesh modes use different (better) method for establishing link between AP, that is not compatible with APs in non-mesh mode. This method avoids one-sided WDS links that are created only by one of the two APs. Such links cannot pass any data.When AP or station is establishing WDS connection with another AP, it uses connect-list to check whether this connection is allowed. If station in station-wds mode is establishing connection with AP, AP uses access-list to check whether this connection is allowed.If mode is station-wds, then this property has no effect."},"wirelessProtocol":{"type":"string","description":"Specifies protocol used on wireless interface;\n  * unspecified - protocol mode used on previous RouterOS versions (v3.x, v4.x). Nstreme is enabled by old enable-nstreme setting, Nv2 configuration is not possible.\n  * any : on AP - regular 802.11 Access Point or Nstreme Access Point; on station - selects Access Point without specific sequence, it could be changed by connect-list rules.\n  * nstreme - enables Nstreme protocol (the same as old enable-nstreme setting).\n  * nv2 - enables Nv2 protocol.\n  * nv2 nstreme : on AP - uses first wireless-protocol setting, always Nv2; on station - searches for Nv2 Access Point, then for Nstreme Access Point.\n  * nv2 nstreme 802.11 - on AP - uses first wireless-protocol setting, always Nv2; on station - searches for Nv2 Access Point, then for Nstreme Access Point, then for regular 802.11 Access Point.Warning! Nv2 doesn't have support for Virtual AP."},"wmmSupport":{"type":"string","description":"Specifies whether to enable  WMM.  Only applies to bands `B` and `G`. Other bands will have it enabled regardless of this setting."},"wpsMode":{"type":"string","description":"WPS Server allows to connect wireless clients that support WPS to AP protected with the Pre-Shared Key without specifying that key in the clients configuration."}},"type":"object","required":["defaultName","interfaceType","interfaceWirelessId","mtu","name","radioName","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"adaptiveNoiseImmunity":{"type":"string","description":"This property is only effective for cards based on Atheros chipset."},"allowSharedkey":{"type":"boolean","description":"Allow WEP Shared Key clients to connect. Note that no authentication is done for these clients (WEP Shared keys are not compared to anything) - they are just accepted at once (if access list allows that)."},"ampduPriorities":{"type":"array","items":{"type":"number"},"description":"Frame priorities for which AMPDU sending (aggregating frames and sending using block acknowledgment) should get negotiated and used. Using AMPDUs will increase throughput, but may increase latency, therefore, may not be desirable for real-time traffic (voice, video). Due to this, by default AMPDUs are enabled only for best-effort traffic."},"amsduLimit":{"type":"number","description":"Max AMSDU that device is allowed to prepare when negotiated. AMSDU aggregation may significantly increase throughput especially for small frames, but may increase latency in case of packet loss due to retransmission of aggregated frame. Sending and receiving AMSDUs will also increase CPU usage."},"amsduThreshold":{"type":"number","description":"Max frame size to allow including in AMSDU."},"antennaGain":{"type":"number","description":"Antenna gain in dBi, used to calculate maximum transmit power according to country regulations."},"antennaMode":{"type":"string","description":"Select antenna to use for transmitting and for receiving: `ant-a` - use only 'a'; antenna `ant-b` - use only 'b'; antenna `txa-rxb` - use antenna 'a' for transmitting, antenna 'b' for receiving; `rxa-txb` - use antenna 'b' for transmitting, antenna 'a' for receiving."},"area":{"type":"string","description":"Identifies group of wireless networks. This value is announced by AP, and can be matched in  connect-list  by area-prefix. This is a proprietary extension."},"arp":{"type":"string","description":"ARP Mode."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in `/ip settings`, default is 30s."},"band":{"type":"string","description":"Defines set of used data rates, channel frequencies and widths."},"basicRatesAgs":{"type":"array","items":{"type":"string"},"description":"Similar to the basic-rates-b property, but used for 5ghz, 5ghz-10mhz, 5ghz-5mhz, 5ghz-turbo, 2.4ghz-b/g, 2.4ghz-onlyg, 2ghz-10mhz, 2ghz-5mhz and 2.4ghz-g-turbo bands."},"basicRatesBs":{"type":"array","items":{"type":"string"},"description":"List of basic rates, used for `2.4ghz-b`, `2.4ghz-b/g` and `2.4ghz-onlyg` bands.Client will connect to AP only if it supports all basic rates announced by the AP. AP will establish WDS link only if it supports all basic rates of the other AP.This property has effect only in AP modes, and when value of rate-set is configured."},"bridgeMode":{"type":"string","description":"Allows to use station-bridge mode."},"burstTime":{"type":"string","description":"Time in microseconds which will be used to send data without stopping. Note that no other wireless cards in that network will be able to transmit data during burst-time microseconds. This setting is available only for AR5000, AR5001X, and AR5001X+ chipset based cards."},"channelWidth":{"type":"string","description":"Use of extension channels (e.g. `C`e, `eC` etc) allows additional 20MHz extension channels and if it should be located below or above the control (main) channel. Extension channel allows 802.11n devices to use up to 40MHz (802.11ac up to 160MHz) of spectrum in total thus increasing max throughput. Channel widths with `XX` and `XXXX` extensions automatically scan for a less crowded control channel frequency based on the number of concurrent devices running in every frequency and chooses the `C` - Control channel frequency automatically."},"comment":{"type":"string"},"compression":{"type":"boolean","description":"Setting this property to yes will allow the use of the hardware compression. Wireless interface must have support for hardware compression. Connections with devices that do not use compression will still work."},"country":{"type":"string","description":"Limits available bands, frequencies and maximum transmit power for each frequency. Also specifies default value of scan-list. Value\u003cspan pulumi-lang-nodejs=\" noCountrySet \" pulumi-lang-dotnet=\" NoCountrySet \" pulumi-lang-go=\" noCountrySet \" pulumi-lang-python=\" no_country_set \" pulumi-lang-yaml=\" noCountrySet \" pulumi-lang-java=\" noCountrySet \"\u003e no_country_set \u003c/span\u003eis an FCC compliant set of channels."},"defaultApTxLimit":{"type":"number","description":"This is the value of ap-tx-limit for clients that do not match any entry in the  access-list. 0 means no limit."},"defaultAuthentication":{"type":"boolean","description":"For AP mode, this is the value of authentication for clients that do not match any entry in the  access-list. For station mode, this is the value of connect for APs that do not match any entry in the  connect-list."},"defaultClientTxLimit":{"type":"number","description":"This is the value of `client-tx-limit` for clients that do not match any entry in the access-list. 0 means no limit."},"defaultForwarding":{"type":"boolean","description":"This is the value of forwarding for clients that do not match any entry in the access-list."},"disableRunningCheck":{"type":"boolean","description":"When set to yes interface will always have running flag. If value is set to no', the router determines whether the card is up and running - for AP one or more clients have to be registered to it, for station, it should be connected to an AP."},"disabled":{"type":"boolean"},"disconnectTimeout":{"type":"string","description":"This interval is measured from third sending failure on the lowest data rate. At this point `3 * (hw-retries + 1)` frame transmits on the lowest data rate had failed. During disconnect-timeout packet transmission will be retried with on-fail-retry-time interval. If no frame can be transmitted successfully during disconnect-timeout, the connection is closed, and this event is logged as `extensive data loss`. Successful frame transmission resets this timer."},"distance":{"type":"string","description":"How long to wait for confirmation of unicast frames (ACKs) before considering transmission unsuccessful, or in short ACK-Timeout. Distance value has these behaviors:\n  * Dynamic - causes AP to detect and use the smallest timeout that works with all connected clients.\n  * Indoor - uses the default ACK timeout value that the hardware chip manufacturer has set.\n  * Number - uses the input value in formula: `ACK-timeout = ((distance * 1000) + 299) / 300 us`\nAcknowledgments are not used in Nstreme/NV2 protocols."},"frameLifetime":{"type":"number","description":"Discard frames that have been queued for sending longer than frame-lifetime. By default, when value of this property is 0, frames are discarded only after connection is closed."},"frequency":{"type":"string","description":"Channel frequency value in MHz on which AP will operate. Allowed values depend on the selected band, and are restricted by country setting and wireless card capabilities. This setting has no effect if interface is in any of station modes, or in wds-slave mode, or if DFS is active.Note: If using mode \u003cspan pulumi-lang-nodejs=\"`superchannel`\" pulumi-lang-dotnet=\"`Superchannel`\" pulumi-lang-go=\"`superchannel`\" pulumi-lang-python=\"`superchannel`\" pulumi-lang-yaml=\"`superchannel`\" pulumi-lang-java=\"`superchannel`\"\u003e`superchannel`\u003c/span\u003e."},"frequencyMode":{"type":"string","description":"Three frequency modes are available:\n  * regulatory-domain - Limit available channels and maximum transmit power for each channel according to the value of country\n  * manual-txpower - Same as above, but do not limit maximum transmit power\n  *\u003cspan pulumi-lang-nodejs=\"`superchannel`\" pulumi-lang-dotnet=\"`Superchannel`\" pulumi-lang-go=\"`superchannel`\" pulumi-lang-python=\"`superchannel`\" pulumi-lang-yaml=\"`superchannel`\" pulumi-lang-java=\"`superchannel`\"\u003e`superchannel`\u003c/span\u003e - Conformance Testing Mode. Allow all channels supported by the card.\nList of available channels for each band can be seen in `/interface wireless` info allowed-channels. This mode allows you to test wireless channels outside the default scan-list and/or regulatory domain. This mode should only be used in controlled environments, or if you have special permission to use it in your region. Before v4.3 this was called Custom Frequency Upgrade, or Superchannel. Since RouterOS v4.3 this mode is available without special key upgrades to all installations."},"frequencyOffset":{"type":"number","description":"Allows to specify offset if the used wireless card operates at a different frequency than is shown in RouterOS, in case a frequency converter is used in the card. So if your card works at 4000MHz but RouterOS shows 5000MHz, set offset to 1000MHz and it will be displayed correctly. The value is in MHz and can be positive or negative."},"guardInterval":{"type":"string","description":"Whether to allow use of short guard interval (refer to 802.11n MCS specification to see how this may affect throughput). \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\"\u003e`any`\u003c/span\u003e will use either short or long, depending on data rate, \u003cspan pulumi-lang-nodejs=\"`long`\" pulumi-lang-dotnet=\"`Long`\" pulumi-lang-go=\"`long`\" pulumi-lang-python=\"`long`\" pulumi-lang-yaml=\"`long`\" pulumi-lang-java=\"`long`\"\u003e`long`\u003c/span\u003e will use long."},"hideSsid":{"type":"boolean","description":"\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 - AP does not include SSID in the beacon frames, and does not reply to probe requests that have broadcast SSID. \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 - AP includes SSID in the beacon frames, and replies to probe requests that have broadcast SSID.This property has an effect only in AP mode. Setting it to yes can remove this network from the list of wireless networks that are shown by some client software. Changing this setting does not improve the security of the wireless network, because SSID is included in other frames sent by the AP."},"htBasicMcs":{"type":"array","items":{"type":"string"},"description":"Modulation and Coding Schemes that every connecting client must support. Refer to 802.11n for MCS specification."},"htSupportedMcs":{"type":"array","items":{"type":"string"},"description":"Modulation and Coding Schemes that this device advertises as supported. Refer to 802.11n for MCS specification."},"hwFragmentationThreshold":{"type":"string","description":"Specifies maximum fragment size in bytes when transmitted over the wireless medium. 802.11 standard packet (MSDU in 802.11 terminologies) fragmentation allows packets to be fragmented before transmitting over a wireless medium to increase the probability of successful transmission (only fragments that did not transmit correctly are retransmitted). Note that transmission of a fragmented packet is less efficient than transmitting unfragmented packet because of protocol overhead and increased resource usage at both - transmitting and receiving party."},"hwProtectionMode":{"type":"string","description":"Frame protection support property."},"hwProtectionThreshold":{"type":"number","description":"Frame protection support property read more \u003e\u003e."},"hwRetries":{"type":"number","description":"Number of times sending frame is retried without considering it a transmission failure. Data-rate is decreased upon failure and the frame is sent again. Three sequential failures on the lowest supported rate suspend transmission to this destination for the duration of on-fail-retry-time. After that, the frame is sent again. The frame is being retransmitted until transmission success, or until the client is disconnected after disconnect-timeout. The frame can be discarded during this time if frame-lifetime is exceeded."},"installation":{"type":"string","description":"Adjusts scan-list to use indoor, outdoor or all frequencies for the country that is set."},"interfaceWirelessId":{"type":"string"},"interworkingProfile":{"type":"string"},"keepaliveFrames":{"type":"string","description":"Applies only if wireless interface is in `mode = ap-bridge`. If a client has not communicated for around 20 seconds, AP sends a `keepalive-frame`. Note, disabling the feature can lead to \u003cspan pulumi-lang-nodejs=\"`ghost`\" pulumi-lang-dotnet=\"`Ghost`\" pulumi-lang-go=\"`ghost`\" pulumi-lang-python=\"`ghost`\" pulumi-lang-yaml=\"`ghost`\" pulumi-lang-java=\"`ghost`\"\u003e`ghost`\u003c/span\u003e clients in registration-table."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"macAddress":{"type":"string","description":"MAC address."},"masterInterface":{"type":"string","description":"Name of wireless interface that has virtual-ap capability. Virtual AP interface will only work if master interface is in ap-bridge, bridge, station or wds-slave mode. This property is only for virtual AP interfaces."},"maxStationCount":{"type":"number","description":"Maximum number of associated clients. WDS links also count toward this limit."},"mode":{"type":"string","description":"Selection between different station and access point (AP) modes.\n  * Station modes: \u003cspan pulumi-lang-nodejs=\"`station`\" pulumi-lang-dotnet=\"`Station`\" pulumi-lang-go=\"`station`\" pulumi-lang-python=\"`station`\" pulumi-lang-yaml=\"`station`\" pulumi-lang-java=\"`station`\"\u003e`station`\u003c/span\u003e - Basic station mode. Find and connect to acceptable AP. `station-wds` - Same as station, but create WDS link with AP, using proprietary extension. AP configuration has to allow WDS links with this device. Note that this mode does not use entries in wds. `station-pseudobridge` - Same as station, but additionally perform MAC address translation of all traffic. Allows interface to be bridged. `station-pseudobridge-clone` - Same as station-pseudobridge, but use station-bridge-clone-mac address to connect to AP. `station-bridge` - Provides support for transparent protocol-independent L2 bridging on the station device. RouterOS AP accepts clients in station-bridge mode when enabled using bridge-mode parameter. In this mode, the AP maintains a forwarding table with information on which MAC addresses are reachable over which station device. Only works with RouterOS APs. With station-bridge mode, it is not possible to connect to CAPsMAN controlled CAP.\n  * AP modes: `ap-bridge` - Basic access point mode. \u003cspan pulumi-lang-nodejs=\"`bridge`\" pulumi-lang-dotnet=\"`Bridge`\" pulumi-lang-go=\"`bridge`\" pulumi-lang-python=\"`bridge`\" pulumi-lang-yaml=\"`bridge`\" pulumi-lang-java=\"`bridge`\"\u003e`bridge`\u003c/span\u003e - Same as ap-bridge, but limited to one associated client. `wds-slave` - Same as ap-bridge, but scan for AP with the same ssid and establishes WDS link. If this link is lost or cannot be established, then continue scanning. If dfs-mode is radar-detect, then APs with enabled hide-ssid will not be found during scanning.\n  * Special modes: `alignment-only` - Put the interface in a continuous transmit mode that is used for aiming the remote antenna. `nstreme-dual-slave` - allow this interface to be used in nstreme-dual setup. MAC address translation in pseudobridge modes works by inspecting packets and building a table of corresponding IP and MAC addresses. All packets are sent to AP with the MAC address used by pseudobridge, and MAC addresses of received packets are restored from the address translation table. There is a single entry in the address translation table for all non-IP packets, hence more than one host in the bridged network cannot reliably use non-IP protocols. Note: Currently IPv6 doesn't work over Pseudobridge."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"multicastBuffering":{"type":"string","description":"For a client that has power saving, buffer multicast packets until next beacon time. A client should wake up to receive a beacon, by receiving beacon it sees that there are multicast packets pending, and it should wait for multicast packets to be sent."},"multicastHelper":{"type":"string","description":"When set to full, multicast packets will be sent with a unicast destination MAC address, resolving  multicast problem on the wireless link. This option should be enabled only on the access point, clients should be configured in station-bridge mode. Available starting from v5.15.disabled - disables the helper and sends multicast packets with multicast destination MAC addressesdhcp - dhcp packet mac addresses are changed to unicast mac addresses prior to sending them outfull - all multicast packet mac address are changed to unicast mac addresses prior to sending them outdefault - default choice that currently is set to dhcp. Value can be changed in future releases."},"name":{"type":"string","description":"Name of the interface."},"noiseFloorThreshold":{"type":"string","description":"For advanced use only, as it can badly affect the performance of the interface. It is possible to manually set noise floor threshold value. By default, it is dynamically calculated. This property also affects received signal strength. This property is only effective on non-AC chips."},"nv2CellRadius":{"type":"number","description":"Setting affects the size of contention time slot that AP allocates for clients to initiate connection and also size of time slots used for estimating distance to client. When setting is too small, clients that are farther away may have trouble connecting and/or disconnect with `ranging timeout` error. Although during normal operation the effect of this setting should be negligible, in order to maintain maximum performance, it is advised to not increase this setting if not necessary, so AP is not reserving time that is actually never used, but instead allocates it for actual data transfer.on AP: distance to farthest client in kmon station: no effect."},"nv2DownlinkRatio":{"type":"number","description":"Specifies the Nv2 downlink ratio. Uplink ratio is automatically calculated from the downlink-ratio value. When using dynamic-downlink mode the downlink-ratio is also used when link get fully saturated. Minimum value is 20 and maximum 80."},"nv2Mode":{"type":"string","description":"Specifies to use dynamic or fixed downlink/uplink ratio."},"nv2NoiseFloorOffset":{"type":"string"},"nv2PresharedKey":{"type":"string","description":"Specifies preshared key to be used.","secret":true},"nv2Qos":{"type":"string","description":"Sets the packet priority mechanism, firstly data from high priority queue is sent, then lower queue priority data until 0 queue priority is reached. When link is full with high priority queue data, lower priority data is not sent. Use it very carefully, setting works on APframe-priority - manual setting that can be tuned with Mangle rules.default - default setting where small packets receive priority for best latency."},"nv2QueueCount":{"type":"number","description":"Specifies how many priority queues are used in Nv2 network."},"nv2Security":{"type":"string","description":"Specifies Nv2 security mode."},"nv2SyncSecret":{"type":"string","description":"Specifies secret key for use in the Nv2 synchronization. Secret should match on Master and Slave devices in order to establish the synced state.","secret":true},"onFailRetryTime":{"type":"string","description":"After third sending failure on the lowest data rate, wait for specified time interval before retrying."},"periodicCalibration":{"type":"string","description":"Setting default enables periodic calibration if  info  default-periodic-calibration property is enabled. Value of that property depends on the type of wireless card. This property is only effective for cards based on Atheros chipset."},"periodicCalibrationInterval":{"type":"number","description":"This property is only effective for cards based on Atheros chipset."},"preambleMode":{"type":"string","description":"Short preamble mode is an option of 802.11b standard that reduces per-frame overhead.On AP:\n  * long - Do not use short preamble.\n  * short - Announce short preamble capability. Do not accept connections from clients that do not have this capability.\n  * both - Announce short preamble capability.\nOn station:\n  *long - do not use short preamble.\n  * short - do not connect to AP if it does not support short preamble.\n  * both - Use short preamble if AP supports it."},"prismCardtype":{"type":"string","description":"Specify type of the installed Prism wireless card."},"proprietaryExtensions":{"type":"string","description":"RouterOS includes proprietary information in an information element of management frames. This parameter controls how this information is included. `pre-2.9.25` - This is older method. It can interoperate with newer versions of RouterOS. This method is incompatible with some clients, for example, Centrino based ones. `post-2.9.25` - This uses standardized way of including vendor specific information, that is compatible with newer wireless clients."},"rateSelection":{"type":"string","description":"Starting from v5.9 default value is advanced since legacy mode was inefficient."},"rateSet":{"type":"string","description":"Two options are available: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e - default basic and supported rate sets are used. Values from basic-rates and supported-rates parameters have no effect. \u003cspan pulumi-lang-nodejs=\"`configured`\" pulumi-lang-dotnet=\"`Configured`\" pulumi-lang-go=\"`configured`\" pulumi-lang-python=\"`configured`\" pulumi-lang-yaml=\"`configured`\" pulumi-lang-java=\"`configured`\"\u003e`configured`\u003c/span\u003e - use values from basic-rates, supported-rates, basic-mcs, mcs."},"rxChains":{"type":"array","items":{"type":"number"},"description":"Which antennas to use for receive. In current MikroTik routers, both RX and TX chain must be enabled, for the chain to be enabled."},"scanList":{"type":"string","description":"The default value is all channels from selected band that are supported by card and allowed by the country and frequency-mode settings (this list can be seen in  info). For default scan list in 5ghz band channels are taken with 20MHz step, in 5ghz-turbo band - with 40MHz step, for all other bands - with 5MHz step. If scan-list is specified manually, then all matching channels are taken. (Example: scan-list=default,5200-5245,2412-2427 - This will use the default value of scan list for current band, and add to it supported frequencies from 5200-5245 or 2412-2427 range.) Since RouterOS v6.0 with Winbox or Webfig, for inputting of multiple frequencies, add each frequency or range of frequencies into separate multiple scan-lists. Using a comma to separate frequencies is no longer supported in Winbox/Webfig since v6.0.Since RouterOS v6.35 (wireless-rep) scan-list support step feature where it is possible to manually specify the scan step. Example: scan-list=5500-5600:20 will generate such scan-list values 5500,5520,5540,5560,5580,5600."},"secondaryFrequency":{"type":"string","description":"Specifies secondary channel, required to enable 80+80MHz transmission. To disable 80+80MHz functionality, set secondary-frequency to `` or unset the value via CLI/GUI."},"securityProfile":{"type":"string","description":"Name of profile from  security-profiles."},"skipDfsChannels":{"type":"string","description":"These values are used to skip all DFS channels or specifically skip DFS CAC channels in range 5600-5650MHz which detection could go up to 10min."},"ssid":{"type":"string","description":"SSID (service set identifier) is a name that identifies wireless network."},"stationBridgeCloneMac":{"type":"string","description":"This property has effect only in the station-pseudobridge-clone mode.Use this MAC address when connection to AP. If this value is 00:00:00:00:00:00, station will initially use MAC address of the wireless interface.As soon as packet with MAC address of another device needs to be transmitted, station will reconnect to AP using that address."},"stationRoaming":{"type":"string","description":"Station Roaming feature is available only for 802.11 wireless protocol and only for station modes."},"supportedRatesAg":{"type":"string","description":"List of supported rates, used for all bands except 2ghz-b."},"supportedRatesB":{"type":"string","description":"List of supported rates, used for `2ghz-b, `2ghz-b/g` and `2ghz-b/g/n` bands. Two devices will communicate only using rates that are supported by both devices. This property has effect only when value of rate-set is configured."},"tdmaPeriodSize":{"type":"number","description":"Specifies TDMA period in milliseconds. It could help on the longer distance links, it could slightly increase bandwidth, while latency is increased too."},"txChains":{"type":"array","items":{"type":"number"},"description":"Which antennas to use for transmitting. In current MikroTik routers, both RX and TX chain must be enabled, for the chain to be enabled."},"txPower":{"type":"number","description":"For 802.11ac wireless interface it's total power but for 802.11a/b/g/n it's power per chain."},"txPowerMode":{"type":"string","description":"Sets up tx-power mode for wireless card \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e - use values stored in the card `all-rates-fixed` - use same transmit power for all data rates. Can damage the card if transmit power is set above rated value of the card for used rate. `manual-table` - define transmit power for each rate separately. Can damage the card if transmit power is set above rated value of the card for used rate. `card-rates` - use transmit power calculated for each rate based on value of tx-power parameter. Legacy mode only compatible with currently discontinued products."},"updateStatsInterval":{"type":"string","description":"How often to request update of signals strength and ccq values from clients. Access to registration-table  also triggers update of these values.This is proprietary extension."},"vhtBasicMcs":{"type":"string","description":"Modulation and Coding Schemes that every connecting client must support. Refer to 802.11ac for MCS specification. You can set MCS interval for each of Spatial Stream\n  * none - will not use selected;\n  * mcs0-7 - client must support MCS-0 to MCS-7;\n  * mcs0-8 - client must support MCS-0 to MCS-8;\n  * mcs0-9 - client must support MCS-0 to MCS-9."},"vhtSupportedMcs":{"type":"string","description":"Modulation and Coding Schemes that this device advertises as supported. Refer to 802.11ac for MCS specification. You can set MCS interval for each of Spatial Stream\n  * none - will not use selected; \n  * mcs0-7 - devices will advertise as supported MCS-0 to MCS-7;\n  * mcs0-8 - devices will advertise as supported MCS-0 to MCS-8;\n  * mcs0-9 - devices will advertise as supported MCS-0 to MCS-9."},"vlanId":{"type":"number","description":"VLAN ID to use if doing VLAN tagging."},"vlanMode":{"type":"string","description":"VLAN tagging mode specifies if traffic coming from client should get tagged (and untagged when going to client)."},"wdsCostRange":{"type":"string","description":"Bridge port cost of WDS links are automatically adjusted, depending on measured link throughput. Port cost is recalculated and adjusted every 5 seconds if it has changed by more than 10%, or if more than 20 seconds have passed since the last adjustment.Setting this property to 0 disables automatic cost adjustment.Automatic adjustment does not work for WDS links that are manually configured as a bridge port."},"wdsDefaultBridge":{"type":"string","description":"When WDS link is established and status of the wds interface becomes running, it will be added as a bridge port to the bridge interface specified by this property. When WDS link is lost, wds interface is removed from the bridge. If wds interface is already included in a bridge setup when WDS link becomes active, it will not be added to bridge specified by , and will (needs editing)."},"wdsDefaultCost":{"type":"number","description":"Initial bridge port cost of the WDS links."},"wdsIgnoreSsid":{"type":"boolean","description":"By default, WDS link between two APs can be created only when they work on the same frequency and have the same SSID value. If this property is set to yes, then SSID of the remote AP will not be checked. This property has no effect on connections from clients in station-wds mode. It also does not work if wds-mode is static-mesh or dynamic-mesh."},"wdsMode":{"type":"string","description":"Controls how WDS links with other devices (APs and clients in station-wds mode) are established.\n  * disabled does not allow WDS links.\n  * static only allows WDS links that are manually configured in WDS.\n  * dynamic also allows WDS links with devices that are not configured in WDS, by creating required entries dynamically. Such dynamic WDS entries are removed automatically after the connection with the other AP is lost.\n  * -mesh modes use different (better) method for establishing link between AP, that is not compatible with APs in non-mesh mode. This method avoids one-sided WDS links that are created only by one of the two APs. Such links cannot pass any data.When AP or station is establishing WDS connection with another AP, it uses connect-list to check whether this connection is allowed. If station in station-wds mode is establishing connection with AP, AP uses access-list to check whether this connection is allowed.If mode is station-wds, then this property has no effect."},"wirelessProtocol":{"type":"string","description":"Specifies protocol used on wireless interface;\n  * unspecified - protocol mode used on previous RouterOS versions (v3.x, v4.x). Nstreme is enabled by old enable-nstreme setting, Nv2 configuration is not possible.\n  * any : on AP - regular 802.11 Access Point or Nstreme Access Point; on station - selects Access Point without specific sequence, it could be changed by connect-list rules.\n  * nstreme - enables Nstreme protocol (the same as old enable-nstreme setting).\n  * nv2 - enables Nv2 protocol.\n  * nv2 nstreme : on AP - uses first wireless-protocol setting, always Nv2; on station - searches for Nv2 Access Point, then for Nstreme Access Point.\n  * nv2 nstreme 802.11 - on AP - uses first wireless-protocol setting, always Nv2; on station - searches for Nv2 Access Point, then for Nstreme Access Point, then for regular 802.11 Access Point.Warning! Nv2 doesn't have support for Virtual AP."},"wmmSupport":{"type":"string","description":"Specifies whether to enable  WMM.  Only applies to bands `B` and `G`. Other bands will have it enabled regardless of this setting."},"wpsMode":{"type":"string","description":"WPS Server allows to connect wireless clients that support WPS to AP protected with the Pre-Shared Key without specifying that key in the clients configuration."}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceWireless resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"adaptiveNoiseImmunity":{"type":"string","description":"This property is only effective for cards based on Atheros chipset."},"allowSharedkey":{"type":"boolean","description":"Allow WEP Shared Key clients to connect. Note that no authentication is done for these clients (WEP Shared keys are not compared to anything) - they are just accepted at once (if access list allows that)."},"ampduPriorities":{"type":"array","items":{"type":"number"},"description":"Frame priorities for which AMPDU sending (aggregating frames and sending using block acknowledgment) should get negotiated and used. Using AMPDUs will increase throughput, but may increase latency, therefore, may not be desirable for real-time traffic (voice, video). Due to this, by default AMPDUs are enabled only for best-effort traffic."},"amsduLimit":{"type":"number","description":"Max AMSDU that device is allowed to prepare when negotiated. AMSDU aggregation may significantly increase throughput especially for small frames, but may increase latency in case of packet loss due to retransmission of aggregated frame. Sending and receiving AMSDUs will also increase CPU usage."},"amsduThreshold":{"type":"number","description":"Max frame size to allow including in AMSDU."},"antennaGain":{"type":"number","description":"Antenna gain in dBi, used to calculate maximum transmit power according to country regulations."},"antennaMode":{"type":"string","description":"Select antenna to use for transmitting and for receiving: `ant-a` - use only 'a'; antenna `ant-b` - use only 'b'; antenna `txa-rxb` - use antenna 'a' for transmitting, antenna 'b' for receiving; `rxa-txb` - use antenna 'b' for transmitting, antenna 'a' for receiving."},"area":{"type":"string","description":"Identifies group of wireless networks. This value is announced by AP, and can be matched in  connect-list  by area-prefix. This is a proprietary extension."},"arp":{"type":"string","description":"ARP Mode."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in `/ip settings`, default is 30s."},"band":{"type":"string","description":"Defines set of used data rates, channel frequencies and widths."},"basicRatesAgs":{"type":"array","items":{"type":"string"},"description":"Similar to the basic-rates-b property, but used for 5ghz, 5ghz-10mhz, 5ghz-5mhz, 5ghz-turbo, 2.4ghz-b/g, 2.4ghz-onlyg, 2ghz-10mhz, 2ghz-5mhz and 2.4ghz-g-turbo bands."},"basicRatesBs":{"type":"array","items":{"type":"string"},"description":"List of basic rates, used for `2.4ghz-b`, `2.4ghz-b/g` and `2.4ghz-onlyg` bands.Client will connect to AP only if it supports all basic rates announced by the AP. AP will establish WDS link only if it supports all basic rates of the other AP.This property has effect only in AP modes, and when value of rate-set is configured."},"bridgeMode":{"type":"string","description":"Allows to use station-bridge mode."},"burstTime":{"type":"string","description":"Time in microseconds which will be used to send data without stopping. Note that no other wireless cards in that network will be able to transmit data during burst-time microseconds. This setting is available only for AR5000, AR5001X, and AR5001X+ chipset based cards."},"channelWidth":{"type":"string","description":"Use of extension channels (e.g. `C`e, `eC` etc) allows additional 20MHz extension channels and if it should be located below or above the control (main) channel. Extension channel allows 802.11n devices to use up to 40MHz (802.11ac up to 160MHz) of spectrum in total thus increasing max throughput. Channel widths with `XX` and `XXXX` extensions automatically scan for a less crowded control channel frequency based on the number of concurrent devices running in every frequency and chooses the `C` - Control channel frequency automatically."},"comment":{"type":"string"},"compression":{"type":"boolean","description":"Setting this property to yes will allow the use of the hardware compression. Wireless interface must have support for hardware compression. Connections with devices that do not use compression will still work."},"country":{"type":"string","description":"Limits available bands, frequencies and maximum transmit power for each frequency. Also specifies default value of scan-list. Value\u003cspan pulumi-lang-nodejs=\" noCountrySet \" pulumi-lang-dotnet=\" NoCountrySet \" pulumi-lang-go=\" noCountrySet \" pulumi-lang-python=\" no_country_set \" pulumi-lang-yaml=\" noCountrySet \" pulumi-lang-java=\" noCountrySet \"\u003e no_country_set \u003c/span\u003eis an FCC compliant set of channels."},"defaultApTxLimit":{"type":"number","description":"This is the value of ap-tx-limit for clients that do not match any entry in the  access-list. 0 means no limit."},"defaultAuthentication":{"type":"boolean","description":"For AP mode, this is the value of authentication for clients that do not match any entry in the  access-list. For station mode, this is the value of connect for APs that do not match any entry in the  connect-list."},"defaultClientTxLimit":{"type":"number","description":"This is the value of `client-tx-limit` for clients that do not match any entry in the access-list. 0 means no limit."},"defaultForwarding":{"type":"boolean","description":"This is the value of forwarding for clients that do not match any entry in the access-list."},"defaultName":{"type":"string"},"disableRunningCheck":{"type":"boolean","description":"When set to yes interface will always have running flag. If value is set to no', the router determines whether the card is up and running - for AP one or more clients have to be registered to it, for station, it should be connected to an AP."},"disabled":{"type":"boolean"},"disconnectTimeout":{"type":"string","description":"This interval is measured from third sending failure on the lowest data rate. At this point `3 * (hw-retries + 1)` frame transmits on the lowest data rate had failed. During disconnect-timeout packet transmission will be retried with on-fail-retry-time interval. If no frame can be transmitted successfully during disconnect-timeout, the connection is closed, and this event is logged as `extensive data loss`. Successful frame transmission resets this timer."},"distance":{"type":"string","description":"How long to wait for confirmation of unicast frames (ACKs) before considering transmission unsuccessful, or in short ACK-Timeout. Distance value has these behaviors:\n  * Dynamic - causes AP to detect and use the smallest timeout that works with all connected clients.\n  * Indoor - uses the default ACK timeout value that the hardware chip manufacturer has set.\n  * Number - uses the input value in formula: `ACK-timeout = ((distance * 1000) + 299) / 300 us`\nAcknowledgments are not used in Nstreme/NV2 protocols."},"frameLifetime":{"type":"number","description":"Discard frames that have been queued for sending longer than frame-lifetime. By default, when value of this property is 0, frames are discarded only after connection is closed."},"frequency":{"type":"string","description":"Channel frequency value in MHz on which AP will operate. Allowed values depend on the selected band, and are restricted by country setting and wireless card capabilities. This setting has no effect if interface is in any of station modes, or in wds-slave mode, or if DFS is active.Note: If using mode \u003cspan pulumi-lang-nodejs=\"`superchannel`\" pulumi-lang-dotnet=\"`Superchannel`\" pulumi-lang-go=\"`superchannel`\" pulumi-lang-python=\"`superchannel`\" pulumi-lang-yaml=\"`superchannel`\" pulumi-lang-java=\"`superchannel`\"\u003e`superchannel`\u003c/span\u003e."},"frequencyMode":{"type":"string","description":"Three frequency modes are available:\n  * regulatory-domain - Limit available channels and maximum transmit power for each channel according to the value of country\n  * manual-txpower - Same as above, but do not limit maximum transmit power\n  *\u003cspan pulumi-lang-nodejs=\"`superchannel`\" pulumi-lang-dotnet=\"`Superchannel`\" pulumi-lang-go=\"`superchannel`\" pulumi-lang-python=\"`superchannel`\" pulumi-lang-yaml=\"`superchannel`\" pulumi-lang-java=\"`superchannel`\"\u003e`superchannel`\u003c/span\u003e - Conformance Testing Mode. Allow all channels supported by the card.\nList of available channels for each band can be seen in `/interface wireless` info allowed-channels. This mode allows you to test wireless channels outside the default scan-list and/or regulatory domain. This mode should only be used in controlled environments, or if you have special permission to use it in your region. Before v4.3 this was called Custom Frequency Upgrade, or Superchannel. Since RouterOS v4.3 this mode is available without special key upgrades to all installations."},"frequencyOffset":{"type":"number","description":"Allows to specify offset if the used wireless card operates at a different frequency than is shown in RouterOS, in case a frequency converter is used in the card. So if your card works at 4000MHz but RouterOS shows 5000MHz, set offset to 1000MHz and it will be displayed correctly. The value is in MHz and can be positive or negative."},"guardInterval":{"type":"string","description":"Whether to allow use of short guard interval (refer to 802.11n MCS specification to see how this may affect throughput). \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\"\u003e`any`\u003c/span\u003e will use either short or long, depending on data rate, \u003cspan pulumi-lang-nodejs=\"`long`\" pulumi-lang-dotnet=\"`Long`\" pulumi-lang-go=\"`long`\" pulumi-lang-python=\"`long`\" pulumi-lang-yaml=\"`long`\" pulumi-lang-java=\"`long`\"\u003e`long`\u003c/span\u003e will use long."},"hideSsid":{"type":"boolean","description":"\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 - AP does not include SSID in the beacon frames, and does not reply to probe requests that have broadcast SSID. \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 - AP includes SSID in the beacon frames, and replies to probe requests that have broadcast SSID.This property has an effect only in AP mode. Setting it to yes can remove this network from the list of wireless networks that are shown by some client software. Changing this setting does not improve the security of the wireless network, because SSID is included in other frames sent by the AP."},"htBasicMcs":{"type":"array","items":{"type":"string"},"description":"Modulation and Coding Schemes that every connecting client must support. Refer to 802.11n for MCS specification."},"htSupportedMcs":{"type":"array","items":{"type":"string"},"description":"Modulation and Coding Schemes that this device advertises as supported. Refer to 802.11n for MCS specification."},"hwFragmentationThreshold":{"type":"string","description":"Specifies maximum fragment size in bytes when transmitted over the wireless medium. 802.11 standard packet (MSDU in 802.11 terminologies) fragmentation allows packets to be fragmented before transmitting over a wireless medium to increase the probability of successful transmission (only fragments that did not transmit correctly are retransmitted). Note that transmission of a fragmented packet is less efficient than transmitting unfragmented packet because of protocol overhead and increased resource usage at both - transmitting and receiving party."},"hwProtectionMode":{"type":"string","description":"Frame protection support property."},"hwProtectionThreshold":{"type":"number","description":"Frame protection support property read more \u003e\u003e."},"hwRetries":{"type":"number","description":"Number of times sending frame is retried without considering it a transmission failure. Data-rate is decreased upon failure and the frame is sent again. Three sequential failures on the lowest supported rate suspend transmission to this destination for the duration of on-fail-retry-time. After that, the frame is sent again. The frame is being retransmitted until transmission success, or until the client is disconnected after disconnect-timeout. The frame can be discarded during this time if frame-lifetime is exceeded."},"installation":{"type":"string","description":"Adjusts scan-list to use indoor, outdoor or all frequencies for the country that is set."},"interfaceType":{"type":"string"},"interfaceWirelessId":{"type":"string"},"interworkingProfile":{"type":"string"},"keepaliveFrames":{"type":"string","description":"Applies only if wireless interface is in `mode = ap-bridge`. If a client has not communicated for around 20 seconds, AP sends a `keepalive-frame`. Note, disabling the feature can lead to \u003cspan pulumi-lang-nodejs=\"`ghost`\" pulumi-lang-dotnet=\"`Ghost`\" pulumi-lang-go=\"`ghost`\" pulumi-lang-python=\"`ghost`\" pulumi-lang-yaml=\"`ghost`\" pulumi-lang-java=\"`ghost`\"\u003e`ghost`\u003c/span\u003e clients in registration-table."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"macAddress":{"type":"string","description":"MAC address."},"masterInterface":{"type":"string","description":"Name of wireless interface that has virtual-ap capability. Virtual AP interface will only work if master interface is in ap-bridge, bridge, station or wds-slave mode. This property is only for virtual AP interfaces."},"maxStationCount":{"type":"number","description":"Maximum number of associated clients. WDS links also count toward this limit."},"mode":{"type":"string","description":"Selection between different station and access point (AP) modes.\n  * Station modes: \u003cspan pulumi-lang-nodejs=\"`station`\" pulumi-lang-dotnet=\"`Station`\" pulumi-lang-go=\"`station`\" pulumi-lang-python=\"`station`\" pulumi-lang-yaml=\"`station`\" pulumi-lang-java=\"`station`\"\u003e`station`\u003c/span\u003e - Basic station mode. Find and connect to acceptable AP. `station-wds` - Same as station, but create WDS link with AP, using proprietary extension. AP configuration has to allow WDS links with this device. Note that this mode does not use entries in wds. `station-pseudobridge` - Same as station, but additionally perform MAC address translation of all traffic. Allows interface to be bridged. `station-pseudobridge-clone` - Same as station-pseudobridge, but use station-bridge-clone-mac address to connect to AP. `station-bridge` - Provides support for transparent protocol-independent L2 bridging on the station device. RouterOS AP accepts clients in station-bridge mode when enabled using bridge-mode parameter. In this mode, the AP maintains a forwarding table with information on which MAC addresses are reachable over which station device. Only works with RouterOS APs. With station-bridge mode, it is not possible to connect to CAPsMAN controlled CAP.\n  * AP modes: `ap-bridge` - Basic access point mode. \u003cspan pulumi-lang-nodejs=\"`bridge`\" pulumi-lang-dotnet=\"`Bridge`\" pulumi-lang-go=\"`bridge`\" pulumi-lang-python=\"`bridge`\" pulumi-lang-yaml=\"`bridge`\" pulumi-lang-java=\"`bridge`\"\u003e`bridge`\u003c/span\u003e - Same as ap-bridge, but limited to one associated client. `wds-slave` - Same as ap-bridge, but scan for AP with the same ssid and establishes WDS link. If this link is lost or cannot be established, then continue scanning. If dfs-mode is radar-detect, then APs with enabled hide-ssid will not be found during scanning.\n  * Special modes: `alignment-only` - Put the interface in a continuous transmit mode that is used for aiming the remote antenna. `nstreme-dual-slave` - allow this interface to be used in nstreme-dual setup. MAC address translation in pseudobridge modes works by inspecting packets and building a table of corresponding IP and MAC addresses. All packets are sent to AP with the MAC address used by pseudobridge, and MAC addresses of received packets are restored from the address translation table. There is a single entry in the address translation table for all non-IP packets, hence more than one host in the bridged network cannot reliably use non-IP protocols. Note: Currently IPv6 doesn't work over Pseudobridge."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"multicastBuffering":{"type":"string","description":"For a client that has power saving, buffer multicast packets until next beacon time. A client should wake up to receive a beacon, by receiving beacon it sees that there are multicast packets pending, and it should wait for multicast packets to be sent."},"multicastHelper":{"type":"string","description":"When set to full, multicast packets will be sent with a unicast destination MAC address, resolving  multicast problem on the wireless link. This option should be enabled only on the access point, clients should be configured in station-bridge mode. Available starting from v5.15.disabled - disables the helper and sends multicast packets with multicast destination MAC addressesdhcp - dhcp packet mac addresses are changed to unicast mac addresses prior to sending them outfull - all multicast packet mac address are changed to unicast mac addresses prior to sending them outdefault - default choice that currently is set to dhcp. Value can be changed in future releases."},"name":{"type":"string","description":"Name of the interface."},"noiseFloorThreshold":{"type":"string","description":"For advanced use only, as it can badly affect the performance of the interface. It is possible to manually set noise floor threshold value. By default, it is dynamically calculated. This property also affects received signal strength. This property is only effective on non-AC chips."},"nv2CellRadius":{"type":"number","description":"Setting affects the size of contention time slot that AP allocates for clients to initiate connection and also size of time slots used for estimating distance to client. When setting is too small, clients that are farther away may have trouble connecting and/or disconnect with `ranging timeout` error. Although during normal operation the effect of this setting should be negligible, in order to maintain maximum performance, it is advised to not increase this setting if not necessary, so AP is not reserving time that is actually never used, but instead allocates it for actual data transfer.on AP: distance to farthest client in kmon station: no effect."},"nv2DownlinkRatio":{"type":"number","description":"Specifies the Nv2 downlink ratio. Uplink ratio is automatically calculated from the downlink-ratio value. When using dynamic-downlink mode the downlink-ratio is also used when link get fully saturated. Minimum value is 20 and maximum 80."},"nv2Mode":{"type":"string","description":"Specifies to use dynamic or fixed downlink/uplink ratio."},"nv2NoiseFloorOffset":{"type":"string"},"nv2PresharedKey":{"type":"string","description":"Specifies preshared key to be used.","secret":true},"nv2Qos":{"type":"string","description":"Sets the packet priority mechanism, firstly data from high priority queue is sent, then lower queue priority data until 0 queue priority is reached. When link is full with high priority queue data, lower priority data is not sent. Use it very carefully, setting works on APframe-priority - manual setting that can be tuned with Mangle rules.default - default setting where small packets receive priority for best latency."},"nv2QueueCount":{"type":"number","description":"Specifies how many priority queues are used in Nv2 network."},"nv2Security":{"type":"string","description":"Specifies Nv2 security mode."},"nv2SyncSecret":{"type":"string","description":"Specifies secret key for use in the Nv2 synchronization. Secret should match on Master and Slave devices in order to establish the synced state.","secret":true},"onFailRetryTime":{"type":"string","description":"After third sending failure on the lowest data rate, wait for specified time interval before retrying."},"periodicCalibration":{"type":"string","description":"Setting default enables periodic calibration if  info  default-periodic-calibration property is enabled. Value of that property depends on the type of wireless card. This property is only effective for cards based on Atheros chipset."},"periodicCalibrationInterval":{"type":"number","description":"This property is only effective for cards based on Atheros chipset."},"preambleMode":{"type":"string","description":"Short preamble mode is an option of 802.11b standard that reduces per-frame overhead.On AP:\n  * long - Do not use short preamble.\n  * short - Announce short preamble capability. Do not accept connections from clients that do not have this capability.\n  * both - Announce short preamble capability.\nOn station:\n  *long - do not use short preamble.\n  * short - do not connect to AP if it does not support short preamble.\n  * both - Use short preamble if AP supports it."},"prismCardtype":{"type":"string","description":"Specify type of the installed Prism wireless card."},"proprietaryExtensions":{"type":"string","description":"RouterOS includes proprietary information in an information element of management frames. This parameter controls how this information is included. `pre-2.9.25` - This is older method. It can interoperate with newer versions of RouterOS. This method is incompatible with some clients, for example, Centrino based ones. `post-2.9.25` - This uses standardized way of including vendor specific information, that is compatible with newer wireless clients."},"radioName":{"type":"string","description":"Descriptive name of the device, that is shown in registration table entries on the remote devices. This is a proprietary extension."},"rateSelection":{"type":"string","description":"Starting from v5.9 default value is advanced since legacy mode was inefficient."},"rateSet":{"type":"string","description":"Two options are available: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e - default basic and supported rate sets are used. Values from basic-rates and supported-rates parameters have no effect. \u003cspan pulumi-lang-nodejs=\"`configured`\" pulumi-lang-dotnet=\"`Configured`\" pulumi-lang-go=\"`configured`\" pulumi-lang-python=\"`configured`\" pulumi-lang-yaml=\"`configured`\" pulumi-lang-java=\"`configured`\"\u003e`configured`\u003c/span\u003e - use values from basic-rates, supported-rates, basic-mcs, mcs."},"running":{"type":"boolean"},"rxChains":{"type":"array","items":{"type":"number"},"description":"Which antennas to use for receive. In current MikroTik routers, both RX and TX chain must be enabled, for the chain to be enabled."},"scanList":{"type":"string","description":"The default value is all channels from selected band that are supported by card and allowed by the country and frequency-mode settings (this list can be seen in  info). For default scan list in 5ghz band channels are taken with 20MHz step, in 5ghz-turbo band - with 40MHz step, for all other bands - with 5MHz step. If scan-list is specified manually, then all matching channels are taken. (Example: scan-list=default,5200-5245,2412-2427 - This will use the default value of scan list for current band, and add to it supported frequencies from 5200-5245 or 2412-2427 range.) Since RouterOS v6.0 with Winbox or Webfig, for inputting of multiple frequencies, add each frequency or range of frequencies into separate multiple scan-lists. Using a comma to separate frequencies is no longer supported in Winbox/Webfig since v6.0.Since RouterOS v6.35 (wireless-rep) scan-list support step feature where it is possible to manually specify the scan step. Example: scan-list=5500-5600:20 will generate such scan-list values 5500,5520,5540,5560,5580,5600."},"secondaryFrequency":{"type":"string","description":"Specifies secondary channel, required to enable 80+80MHz transmission. To disable 80+80MHz functionality, set secondary-frequency to `` or unset the value via CLI/GUI."},"securityProfile":{"type":"string","description":"Name of profile from  security-profiles."},"skipDfsChannels":{"type":"string","description":"These values are used to skip all DFS channels or specifically skip DFS CAC channels in range 5600-5650MHz which detection could go up to 10min."},"ssid":{"type":"string","description":"SSID (service set identifier) is a name that identifies wireless network."},"stationBridgeCloneMac":{"type":"string","description":"This property has effect only in the station-pseudobridge-clone mode.Use this MAC address when connection to AP. If this value is 00:00:00:00:00:00, station will initially use MAC address of the wireless interface.As soon as packet with MAC address of another device needs to be transmitted, station will reconnect to AP using that address."},"stationRoaming":{"type":"string","description":"Station Roaming feature is available only for 802.11 wireless protocol and only for station modes."},"supportedRatesAg":{"type":"string","description":"List of supported rates, used for all bands except 2ghz-b."},"supportedRatesB":{"type":"string","description":"List of supported rates, used for `2ghz-b, `2ghz-b/g` and `2ghz-b/g/n` bands. Two devices will communicate only using rates that are supported by both devices. This property has effect only when value of rate-set is configured."},"tdmaPeriodSize":{"type":"number","description":"Specifies TDMA period in milliseconds. It could help on the longer distance links, it could slightly increase bandwidth, while latency is increased too."},"txChains":{"type":"array","items":{"type":"number"},"description":"Which antennas to use for transmitting. In current MikroTik routers, both RX and TX chain must be enabled, for the chain to be enabled."},"txPower":{"type":"number","description":"For 802.11ac wireless interface it's total power but for 802.11a/b/g/n it's power per chain."},"txPowerMode":{"type":"string","description":"Sets up tx-power mode for wireless card \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e - use values stored in the card `all-rates-fixed` - use same transmit power for all data rates. Can damage the card if transmit power is set above rated value of the card for used rate. `manual-table` - define transmit power for each rate separately. Can damage the card if transmit power is set above rated value of the card for used rate. `card-rates` - use transmit power calculated for each rate based on value of tx-power parameter. Legacy mode only compatible with currently discontinued products."},"updateStatsInterval":{"type":"string","description":"How often to request update of signals strength and ccq values from clients. Access to registration-table  also triggers update of these values.This is proprietary extension."},"vhtBasicMcs":{"type":"string","description":"Modulation and Coding Schemes that every connecting client must support. Refer to 802.11ac for MCS specification. You can set MCS interval for each of Spatial Stream\n  * none - will not use selected;\n  * mcs0-7 - client must support MCS-0 to MCS-7;\n  * mcs0-8 - client must support MCS-0 to MCS-8;\n  * mcs0-9 - client must support MCS-0 to MCS-9."},"vhtSupportedMcs":{"type":"string","description":"Modulation and Coding Schemes that this device advertises as supported. Refer to 802.11ac for MCS specification. You can set MCS interval for each of Spatial Stream\n  * none - will not use selected; \n  * mcs0-7 - devices will advertise as supported MCS-0 to MCS-7;\n  * mcs0-8 - devices will advertise as supported MCS-0 to MCS-8;\n  * mcs0-9 - devices will advertise as supported MCS-0 to MCS-9."},"vlanId":{"type":"number","description":"VLAN ID to use if doing VLAN tagging."},"vlanMode":{"type":"string","description":"VLAN tagging mode specifies if traffic coming from client should get tagged (and untagged when going to client)."},"wdsCostRange":{"type":"string","description":"Bridge port cost of WDS links are automatically adjusted, depending on measured link throughput. Port cost is recalculated and adjusted every 5 seconds if it has changed by more than 10%, or if more than 20 seconds have passed since the last adjustment.Setting this property to 0 disables automatic cost adjustment.Automatic adjustment does not work for WDS links that are manually configured as a bridge port."},"wdsDefaultBridge":{"type":"string","description":"When WDS link is established and status of the wds interface becomes running, it will be added as a bridge port to the bridge interface specified by this property. When WDS link is lost, wds interface is removed from the bridge. If wds interface is already included in a bridge setup when WDS link becomes active, it will not be added to bridge specified by , and will (needs editing)."},"wdsDefaultCost":{"type":"number","description":"Initial bridge port cost of the WDS links."},"wdsIgnoreSsid":{"type":"boolean","description":"By default, WDS link between two APs can be created only when they work on the same frequency and have the same SSID value. If this property is set to yes, then SSID of the remote AP will not be checked. This property has no effect on connections from clients in station-wds mode. It also does not work if wds-mode is static-mesh or dynamic-mesh."},"wdsMode":{"type":"string","description":"Controls how WDS links with other devices (APs and clients in station-wds mode) are established.\n  * disabled does not allow WDS links.\n  * static only allows WDS links that are manually configured in WDS.\n  * dynamic also allows WDS links with devices that are not configured in WDS, by creating required entries dynamically. Such dynamic WDS entries are removed automatically after the connection with the other AP is lost.\n  * -mesh modes use different (better) method for establishing link between AP, that is not compatible with APs in non-mesh mode. This method avoids one-sided WDS links that are created only by one of the two APs. Such links cannot pass any data.When AP or station is establishing WDS connection with another AP, it uses connect-list to check whether this connection is allowed. If station in station-wds mode is establishing connection with AP, AP uses access-list to check whether this connection is allowed.If mode is station-wds, then this property has no effect."},"wirelessProtocol":{"type":"string","description":"Specifies protocol used on wireless interface;\n  * unspecified - protocol mode used on previous RouterOS versions (v3.x, v4.x). Nstreme is enabled by old enable-nstreme setting, Nv2 configuration is not possible.\n  * any : on AP - regular 802.11 Access Point or Nstreme Access Point; on station - selects Access Point without specific sequence, it could be changed by connect-list rules.\n  * nstreme - enables Nstreme protocol (the same as old enable-nstreme setting).\n  * nv2 - enables Nv2 protocol.\n  * nv2 nstreme : on AP - uses first wireless-protocol setting, always Nv2; on station - searches for Nv2 Access Point, then for Nstreme Access Point.\n  * nv2 nstreme 802.11 - on AP - uses first wireless-protocol setting, always Nv2; on station - searches for Nv2 Access Point, then for Nstreme Access Point, then for regular 802.11 Access Point.Warning! Nv2 doesn't have support for Virtual AP."},"wmmSupport":{"type":"string","description":"Specifies whether to enable  WMM.  Only applies to bands `B` and `G`. Other bands will have it enabled regardless of this setting."},"wpsMode":{"type":"string","description":"WPS Server allows to connect wireless clients that support WPS to AP protected with the Pre-Shared Key without specifying that key in the clients configuration."}},"type":"object"}},"routeros:index/interfaceWirelessAccessList:InterfaceWirelessAccessList":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceWirelessAccessList(\"test\", {\n    signalRange: \"-100..100\",\n    time: \"3h3m-5h,mon,tue,wed,thu,fri\",\n    macAddress: \"00:AA:BB:CC:DD:EE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceWirelessAccessList(\"test\",\n    signal_range=\"-100..100\",\n    time=\"3h3m-5h,mon,tue,wed,thu,fri\",\n    mac_address=\"00:AA:BB:CC:DD:EE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceWirelessAccessList(\"test\", new()\n    {\n        SignalRange = \"-100..100\",\n        Time = \"3h3m-5h,mon,tue,wed,thu,fri\",\n        MacAddress = \"00:AA:BB:CC:DD:EE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceWirelessAccessList(ctx, \"test\", \u0026routeros.InterfaceWirelessAccessListArgs{\n\t\t\tSignalRange: pulumi.String(\"-100..100\"),\n\t\t\tTime:        pulumi.String(\"3h3m-5h,mon,tue,wed,thu,fri\"),\n\t\t\tMacAddress:  pulumi.String(\"00:AA:BB:CC:DD:EE\"),\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.routeros.InterfaceWirelessAccessList;\nimport com.pulumi.routeros.InterfaceWirelessAccessListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceWirelessAccessList(\"test\", InterfaceWirelessAccessListArgs.builder()\n            .signalRange(\"-100..100\")\n            .time(\"3h3m-5h,mon,tue,wed,thu,fri\")\n            .macAddress(\"00:AA:BB:CC:DD:EE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceWirelessAccessList\n    properties:\n      signalRange: -100..100\n      time: 3h3m-5h,mon,tue,wed,thu,fri\n      macAddress: 00:AA:BB:CC:DD:EE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wireless/access-list get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceWirelessAccessList:InterfaceWirelessAccessList test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceWirelessAccessList:InterfaceWirelessAccessList test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowSignalOutOfRange":{"type":"string","description":"Option which permits client's signal to be out of the range always or for some time interval.\n"},"apTxLimit":{"type":"number","description":"Limit rate of data transmission to this client. Value 0 means no limit. Value is in bits per second.\n"},"authentication":{"type":"boolean","description":"No - Client association will always fail.yes - Use authentication procedure that is specified in the security-profile of the interface.\n"},"clientTxLimit":{"type":"number","description":"Ask client to limit rate of data transmission. Value 0 means no limit.This is a proprietary extension that is supported by RouterOS clients.Value is in bits per second.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"forwarding":{"type":"boolean","description":"* false - Client cannot send frames to other station that are connected to same access point.\n*true - Client can send frames to other stations on the same access point.\n"},"interface":{"type":"string","description":"Rules with interface=any are used for any wireless interface and the `interface = all` defines interface-list \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 name. To make rule that applies only to one wireless interface, specify that interface as a value of this property.\n"},"interfaceWirelessAccessListId":{"type":"string","description":"The ID of this resource.\n"},"macAddress":{"type":"string","description":"Rule matches client with the specified MAC address. Value 00:00:00:00:00:00 matches always.\n"},"managementProtectionKey":{"type":"string","description":"Management protection shared secret.\n"},"privateAlgo":{"type":"string","description":"Only for `WEP` modes.\n"},"privateKey":{"type":"string","description":"Only for `WEP` modes (HEX).\n"},"privatePreSharedKey":{"type":"string","description":"Used in `WPA PSK` mode.\n"},"signalRange":{"type":"string","description":"Rule matches if signal strength of the station is within the range.If signal strength of the station will go out of the range that is specified in the rule, access point will disconnect that station.\n"},"time":{"type":"string","description":"Rule will match only during specified time.Station will be disconnected after specified time ends. Both start and end time is expressed as time since midnight, 00:00. Rule will match only during specified days of the week. Ex: \"3h3m-5h,mon,tue,wed,thu,fri\"\n"},"vlanId":{"type":"number","description":"VLAN ID to use if doing VLAN tagging.\n"},"vlanMode":{"type":"string","description":"VLAN tagging mode specifies if traffic coming from client should get tagged (and untagged when going to client).\n"}},"type":"object","required":["interfaceWirelessAccessListId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowSignalOutOfRange":{"type":"string","description":"Option which permits client's signal to be out of the range always or for some time interval.\n"},"apTxLimit":{"type":"number","description":"Limit rate of data transmission to this client. Value 0 means no limit. Value is in bits per second.\n"},"authentication":{"type":"boolean","description":"No - Client association will always fail.yes - Use authentication procedure that is specified in the security-profile of the interface.\n"},"clientTxLimit":{"type":"number","description":"Ask client to limit rate of data transmission. Value 0 means no limit.This is a proprietary extension that is supported by RouterOS clients.Value is in bits per second.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"forwarding":{"type":"boolean","description":"* false - Client cannot send frames to other station that are connected to same access point.\n*true - Client can send frames to other stations on the same access point.\n"},"interface":{"type":"string","description":"Rules with interface=any are used for any wireless interface and the `interface = all` defines interface-list \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 name. To make rule that applies only to one wireless interface, specify that interface as a value of this property.\n"},"interfaceWirelessAccessListId":{"type":"string","description":"The ID of this resource.\n"},"macAddress":{"type":"string","description":"Rule matches client with the specified MAC address. Value 00:00:00:00:00:00 matches always.\n"},"managementProtectionKey":{"type":"string","description":"Management protection shared secret.\n"},"privateAlgo":{"type":"string","description":"Only for `WEP` modes.\n"},"privateKey":{"type":"string","description":"Only for `WEP` modes (HEX).\n"},"privatePreSharedKey":{"type":"string","description":"Used in `WPA PSK` mode.\n"},"signalRange":{"type":"string","description":"Rule matches if signal strength of the station is within the range.If signal strength of the station will go out of the range that is specified in the rule, access point will disconnect that station.\n"},"time":{"type":"string","description":"Rule will match only during specified time.Station will be disconnected after specified time ends. Both start and end time is expressed as time since midnight, 00:00. Rule will match only during specified days of the week. Ex: \"3h3m-5h,mon,tue,wed,thu,fri\"\n"},"vlanId":{"type":"number","description":"VLAN ID to use if doing VLAN tagging.\n"},"vlanMode":{"type":"string","description":"VLAN tagging mode specifies if traffic coming from client should get tagged (and untagged when going to client).\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceWirelessAccessList resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowSignalOutOfRange":{"type":"string","description":"Option which permits client's signal to be out of the range always or for some time interval.\n"},"apTxLimit":{"type":"number","description":"Limit rate of data transmission to this client. Value 0 means no limit. Value is in bits per second.\n"},"authentication":{"type":"boolean","description":"No - Client association will always fail.yes - Use authentication procedure that is specified in the security-profile of the interface.\n"},"clientTxLimit":{"type":"number","description":"Ask client to limit rate of data transmission. Value 0 means no limit.This is a proprietary extension that is supported by RouterOS clients.Value is in bits per second.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"forwarding":{"type":"boolean","description":"* false - Client cannot send frames to other station that are connected to same access point.\n*true - Client can send frames to other stations on the same access point.\n"},"interface":{"type":"string","description":"Rules with interface=any are used for any wireless interface and the `interface = all` defines interface-list \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 name. To make rule that applies only to one wireless interface, specify that interface as a value of this property.\n"},"interfaceWirelessAccessListId":{"type":"string","description":"The ID of this resource.\n"},"macAddress":{"type":"string","description":"Rule matches client with the specified MAC address. Value 00:00:00:00:00:00 matches always.\n"},"managementProtectionKey":{"type":"string","description":"Management protection shared secret.\n"},"privateAlgo":{"type":"string","description":"Only for `WEP` modes.\n"},"privateKey":{"type":"string","description":"Only for `WEP` modes (HEX).\n"},"privatePreSharedKey":{"type":"string","description":"Used in `WPA PSK` mode.\n"},"signalRange":{"type":"string","description":"Rule matches if signal strength of the station is within the range.If signal strength of the station will go out of the range that is specified in the rule, access point will disconnect that station.\n"},"time":{"type":"string","description":"Rule will match only during specified time.Station will be disconnected after specified time ends. Both start and end time is expressed as time since midnight, 00:00. Rule will match only during specified days of the week. Ex: \"3h3m-5h,mon,tue,wed,thu,fri\"\n"},"vlanId":{"type":"number","description":"VLAN ID to use if doing VLAN tagging.\n"},"vlanMode":{"type":"string","description":"VLAN tagging mode specifies if traffic coming from client should get tagged (and untagged when going to client).\n"}},"type":"object"}},"routeros:index/interfaceWirelessCap:InterfaceWirelessCap":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.InterfaceWirelessCap(\"settings\", {\n    discoveryInterfaces: [\"bridge1\"],\n    enabled: true,\n    interfaces: [\n        \"wlan1\",\n        \"wlan2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.InterfaceWirelessCap(\"settings\",\n    discovery_interfaces=[\"bridge1\"],\n    enabled=True,\n    interfaces=[\n        \"wlan1\",\n        \"wlan2\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.InterfaceWirelessCap(\"settings\", new()\n    {\n        DiscoveryInterfaces = new[]\n        {\n            \"bridge1\",\n        },\n        Enabled = true,\n        Interfaces = new[]\n        {\n            \"wlan1\",\n            \"wlan2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceWirelessCap(ctx, \"settings\", \u0026routeros.InterfaceWirelessCapArgs{\n\t\t\tDiscoveryInterfaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"bridge1\"),\n\t\t\t},\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tInterfaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"wlan1\"),\n\t\t\t\tpulumi.String(\"wlan2\"),\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.routeros.InterfaceWirelessCap;\nimport com.pulumi.routeros.InterfaceWirelessCapArgs;\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 settings = new InterfaceWirelessCap(\"settings\", InterfaceWirelessCapArgs.builder()\n            .discoveryInterfaces(\"bridge1\")\n            .enabled(true)\n            .interfaces(            \n                \"wlan1\",\n                \"wlan2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:InterfaceWirelessCap\n    properties:\n      discoveryInterfaces:\n        - bridge1\n      enabled: true\n      interfaces:\n        - wlan1\n        - wlan2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/interfaceWirelessCap:InterfaceWirelessCap settings .\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceWirelessCap:InterfaceWirelessCap settings \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"Bridge interface to add the interface as a bridge port.\n"},"capsManAddresses":{"type":"array","items":{"type":"string"},"description":"List of Manager IP addresses that CAP will attempt to contact during discovery.\n"},"capsManCertificateCommonNames":{"type":"array","items":{"type":"string"},"description":"List of manager certificate common names that CAP will connect to.\n"},"capsManNames":{"type":"array","items":{"type":"string"},"description":"An ordered list of CAPs Manager names that the CAP will connect to.\n"},"certificate":{"type":"string","description":"Certificate to use for authentication.\n"},"discoveryInterfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces over which CAP should attempt to discover CAPs Manager.\n"},"enabled":{"type":"boolean","description":"Disable or enable the CAP functionality.\n"},"interfaceWirelessCapId":{"type":"string","description":"The ID of this resource.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces managed by CAPs Manager.\n"},"lockToCapsMan":{"type":"boolean","description":"Lock CAP to the first CAPsMAN it connects to.\n"},"lockedCapsManCommonName":{"type":"string","description":"Common name of the CAPsMAN that the CAP is locked to.\n"},"requestedCertificate":{"type":"string","description":"Requested certificate.\n"},"staticVirtual":{"type":"boolean","description":"An option that creates static virtual interfaces.\n"}},"type":"object","required":["interfaceWirelessCapId","lockedCapsManCommonName","requestedCertificate"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"Bridge interface to add the interface as a bridge port.\n"},"capsManAddresses":{"type":"array","items":{"type":"string"},"description":"List of Manager IP addresses that CAP will attempt to contact during discovery.\n"},"capsManCertificateCommonNames":{"type":"array","items":{"type":"string"},"description":"List of manager certificate common names that CAP will connect to.\n"},"capsManNames":{"type":"array","items":{"type":"string"},"description":"An ordered list of CAPs Manager names that the CAP will connect to.\n"},"certificate":{"type":"string","description":"Certificate to use for authentication.\n"},"discoveryInterfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces over which CAP should attempt to discover CAPs Manager.\n"},"enabled":{"type":"boolean","description":"Disable or enable the CAP functionality.\n"},"interfaceWirelessCapId":{"type":"string","description":"The ID of this resource.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces managed by CAPs Manager.\n"},"lockToCapsMan":{"type":"boolean","description":"Lock CAP to the first CAPsMAN it connects to.\n"},"staticVirtual":{"type":"boolean","description":"An option that creates static virtual interfaces.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceWirelessCap resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"Bridge interface to add the interface as a bridge port.\n"},"capsManAddresses":{"type":"array","items":{"type":"string"},"description":"List of Manager IP addresses that CAP will attempt to contact during discovery.\n"},"capsManCertificateCommonNames":{"type":"array","items":{"type":"string"},"description":"List of manager certificate common names that CAP will connect to.\n"},"capsManNames":{"type":"array","items":{"type":"string"},"description":"An ordered list of CAPs Manager names that the CAP will connect to.\n"},"certificate":{"type":"string","description":"Certificate to use for authentication.\n"},"discoveryInterfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces over which CAP should attempt to discover CAPs Manager.\n"},"enabled":{"type":"boolean","description":"Disable or enable the CAP functionality.\n"},"interfaceWirelessCapId":{"type":"string","description":"The ID of this resource.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces managed by CAPs Manager.\n"},"lockToCapsMan":{"type":"boolean","description":"Lock CAP to the first CAPsMAN it connects to.\n"},"lockedCapsManCommonName":{"type":"string","description":"Common name of the CAPsMAN that the CAP is locked to.\n"},"requestedCertificate":{"type":"string","description":"Requested certificate.\n"},"staticVirtual":{"type":"boolean","description":"An option that creates static virtual interfaces.\n"}},"type":"object"}},"routeros:index/interfaceWirelessConnectList:InterfaceWirelessConnectList":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceWirelessConnectList(\"test\", {\n    \"interface\": \"wlan0\",\n    securityProfile: \"test-secp\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceWirelessConnectList(\"test\",\n    interface=\"wlan0\",\n    security_profile=\"test-secp\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceWirelessConnectList(\"test\", new()\n    {\n        Interface = \"wlan0\",\n        SecurityProfile = \"test-secp\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceWirelessConnectList(ctx, \"test\", \u0026routeros.InterfaceWirelessConnectListArgs{\n\t\t\tInterface:       pulumi.String(\"wlan0\"),\n\t\t\tSecurityProfile: pulumi.String(\"test-secp\"),\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.routeros.InterfaceWirelessConnectList;\nimport com.pulumi.routeros.InterfaceWirelessConnectListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceWirelessConnectList(\"test\", InterfaceWirelessConnectListArgs.builder()\n            .interface_(\"wlan0\")\n            .securityProfile(\"test-secp\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceWirelessConnectList\n    properties:\n      interface: wlan0\n      securityProfile: test-secp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wireless/connect-list get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceWirelessConnectList:InterfaceWirelessConnectList test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceWirelessConnectList:InterfaceWirelessConnectList test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowSignalOutOfRange":{"type":"string"},"areaPrefix":{"type":"string","description":"Rule matches if area value of AP (a proprietary extension) begins with specified value.area value is a proprietary extension."},"comment":{"type":"string"},"connect":{"type":"boolean","description":"Available options: yes - Connect to access point that matches this rule. no - Do not connect to any access point that matches this rule."},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"interfaceWirelessConnectListId":{"type":"string"},"interworking":{"type":"string"},"iwAsra":{"type":"string","description":"Additional Steps Required for Access. Set to yes, if a user should take additional steps to access the internet, like the walled garden."},"iwAuthenticationTypes":{"type":"string","description":"This property is only effective when \u003cspan pulumi-lang-nodejs=\"`asra`\" pulumi-lang-dotnet=\"`Asra`\" pulumi-lang-go=\"`asra`\" pulumi-lang-python=\"`asra`\" pulumi-lang-yaml=\"`asra`\" pulumi-lang-java=\"`asra`\"\u003e`asra`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e. Value of \u003cspan pulumi-lang-nodejs=\"`url`\" pulumi-lang-dotnet=\"`Url`\" pulumi-lang-go=\"`url`\" pulumi-lang-python=\"`url`\" pulumi-lang-yaml=\"`url`\" pulumi-lang-java=\"`url`\"\u003e`url`\u003c/span\u003e is optional and not needed if `dns-redirection` or `online-enrollment` is selected. To set the value of \u003cspan pulumi-lang-nodejs=\"`url`\" pulumi-lang-dotnet=\"`Url`\" pulumi-lang-go=\"`url`\" pulumi-lang-python=\"`url`\" pulumi-lang-yaml=\"`url`\" pulumi-lang-java=\"`url`\"\u003e`url`\u003c/span\u003e to empty string use double quotes. For example: `authentication-types=online-enrollment:\"\"`"},"iwConnectionCapabilities":{"type":"string","description":"This option allows to provide information about the allowed IP protocols and ports. This information can be provided in ANQP response. The first number represents the IP protocol number, the second number represents a port number.\n  * closed - set if protocol and port combination is not allowed;\n  * open - set if protocol and port combination is allowed;\n  * unknown - set if protocol and port combination is either open or closed.\n\nExample: `connection-capabilities=6:80:open,17:5060:closed`Setting such a value on an Access Point informs the Wireless client, which is connecting to the Access Point, that HTTP (6 - TCP, 80 - HTTP) is allowed and VoIP (17 - UDP; 5060 - VoIP) is not allowed. This property does not restrict or allow usage of these protocols and ports, it only gives information to station device which is connecting to Access Point."},"iwEsr":{"type":"string","description":"Emergency services reachable (ESR). Set to yes in order to indicate that emergency services are reachable through the access point."},"iwHessid":{"type":"string","description":"Homogenous extended service set identifier (HESSID). Devices that provide access to same external networks are in one homogenous extended service set. This service set can be identified by HESSID that is the same on all access points in this set. 6-byte value of HESSID is represented as MAC address. It should be globally unique, therefore it is advised to use one of the MAC address of access point in the service set."},"iwHotspot20":{"type":"string","description":"Indicate Hotspot 2.0 capability of the Access Point."},"iwHotspot20Dgaf":{"type":"string","description":"Downstream Group-Addressed Forwarding (DGAF). Sets value of DGAF bit to indicate whether multicast and broadcast frames to clients are disabled or enabled.\n  * yes - multicast and broadcast frames to clients are enabled;\n  * no - multicast and broadcast frames to clients are disabled.\nTo disable multicast and broadcast frames set `multicast-helper=full`."},"iwInternet":{"type":"string","description":"Whether the internet is available through this connection or not. This information is included in the Interworking element."},"iwIpv4Availability":{"type":"string","description":"Information about what IPv4 address and access are available.\n  * not-available - Address type not available;\n  * public - public IPv4 address available;\n  * port-restricted - port-restricted IPv4 address available;\n  * single-nated - single NATed private IPv4 address available;\n  * double-nated - double NATed private IPv4 address available;\n  * port-restricted-single-nated -port-restricted IPv4 address and single NATed IPv4 address available;\n  * port-restricted-double-nated - port-restricted IPv4 address and double NATed IPv4 address available;\n  * unknown - availability of the address type is not known."},"iwIpv6Availability":{"type":"string","description":"Information about what IPv6 address and access are available.\n  * not-available - Address type not available;\n  * available - address type available;\n  * unknown - availability of the address type is not known."},"iwNetworkType":{"type":"string","description":"Information about network access type.\n  * emergency-only - a network dedicated and limited to accessing emergency services;\n  * personal-device - a network of personal devices. An example of this type of network is a camera that is attached to a printer, thereby forming a network for the purpose of printing pictures;\n  * private - network for users with user accounts. Usually used in enterprises for employees, not guests;\n  * private-with-guest - same as private, but guest accounts are available;\n  * public-chargeable - a network that is available to anyone willing to pay. For example, a subscription to Hotspot 2.0 service or in-room internet access in a hotel;\n  * public-free - network is available to anyone without any fee. For example, municipal network in city or airport Hotspot;\n  * test - network used for testing and experimental uses. Not used in production;\n  * wildcard - is used on Wireless clients. Sending probe request with a wildcard as network type value will make all Interworking Access Points respond despite their actual network-type setting.\n\nA client sends a probe request frame with network-type set to value it is interested in. It will receive replies only from access points with the same value (except the case of wildcard)."},"iwRealms":{"type":"string","description":"Information about supported realms and the corresponding EAP method. `realms=example.com:eap-tls,foo.ba:not-specified`"},"iwRoamingOis":{"type":"string","description":"Organization identifier (OI) usually are 24-bit is unique identifiers like organizationally unique identifier (OUI) or company identifier (CID). In some cases, OI is longer for example OUI-36.A subscription service provider (SSP) can be specified by its OI. roaming-ois property can contain zero or more SSPs OIs whose networks are accessible via this AP. Length of OI should be specified before OI itself. For example, to set E4-8D-8C and 6C-3B-6B: `roaming-ois=03E48D8C036C3B6B`"},"iwUesa":{"type":"string","description":"Unauthenticated emergency service accessible (UESA).\n  * no - indicates that no unauthenticated emergency services are reachable through this Access Point;\n  * yes - indicates that higher layer unauthenticated emergency services are reachable through this Access Point."},"iwVenue":{"type":"string","description":"Specify the venue in which the Access Point is located. Choose the value from available ones. Some examples:\n   ```\n  venue=business-bank\n  venue=mercantile-shopping-mall\n  venue=educational-university-or-college\n```"},"macAddress":{"type":"string","description":"Rule matches only AP with the specified MAC address."},"securityProfile":{"type":"string","description":"Name of security profile that is used when connecting to matching access points, If value of this property is none, then security profile specified in the interface configuration will be used. In station mode, rule will match only access points that can support specified security profile. Value none will match access point that supports security profile that is specified in the interface configuration. In access point mode value of this property will not be used to match remote devices."},"signalRange":{"type":"string","description":"Rule matches if signal strength of the access point is within the range. If station establishes connection to access point that is matched by this rule, it will disconnect from that access point when signal strength goes out of the specified range."},"ssid":{"type":"string","description":"Rule matches access points that have this SSID. Empty value matches any SSID. This property has effect only when station mode interface ssid is empty, or when access point mode interface has wds-ignore-ssid=yes."},"threeGpp":{"type":"string"},"wirelessProtocol":{"type":"string"}},"type":"object","required":["interface","interfaceWirelessConnectListId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowSignalOutOfRange":{"type":"string"},"areaPrefix":{"type":"string","description":"Rule matches if area value of AP (a proprietary extension) begins with specified value.area value is a proprietary extension."},"comment":{"type":"string"},"connect":{"type":"boolean","description":"Available options: yes - Connect to access point that matches this rule. no - Do not connect to any access point that matches this rule."},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"interfaceWirelessConnectListId":{"type":"string"},"interworking":{"type":"string"},"iwAsra":{"type":"string","description":"Additional Steps Required for Access. Set to yes, if a user should take additional steps to access the internet, like the walled garden."},"iwAuthenticationTypes":{"type":"string","description":"This property is only effective when \u003cspan pulumi-lang-nodejs=\"`asra`\" pulumi-lang-dotnet=\"`Asra`\" pulumi-lang-go=\"`asra`\" pulumi-lang-python=\"`asra`\" pulumi-lang-yaml=\"`asra`\" pulumi-lang-java=\"`asra`\"\u003e`asra`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e. Value of \u003cspan pulumi-lang-nodejs=\"`url`\" pulumi-lang-dotnet=\"`Url`\" pulumi-lang-go=\"`url`\" pulumi-lang-python=\"`url`\" pulumi-lang-yaml=\"`url`\" pulumi-lang-java=\"`url`\"\u003e`url`\u003c/span\u003e is optional and not needed if `dns-redirection` or `online-enrollment` is selected. To set the value of \u003cspan pulumi-lang-nodejs=\"`url`\" pulumi-lang-dotnet=\"`Url`\" pulumi-lang-go=\"`url`\" pulumi-lang-python=\"`url`\" pulumi-lang-yaml=\"`url`\" pulumi-lang-java=\"`url`\"\u003e`url`\u003c/span\u003e to empty string use double quotes. For example: `authentication-types=online-enrollment:\"\"`"},"iwConnectionCapabilities":{"type":"string","description":"This option allows to provide information about the allowed IP protocols and ports. This information can be provided in ANQP response. The first number represents the IP protocol number, the second number represents a port number.\n  * closed - set if protocol and port combination is not allowed;\n  * open - set if protocol and port combination is allowed;\n  * unknown - set if protocol and port combination is either open or closed.\n\nExample: `connection-capabilities=6:80:open,17:5060:closed`Setting such a value on an Access Point informs the Wireless client, which is connecting to the Access Point, that HTTP (6 - TCP, 80 - HTTP) is allowed and VoIP (17 - UDP; 5060 - VoIP) is not allowed. This property does not restrict or allow usage of these protocols and ports, it only gives information to station device which is connecting to Access Point."},"iwEsr":{"type":"string","description":"Emergency services reachable (ESR). Set to yes in order to indicate that emergency services are reachable through the access point."},"iwHessid":{"type":"string","description":"Homogenous extended service set identifier (HESSID). Devices that provide access to same external networks are in one homogenous extended service set. This service set can be identified by HESSID that is the same on all access points in this set. 6-byte value of HESSID is represented as MAC address. It should be globally unique, therefore it is advised to use one of the MAC address of access point in the service set."},"iwHotspot20":{"type":"string","description":"Indicate Hotspot 2.0 capability of the Access Point."},"iwHotspot20Dgaf":{"type":"string","description":"Downstream Group-Addressed Forwarding (DGAF). Sets value of DGAF bit to indicate whether multicast and broadcast frames to clients are disabled or enabled.\n  * yes - multicast and broadcast frames to clients are enabled;\n  * no - multicast and broadcast frames to clients are disabled.\nTo disable multicast and broadcast frames set `multicast-helper=full`."},"iwInternet":{"type":"string","description":"Whether the internet is available through this connection or not. This information is included in the Interworking element."},"iwIpv4Availability":{"type":"string","description":"Information about what IPv4 address and access are available.\n  * not-available - Address type not available;\n  * public - public IPv4 address available;\n  * port-restricted - port-restricted IPv4 address available;\n  * single-nated - single NATed private IPv4 address available;\n  * double-nated - double NATed private IPv4 address available;\n  * port-restricted-single-nated -port-restricted IPv4 address and single NATed IPv4 address available;\n  * port-restricted-double-nated - port-restricted IPv4 address and double NATed IPv4 address available;\n  * unknown - availability of the address type is not known."},"iwIpv6Availability":{"type":"string","description":"Information about what IPv6 address and access are available.\n  * not-available - Address type not available;\n  * available - address type available;\n  * unknown - availability of the address type is not known."},"iwNetworkType":{"type":"string","description":"Information about network access type.\n  * emergency-only - a network dedicated and limited to accessing emergency services;\n  * personal-device - a network of personal devices. An example of this type of network is a camera that is attached to a printer, thereby forming a network for the purpose of printing pictures;\n  * private - network for users with user accounts. Usually used in enterprises for employees, not guests;\n  * private-with-guest - same as private, but guest accounts are available;\n  * public-chargeable - a network that is available to anyone willing to pay. For example, a subscription to Hotspot 2.0 service or in-room internet access in a hotel;\n  * public-free - network is available to anyone without any fee. For example, municipal network in city or airport Hotspot;\n  * test - network used for testing and experimental uses. Not used in production;\n  * wildcard - is used on Wireless clients. Sending probe request with a wildcard as network type value will make all Interworking Access Points respond despite their actual network-type setting.\n\nA client sends a probe request frame with network-type set to value it is interested in. It will receive replies only from access points with the same value (except the case of wildcard)."},"iwRealms":{"type":"string","description":"Information about supported realms and the corresponding EAP method. `realms=example.com:eap-tls,foo.ba:not-specified`"},"iwRoamingOis":{"type":"string","description":"Organization identifier (OI) usually are 24-bit is unique identifiers like organizationally unique identifier (OUI) or company identifier (CID). In some cases, OI is longer for example OUI-36.A subscription service provider (SSP) can be specified by its OI. roaming-ois property can contain zero or more SSPs OIs whose networks are accessible via this AP. Length of OI should be specified before OI itself. For example, to set E4-8D-8C and 6C-3B-6B: `roaming-ois=03E48D8C036C3B6B`"},"iwUesa":{"type":"string","description":"Unauthenticated emergency service accessible (UESA).\n  * no - indicates that no unauthenticated emergency services are reachable through this Access Point;\n  * yes - indicates that higher layer unauthenticated emergency services are reachable through this Access Point."},"iwVenue":{"type":"string","description":"Specify the venue in which the Access Point is located. Choose the value from available ones. Some examples:\n   ```\n  venue=business-bank\n  venue=mercantile-shopping-mall\n  venue=educational-university-or-college\n```"},"macAddress":{"type":"string","description":"Rule matches only AP with the specified MAC address."},"securityProfile":{"type":"string","description":"Name of security profile that is used when connecting to matching access points, If value of this property is none, then security profile specified in the interface configuration will be used. In station mode, rule will match only access points that can support specified security profile. Value none will match access point that supports security profile that is specified in the interface configuration. In access point mode value of this property will not be used to match remote devices."},"signalRange":{"type":"string","description":"Rule matches if signal strength of the access point is within the range. If station establishes connection to access point that is matched by this rule, it will disconnect from that access point when signal strength goes out of the specified range."},"ssid":{"type":"string","description":"Rule matches access points that have this SSID. Empty value matches any SSID. This property has effect only when station mode interface ssid is empty, or when access point mode interface has wds-ignore-ssid=yes."},"threeGpp":{"type":"string"},"wirelessProtocol":{"type":"string"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceWirelessConnectList resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowSignalOutOfRange":{"type":"string"},"areaPrefix":{"type":"string","description":"Rule matches if area value of AP (a proprietary extension) begins with specified value.area value is a proprietary extension."},"comment":{"type":"string"},"connect":{"type":"boolean","description":"Available options: yes - Connect to access point that matches this rule. no - Do not connect to any access point that matches this rule."},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"interfaceWirelessConnectListId":{"type":"string"},"interworking":{"type":"string"},"iwAsra":{"type":"string","description":"Additional Steps Required for Access. Set to yes, if a user should take additional steps to access the internet, like the walled garden."},"iwAuthenticationTypes":{"type":"string","description":"This property is only effective when \u003cspan pulumi-lang-nodejs=\"`asra`\" pulumi-lang-dotnet=\"`Asra`\" pulumi-lang-go=\"`asra`\" pulumi-lang-python=\"`asra`\" pulumi-lang-yaml=\"`asra`\" pulumi-lang-java=\"`asra`\"\u003e`asra`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e. Value of \u003cspan pulumi-lang-nodejs=\"`url`\" pulumi-lang-dotnet=\"`Url`\" pulumi-lang-go=\"`url`\" pulumi-lang-python=\"`url`\" pulumi-lang-yaml=\"`url`\" pulumi-lang-java=\"`url`\"\u003e`url`\u003c/span\u003e is optional and not needed if `dns-redirection` or `online-enrollment` is selected. To set the value of \u003cspan pulumi-lang-nodejs=\"`url`\" pulumi-lang-dotnet=\"`Url`\" pulumi-lang-go=\"`url`\" pulumi-lang-python=\"`url`\" pulumi-lang-yaml=\"`url`\" pulumi-lang-java=\"`url`\"\u003e`url`\u003c/span\u003e to empty string use double quotes. For example: `authentication-types=online-enrollment:\"\"`"},"iwConnectionCapabilities":{"type":"string","description":"This option allows to provide information about the allowed IP protocols and ports. This information can be provided in ANQP response. The first number represents the IP protocol number, the second number represents a port number.\n  * closed - set if protocol and port combination is not allowed;\n  * open - set if protocol and port combination is allowed;\n  * unknown - set if protocol and port combination is either open or closed.\n\nExample: `connection-capabilities=6:80:open,17:5060:closed`Setting such a value on an Access Point informs the Wireless client, which is connecting to the Access Point, that HTTP (6 - TCP, 80 - HTTP) is allowed and VoIP (17 - UDP; 5060 - VoIP) is not allowed. This property does not restrict or allow usage of these protocols and ports, it only gives information to station device which is connecting to Access Point."},"iwEsr":{"type":"string","description":"Emergency services reachable (ESR). Set to yes in order to indicate that emergency services are reachable through the access point."},"iwHessid":{"type":"string","description":"Homogenous extended service set identifier (HESSID). Devices that provide access to same external networks are in one homogenous extended service set. This service set can be identified by HESSID that is the same on all access points in this set. 6-byte value of HESSID is represented as MAC address. It should be globally unique, therefore it is advised to use one of the MAC address of access point in the service set."},"iwHotspot20":{"type":"string","description":"Indicate Hotspot 2.0 capability of the Access Point."},"iwHotspot20Dgaf":{"type":"string","description":"Downstream Group-Addressed Forwarding (DGAF). Sets value of DGAF bit to indicate whether multicast and broadcast frames to clients are disabled or enabled.\n  * yes - multicast and broadcast frames to clients are enabled;\n  * no - multicast and broadcast frames to clients are disabled.\nTo disable multicast and broadcast frames set `multicast-helper=full`."},"iwInternet":{"type":"string","description":"Whether the internet is available through this connection or not. This information is included in the Interworking element."},"iwIpv4Availability":{"type":"string","description":"Information about what IPv4 address and access are available.\n  * not-available - Address type not available;\n  * public - public IPv4 address available;\n  * port-restricted - port-restricted IPv4 address available;\n  * single-nated - single NATed private IPv4 address available;\n  * double-nated - double NATed private IPv4 address available;\n  * port-restricted-single-nated -port-restricted IPv4 address and single NATed IPv4 address available;\n  * port-restricted-double-nated - port-restricted IPv4 address and double NATed IPv4 address available;\n  * unknown - availability of the address type is not known."},"iwIpv6Availability":{"type":"string","description":"Information about what IPv6 address and access are available.\n  * not-available - Address type not available;\n  * available - address type available;\n  * unknown - availability of the address type is not known."},"iwNetworkType":{"type":"string","description":"Information about network access type.\n  * emergency-only - a network dedicated and limited to accessing emergency services;\n  * personal-device - a network of personal devices. An example of this type of network is a camera that is attached to a printer, thereby forming a network for the purpose of printing pictures;\n  * private - network for users with user accounts. Usually used in enterprises for employees, not guests;\n  * private-with-guest - same as private, but guest accounts are available;\n  * public-chargeable - a network that is available to anyone willing to pay. For example, a subscription to Hotspot 2.0 service or in-room internet access in a hotel;\n  * public-free - network is available to anyone without any fee. For example, municipal network in city or airport Hotspot;\n  * test - network used for testing and experimental uses. Not used in production;\n  * wildcard - is used on Wireless clients. Sending probe request with a wildcard as network type value will make all Interworking Access Points respond despite their actual network-type setting.\n\nA client sends a probe request frame with network-type set to value it is interested in. It will receive replies only from access points with the same value (except the case of wildcard)."},"iwRealms":{"type":"string","description":"Information about supported realms and the corresponding EAP method. `realms=example.com:eap-tls,foo.ba:not-specified`"},"iwRoamingOis":{"type":"string","description":"Organization identifier (OI) usually are 24-bit is unique identifiers like organizationally unique identifier (OUI) or company identifier (CID). In some cases, OI is longer for example OUI-36.A subscription service provider (SSP) can be specified by its OI. roaming-ois property can contain zero or more SSPs OIs whose networks are accessible via this AP. Length of OI should be specified before OI itself. For example, to set E4-8D-8C and 6C-3B-6B: `roaming-ois=03E48D8C036C3B6B`"},"iwUesa":{"type":"string","description":"Unauthenticated emergency service accessible (UESA).\n  * no - indicates that no unauthenticated emergency services are reachable through this Access Point;\n  * yes - indicates that higher layer unauthenticated emergency services are reachable through this Access Point."},"iwVenue":{"type":"string","description":"Specify the venue in which the Access Point is located. Choose the value from available ones. Some examples:\n   ```\n  venue=business-bank\n  venue=mercantile-shopping-mall\n  venue=educational-university-or-college\n```"},"macAddress":{"type":"string","description":"Rule matches only AP with the specified MAC address."},"securityProfile":{"type":"string","description":"Name of security profile that is used when connecting to matching access points, If value of this property is none, then security profile specified in the interface configuration will be used. In station mode, rule will match only access points that can support specified security profile. Value none will match access point that supports security profile that is specified in the interface configuration. In access point mode value of this property will not be used to match remote devices."},"signalRange":{"type":"string","description":"Rule matches if signal strength of the access point is within the range. If station establishes connection to access point that is matched by this rule, it will disconnect from that access point when signal strength goes out of the specified range."},"ssid":{"type":"string","description":"Rule matches access points that have this SSID. Empty value matches any SSID. This property has effect only when station mode interface ssid is empty, or when access point mode interface has wds-ignore-ssid=yes."},"threeGpp":{"type":"string"},"wirelessProtocol":{"type":"string"}},"type":"object"}},"routeros:index/interfaceWirelessSecurityProfiles:InterfaceWirelessSecurityProfiles":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.InterfaceWirelessSecurityProfiles(\"test\", {\n    name: \"test-profile\",\n    mode: \"dynamic-keys\",\n    authenticationTypes: [\n        \"wpa-psk\",\n        \"wpa2-psk\",\n    ],\n    wpaPreSharedKey: \"wpa_psk_key\",\n    wpa2PreSharedKey: \"wpa2_psk_key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.InterfaceWirelessSecurityProfiles(\"test\",\n    name=\"test-profile\",\n    mode=\"dynamic-keys\",\n    authentication_types=[\n        \"wpa-psk\",\n        \"wpa2-psk\",\n    ],\n    wpa_pre_shared_key=\"wpa_psk_key\",\n    wpa2_pre_shared_key=\"wpa2_psk_key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.InterfaceWirelessSecurityProfiles(\"test\", new()\n    {\n        Name = \"test-profile\",\n        Mode = \"dynamic-keys\",\n        AuthenticationTypes = new[]\n        {\n            \"wpa-psk\",\n            \"wpa2-psk\",\n        },\n        WpaPreSharedKey = \"wpa_psk_key\",\n        Wpa2PreSharedKey = \"wpa2_psk_key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewInterfaceWirelessSecurityProfiles(ctx, \"test\", \u0026routeros.InterfaceWirelessSecurityProfilesArgs{\n\t\t\tName: pulumi.String(\"test-profile\"),\n\t\t\tMode: pulumi.String(\"dynamic-keys\"),\n\t\t\tAuthenticationTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"wpa-psk\"),\n\t\t\t\tpulumi.String(\"wpa2-psk\"),\n\t\t\t},\n\t\t\tWpaPreSharedKey:  pulumi.String(\"wpa_psk_key\"),\n\t\t\tWpa2PreSharedKey: pulumi.String(\"wpa2_psk_key\"),\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.routeros.InterfaceWirelessSecurityProfiles;\nimport com.pulumi.routeros.InterfaceWirelessSecurityProfilesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new InterfaceWirelessSecurityProfiles(\"test\", InterfaceWirelessSecurityProfilesArgs.builder()\n            .name(\"test-profile\")\n            .mode(\"dynamic-keys\")\n            .authenticationTypes(            \n                \"wpa-psk\",\n                \"wpa2-psk\")\n            .wpaPreSharedKey(\"wpa_psk_key\")\n            .wpa2PreSharedKey(\"wpa2_psk_key\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:InterfaceWirelessSecurityProfiles\n    properties:\n      name: test-profile\n      mode: dynamic-keys\n      authenticationTypes:\n        - wpa-psk\n        - wpa2-psk\n      wpaPreSharedKey: wpa_psk_key\n      wpa2PreSharedKey: wpa2_psk_key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wireless/security-profiles get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/interfaceWirelessSecurityProfiles:InterfaceWirelessSecurityProfiles test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/interfaceWirelessSecurityProfiles:InterfaceWirelessSecurityProfiles test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authenticationTypes":{"type":"array","items":{"type":"string"},"description":"Set of supported authentication types, multiple values can be selected. Access Point will advertise supported authentication types, and client will connect to Access Point only if it supports any of the advertised authentication types.\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disablePmkid":{"type":"boolean","description":"Whether to include `PMKID` into the `EAPOL` frame sent out by the Access Point. Disabling PMKID can cause compatibility issues with devices that use the PMKID to connect to an Access Point. \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e - removes PMKID from EAPOL frames (improves security, reduces compatibility). \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e - includes PMKID into EAPOL frames (reduces security, improves compatibility).This property only has effect on Access Points.\n"},"eapMethods":{"type":"string","description":"Allowed types of authentication methods, multiple values can be selected. This property only has effect on Access Points. `eap-tls` - Use built-in EAP TLS authentication. Both client and server certificates are supported. See description of tls-mode and tls-certificate properties. `eap-ttls-mschapv2` - Use EAP-TTLS with MS-CHAPv2 authentication. \u003cspan pulumi-lang-nodejs=\"`passthrough`\" pulumi-lang-dotnet=\"`Passthrough`\" pulumi-lang-go=\"`passthrough`\" pulumi-lang-python=\"`passthrough`\" pulumi-lang-yaml=\"`passthrough`\" pulumi-lang-java=\"`passthrough`\"\u003e`passthrough`\u003c/span\u003e - Access Point will relay authentication process to the RADIUS server. \u003cspan pulumi-lang-nodejs=\"`peap`\" pulumi-lang-dotnet=\"`Peap`\" pulumi-lang-go=\"`peap`\" pulumi-lang-python=\"`peap`\" pulumi-lang-yaml=\"`peap`\" pulumi-lang-java=\"`peap`\"\u003e`peap`\u003c/span\u003e - Use Protected EAP authentication.\n"},"groupCiphers":{"type":"string","description":"Access Point advertises one of these ciphers, multiple values can be selected. Access Point uses it to encrypt all broadcast and multicast frames. Client attempts connection only to Access Points that use one of the specified group ciphers. \u003cspan pulumi-lang-nodejs=\"`tkip`\" pulumi-lang-dotnet=\"`Tkip`\" pulumi-lang-go=\"`tkip`\" pulumi-lang-python=\"`tkip`\" pulumi-lang-yaml=\"`tkip`\" pulumi-lang-java=\"`tkip`\"\u003e`tkip`\u003c/span\u003e - Temporal Key Integrity Protocol - encryption protocol, compatible with legacy WEP equipment, but enhanced to correct some of the WEP flaws. `aes-ccm` - more secure WPA encryption protocol, based on the reliable AES (Advanced Encryption Standard). Networks free of WEP legacy should use only this cipher.\n"},"groupKeyUpdate":{"type":"string","description":"Controls how often Access Point updates the group key. This key is used to encrypt all broadcast and multicast frames. property only has effect for Access Points.\n"},"interfaceWirelessSecurityProfilesId":{"type":"string","description":"The ID of this resource.\n"},"interimUpdate":{"type":"string","description":"When RADIUS accounting is used, Access Point periodically sends accounting information updates to the RADIUS server. This property specifies default update interval that can be overridden by the RADIUS server using Acct-Interim-Interval attribute.\n"},"managementProtection":{"type":"string","description":"Management frame protection. Used for: Deauthentication attack prevention, MAC address cloning issue. Possible values are: \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e - management protection is disabled (default), \u003cspan pulumi-lang-nodejs=\"`allowed`\" pulumi-lang-dotnet=\"`Allowed`\" pulumi-lang-go=\"`allowed`\" pulumi-lang-python=\"`allowed`\" pulumi-lang-yaml=\"`allowed`\" pulumi-lang-java=\"`allowed`\"\u003e`allowed`\u003c/span\u003e - use management protection if supported by remote party (for AP - allow both, non-management protection and management protection clients, for client - connect both to APs with and without management protection), \u003cspan pulumi-lang-nodejs=\"`required`\" pulumi-lang-dotnet=\"`Required`\" pulumi-lang-go=\"`required`\" pulumi-lang-python=\"`required`\" pulumi-lang-yaml=\"`required`\" pulumi-lang-java=\"`required`\"\u003e`required`\u003c/span\u003e - establish association only with remote devices that support management protection (for AP - accept only clients that support management protection, for client - connect only to APs that support management protection).\n"},"managementProtectionKey":{"type":"string","description":"Management protection shared secret. When interface is in AP mode, default management protection key (configured in security-profile) can be overridden by key specified in access-list or RADIUS attribute.\n","secret":true},"mode":{"type":"string","description":"Encryption mode for the security profile. \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e - Encryption is not used. Encrypted frames are not accepted. `static-keys-required` - WEP mode. Do not accept and do not send unencrypted frames. Station in static-keys-required mode will not connect to an Access Point in static-keys-optional mode. `static-keys-optional` - WEP mode. Support encryption and decryption, but allow also to receive and send unencrypted frames. Device will send unencrypted frames if encryption algorithm is specified as none. Station in static-keys-optional mode will not connect to an Access Point in `static-keys-required` mode. See also: static-sta-private-algo, static-transmit-key. `dynamic-keys` - WPA mode.\n"},"mschapv2Password":{"type":"string","description":"Password to use for authentication when `eap-ttls-mschapv2` or \u003cspan pulumi-lang-nodejs=\"`peap`\" pulumi-lang-dotnet=\"`Peap`\" pulumi-lang-go=\"`peap`\" pulumi-lang-python=\"`peap`\" pulumi-lang-yaml=\"`peap`\" pulumi-lang-java=\"`peap`\"\u003e`peap`\u003c/span\u003e authentication method is being used. This property only has effect on Stations.\n"},"mschapv2Username":{"type":"string","description":"Username to use for authentication when `eap-ttls-mschapv2` or \u003cspan pulumi-lang-nodejs=\"`peap`\" pulumi-lang-dotnet=\"`Peap`\" pulumi-lang-go=\"`peap`\" pulumi-lang-python=\"`peap`\" pulumi-lang-yaml=\"`peap`\" pulumi-lang-java=\"`peap`\"\u003e`peap`\u003c/span\u003e authentication method is being used. This property only has effect on Stations.\n"},"name":{"type":"string","description":"Name of the security profile.\n"},"radiusCalledFormat":{"type":"string","description":"mac | mac:ssid | ssid\n"},"radiusEapAccounting":{"type":"boolean"},"radiusMacAccounting":{"type":"boolean"},"radiusMacAuthentication":{"type":"boolean","description":"This property affects the way how Access Point processes clients that are not found in the Access List.no - allow or reject client authentication based on the value of default-authentication property of the Wireless interface.yes - Query RADIUS server using MAC address of client as user name. With this setting the value of default-authentication has no effect.\n"},"radiusMacCaching":{"type":"string","description":"If this value is set to time interval, the Access Point will cache RADIUS MAC authentication responses for specified time, and will not contact RADIUS server if matching cache entry already exists. Value disabled will disable cache, Access Point will always contact RADIUS server.\n"},"radiusMacFormat":{"type":"string","description":"Controls how MAC address of the client is encoded by Access Point in the User-Name attribute of the MAC authentication and MAC accounting RADIUS requests.\n"},"radiusMacMode":{"type":"string","description":"By default Access Point uses an empty password, when sending Access-Request during MAC authentication. When this property is set to `as-username-and-password`, Access Point will use the same value for User-Password attribute as for the User-Name attribute.\n"},"staticAlgo0":{"type":"string","description":"Encryption algorithm to use with the corresponding key.\n"},"staticAlgo1":{"type":"string","description":"Encryption algorithm to use with the corresponding key.\n"},"staticAlgo2":{"type":"string","description":"Encryption algorithm to use with the corresponding key.\n"},"staticAlgo3":{"type":"string","description":"Encryption algorithm to use with the corresponding key.\n"},"staticKey0":{"type":"string","description":"Hexadecimal representation of the key. Length of key must be appropriate for selected algorithm. See the Statically configured WEP keys section.\n","secret":true},"staticKey1":{"type":"string","description":"Hexadecimal representation of the key. Length of key must be appropriate for selected algorithm. See the Statically configured WEP keys section.\n","secret":true},"staticKey2":{"type":"string","description":"Hexadecimal representation of the key. Length of key must be appropriate for selected algorithm. See the Statically configured WEP keys section.\n","secret":true},"staticKey3":{"type":"string","description":"Hexadecimal representation of the key. Length of key must be appropriate for selected algorithm. See the Statically configured WEP keys section.\n","secret":true},"staticStaPrivateAlgo":{"type":"string","description":"Encryption algorithm to use with station private key. Value none disables use of the private key. This property is only used on Stations. Access Point has to get corresponding value either from private-algo property, or from Mikrotik-Wireless-Enc-Algo attribute. Station private key replaces key 0 for unicast frames. Station will not use private key to decrypt broadcast frames.\n"},"staticStaPrivateKey":{"type":"string","description":"Length of key must be appropriate for selected algorithm, see the Statically configured WEP keys section. This property is used only on Stations. Access Point uses corresponding key either from private-key property, or from Mikrotik-Wireless-Enc-Key attribute.\n","secret":true},"staticTransmitKey":{"type":"string","description":"Access Point will use the specified key to encrypt frames for clients that do not use private key. Access Point will also use this key to encrypt broadcast and multicast frames. Client will use the specified key to encrypt frames if static-sta-private-algo is set to none. If corresponding static-algo-N property has value set to none, then frame will be sent unencrypted (when mode is set to static-keys-optional) or will not be sent at all (when mode is set to static-keys-required).\n"},"supplicantIdentity":{"type":"string","description":"EAP identity that is sent by client at the beginning of EAP authentication. This value is used as a value for User-Name attribute in RADIUS messages sent by RADIUS EAP accounting and RADIUS EAP pass-through authentication.\n","secret":true},"tlsCertificate":{"type":"string","description":"Access Point always needs a certificate when configured when tls-mode is set to verify-certificate, or is set to dont-verify-certificate. Client needs a certificate only if Access Point is configured with tls-mode set to verify-certificate. In this case client needs a valid certificate that is signed by a CA known to the Access Point. This property only has effect when tls-mode is not set to no-certificates and eap-methods contains eap-tls.\n"},"tlsMode":{"type":"string","description":"This property has effect only when eap-methods contains eap-tls. `verify-certificate` - Require remote device to have valid certificate. Check that it is signed by known certificate authority. No additional identity verification is done. Certificate may include information about time period during which it is valid. If router has incorrect time and date, it may reject valid certificate because router's clock is outside that period. See also the Certificates configuration. `dont-verify-certificate` - Do not check certificate of the remote device. Access Point will not require client to provide certificate. `no-certificates` - Do not use certificates. TLS session is established using 2048 bit anonymous Diffie-Hellman key exchange. `verify-certificate-with-crl` - Same as verify-certificate but also checks if the certificate is valid by checking the Certificate Revocation List.\n"},"unicastCiphers":{"type":"string","description":"Access Point advertises that it supports specified ciphers, multiple values can be selected. Client attempts connection only to Access Points that supports at least one of the specified ciphers. One of the ciphers will be used to encrypt unicast frames that are sent between Access Point and Station.\n"},"wpa2PreSharedKey":{"type":"string","description":"`WPA2` pre-shared key mode requires all devices in a BSS to have common secret key. Value of this key can be an arbitrary text. Commonly referred to as the network password for WPA2 mode. property only has effect when wpa2-psk is added to authentication-types.\n","secret":true},"wpaPreSharedKey":{"type":"string","description":"`WPA` pre-shared key mode requires all devices in a BSS to have common secret key. Value of this key can be an arbitrary text. Commonly referred to as the network password for WPA mode. property only has effect when wpa-psk is added to authentication-types.\n","secret":true}},"type":"object","required":["default","interfaceWirelessSecurityProfilesId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authenticationTypes":{"type":"array","items":{"type":"string"},"description":"Set of supported authentication types, multiple values can be selected. Access Point will advertise supported authentication types, and client will connect to Access Point only if it supports any of the advertised authentication types.\n"},"comment":{"type":"string"},"disablePmkid":{"type":"boolean","description":"Whether to include `PMKID` into the `EAPOL` frame sent out by the Access Point. Disabling PMKID can cause compatibility issues with devices that use the PMKID to connect to an Access Point. \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e - removes PMKID from EAPOL frames (improves security, reduces compatibility). \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e - includes PMKID into EAPOL frames (reduces security, improves compatibility).This property only has effect on Access Points.\n"},"eapMethods":{"type":"string","description":"Allowed types of authentication methods, multiple values can be selected. This property only has effect on Access Points. `eap-tls` - Use built-in EAP TLS authentication. Both client and server certificates are supported. See description of tls-mode and tls-certificate properties. `eap-ttls-mschapv2` - Use EAP-TTLS with MS-CHAPv2 authentication. \u003cspan pulumi-lang-nodejs=\"`passthrough`\" pulumi-lang-dotnet=\"`Passthrough`\" pulumi-lang-go=\"`passthrough`\" pulumi-lang-python=\"`passthrough`\" pulumi-lang-yaml=\"`passthrough`\" pulumi-lang-java=\"`passthrough`\"\u003e`passthrough`\u003c/span\u003e - Access Point will relay authentication process to the RADIUS server. \u003cspan pulumi-lang-nodejs=\"`peap`\" pulumi-lang-dotnet=\"`Peap`\" pulumi-lang-go=\"`peap`\" pulumi-lang-python=\"`peap`\" pulumi-lang-yaml=\"`peap`\" pulumi-lang-java=\"`peap`\"\u003e`peap`\u003c/span\u003e - Use Protected EAP authentication.\n"},"groupCiphers":{"type":"string","description":"Access Point advertises one of these ciphers, multiple values can be selected. Access Point uses it to encrypt all broadcast and multicast frames. Client attempts connection only to Access Points that use one of the specified group ciphers. \u003cspan pulumi-lang-nodejs=\"`tkip`\" pulumi-lang-dotnet=\"`Tkip`\" pulumi-lang-go=\"`tkip`\" pulumi-lang-python=\"`tkip`\" pulumi-lang-yaml=\"`tkip`\" pulumi-lang-java=\"`tkip`\"\u003e`tkip`\u003c/span\u003e - Temporal Key Integrity Protocol - encryption protocol, compatible with legacy WEP equipment, but enhanced to correct some of the WEP flaws. `aes-ccm` - more secure WPA encryption protocol, based on the reliable AES (Advanced Encryption Standard). Networks free of WEP legacy should use only this cipher.\n"},"groupKeyUpdate":{"type":"string","description":"Controls how often Access Point updates the group key. This key is used to encrypt all broadcast and multicast frames. property only has effect for Access Points.\n"},"interfaceWirelessSecurityProfilesId":{"type":"string","description":"The ID of this resource.\n"},"interimUpdate":{"type":"string","description":"When RADIUS accounting is used, Access Point periodically sends accounting information updates to the RADIUS server. This property specifies default update interval that can be overridden by the RADIUS server using Acct-Interim-Interval attribute.\n"},"managementProtection":{"type":"string","description":"Management frame protection. Used for: Deauthentication attack prevention, MAC address cloning issue. Possible values are: \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e - management protection is disabled (default), \u003cspan pulumi-lang-nodejs=\"`allowed`\" pulumi-lang-dotnet=\"`Allowed`\" pulumi-lang-go=\"`allowed`\" pulumi-lang-python=\"`allowed`\" pulumi-lang-yaml=\"`allowed`\" pulumi-lang-java=\"`allowed`\"\u003e`allowed`\u003c/span\u003e - use management protection if supported by remote party (for AP - allow both, non-management protection and management protection clients, for client - connect both to APs with and without management protection), \u003cspan pulumi-lang-nodejs=\"`required`\" pulumi-lang-dotnet=\"`Required`\" pulumi-lang-go=\"`required`\" pulumi-lang-python=\"`required`\" pulumi-lang-yaml=\"`required`\" pulumi-lang-java=\"`required`\"\u003e`required`\u003c/span\u003e - establish association only with remote devices that support management protection (for AP - accept only clients that support management protection, for client - connect only to APs that support management protection).\n"},"managementProtectionKey":{"type":"string","description":"Management protection shared secret. When interface is in AP mode, default management protection key (configured in security-profile) can be overridden by key specified in access-list or RADIUS attribute.\n","secret":true},"mode":{"type":"string","description":"Encryption mode for the security profile. \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e - Encryption is not used. Encrypted frames are not accepted. `static-keys-required` - WEP mode. Do not accept and do not send unencrypted frames. Station in static-keys-required mode will not connect to an Access Point in static-keys-optional mode. `static-keys-optional` - WEP mode. Support encryption and decryption, but allow also to receive and send unencrypted frames. Device will send unencrypted frames if encryption algorithm is specified as none. Station in static-keys-optional mode will not connect to an Access Point in `static-keys-required` mode. See also: static-sta-private-algo, static-transmit-key. `dynamic-keys` - WPA mode.\n"},"mschapv2Password":{"type":"string","description":"Password to use for authentication when `eap-ttls-mschapv2` or \u003cspan pulumi-lang-nodejs=\"`peap`\" pulumi-lang-dotnet=\"`Peap`\" pulumi-lang-go=\"`peap`\" pulumi-lang-python=\"`peap`\" pulumi-lang-yaml=\"`peap`\" pulumi-lang-java=\"`peap`\"\u003e`peap`\u003c/span\u003e authentication method is being used. This property only has effect on Stations.\n"},"mschapv2Username":{"type":"string","description":"Username to use for authentication when `eap-ttls-mschapv2` or \u003cspan pulumi-lang-nodejs=\"`peap`\" pulumi-lang-dotnet=\"`Peap`\" pulumi-lang-go=\"`peap`\" pulumi-lang-python=\"`peap`\" pulumi-lang-yaml=\"`peap`\" pulumi-lang-java=\"`peap`\"\u003e`peap`\u003c/span\u003e authentication method is being used. This property only has effect on Stations.\n"},"name":{"type":"string","description":"Name of the security profile.\n"},"radiusCalledFormat":{"type":"string","description":"mac | mac:ssid | ssid\n"},"radiusEapAccounting":{"type":"boolean"},"radiusMacAccounting":{"type":"boolean"},"radiusMacAuthentication":{"type":"boolean","description":"This property affects the way how Access Point processes clients that are not found in the Access List.no - allow or reject client authentication based on the value of default-authentication property of the Wireless interface.yes - Query RADIUS server using MAC address of client as user name. With this setting the value of default-authentication has no effect.\n"},"radiusMacCaching":{"type":"string","description":"If this value is set to time interval, the Access Point will cache RADIUS MAC authentication responses for specified time, and will not contact RADIUS server if matching cache entry already exists. Value disabled will disable cache, Access Point will always contact RADIUS server.\n"},"radiusMacFormat":{"type":"string","description":"Controls how MAC address of the client is encoded by Access Point in the User-Name attribute of the MAC authentication and MAC accounting RADIUS requests.\n"},"radiusMacMode":{"type":"string","description":"By default Access Point uses an empty password, when sending Access-Request during MAC authentication. When this property is set to `as-username-and-password`, Access Point will use the same value for User-Password attribute as for the User-Name attribute.\n"},"staticAlgo0":{"type":"string","description":"Encryption algorithm to use with the corresponding key.\n"},"staticAlgo1":{"type":"string","description":"Encryption algorithm to use with the corresponding key.\n"},"staticAlgo2":{"type":"string","description":"Encryption algorithm to use with the corresponding key.\n"},"staticAlgo3":{"type":"string","description":"Encryption algorithm to use with the corresponding key.\n"},"staticKey0":{"type":"string","description":"Hexadecimal representation of the key. Length of key must be appropriate for selected algorithm. See the Statically configured WEP keys section.\n","secret":true},"staticKey1":{"type":"string","description":"Hexadecimal representation of the key. Length of key must be appropriate for selected algorithm. See the Statically configured WEP keys section.\n","secret":true},"staticKey2":{"type":"string","description":"Hexadecimal representation of the key. Length of key must be appropriate for selected algorithm. See the Statically configured WEP keys section.\n","secret":true},"staticKey3":{"type":"string","description":"Hexadecimal representation of the key. Length of key must be appropriate for selected algorithm. See the Statically configured WEP keys section.\n","secret":true},"staticStaPrivateAlgo":{"type":"string","description":"Encryption algorithm to use with station private key. Value none disables use of the private key. This property is only used on Stations. Access Point has to get corresponding value either from private-algo property, or from Mikrotik-Wireless-Enc-Algo attribute. Station private key replaces key 0 for unicast frames. Station will not use private key to decrypt broadcast frames.\n"},"staticStaPrivateKey":{"type":"string","description":"Length of key must be appropriate for selected algorithm, see the Statically configured WEP keys section. This property is used only on Stations. Access Point uses corresponding key either from private-key property, or from Mikrotik-Wireless-Enc-Key attribute.\n","secret":true},"staticTransmitKey":{"type":"string","description":"Access Point will use the specified key to encrypt frames for clients that do not use private key. Access Point will also use this key to encrypt broadcast and multicast frames. Client will use the specified key to encrypt frames if static-sta-private-algo is set to none. If corresponding static-algo-N property has value set to none, then frame will be sent unencrypted (when mode is set to static-keys-optional) or will not be sent at all (when mode is set to static-keys-required).\n"},"supplicantIdentity":{"type":"string","description":"EAP identity that is sent by client at the beginning of EAP authentication. This value is used as a value for User-Name attribute in RADIUS messages sent by RADIUS EAP accounting and RADIUS EAP pass-through authentication.\n","secret":true},"tlsCertificate":{"type":"string","description":"Access Point always needs a certificate when configured when tls-mode is set to verify-certificate, or is set to dont-verify-certificate. Client needs a certificate only if Access Point is configured with tls-mode set to verify-certificate. In this case client needs a valid certificate that is signed by a CA known to the Access Point. This property only has effect when tls-mode is not set to no-certificates and eap-methods contains eap-tls.\n"},"tlsMode":{"type":"string","description":"This property has effect only when eap-methods contains eap-tls. `verify-certificate` - Require remote device to have valid certificate. Check that it is signed by known certificate authority. No additional identity verification is done. Certificate may include information about time period during which it is valid. If router has incorrect time and date, it may reject valid certificate because router's clock is outside that period. See also the Certificates configuration. `dont-verify-certificate` - Do not check certificate of the remote device. Access Point will not require client to provide certificate. `no-certificates` - Do not use certificates. TLS session is established using 2048 bit anonymous Diffie-Hellman key exchange. `verify-certificate-with-crl` - Same as verify-certificate but also checks if the certificate is valid by checking the Certificate Revocation List.\n"},"unicastCiphers":{"type":"string","description":"Access Point advertises that it supports specified ciphers, multiple values can be selected. Client attempts connection only to Access Points that supports at least one of the specified ciphers. One of the ciphers will be used to encrypt unicast frames that are sent between Access Point and Station.\n"},"wpa2PreSharedKey":{"type":"string","description":"`WPA2` pre-shared key mode requires all devices in a BSS to have common secret key. Value of this key can be an arbitrary text. Commonly referred to as the network password for WPA2 mode. property only has effect when wpa2-psk is added to authentication-types.\n","secret":true},"wpaPreSharedKey":{"type":"string","description":"`WPA` pre-shared key mode requires all devices in a BSS to have common secret key. Value of this key can be an arbitrary text. Commonly referred to as the network password for WPA mode. property only has effect when wpa-psk is added to authentication-types.\n","secret":true}},"stateInputs":{"description":"Input properties used for looking up and filtering InterfaceWirelessSecurityProfiles resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authenticationTypes":{"type":"array","items":{"type":"string"},"description":"Set of supported authentication types, multiple values can be selected. Access Point will advertise supported authentication types, and client will connect to Access Point only if it supports any of the advertised authentication types.\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disablePmkid":{"type":"boolean","description":"Whether to include `PMKID` into the `EAPOL` frame sent out by the Access Point. Disabling PMKID can cause compatibility issues with devices that use the PMKID to connect to an Access Point. \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e - removes PMKID from EAPOL frames (improves security, reduces compatibility). \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e - includes PMKID into EAPOL frames (reduces security, improves compatibility).This property only has effect on Access Points.\n"},"eapMethods":{"type":"string","description":"Allowed types of authentication methods, multiple values can be selected. This property only has effect on Access Points. `eap-tls` - Use built-in EAP TLS authentication. Both client and server certificates are supported. See description of tls-mode and tls-certificate properties. `eap-ttls-mschapv2` - Use EAP-TTLS with MS-CHAPv2 authentication. \u003cspan pulumi-lang-nodejs=\"`passthrough`\" pulumi-lang-dotnet=\"`Passthrough`\" pulumi-lang-go=\"`passthrough`\" pulumi-lang-python=\"`passthrough`\" pulumi-lang-yaml=\"`passthrough`\" pulumi-lang-java=\"`passthrough`\"\u003e`passthrough`\u003c/span\u003e - Access Point will relay authentication process to the RADIUS server. \u003cspan pulumi-lang-nodejs=\"`peap`\" pulumi-lang-dotnet=\"`Peap`\" pulumi-lang-go=\"`peap`\" pulumi-lang-python=\"`peap`\" pulumi-lang-yaml=\"`peap`\" pulumi-lang-java=\"`peap`\"\u003e`peap`\u003c/span\u003e - Use Protected EAP authentication.\n"},"groupCiphers":{"type":"string","description":"Access Point advertises one of these ciphers, multiple values can be selected. Access Point uses it to encrypt all broadcast and multicast frames. Client attempts connection only to Access Points that use one of the specified group ciphers. \u003cspan pulumi-lang-nodejs=\"`tkip`\" pulumi-lang-dotnet=\"`Tkip`\" pulumi-lang-go=\"`tkip`\" pulumi-lang-python=\"`tkip`\" pulumi-lang-yaml=\"`tkip`\" pulumi-lang-java=\"`tkip`\"\u003e`tkip`\u003c/span\u003e - Temporal Key Integrity Protocol - encryption protocol, compatible with legacy WEP equipment, but enhanced to correct some of the WEP flaws. `aes-ccm` - more secure WPA encryption protocol, based on the reliable AES (Advanced Encryption Standard). Networks free of WEP legacy should use only this cipher.\n"},"groupKeyUpdate":{"type":"string","description":"Controls how often Access Point updates the group key. This key is used to encrypt all broadcast and multicast frames. property only has effect for Access Points.\n"},"interfaceWirelessSecurityProfilesId":{"type":"string","description":"The ID of this resource.\n"},"interimUpdate":{"type":"string","description":"When RADIUS accounting is used, Access Point periodically sends accounting information updates to the RADIUS server. This property specifies default update interval that can be overridden by the RADIUS server using Acct-Interim-Interval attribute.\n"},"managementProtection":{"type":"string","description":"Management frame protection. Used for: Deauthentication attack prevention, MAC address cloning issue. Possible values are: \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e - management protection is disabled (default), \u003cspan pulumi-lang-nodejs=\"`allowed`\" pulumi-lang-dotnet=\"`Allowed`\" pulumi-lang-go=\"`allowed`\" pulumi-lang-python=\"`allowed`\" pulumi-lang-yaml=\"`allowed`\" pulumi-lang-java=\"`allowed`\"\u003e`allowed`\u003c/span\u003e - use management protection if supported by remote party (for AP - allow both, non-management protection and management protection clients, for client - connect both to APs with and without management protection), \u003cspan pulumi-lang-nodejs=\"`required`\" pulumi-lang-dotnet=\"`Required`\" pulumi-lang-go=\"`required`\" pulumi-lang-python=\"`required`\" pulumi-lang-yaml=\"`required`\" pulumi-lang-java=\"`required`\"\u003e`required`\u003c/span\u003e - establish association only with remote devices that support management protection (for AP - accept only clients that support management protection, for client - connect only to APs that support management protection).\n"},"managementProtectionKey":{"type":"string","description":"Management protection shared secret. When interface is in AP mode, default management protection key (configured in security-profile) can be overridden by key specified in access-list or RADIUS attribute.\n","secret":true},"mode":{"type":"string","description":"Encryption mode for the security profile. \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e - Encryption is not used. Encrypted frames are not accepted. `static-keys-required` - WEP mode. Do not accept and do not send unencrypted frames. Station in static-keys-required mode will not connect to an Access Point in static-keys-optional mode. `static-keys-optional` - WEP mode. Support encryption and decryption, but allow also to receive and send unencrypted frames. Device will send unencrypted frames if encryption algorithm is specified as none. Station in static-keys-optional mode will not connect to an Access Point in `static-keys-required` mode. See also: static-sta-private-algo, static-transmit-key. `dynamic-keys` - WPA mode.\n"},"mschapv2Password":{"type":"string","description":"Password to use for authentication when `eap-ttls-mschapv2` or \u003cspan pulumi-lang-nodejs=\"`peap`\" pulumi-lang-dotnet=\"`Peap`\" pulumi-lang-go=\"`peap`\" pulumi-lang-python=\"`peap`\" pulumi-lang-yaml=\"`peap`\" pulumi-lang-java=\"`peap`\"\u003e`peap`\u003c/span\u003e authentication method is being used. This property only has effect on Stations.\n"},"mschapv2Username":{"type":"string","description":"Username to use for authentication when `eap-ttls-mschapv2` or \u003cspan pulumi-lang-nodejs=\"`peap`\" pulumi-lang-dotnet=\"`Peap`\" pulumi-lang-go=\"`peap`\" pulumi-lang-python=\"`peap`\" pulumi-lang-yaml=\"`peap`\" pulumi-lang-java=\"`peap`\"\u003e`peap`\u003c/span\u003e authentication method is being used. This property only has effect on Stations.\n"},"name":{"type":"string","description":"Name of the security profile.\n"},"radiusCalledFormat":{"type":"string","description":"mac | mac:ssid | ssid\n"},"radiusEapAccounting":{"type":"boolean"},"radiusMacAccounting":{"type":"boolean"},"radiusMacAuthentication":{"type":"boolean","description":"This property affects the way how Access Point processes clients that are not found in the Access List.no - allow or reject client authentication based on the value of default-authentication property of the Wireless interface.yes - Query RADIUS server using MAC address of client as user name. With this setting the value of default-authentication has no effect.\n"},"radiusMacCaching":{"type":"string","description":"If this value is set to time interval, the Access Point will cache RADIUS MAC authentication responses for specified time, and will not contact RADIUS server if matching cache entry already exists. Value disabled will disable cache, Access Point will always contact RADIUS server.\n"},"radiusMacFormat":{"type":"string","description":"Controls how MAC address of the client is encoded by Access Point in the User-Name attribute of the MAC authentication and MAC accounting RADIUS requests.\n"},"radiusMacMode":{"type":"string","description":"By default Access Point uses an empty password, when sending Access-Request during MAC authentication. When this property is set to `as-username-and-password`, Access Point will use the same value for User-Password attribute as for the User-Name attribute.\n"},"staticAlgo0":{"type":"string","description":"Encryption algorithm to use with the corresponding key.\n"},"staticAlgo1":{"type":"string","description":"Encryption algorithm to use with the corresponding key.\n"},"staticAlgo2":{"type":"string","description":"Encryption algorithm to use with the corresponding key.\n"},"staticAlgo3":{"type":"string","description":"Encryption algorithm to use with the corresponding key.\n"},"staticKey0":{"type":"string","description":"Hexadecimal representation of the key. Length of key must be appropriate for selected algorithm. See the Statically configured WEP keys section.\n","secret":true},"staticKey1":{"type":"string","description":"Hexadecimal representation of the key. Length of key must be appropriate for selected algorithm. See the Statically configured WEP keys section.\n","secret":true},"staticKey2":{"type":"string","description":"Hexadecimal representation of the key. Length of key must be appropriate for selected algorithm. See the Statically configured WEP keys section.\n","secret":true},"staticKey3":{"type":"string","description":"Hexadecimal representation of the key. Length of key must be appropriate for selected algorithm. See the Statically configured WEP keys section.\n","secret":true},"staticStaPrivateAlgo":{"type":"string","description":"Encryption algorithm to use with station private key. Value none disables use of the private key. This property is only used on Stations. Access Point has to get corresponding value either from private-algo property, or from Mikrotik-Wireless-Enc-Algo attribute. Station private key replaces key 0 for unicast frames. Station will not use private key to decrypt broadcast frames.\n"},"staticStaPrivateKey":{"type":"string","description":"Length of key must be appropriate for selected algorithm, see the Statically configured WEP keys section. This property is used only on Stations. Access Point uses corresponding key either from private-key property, or from Mikrotik-Wireless-Enc-Key attribute.\n","secret":true},"staticTransmitKey":{"type":"string","description":"Access Point will use the specified key to encrypt frames for clients that do not use private key. Access Point will also use this key to encrypt broadcast and multicast frames. Client will use the specified key to encrypt frames if static-sta-private-algo is set to none. If corresponding static-algo-N property has value set to none, then frame will be sent unencrypted (when mode is set to static-keys-optional) or will not be sent at all (when mode is set to static-keys-required).\n"},"supplicantIdentity":{"type":"string","description":"EAP identity that is sent by client at the beginning of EAP authentication. This value is used as a value for User-Name attribute in RADIUS messages sent by RADIUS EAP accounting and RADIUS EAP pass-through authentication.\n","secret":true},"tlsCertificate":{"type":"string","description":"Access Point always needs a certificate when configured when tls-mode is set to verify-certificate, or is set to dont-verify-certificate. Client needs a certificate only if Access Point is configured with tls-mode set to verify-certificate. In this case client needs a valid certificate that is signed by a CA known to the Access Point. This property only has effect when tls-mode is not set to no-certificates and eap-methods contains eap-tls.\n"},"tlsMode":{"type":"string","description":"This property has effect only when eap-methods contains eap-tls. `verify-certificate` - Require remote device to have valid certificate. Check that it is signed by known certificate authority. No additional identity verification is done. Certificate may include information about time period during which it is valid. If router has incorrect time and date, it may reject valid certificate because router's clock is outside that period. See also the Certificates configuration. `dont-verify-certificate` - Do not check certificate of the remote device. Access Point will not require client to provide certificate. `no-certificates` - Do not use certificates. TLS session is established using 2048 bit anonymous Diffie-Hellman key exchange. `verify-certificate-with-crl` - Same as verify-certificate but also checks if the certificate is valid by checking the Certificate Revocation List.\n"},"unicastCiphers":{"type":"string","description":"Access Point advertises that it supports specified ciphers, multiple values can be selected. Client attempts connection only to Access Points that supports at least one of the specified ciphers. One of the ciphers will be used to encrypt unicast frames that are sent between Access Point and Station.\n"},"wpa2PreSharedKey":{"type":"string","description":"`WPA2` pre-shared key mode requires all devices in a BSS to have common secret key. Value of this key can be an arbitrary text. Commonly referred to as the network password for WPA2 mode. property only has effect when wpa2-psk is added to authentication-types.\n","secret":true},"wpaPreSharedKey":{"type":"string","description":"`WPA` pre-shared key mode requires all devices in a BSS to have common secret key. Value of this key can be an arbitrary text. Commonly referred to as the network password for WPA mode. property only has effect when wpa-psk is added to authentication-types.\n","secret":true}},"type":"object"}},"routeros:index/ipAddress:IpAddress":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst address = new routeros.IpAddress(\"address\", {\n    address: \"10.0.0.1/24\",\n    \"interface\": \"bridge\",\n    network: \"10.0.0.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\naddress = routeros.IpAddress(\"address\",\n    address=\"10.0.0.1/24\",\n    interface=\"bridge\",\n    network=\"10.0.0.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var address = new Routeros.IpAddress(\"address\", new()\n    {\n        Address = \"10.0.0.1/24\",\n        Interface = \"bridge\",\n        Network = \"10.0.0.0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpAddress(ctx, \"address\", \u0026routeros.IpAddressArgs{\n\t\t\tAddress:   pulumi.String(\"10.0.0.1/24\"),\n\t\t\tInterface: pulumi.String(\"bridge\"),\n\t\t\tNetwork:   pulumi.String(\"10.0.0.0\"),\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.routeros.IpAddress;\nimport com.pulumi.routeros.IpAddressArgs;\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 address = new IpAddress(\"address\", IpAddressArgs.builder()\n            .address(\"10.0.0.1/24\")\n            .interface_(\"bridge\")\n            .network(\"10.0.0.0\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  address:\n    type: routeros:IpAddress\n    properties:\n      address: 10.0.0.1/24\n      interface: bridge\n      network: 10.0.0.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/address get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipAddress:IpAddress address \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipAddress:IpAddress address \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualInterface":{"type":"string","description":"Name of the actual interface the logical one is bound to.\n"},"address":{"type":"string","description":"IP address.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"invalid":{"type":"boolean"},"ipAddressId":{"type":"string","description":"The ID of this resource.\n"},"network":{"type":"string","description":"IP address for the network. For point-to-point links it should be the address of the remote end. Starting from v5RC6 this parameter is configurable only for addresses with /32 netmask (point to point links)\n"},"slave":{"type":"boolean","description":"Whether address belongs to an interface which is a slave port to some other master interface\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object","required":["actualInterface","address","dynamic","interface","invalid","ipAddressId","network","slave"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"IP address.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface.\n"},"ipAddressId":{"type":"string","description":"The ID of this resource.\n"},"network":{"type":"string","description":"IP address for the network. For point-to-point links it should be the address of the remote end. Starting from v5RC6 this parameter is configurable only for addresses with /32 netmask (point to point links)\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"requiredInputs":["address","interface"],"stateInputs":{"description":"Input properties used for looking up and filtering IpAddress resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualInterface":{"type":"string","description":"Name of the actual interface the logical one is bound to.\n"},"address":{"type":"string","description":"IP address.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"invalid":{"type":"boolean"},"ipAddressId":{"type":"string","description":"The ID of this resource.\n"},"network":{"type":"string","description":"IP address for the network. For point-to-point links it should be the address of the remote end. Starting from v5RC6 this parameter is configurable only for addresses with /32 netmask (point to point links)\n"},"slave":{"type":"boolean","description":"Whether address belongs to an interface which is a slave port to some other master interface\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object"}},"routeros:index/ipCloud:IpCloud":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpCloud(\"test\", {\n    ddnsEnabled: \"true\",\n    updateTime: \"false\",\n    ddnsUpdateInterval: \"11m\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpCloud(\"test\",\n    ddns_enabled=\"true\",\n    update_time=\"false\",\n    ddns_update_interval=\"11m\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpCloud(\"test\", new()\n    {\n        DdnsEnabled = \"true\",\n        UpdateTime = \"false\",\n        DdnsUpdateInterval = \"11m\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpCloud(ctx, \"test\", \u0026routeros.IpCloudArgs{\n\t\t\tDdnsEnabled:        pulumi.String(\"true\"),\n\t\t\tUpdateTime:         pulumi.String(\"false\"),\n\t\t\tDdnsUpdateInterval: pulumi.String(\"11m\"),\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.routeros.IpCloud;\nimport com.pulumi.routeros.IpCloudArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpCloud(\"test\", IpCloudArgs.builder()\n            .ddnsEnabled(\"true\")\n            .updateTime(\"false\")\n            .ddnsUpdateInterval(\"11m\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpCloud\n    properties:\n      ddnsEnabled: true\n      updateTime: false\n      ddnsUpdateInterval: 11m\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipCloud:IpCloud test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"backToHomeVpn":{"type":"string","description":"Enables or revokes and disables the Back to Home service. ddns-enabled has to be set to yes, for BTH to function.\n"},"ddnsEnabled":{"type":"string","description":"If set to yes, then the device will send an encrypted message to the MikroTik's Cloud server. The server will then decrypt the message and verify that the sender is an authentic MikroTik device. If all is OK, then the MikroTik's Cloud server will create a DDNS record for this device and send a response to the device. Every minute the IP/Cloud service on the router will check if WAN IP address matches the one sent to MikroTik's Cloud server and will send encrypted update to cloud server if IP address changes.\n"},"ddnsUpdateInterval":{"type":"string","description":"If set DDNS will attempt to connect IP Cloud servers at the set interval. If set to none it will continue to internally check IP address update and connect to IP Cloud servers as needed. Useful if IP address used is not on the router itself and thus, cannot be checked as a value internal to the router.\n"},"dnsName":{"type":"string","description":"Shows DNS name assigned to the rdevice. Name consists of 12 character serial number appended by .sn.mynetname.net. This field is visible only after at least one ddns-request is successfully completed.\n"},"ipCloudId":{"type":"string","description":"The ID of this resource.\n"},"publicAddress":{"type":"string","description":"Shows device's IPv4 address that was sent to cloud server. This field is visible only after at least one IP Cloud request was successfully completed.\n"},"publicAddressIpv6":{"type":"string","description":"Shows device's IPv6 address that was sent to cloud server. This field is visible only after at least one IP Cloud request was successfully completed.\n"},"status":{"type":"string","description":"Contains text string that describes current dns-service state. The messages are self explanatory  updating... updated Error: no Internet connection Error: request timed out Error: REJECTED. Contact MikroTik support Error: internal error - should not happen. One possible cause is if router runs out of memory.\n"},"updateTime":{"type":"string","description":"If set to yes then router clock will be set to time, provided by cloud server IF there is no NTP or SNTP client enabled. If set to no, then IP/Cloud service will never update the device's clock. If update-time is set to yes, Clock will be updated even when ddns-enabled is set to no.\n"},"vpnPreferRelayCode":{"type":"string","description":"You can enter relay code that will be preferred for BTH connection, if not set, relay with smallest RTT will be chosen.\n"},"warning":{"type":"string","description":"Shows a warning message if IP address sent by the device differs from the IP address in UDP packet header as visible by the MikroTik's Cloud server. Typically this happens if the device is behind NAT. Example: 'DDNS server received request from IP 123.123.123.123 but your local IP was 192.168.88.23; DDNS service might not work'\n"}},"type":"object","required":["dnsName","ipCloudId","publicAddress","publicAddressIpv6","status","warning"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"backToHomeVpn":{"type":"string","description":"Enables or revokes and disables the Back to Home service. ddns-enabled has to be set to yes, for BTH to function.\n"},"ddnsEnabled":{"type":"string","description":"If set to yes, then the device will send an encrypted message to the MikroTik's Cloud server. The server will then decrypt the message and verify that the sender is an authentic MikroTik device. If all is OK, then the MikroTik's Cloud server will create a DDNS record for this device and send a response to the device. Every minute the IP/Cloud service on the router will check if WAN IP address matches the one sent to MikroTik's Cloud server and will send encrypted update to cloud server if IP address changes.\n"},"ddnsUpdateInterval":{"type":"string","description":"If set DDNS will attempt to connect IP Cloud servers at the set interval. If set to none it will continue to internally check IP address update and connect to IP Cloud servers as needed. Useful if IP address used is not on the router itself and thus, cannot be checked as a value internal to the router.\n"},"ipCloudId":{"type":"string","description":"The ID of this resource.\n"},"updateTime":{"type":"string","description":"If set to yes then router clock will be set to time, provided by cloud server IF there is no NTP or SNTP client enabled. If set to no, then IP/Cloud service will never update the device's clock. If update-time is set to yes, Clock will be updated even when ddns-enabled is set to no.\n"},"vpnPreferRelayCode":{"type":"string","description":"You can enter relay code that will be preferred for BTH connection, if not set, relay with smallest RTT will be chosen.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpCloud resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"backToHomeVpn":{"type":"string","description":"Enables or revokes and disables the Back to Home service. ddns-enabled has to be set to yes, for BTH to function.\n"},"ddnsEnabled":{"type":"string","description":"If set to yes, then the device will send an encrypted message to the MikroTik's Cloud server. The server will then decrypt the message and verify that the sender is an authentic MikroTik device. If all is OK, then the MikroTik's Cloud server will create a DDNS record for this device and send a response to the device. Every minute the IP/Cloud service on the router will check if WAN IP address matches the one sent to MikroTik's Cloud server and will send encrypted update to cloud server if IP address changes.\n"},"ddnsUpdateInterval":{"type":"string","description":"If set DDNS will attempt to connect IP Cloud servers at the set interval. If set to none it will continue to internally check IP address update and connect to IP Cloud servers as needed. Useful if IP address used is not on the router itself and thus, cannot be checked as a value internal to the router.\n"},"dnsName":{"type":"string","description":"Shows DNS name assigned to the rdevice. Name consists of 12 character serial number appended by .sn.mynetname.net. This field is visible only after at least one ddns-request is successfully completed.\n"},"ipCloudId":{"type":"string","description":"The ID of this resource.\n"},"publicAddress":{"type":"string","description":"Shows device's IPv4 address that was sent to cloud server. This field is visible only after at least one IP Cloud request was successfully completed.\n"},"publicAddressIpv6":{"type":"string","description":"Shows device's IPv6 address that was sent to cloud server. This field is visible only after at least one IP Cloud request was successfully completed.\n"},"status":{"type":"string","description":"Contains text string that describes current dns-service state. The messages are self explanatory  updating... updated Error: no Internet connection Error: request timed out Error: REJECTED. Contact MikroTik support Error: internal error - should not happen. One possible cause is if router runs out of memory.\n"},"updateTime":{"type":"string","description":"If set to yes then router clock will be set to time, provided by cloud server IF there is no NTP or SNTP client enabled. If set to no, then IP/Cloud service will never update the device's clock. If update-time is set to yes, Clock will be updated even when ddns-enabled is set to no.\n"},"vpnPreferRelayCode":{"type":"string","description":"You can enter relay code that will be preferred for BTH connection, if not set, relay with smallest RTT will be chosen.\n"},"warning":{"type":"string","description":"Shows a warning message if IP address sent by the device differs from the IP address in UDP packet header as visible by the MikroTik's Cloud server. Typically this happens if the device is behind NAT. Example: 'DDNS server received request from IP 123.123.123.123 but your local IP was 192.168.88.23; DDNS service might not work'\n"}},"type":"object"}},"routeros:index/ipCloudAdvanced:IpCloudAdvanced":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.IpCloudAdvanced(\"settings\", {useLocalAddress: true});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.IpCloudAdvanced(\"settings\", use_local_address=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.IpCloudAdvanced(\"settings\", new()\n    {\n        UseLocalAddress = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpCloudAdvanced(ctx, \"settings\", \u0026routeros.IpCloudAdvancedArgs{\n\t\t\tUseLocalAddress: 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.routeros.IpCloudAdvanced;\nimport com.pulumi.routeros.IpCloudAdvancedArgs;\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 settings = new IpCloudAdvanced(\"settings\", IpCloudAdvancedArgs.builder()\n            .useLocalAddress(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:IpCloudAdvanced\n    properties:\n      useLocalAddress: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipCloudAdvanced:IpCloudAdvanced settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipCloudAdvancedId":{"type":"string","description":"The ID of this resource.\n"},"useLocalAddress":{"type":"boolean","description":"An option whether to assign an internal router address to the dynamic DNS name.\n"}},"type":"object","required":["ipCloudAdvancedId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipCloudAdvancedId":{"type":"string","description":"The ID of this resource.\n"},"useLocalAddress":{"type":"boolean","description":"An option whether to assign an internal router address to the dynamic DNS name.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpCloudAdvanced resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipCloudAdvancedId":{"type":"string","description":"The ID of this resource.\n"},"useLocalAddress":{"type":"boolean","description":"An option whether to assign an internal router address to the dynamic DNS name.\n"}},"type":"object"}},"routeros:index/ipDhcpClient:IpDhcpClient":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst client = new routeros.IpDhcpClient(\"client\", {\"interface\": \"bridge\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nclient = routeros.IpDhcpClient(\"client\", interface=\"bridge\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var client = new Routeros.IpDhcpClient(\"client\", new()\n    {\n        Interface = \"bridge\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDhcpClient(ctx, \"client\", \u0026routeros.IpDhcpClientArgs{\n\t\t\tInterface: pulumi.String(\"bridge\"),\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.routeros.IpDhcpClient;\nimport com.pulumi.routeros.IpDhcpClientArgs;\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 client = new IpDhcpClient(\"client\", IpDhcpClientArgs.builder()\n            .interface_(\"bridge\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  client:\n    type: routeros:IpDhcpClient\n    properties:\n      interface: bridge\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/dhcp-client get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipDhcpClient:IpDhcpClient client \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipDhcpClient:IpDhcpClient client \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"string","description":"Whether to install default route in routing table received from DHCP server."},"address":{"type":"string","description":"IP address and netmask, which is assigned to DHCP Client from the Server."},"allowReconfigure":{"type":"boolean"},"checkGateway":{"type":"string","description":"Method on how to check gateway reachability."},"comment":{"type":"string"},"defaultRouteDistance":{"type":"number","description":"Distance of default route. Applicable if add-default-route is set to yes."},"defaultRouteTables":{"type":"array","items":{"type":"string"},"description":"Default route tables."},"dhcpOptions":{"type":"string","description":"Options that are sent to the DHCP server."},"dhcpServer":{"type":"string","description":"The IP address of the DHCP server."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Sets the DSCP (Differentiated Services Code Point) value for outgoing DHCP client packets. This value is part of the IP header and is used to indicate the desired Quality of Service (QoS) level for network traffic."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"expiresAfter":{"type":"string","description":"A time when the lease expires (specified by the DHCP server)."},"gateway":{"type":"string","description":"The IP address of the gateway which is assigned by DHCP server."},"interface":{"type":"string","description":"Name of the interface."},"invalid":{"type":"boolean"},"ipDhcpClientId":{"type":"string"},"primaryDns":{"type":"string","description":"The IP address of the first DNS resolver, that was assigned by the DHCP server."},"primaryNtp":{"type":"string","description":"The IP address of the primary NTP server, assigned by the DHCP server."},"script":{"type":"string","description":"A script."},"secondaryDns":{"type":"string","description":"The IP address of the second DNS resolver, assigned by the DHCP server."},"secondaryNtp":{"type":"string","description":"The IP address of the secondary NTP server, assigned by the DHCP server."},"status":{"type":"string"},"useBroadcast":{"type":"string","description":"Whether to set broadcast bit in DHCPDISCOVER and DHCPREQUEST messages.\n    -  \u003cspan pulumi-lang-nodejs=\"`always`\" pulumi-lang-dotnet=\"`Always`\" pulumi-lang-go=\"`always`\" pulumi-lang-python=\"`always`\" pulumi-lang-yaml=\"`always`\" pulumi-lang-java=\"`always`\"\u003e`always`\u003c/span\u003e - broadcast bit is set always\n    -  \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e - broadcast bit is set only first 15 seconds\n    -  \u003cspan pulumi-lang-nodejs=\"`never`\" pulumi-lang-dotnet=\"`Never`\" pulumi-lang-go=\"`never`\" pulumi-lang-python=\"`never`\" pulumi-lang-yaml=\"`never`\" pulumi-lang-java=\"`never`\"\u003e`never`\u003c/span\u003e - broadcast bit is not set"},"usePeerDns":{"type":"boolean","description":"Whether to accept the DNS settings advertised by DHCP Server (will override the settings put in the /ip dns submenu)."},"usePeerNtp":{"type":"boolean","description":"Whether to accept the NTP settings advertised by DHCP Server (will override the settings put in the /system ntp client submenu)."},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure messages to clients, prompting them to renew or update their configuration without waiting for their lease to expire."},"vlanPriority":{"type":"number","description":"If the DHCP client is running on a VLAN interface (`/interface/vlan`), you can specify the Priority Code Point (PCP) value. PCP is a 3-bit field in the VLAN header used to mark the priority of packets within a VLAN, allowing traffic to be prioritized accordingly. This setting applies only to VLAN interfaces and affects the priority of outgoing DHCP client packets."}},"type":"object","required":["addDefaultRoute","address","dhcpServer","dynamic","expiresAfter","gateway","interface","invalid","ipDhcpClientId","primaryDns","primaryNtp","secondaryDns","secondaryNtp","status"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"string","description":"Whether to install default route in routing table received from DHCP server."},"allowReconfigure":{"type":"boolean"},"checkGateway":{"type":"string","description":"Method on how to check gateway reachability."},"comment":{"type":"string"},"defaultRouteDistance":{"type":"number","description":"Distance of default route. Applicable if add-default-route is set to yes."},"defaultRouteTables":{"type":"array","items":{"type":"string"},"description":"Default route tables."},"dhcpOptions":{"type":"string","description":"Options that are sent to the DHCP server."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Sets the DSCP (Differentiated Services Code Point) value for outgoing DHCP client packets. This value is part of the IP header and is used to indicate the desired Quality of Service (QoS) level for network traffic."},"interface":{"type":"string","description":"Name of the interface."},"ipDhcpClientId":{"type":"string"},"script":{"type":"string","description":"A script."},"useBroadcast":{"type":"string","description":"Whether to set broadcast bit in DHCPDISCOVER and DHCPREQUEST messages.\n    -  \u003cspan pulumi-lang-nodejs=\"`always`\" pulumi-lang-dotnet=\"`Always`\" pulumi-lang-go=\"`always`\" pulumi-lang-python=\"`always`\" pulumi-lang-yaml=\"`always`\" pulumi-lang-java=\"`always`\"\u003e`always`\u003c/span\u003e - broadcast bit is set always\n    -  \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e - broadcast bit is set only first 15 seconds\n    -  \u003cspan pulumi-lang-nodejs=\"`never`\" pulumi-lang-dotnet=\"`Never`\" pulumi-lang-go=\"`never`\" pulumi-lang-python=\"`never`\" pulumi-lang-yaml=\"`never`\" pulumi-lang-java=\"`never`\"\u003e`never`\u003c/span\u003e - broadcast bit is not set"},"usePeerDns":{"type":"boolean","description":"Whether to accept the DNS settings advertised by DHCP Server (will override the settings put in the /ip dns submenu)."},"usePeerNtp":{"type":"boolean","description":"Whether to accept the NTP settings advertised by DHCP Server (will override the settings put in the /system ntp client submenu)."},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure messages to clients, prompting them to renew or update their configuration without waiting for their lease to expire."},"vlanPriority":{"type":"number","description":"If the DHCP client is running on a VLAN interface (`/interface/vlan`), you can specify the Priority Code Point (PCP) value. PCP is a 3-bit field in the VLAN header used to mark the priority of packets within a VLAN, allowing traffic to be prioritized accordingly. This setting applies only to VLAN interfaces and affects the priority of outgoing DHCP client packets."}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering IpDhcpClient resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addDefaultRoute":{"type":"string","description":"Whether to install default route in routing table received from DHCP server."},"address":{"type":"string","description":"IP address and netmask, which is assigned to DHCP Client from the Server."},"allowReconfigure":{"type":"boolean"},"checkGateway":{"type":"string","description":"Method on how to check gateway reachability."},"comment":{"type":"string"},"defaultRouteDistance":{"type":"number","description":"Distance of default route. Applicable if add-default-route is set to yes."},"defaultRouteTables":{"type":"array","items":{"type":"string"},"description":"Default route tables."},"dhcpOptions":{"type":"string","description":"Options that are sent to the DHCP server."},"dhcpServer":{"type":"string","description":"The IP address of the DHCP server."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Sets the DSCP (Differentiated Services Code Point) value for outgoing DHCP client packets. This value is part of the IP header and is used to indicate the desired Quality of Service (QoS) level for network traffic."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"expiresAfter":{"type":"string","description":"A time when the lease expires (specified by the DHCP server)."},"gateway":{"type":"string","description":"The IP address of the gateway which is assigned by DHCP server."},"interface":{"type":"string","description":"Name of the interface."},"invalid":{"type":"boolean"},"ipDhcpClientId":{"type":"string"},"primaryDns":{"type":"string","description":"The IP address of the first DNS resolver, that was assigned by the DHCP server."},"primaryNtp":{"type":"string","description":"The IP address of the primary NTP server, assigned by the DHCP server."},"script":{"type":"string","description":"A script."},"secondaryDns":{"type":"string","description":"The IP address of the second DNS resolver, assigned by the DHCP server."},"secondaryNtp":{"type":"string","description":"The IP address of the secondary NTP server, assigned by the DHCP server."},"status":{"type":"string"},"useBroadcast":{"type":"string","description":"Whether to set broadcast bit in DHCPDISCOVER and DHCPREQUEST messages.\n    -  \u003cspan pulumi-lang-nodejs=\"`always`\" pulumi-lang-dotnet=\"`Always`\" pulumi-lang-go=\"`always`\" pulumi-lang-python=\"`always`\" pulumi-lang-yaml=\"`always`\" pulumi-lang-java=\"`always`\"\u003e`always`\u003c/span\u003e - broadcast bit is set always\n    -  \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e - broadcast bit is set only first 15 seconds\n    -  \u003cspan pulumi-lang-nodejs=\"`never`\" pulumi-lang-dotnet=\"`Never`\" pulumi-lang-go=\"`never`\" pulumi-lang-python=\"`never`\" pulumi-lang-yaml=\"`never`\" pulumi-lang-java=\"`never`\"\u003e`never`\u003c/span\u003e - broadcast bit is not set"},"usePeerDns":{"type":"boolean","description":"Whether to accept the DNS settings advertised by DHCP Server (will override the settings put in the /ip dns submenu)."},"usePeerNtp":{"type":"boolean","description":"Whether to accept the NTP settings advertised by DHCP Server (will override the settings put in the /system ntp client submenu)."},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure messages to clients, prompting them to renew or update their configuration without waiting for their lease to expire."},"vlanPriority":{"type":"number","description":"If the DHCP client is running on a VLAN interface (`/interface/vlan`), you can specify the Priority Code Point (PCP) value. PCP is a 3-bit field in the VLAN header used to mark the priority of packets within a VLAN, allowing traffic to be prioritized accordingly. This setting applies only to VLAN interfaces and affects the priority of outgoing DHCP client packets."}},"type":"object"}},"routeros:index/ipDhcpClientOption:IpDhcpClientOption":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst option = new routeros.IpDhcpClientOption(\"option\", {\n    name: \"my-dhcp-option\",\n    code: 60,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\noption = routeros.IpDhcpClientOption(\"option\",\n    name=\"my-dhcp-option\",\n    code=60)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var option = new Routeros.IpDhcpClientOption(\"option\", new()\n    {\n        Name = \"my-dhcp-option\",\n        Code = 60,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDhcpClientOption(ctx, \"option\", \u0026routeros.IpDhcpClientOptionArgs{\n\t\t\tName: pulumi.String(\"my-dhcp-option\"),\n\t\t\tCode: pulumi.Float64(60),\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.routeros.IpDhcpClientOption;\nimport com.pulumi.routeros.IpDhcpClientOptionArgs;\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 option = new IpDhcpClientOption(\"option\", IpDhcpClientOptionArgs.builder()\n            .name(\"my-dhcp-option\")\n            .code(60.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  option:\n    type: routeros:IpDhcpClientOption\n    properties:\n      name: my-dhcp-option\n      code: 60\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/dhcp-client/option get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipDhcpClientOption:IpDhcpClientOption option \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipDhcpClientOption:IpDhcpClientOption option \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"The dhcp-client option code.\n"},"ipDhcpClientOptionId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name that will be used in dhcp-client.\n"},"rawValue":{"type":"string","description":"raw_value is computed from value.\n"},"value":{"type":"string","description":"The dhcp-client option\n"}},"type":"object","required":["code","ipDhcpClientOptionId","name","rawValue"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"The dhcp-client option code.\n"},"ipDhcpClientOptionId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name that will be used in dhcp-client.\n"},"rawValue":{"type":"string","description":"raw_value is computed from value.\n"},"value":{"type":"string","description":"The dhcp-client option\n"}},"requiredInputs":["code"],"stateInputs":{"description":"Input properties used for looking up and filtering IpDhcpClientOption resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"The dhcp-client option code.\n"},"ipDhcpClientOptionId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name that will be used in dhcp-client.\n"},"rawValue":{"type":"string","description":"raw_value is computed from value.\n"},"value":{"type":"string","description":"The dhcp-client option\n"}},"type":"object"}},"routeros:index/ipDhcpRelay:IpDhcpRelay":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst relay = new routeros.IpDhcpRelay(\"relay\", {\n    name: \"test relay\",\n    \"interface\": \"ether1\",\n    dhcpServer: \"0.0.0.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nrelay = routeros.IpDhcpRelay(\"relay\",\n    name=\"test relay\",\n    interface=\"ether1\",\n    dhcp_server=\"0.0.0.1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var relay = new Routeros.IpDhcpRelay(\"relay\", new()\n    {\n        Name = \"test relay\",\n        Interface = \"ether1\",\n        DhcpServer = \"0.0.0.1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDhcpRelay(ctx, \"relay\", \u0026routeros.IpDhcpRelayArgs{\n\t\t\tName:       pulumi.String(\"test relay\"),\n\t\t\tInterface:  pulumi.String(\"ether1\"),\n\t\t\tDhcpServer: pulumi.String(\"0.0.0.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.routeros.IpDhcpRelay;\nimport com.pulumi.routeros.IpDhcpRelayArgs;\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 relay = new IpDhcpRelay(\"relay\", IpDhcpRelayArgs.builder()\n            .name(\"test relay\")\n            .interface_(\"ether1\")\n            .dhcpServer(\"0.0.0.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  relay:\n    type: routeros:IpDhcpRelay\n    properties:\n      name: test relay\n      interface: ether1\n      dhcpServer: 0.0.0.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/dhcp-relay get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipDhcpRelay:IpDhcpRelay relay \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipDhcpRelay:IpDhcpRelay relay \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addRelayInfo":{"type":"boolean","description":"Adds DHCP relay agent information if enabled according to RFC 3046. Agent Circuit ID Sub-option contains mac address of an interface, Agent Remote ID Sub-option contains MAC address of the client from which request was received.\n"},"delayThreshold":{"type":"string","description":"If secs field in DHCP packet is smaller than delay-threshold, then this packet is ignored.\n"},"dhcpServer":{"type":"string","description":"List of DHCP servers' IP addresses which should the DHCP requests be forwarded to.\n"},"dhcpServerVrf":{"type":"string","description":"The VRF table this resource operates on.\n"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface name the DHCP relay will be working on.\n"},"invalid":{"type":"boolean"},"ipDhcpRelayId":{"type":"string","description":"The ID of this resource.\n"},"localAddress":{"type":"string","description":"The unique IP address of this DHCP relay needed for DHCP server to distinguish relays. If set to 0.0.0.0 - the IP address will be chosen automatically\n"},"name":{"type":"string","description":"Descriptive name for the relay.\n"},"relayInfoRemoteId":{"type":"string","description":"Specified string will be used to construct Option 82 instead of client's MAC address. Option 82 consist of: interface from which packets was received + client mac address or relay-info-remote-id\n"}},"type":"object","required":["dhcpServer","interface","invalid","ipDhcpRelayId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addRelayInfo":{"type":"boolean","description":"Adds DHCP relay agent information if enabled according to RFC 3046. Agent Circuit ID Sub-option contains mac address of an interface, Agent Remote ID Sub-option contains MAC address of the client from which request was received.\n"},"delayThreshold":{"type":"string","description":"If secs field in DHCP packet is smaller than delay-threshold, then this packet is ignored.\n"},"dhcpServer":{"type":"string","description":"List of DHCP servers' IP addresses which should the DHCP requests be forwarded to.\n"},"dhcpServerVrf":{"type":"string","description":"The VRF table this resource operates on.\n"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface name the DHCP relay will be working on.\n"},"ipDhcpRelayId":{"type":"string","description":"The ID of this resource.\n"},"localAddress":{"type":"string","description":"The unique IP address of this DHCP relay needed for DHCP server to distinguish relays. If set to 0.0.0.0 - the IP address will be chosen automatically\n"},"name":{"type":"string","description":"Descriptive name for the relay.\n"},"relayInfoRemoteId":{"type":"string","description":"Specified string will be used to construct Option 82 instead of client's MAC address. Option 82 consist of: interface from which packets was received + client mac address or relay-info-remote-id\n"}},"requiredInputs":["dhcpServer","interface"],"stateInputs":{"description":"Input properties used for looking up and filtering IpDhcpRelay resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addRelayInfo":{"type":"boolean","description":"Adds DHCP relay agent information if enabled according to RFC 3046. Agent Circuit ID Sub-option contains mac address of an interface, Agent Remote ID Sub-option contains MAC address of the client from which request was received.\n"},"delayThreshold":{"type":"string","description":"If secs field in DHCP packet is smaller than delay-threshold, then this packet is ignored.\n"},"dhcpServer":{"type":"string","description":"List of DHCP servers' IP addresses which should the DHCP requests be forwarded to.\n"},"dhcpServerVrf":{"type":"string","description":"The VRF table this resource operates on.\n"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface name the DHCP relay will be working on.\n"},"invalid":{"type":"boolean"},"ipDhcpRelayId":{"type":"string","description":"The ID of this resource.\n"},"localAddress":{"type":"string","description":"The unique IP address of this DHCP relay needed for DHCP server to distinguish relays. If set to 0.0.0.0 - the IP address will be chosen automatically\n"},"name":{"type":"string","description":"Descriptive name for the relay.\n"},"relayInfoRemoteId":{"type":"string","description":"Specified string will be used to construct Option 82 instead of client's MAC address. Option 82 consist of: interface from which packets was received + client mac address or relay-info-remote-id\n"}},"type":"object"}},"routeros:index/ipDhcpServer:IpDhcpServer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst server = new routeros.IpDhcpServer(\"server\", {\n    addressPool: \"my_address_pool\",\n    \"interface\": \"bridge\",\n    name: \"bridge_dhcp\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nserver = routeros.IpDhcpServer(\"server\",\n    address_pool=\"my_address_pool\",\n    interface=\"bridge\",\n    name=\"bridge_dhcp\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var server = new Routeros.IpDhcpServer(\"server\", new()\n    {\n        AddressPool = \"my_address_pool\",\n        Interface = \"bridge\",\n        Name = \"bridge_dhcp\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDhcpServer(ctx, \"server\", \u0026routeros.IpDhcpServerArgs{\n\t\t\tAddressPool: pulumi.String(\"my_address_pool\"),\n\t\t\tInterface:   pulumi.String(\"bridge\"),\n\t\t\tName:        pulumi.String(\"bridge_dhcp\"),\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.routeros.IpDhcpServer;\nimport com.pulumi.routeros.IpDhcpServerArgs;\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 server = new IpDhcpServer(\"server\", IpDhcpServerArgs.builder()\n            .addressPool(\"my_address_pool\")\n            .interface_(\"bridge\")\n            .name(\"bridge_dhcp\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  server:\n    type: routeros:IpDhcpServer\n    properties:\n      addressPool: my_address_pool\n      interface: bridge\n      name: bridge_dhcp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/dhcp-server get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipDhcpServer:IpDhcpServer server \"*1\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addArp":{"type":"boolean","description":"Whether to add dynamic ARP entry.\n"},"addressLists":{"type":"array","items":{"type":"string"},"description":"Address list to which address will be added if lease is bound.\n"},"addressPool":{"type":"string","description":"IP pool, from which to take IP addresses for the clients. If set to static-only, then only the clients that have a static lease (added in lease submenu) will be allowed.\n"},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, uses the MAC address and DUID for identification. Requires IPv6 DHCP Server to have this option enabled as well to work properly.\n"},"alwaysBroadcast":{"type":"boolean","description":"Always send replies as broadcasts even if destination IP is known.\n"},"authoritative":{"type":"string","description":"Option changes the way how a server responds to DHCP requests.\n"},"bootpLeaseTime":{"type":"string","description":"Accepts two predefined options or time value: * forever - lease never expires * lease-time - use time from lease-time parameter\n"},"bootpSupport":{"type":"string","description":"Support for BOOTP clients.\n"},"clientMacLimit":{"type":"number","description":"Specifies whether to limit specific number of clients per single MAC address.\n"},"comment":{"type":"string"},"conflictDetection":{"type":"boolean","description":"Allows to disable/enable conflict detection. If option is enabled, then whenever server tries to assign a lease it will send ICMP and ARP messages to detect whether such address in the network already exist. If any of above get reply address is considered already used. Conflict detection must be disabled when any kind of DHCP client limitation per port or per mac is used.\n"},"delayThreshold":{"type":"string","description":"If secs field in DHCP packet is smaller than delay-threshold, then this packet is ignored. If set to none - there is no threshold (all DHCP packets are processed).\n"},"dhcpOptionSet":{"type":"string","description":"Use custom set of DHCP options defined in option sets menu.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"dynamicLeaseIdentifiers":{"type":"string","description":"Dynamic lease identifier\n"},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"invalid":{"type":"boolean"},"ipDhcpServerId":{"type":"string","description":"The ID of this resource.\n"},"leaseScript":{"type":"string","description":"A script that will be executed after a lease is assigned or de-assigned.\n"},"leaseTime":{"type":"string","description":"The time that a client may use the assigned address. The client will try to renew this address after half of this time and will request a new address after the time limit expires.\n"},"name":{"type":"string"},"parentQueue":{"type":"string"},"relay":{"type":"string","description":"The IP address of the relay this DHCP server.\n"},"srcAddress":{"type":"string","description":"The address which the DHCP client must send requests to in order to renew an IP address lease.\n"},"supportBroadbandTr101":{"type":"boolean","description":"Support broadband TR101\n"},"useFramedAsClassless":{"type":"boolean","description":"Forward RADIUS Framed-Route as a DHCP Classless-Static-Route to DHCP-client.\n"},"useRadius":{"type":"string","description":"Whether to use RADIUS server.\n"},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure (forcerenew) messages to clients, prompting them to renew configuration without waiting for their lease to expire.\n"}},"type":"object","required":["dynamic","interface","invalid","ipDhcpServerId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addArp":{"type":"boolean","description":"Whether to add dynamic ARP entry.\n"},"addressLists":{"type":"array","items":{"type":"string"},"description":"Address list to which address will be added if lease is bound.\n"},"addressPool":{"type":"string","description":"IP pool, from which to take IP addresses for the clients. If set to static-only, then only the clients that have a static lease (added in lease submenu) will be allowed.\n"},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, uses the MAC address and DUID for identification. Requires IPv6 DHCP Server to have this option enabled as well to work properly.\n"},"alwaysBroadcast":{"type":"boolean","description":"Always send replies as broadcasts even if destination IP is known.\n"},"authoritative":{"type":"string","description":"Option changes the way how a server responds to DHCP requests.\n"},"bootpLeaseTime":{"type":"string","description":"Accepts two predefined options or time value: * forever - lease never expires * lease-time - use time from lease-time parameter\n"},"bootpSupport":{"type":"string","description":"Support for BOOTP clients.\n"},"clientMacLimit":{"type":"number","description":"Specifies whether to limit specific number of clients per single MAC address.\n"},"comment":{"type":"string"},"conflictDetection":{"type":"boolean","description":"Allows to disable/enable conflict detection. If option is enabled, then whenever server tries to assign a lease it will send ICMP and ARP messages to detect whether such address in the network already exist. If any of above get reply address is considered already used. Conflict detection must be disabled when any kind of DHCP client limitation per port or per mac is used.\n"},"delayThreshold":{"type":"string","description":"If secs field in DHCP packet is smaller than delay-threshold, then this packet is ignored. If set to none - there is no threshold (all DHCP packets are processed).\n"},"dhcpOptionSet":{"type":"string","description":"Use custom set of DHCP options defined in option sets menu.\n"},"disabled":{"type":"boolean"},"dynamicLeaseIdentifiers":{"type":"string","description":"Dynamic lease identifier\n"},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"ipDhcpServerId":{"type":"string","description":"The ID of this resource.\n"},"leaseScript":{"type":"string","description":"A script that will be executed after a lease is assigned or de-assigned.\n"},"leaseTime":{"type":"string","description":"The time that a client may use the assigned address. The client will try to renew this address after half of this time and will request a new address after the time limit expires.\n"},"name":{"type":"string"},"parentQueue":{"type":"string"},"relay":{"type":"string","description":"The IP address of the relay this DHCP server.\n"},"srcAddress":{"type":"string","description":"The address which the DHCP client must send requests to in order to renew an IP address lease.\n"},"supportBroadbandTr101":{"type":"boolean","description":"Support broadband TR101\n"},"useFramedAsClassless":{"type":"boolean","description":"Forward RADIUS Framed-Route as a DHCP Classless-Static-Route to DHCP-client.\n"},"useRadius":{"type":"string","description":"Whether to use RADIUS server.\n"},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure (forcerenew) messages to clients, prompting them to renew configuration without waiting for their lease to expire.\n"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering IpDhcpServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addArp":{"type":"boolean","description":"Whether to add dynamic ARP entry.\n"},"addressLists":{"type":"array","items":{"type":"string"},"description":"Address list to which address will be added if lease is bound.\n"},"addressPool":{"type":"string","description":"IP pool, from which to take IP addresses for the clients. If set to static-only, then only the clients that have a static lease (added in lease submenu) will be allowed.\n"},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, uses the MAC address and DUID for identification. Requires IPv6 DHCP Server to have this option enabled as well to work properly.\n"},"alwaysBroadcast":{"type":"boolean","description":"Always send replies as broadcasts even if destination IP is known.\n"},"authoritative":{"type":"string","description":"Option changes the way how a server responds to DHCP requests.\n"},"bootpLeaseTime":{"type":"string","description":"Accepts two predefined options or time value: * forever - lease never expires * lease-time - use time from lease-time parameter\n"},"bootpSupport":{"type":"string","description":"Support for BOOTP clients.\n"},"clientMacLimit":{"type":"number","description":"Specifies whether to limit specific number of clients per single MAC address.\n"},"comment":{"type":"string"},"conflictDetection":{"type":"boolean","description":"Allows to disable/enable conflict detection. If option is enabled, then whenever server tries to assign a lease it will send ICMP and ARP messages to detect whether such address in the network already exist. If any of above get reply address is considered already used. Conflict detection must be disabled when any kind of DHCP client limitation per port or per mac is used.\n"},"delayThreshold":{"type":"string","description":"If secs field in DHCP packet is smaller than delay-threshold, then this packet is ignored. If set to none - there is no threshold (all DHCP packets are processed).\n"},"dhcpOptionSet":{"type":"string","description":"Use custom set of DHCP options defined in option sets menu.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"dynamicLeaseIdentifiers":{"type":"string","description":"Dynamic lease identifier\n"},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"invalid":{"type":"boolean"},"ipDhcpServerId":{"type":"string","description":"The ID of this resource.\n"},"leaseScript":{"type":"string","description":"A script that will be executed after a lease is assigned or de-assigned.\n"},"leaseTime":{"type":"string","description":"The time that a client may use the assigned address. The client will try to renew this address after half of this time and will request a new address after the time limit expires.\n"},"name":{"type":"string"},"parentQueue":{"type":"string"},"relay":{"type":"string","description":"The IP address of the relay this DHCP server.\n"},"srcAddress":{"type":"string","description":"The address which the DHCP client must send requests to in order to renew an IP address lease.\n"},"supportBroadbandTr101":{"type":"boolean","description":"Support broadband TR101\n"},"useFramedAsClassless":{"type":"boolean","description":"Forward RADIUS Framed-Route as a DHCP Classless-Static-Route to DHCP-client.\n"},"useRadius":{"type":"string","description":"Whether to use RADIUS server.\n"},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure (forcerenew) messages to clients, prompting them to renew configuration without waiting for their lease to expire.\n"}},"type":"object"}},"routeros:index/ipDhcpServerConfig:IpDhcpServerConfig":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.IpDhcpServerConfig(\"settings\", {\n    accounting: true,\n    interimUpdate: \"1m\",\n    radiusPassword: \"same-as-user\",\n    storeLeasesDisk: \"10m\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.IpDhcpServerConfig(\"settings\",\n    accounting=True,\n    interim_update=\"1m\",\n    radius_password=\"same-as-user\",\n    store_leases_disk=\"10m\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.IpDhcpServerConfig(\"settings\", new()\n    {\n        Accounting = true,\n        InterimUpdate = \"1m\",\n        RadiusPassword = \"same-as-user\",\n        StoreLeasesDisk = \"10m\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDhcpServerConfig(ctx, \"settings\", \u0026routeros.IpDhcpServerConfigArgs{\n\t\t\tAccounting:      pulumi.Bool(true),\n\t\t\tInterimUpdate:   pulumi.String(\"1m\"),\n\t\t\tRadiusPassword:  pulumi.String(\"same-as-user\"),\n\t\t\tStoreLeasesDisk: pulumi.String(\"10m\"),\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.routeros.IpDhcpServerConfig;\nimport com.pulumi.routeros.IpDhcpServerConfigArgs;\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 settings = new IpDhcpServerConfig(\"settings\", IpDhcpServerConfigArgs.builder()\n            .accounting(true)\n            .interimUpdate(\"1m\")\n            .radiusPassword(\"same-as-user\")\n            .storeLeasesDisk(\"10m\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:IpDhcpServerConfig\n    properties:\n      accounting: true\n      interimUpdate: 1m\n      radiusPassword: same-as-user\n      storeLeasesDisk: 10m\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipDhcpServerConfig:IpDhcpServerConfig settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"An option that enables accounting for DHCP leases.\n"},"interimUpdate":{"type":"string","description":"An option determining whether the DHCP server sends periodic updates to the accounting server during a lease.\n"},"ipDhcpServerConfigId":{"type":"string","description":"The ID of this resource.\n"},"radiusPassword":{"type":"string","description":"An option to set the password parameter for the RADIUS server. This option is available in RouterOS starting from version 7.0.\n"},"storeLeasesDisk":{"type":"string","description":"An option of how often the DHCP leases will be stored on disk.\n"}},"type":"object","required":["ipDhcpServerConfigId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"An option that enables accounting for DHCP leases.\n"},"interimUpdate":{"type":"string","description":"An option determining whether the DHCP server sends periodic updates to the accounting server during a lease.\n"},"ipDhcpServerConfigId":{"type":"string","description":"The ID of this resource.\n"},"radiusPassword":{"type":"string","description":"An option to set the password parameter for the RADIUS server. This option is available in RouterOS starting from version 7.0.\n"},"storeLeasesDisk":{"type":"string","description":"An option of how often the DHCP leases will be stored on disk.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpDhcpServerConfig resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"An option that enables accounting for DHCP leases.\n"},"interimUpdate":{"type":"string","description":"An option determining whether the DHCP server sends periodic updates to the accounting server during a lease.\n"},"ipDhcpServerConfigId":{"type":"string","description":"The ID of this resource.\n"},"radiusPassword":{"type":"string","description":"An option to set the password parameter for the RADIUS server. This option is available in RouterOS starting from version 7.0.\n"},"storeLeasesDisk":{"type":"string","description":"An option of how often the DHCP leases will be stored on disk.\n"}},"type":"object"}},"routeros:index/ipDhcpServerLease:IpDhcpServerLease":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.IpDhcpServerLease \" pulumi-lang-dotnet=\" routeros.IpDhcpServerLease \" pulumi-lang-go=\" IpDhcpServerLease \" pulumi-lang-python=\" IpDhcpServerLease \" pulumi-lang-yaml=\" routeros.IpDhcpServerLease \" pulumi-lang-java=\" routeros.IpDhcpServerLease \"\u003e routeros.IpDhcpServerLease \u003c/span\u003e(Resource)\n\nCreates a DHCP lease on the mikrotik device.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst dhcpLease = new routeros.IpDhcpServerLease(\"dhcp_lease\", {\n    address: \"10.0.0.2\",\n    macAddress: \"AA:BB:CC:DD:11:22\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ndhcp_lease = routeros.IpDhcpServerLease(\"dhcp_lease\",\n    address=\"10.0.0.2\",\n    mac_address=\"AA:BB:CC:DD:11:22\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dhcpLease = new Routeros.IpDhcpServerLease(\"dhcp_lease\", new()\n    {\n        Address = \"10.0.0.2\",\n        MacAddress = \"AA:BB:CC:DD:11:22\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDhcpServerLease(ctx, \"dhcp_lease\", \u0026routeros.IpDhcpServerLeaseArgs{\n\t\t\tAddress:    pulumi.String(\"10.0.0.2\"),\n\t\t\tMacAddress: pulumi.String(\"AA:BB:CC:DD:11:22\"),\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.routeros.IpDhcpServerLease;\nimport com.pulumi.routeros.IpDhcpServerLeaseArgs;\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 dhcpLease = new IpDhcpServerLease(\"dhcpLease\", IpDhcpServerLeaseArgs.builder()\n            .address(\"10.0.0.2\")\n            .macAddress(\"AA:BB:CC:DD:11:22\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dhcpLease:\n    type: routeros:IpDhcpServerLease\n    name: dhcp_lease\n    properties:\n      address: 10.0.0.2\n      macAddress: AA:BB:CC:DD:11:22\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/dhcp-server/lease get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipDhcpServerLease:IpDhcpServerLease dhcp_lease \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipDhcpServerLease:IpDhcpServerLease dhcp_lease \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"activeAddress":{"type":"string","description":"The IP address of the machine currently holding the DHCP lease.\n"},"activeClientId":{"type":"string","description":"Actual client-id of the client.\n"},"activeHostname":{"type":"string","description":"The hostname of the machine currently holding the DHCP lease.\n"},"activeMacAddress":{"type":"string","description":"The MAC address of of the machine currently holding the DHCP lease.\n"},"activeServer":{"type":"string","description":"Actual dhcp server, which serves this client.\n"},"address":{"type":"string","description":"The IP address of the DHCP lease to be created.\n"},"addressLists":{"type":"string","description":"Address list to which address will be added if lease is bound.\n"},"agentCircuitId":{"type":"string","description":"Circuit ID of DHCP relay agent. If each character should be valid ASCII text symbol or else this value is displayed as hex dump.\n"},"agentRemoteId":{"type":"string","description":"Remote ID, set by DHCP relay agent.\n"},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, uses the MAC address and DUID for identification.\n"},"alwaysBroadcast":{"type":"boolean","description":"Send all replies as broadcasts.\n"},"blockAccess":{"type":"boolean","description":"Whether to block access for this DHCP client (true|false).\n"},"blocked":{"type":"boolean","description":"Whether the lease is blocked.\n"},"classId":{"type":"string","description":"Class ID of the client. This option is available in RouterOS starting from version 7.16.\n"},"clientId":{"type":"string","description":"If specified, must match DHCP 'client identifier' option of the request.\n"},"comment":{"type":"string"},"dhcpOption":{"type":"string","description":"Add additional DHCP options.\n"},"dhcpOptionSet":{"type":"string","description":"Add additional set of DHCP options.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Whether the dhcp lease is static or dynamic. Dynamic leases are not guaranteed to continue to be assigned to that specific device.\n"},"expiresAfter":{"type":"string","description":"Time until lease expires.\n"},"hostName":{"type":"string","description":"The hostname of the device\n"},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set.\n"},"ipDhcpServerLeaseId":{"type":"string","description":"The ID of this resource.\n"},"lastSeen":{"type":"string"},"leaseTime":{"type":"string","description":"Time that the client may use the address. If set to 0s lease will never expire.\n"},"macAddress":{"type":"string","description":"The MAC addreess of the DHCP lease to be created.\n"},"radius":{"type":"string","description":"Shows if this dynamic lease is authenticated by RADIUS or not.\n"},"rateLimit":{"type":"string","description":"Adds a dynamic simple queue to limit IP's bandwidth to a specified rate. Requires the lease to be static.\n"},"server":{"type":"string","description":"Server name which serves this client.\n"},"srcMacAddress":{"type":"string","description":"Source MAC address.\n"},"status":{"type":"string","description":"Lease status.\n"},"useSrcMac":{"type":"boolean","description":"When this option is set server uses source MAC address instead of received CHADDR to assign address.\n"}},"type":"object","required":["activeAddress","activeClientId","activeHostname","activeMacAddress","activeServer","address","agentCircuitId","agentRemoteId","blocked","classId","dynamic","expiresAfter","hostName","ipDhcpServerLeaseId","lastSeen","macAddress","radius","srcMacAddress","status"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The IP address of the DHCP lease to be created.\n"},"addressLists":{"type":"string","description":"Address list to which address will be added if lease is bound.\n"},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, uses the MAC address and DUID for identification.\n"},"alwaysBroadcast":{"type":"boolean","description":"Send all replies as broadcasts.\n"},"blockAccess":{"type":"boolean","description":"Whether to block access for this DHCP client (true|false).\n"},"clientId":{"type":"string","description":"If specified, must match DHCP 'client identifier' option of the request.\n"},"comment":{"type":"string"},"dhcpOption":{"type":"string","description":"Add additional DHCP options.\n"},"dhcpOptionSet":{"type":"string","description":"Add additional set of DHCP options.\n"},"disabled":{"type":"boolean"},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set.\n"},"ipDhcpServerLeaseId":{"type":"string","description":"The ID of this resource.\n"},"leaseTime":{"type":"string","description":"Time that the client may use the address. If set to 0s lease will never expire.\n"},"macAddress":{"type":"string","description":"The MAC addreess of the DHCP lease to be created.\n"},"rateLimit":{"type":"string","description":"Adds a dynamic simple queue to limit IP's bandwidth to a specified rate. Requires the lease to be static.\n"},"server":{"type":"string","description":"Server name which serves this client.\n"},"useSrcMac":{"type":"boolean","description":"When this option is set server uses source MAC address instead of received CHADDR to assign address.\n"}},"requiredInputs":["address","macAddress"],"stateInputs":{"description":"Input properties used for looking up and filtering IpDhcpServerLease resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"activeAddress":{"type":"string","description":"The IP address of the machine currently holding the DHCP lease.\n"},"activeClientId":{"type":"string","description":"Actual client-id of the client.\n"},"activeHostname":{"type":"string","description":"The hostname of the machine currently holding the DHCP lease.\n"},"activeMacAddress":{"type":"string","description":"The MAC address of of the machine currently holding the DHCP lease.\n"},"activeServer":{"type":"string","description":"Actual dhcp server, which serves this client.\n"},"address":{"type":"string","description":"The IP address of the DHCP lease to be created.\n"},"addressLists":{"type":"string","description":"Address list to which address will be added if lease is bound.\n"},"agentCircuitId":{"type":"string","description":"Circuit ID of DHCP relay agent. If each character should be valid ASCII text symbol or else this value is displayed as hex dump.\n"},"agentRemoteId":{"type":"string","description":"Remote ID, set by DHCP relay agent.\n"},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, uses the MAC address and DUID for identification.\n"},"alwaysBroadcast":{"type":"boolean","description":"Send all replies as broadcasts.\n"},"blockAccess":{"type":"boolean","description":"Whether to block access for this DHCP client (true|false).\n"},"blocked":{"type":"boolean","description":"Whether the lease is blocked.\n"},"classId":{"type":"string","description":"Class ID of the client. This option is available in RouterOS starting from version 7.16.\n"},"clientId":{"type":"string","description":"If specified, must match DHCP 'client identifier' option of the request.\n"},"comment":{"type":"string"},"dhcpOption":{"type":"string","description":"Add additional DHCP options.\n"},"dhcpOptionSet":{"type":"string","description":"Add additional set of DHCP options.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Whether the dhcp lease is static or dynamic. Dynamic leases are not guaranteed to continue to be assigned to that specific device.\n"},"expiresAfter":{"type":"string","description":"Time until lease expires.\n"},"hostName":{"type":"string","description":"The hostname of the device\n"},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set.\n"},"ipDhcpServerLeaseId":{"type":"string","description":"The ID of this resource.\n"},"lastSeen":{"type":"string"},"leaseTime":{"type":"string","description":"Time that the client may use the address. If set to 0s lease will never expire.\n"},"macAddress":{"type":"string","description":"The MAC addreess of the DHCP lease to be created.\n"},"radius":{"type":"string","description":"Shows if this dynamic lease is authenticated by RADIUS or not.\n"},"rateLimit":{"type":"string","description":"Adds a dynamic simple queue to limit IP's bandwidth to a specified rate. Requires the lease to be static.\n"},"server":{"type":"string","description":"Server name which serves this client.\n"},"srcMacAddress":{"type":"string","description":"Source MAC address.\n"},"status":{"type":"string","description":"Lease status.\n"},"useSrcMac":{"type":"boolean","description":"When this option is set server uses source MAC address instead of received CHADDR to assign address.\n"}},"type":"object"}},"routeros:index/ipDhcpServerNetwork:IpDhcpServerNetwork":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst dhcpServerNetwork = new routeros.IpDhcpServerNetwork(\"dhcp_server_network\", {\n    address: \"10.0.0.0/24\",\n    gateway: \"10.0.0.1\",\n    dnsServers: [\"1.1.1.1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ndhcp_server_network = routeros.IpDhcpServerNetwork(\"dhcp_server_network\",\n    address=\"10.0.0.0/24\",\n    gateway=\"10.0.0.1\",\n    dns_servers=[\"1.1.1.1\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dhcpServerNetwork = new Routeros.IpDhcpServerNetwork(\"dhcp_server_network\", new()\n    {\n        Address = \"10.0.0.0/24\",\n        Gateway = \"10.0.0.1\",\n        DnsServers = new[]\n        {\n            \"1.1.1.1\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDhcpServerNetwork(ctx, \"dhcp_server_network\", \u0026routeros.IpDhcpServerNetworkArgs{\n\t\t\tAddress: pulumi.String(\"10.0.0.0/24\"),\n\t\t\tGateway: pulumi.String(\"10.0.0.1\"),\n\t\t\tDnsServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\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.routeros.IpDhcpServerNetwork;\nimport com.pulumi.routeros.IpDhcpServerNetworkArgs;\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 dhcpServerNetwork = new IpDhcpServerNetwork(\"dhcpServerNetwork\", IpDhcpServerNetworkArgs.builder()\n            .address(\"10.0.0.0/24\")\n            .gateway(\"10.0.0.1\")\n            .dnsServers(\"1.1.1.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dhcpServerNetwork:\n    type: routeros:IpDhcpServerNetwork\n    name: dhcp_server_network\n    properties:\n      address: 10.0.0.0/24\n      gateway: 10.0.0.1\n      dnsServers:\n        - 1.1.1.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/dhcp-server/network get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipDhcpServerNetwork:IpDhcpServerNetwork dhcp_server_network \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipDhcpServerNetwork:IpDhcpServerNetwork dhcp_server_network \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The network DHCP server(s) will lease addresses from.\n"},"bootFileName":{"type":"string","description":"Boot filename.\n"},"capsManagers":{"type":"array","items":{"type":"string"},"description":"A list of IP addresses for one or more CAPsMAN system managers. DHCP Option 138 (capwap) will be used.\n"},"comment":{"type":"string"},"dhcpOptionSet":{"type":"string","description":"Add an additional set of DHCP options.\n"},"dhcpOptions":{"type":"array","items":{"type":"string"},"description":"Add additional DHCP options from the option list.\n"},"dnsNone":{"type":"boolean","description":"If set, then DHCP Server will not pass dynamic DNS servers configured on the router to the DHCP clients if no DNS Server in DNS-server is set.\n"},"dnsServers":{"type":"array","items":{"type":"string"},"description":"The DHCP client will use these as the default DNS servers. Two DNS servers can be specified to be used by the DHCP client as primary and secondary DNS servers.\n"},"domain":{"type":"string","description":"The DHCP client will use this as the 'DNS domain' setting for the network adapter.\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"gateway":{"type":"string","description":"The default gateway to be used by DHCP Client.\n"},"ipDhcpServerNetworkId":{"type":"string","description":"The ID of this resource.\n"},"netmask":{"type":"number","description":"The actual network mask is to be used by the DHCP client. If set to '0' - netmask from network address will be used.\n"},"nextServer":{"type":"string","description":"The IP address of the next server to use in bootstrap.\n"},"ntpNone":{"type":"boolean","description":"If set, then DHCP Server will not pass NTP servers configured on the router to the DHCP clients.\n"},"ntpServers":{"type":"array","items":{"type":"string"},"description":"The DHCP client will use these as the default NTP servers. Two NTP servers can be specified to be used by the DHCP client as primary and secondary NTP servers\n"},"winsServers":{"type":"array","items":{"type":"string"},"description":"The Windows DHCP client will use these as the default WINS servers. Two WINS servers can be specified to be used by the DHCP client as primary and secondary WINS servers\n"}},"type":"object","required":["address","dynamic","ipDhcpServerNetworkId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The network DHCP server(s) will lease addresses from.\n"},"bootFileName":{"type":"string","description":"Boot filename.\n"},"capsManagers":{"type":"array","items":{"type":"string"},"description":"A list of IP addresses for one or more CAPsMAN system managers. DHCP Option 138 (capwap) will be used.\n"},"comment":{"type":"string"},"dhcpOptionSet":{"type":"string","description":"Add an additional set of DHCP options.\n"},"dhcpOptions":{"type":"array","items":{"type":"string"},"description":"Add additional DHCP options from the option list.\n"},"dnsNone":{"type":"boolean","description":"If set, then DHCP Server will not pass dynamic DNS servers configured on the router to the DHCP clients if no DNS Server in DNS-server is set.\n"},"dnsServers":{"type":"array","items":{"type":"string"},"description":"The DHCP client will use these as the default DNS servers. Two DNS servers can be specified to be used by the DHCP client as primary and secondary DNS servers.\n"},"domain":{"type":"string","description":"The DHCP client will use this as the 'DNS domain' setting for the network adapter.\n"},"gateway":{"type":"string","description":"The default gateway to be used by DHCP Client.\n"},"ipDhcpServerNetworkId":{"type":"string","description":"The ID of this resource.\n"},"netmask":{"type":"number","description":"The actual network mask is to be used by the DHCP client. If set to '0' - netmask from network address will be used.\n"},"nextServer":{"type":"string","description":"The IP address of the next server to use in bootstrap.\n"},"ntpNone":{"type":"boolean","description":"If set, then DHCP Server will not pass NTP servers configured on the router to the DHCP clients.\n"},"ntpServers":{"type":"array","items":{"type":"string"},"description":"The DHCP client will use these as the default NTP servers. Two NTP servers can be specified to be used by the DHCP client as primary and secondary NTP servers\n"},"winsServers":{"type":"array","items":{"type":"string"},"description":"The Windows DHCP client will use these as the default WINS servers. Two WINS servers can be specified to be used by the DHCP client as primary and secondary WINS servers\n"}},"requiredInputs":["address"],"stateInputs":{"description":"Input properties used for looking up and filtering IpDhcpServerNetwork resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The network DHCP server(s) will lease addresses from.\n"},"bootFileName":{"type":"string","description":"Boot filename.\n"},"capsManagers":{"type":"array","items":{"type":"string"},"description":"A list of IP addresses for one or more CAPsMAN system managers. DHCP Option 138 (capwap) will be used.\n"},"comment":{"type":"string"},"dhcpOptionSet":{"type":"string","description":"Add an additional set of DHCP options.\n"},"dhcpOptions":{"type":"array","items":{"type":"string"},"description":"Add additional DHCP options from the option list.\n"},"dnsNone":{"type":"boolean","description":"If set, then DHCP Server will not pass dynamic DNS servers configured on the router to the DHCP clients if no DNS Server in DNS-server is set.\n"},"dnsServers":{"type":"array","items":{"type":"string"},"description":"The DHCP client will use these as the default DNS servers. Two DNS servers can be specified to be used by the DHCP client as primary and secondary DNS servers.\n"},"domain":{"type":"string","description":"The DHCP client will use this as the 'DNS domain' setting for the network adapter.\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"gateway":{"type":"string","description":"The default gateway to be used by DHCP Client.\n"},"ipDhcpServerNetworkId":{"type":"string","description":"The ID of this resource.\n"},"netmask":{"type":"number","description":"The actual network mask is to be used by the DHCP client. If set to '0' - netmask from network address will be used.\n"},"nextServer":{"type":"string","description":"The IP address of the next server to use in bootstrap.\n"},"ntpNone":{"type":"boolean","description":"If set, then DHCP Server will not pass NTP servers configured on the router to the DHCP clients.\n"},"ntpServers":{"type":"array","items":{"type":"string"},"description":"The DHCP client will use these as the default NTP servers. Two NTP servers can be specified to be used by the DHCP client as primary and secondary NTP servers\n"},"winsServers":{"type":"array","items":{"type":"string"},"description":"The Windows DHCP client will use these as the default WINS servers. Two WINS servers can be specified to be used by the DHCP client as primary and secondary WINS servers\n"}},"type":"object"}},"routeros:index/ipDhcpServerOption:IpDhcpServerOption":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.IpDhcpServerOption \" pulumi-lang-dotnet=\" routeros.IpDhcpServerOption \" pulumi-lang-go=\" IpDhcpServerOption \" pulumi-lang-python=\" IpDhcpServerOption \" pulumi-lang-yaml=\" routeros.IpDhcpServerOption \" pulumi-lang-java=\" routeros.IpDhcpServerOption \"\u003e routeros.IpDhcpServerOption \u003c/span\u003e(Resource)\n\nCreates a DHCP lease on the mikrotik device.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst jumboFrameOpt = new routeros.IpDhcpServerOption(\"jumbo_frame_opt\", {\n    code: 77,\n    name: \"jumbo-mtu-opt\",\n    value: \"0x2336\",\n});\nconst tftpOption = new routeros.IpDhcpServerOption(\"tftp_option\", {\n    code: 66,\n    name: \"tftpserver-66\",\n    value: \"s'10.10.10.22'\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\njumbo_frame_opt = routeros.IpDhcpServerOption(\"jumbo_frame_opt\",\n    code=77,\n    name=\"jumbo-mtu-opt\",\n    value=\"0x2336\")\ntftp_option = routeros.IpDhcpServerOption(\"tftp_option\",\n    code=66,\n    name=\"tftpserver-66\",\n    value=\"s'10.10.10.22'\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var jumboFrameOpt = new Routeros.IpDhcpServerOption(\"jumbo_frame_opt\", new()\n    {\n        Code = 77,\n        Name = \"jumbo-mtu-opt\",\n        Value = \"0x2336\",\n    });\n\n    var tftpOption = new Routeros.IpDhcpServerOption(\"tftp_option\", new()\n    {\n        Code = 66,\n        Name = \"tftpserver-66\",\n        Value = \"s'10.10.10.22'\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDhcpServerOption(ctx, \"jumbo_frame_opt\", \u0026routeros.IpDhcpServerOptionArgs{\n\t\t\tCode:  pulumi.Float64(77),\n\t\t\tName:  pulumi.String(\"jumbo-mtu-opt\"),\n\t\t\tValue: pulumi.String(\"0x2336\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewIpDhcpServerOption(ctx, \"tftp_option\", \u0026routeros.IpDhcpServerOptionArgs{\n\t\t\tCode:  pulumi.Float64(66),\n\t\t\tName:  pulumi.String(\"tftpserver-66\"),\n\t\t\tValue: pulumi.String(\"s'10.10.10.22'\"),\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.routeros.IpDhcpServerOption;\nimport com.pulumi.routeros.IpDhcpServerOptionArgs;\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 jumboFrameOpt = new IpDhcpServerOption(\"jumboFrameOpt\", IpDhcpServerOptionArgs.builder()\n            .code(77.0)\n            .name(\"jumbo-mtu-opt\")\n            .value(\"0x2336\")\n            .build());\n\n        var tftpOption = new IpDhcpServerOption(\"tftpOption\", IpDhcpServerOptionArgs.builder()\n            .code(66.0)\n            .name(\"tftpserver-66\")\n            .value(\"s'10.10.10.22'\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  jumboFrameOpt:\n    type: routeros:IpDhcpServerOption\n    name: jumbo_frame_opt\n    properties:\n      code: 77\n      name: jumbo-mtu-opt\n      value: 0x2336\n  tftpOption:\n    type: routeros:IpDhcpServerOption\n    name: tftp_option\n    properties:\n      code: 66\n      name: tftpserver-66\n      value: s'10.10.10.22'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/dhcp-server/option/get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipDhcpServerOption:IpDhcpServerOption tftp_option \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipDhcpServerOption:IpDhcpServerOption tftp_option \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"The number of the DHCP option\n"},"comment":{"type":"string"},"force":{"type":"boolean","description":"Force the DHCP option from the server-side even if the DHCP-client does not request such parameter.\n"},"ipDhcpServerOptionId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the DHCP option\n"},"rawValue":{"type":"string","description":"The computed value of the option as an hex value\n"},"value":{"type":"string","description":"The value with formatting using Mikrotik settings https://wiki.mikrotik.com/wiki/Manual:IP/DHCP*Server#DHCP*Options\n"}},"type":"object","required":["code","ipDhcpServerOptionId","name","rawValue","value"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"The number of the DHCP option\n"},"comment":{"type":"string"},"force":{"type":"boolean","description":"Force the DHCP option from the server-side even if the DHCP-client does not request such parameter.\n"},"ipDhcpServerOptionId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the DHCP option\n"},"value":{"type":"string","description":"The value with formatting using Mikrotik settings https://wiki.mikrotik.com/wiki/Manual:IP/DHCP*Server#DHCP*Options\n"}},"requiredInputs":["code","value"],"stateInputs":{"description":"Input properties used for looking up and filtering IpDhcpServerOption resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"The number of the DHCP option\n"},"comment":{"type":"string"},"force":{"type":"boolean","description":"Force the DHCP option from the server-side even if the DHCP-client does not request such parameter.\n"},"ipDhcpServerOptionId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the DHCP option\n"},"rawValue":{"type":"string","description":"The computed value of the option as an hex value\n"},"value":{"type":"string","description":"The value with formatting using Mikrotik settings https://wiki.mikrotik.com/wiki/Manual:IP/DHCP*Server#DHCP*Options\n"}},"type":"object"}},"routeros:index/ipDhcpServerOptionMatcher:IpDhcpServerOptionMatcher":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst dhcp1IpByVendorClass = new routeros.IpDhcpServerOptionMatcher(\"dhcp1_ip_by_vendor_class\", {\n    name: \"dhcp1_ip_by_vendor_class\",\n    server: \"dhcp1\",\n    addressPool: \"pool1\",\n    code: 60,\n    value: \"android-dhcp-11\",\n    matchingType: \"exact\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ndhcp1_ip_by_vendor_class = routeros.IpDhcpServerOptionMatcher(\"dhcp1_ip_by_vendor_class\",\n    name=\"dhcp1_ip_by_vendor_class\",\n    server=\"dhcp1\",\n    address_pool=\"pool1\",\n    code=60,\n    value=\"android-dhcp-11\",\n    matching_type=\"exact\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dhcp1IpByVendorClass = new Routeros.IpDhcpServerOptionMatcher(\"dhcp1_ip_by_vendor_class\", new()\n    {\n        Name = \"dhcp1_ip_by_vendor_class\",\n        Server = \"dhcp1\",\n        AddressPool = \"pool1\",\n        Code = 60,\n        Value = \"android-dhcp-11\",\n        MatchingType = \"exact\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDhcpServerOptionMatcher(ctx, \"dhcp1_ip_by_vendor_class\", \u0026routeros.IpDhcpServerOptionMatcherArgs{\n\t\t\tName:         pulumi.String(\"dhcp1_ip_by_vendor_class\"),\n\t\t\tServer:       pulumi.String(\"dhcp1\"),\n\t\t\tAddressPool:  pulumi.String(\"pool1\"),\n\t\t\tCode:         pulumi.Float64(60),\n\t\t\tValue:        pulumi.String(\"android-dhcp-11\"),\n\t\t\tMatchingType: pulumi.String(\"exact\"),\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.routeros.IpDhcpServerOptionMatcher;\nimport com.pulumi.routeros.IpDhcpServerOptionMatcherArgs;\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 dhcp1IpByVendorClass = new IpDhcpServerOptionMatcher(\"dhcp1IpByVendorClass\", IpDhcpServerOptionMatcherArgs.builder()\n            .name(\"dhcp1_ip_by_vendor_class\")\n            .server(\"dhcp1\")\n            .addressPool(\"pool1\")\n            .code(60.0)\n            .value(\"android-dhcp-11\")\n            .matchingType(\"exact\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dhcp1IpByVendorClass:\n    type: routeros:IpDhcpServerOptionMatcher\n    name: dhcp1_ip_by_vendor_class\n    properties:\n      name: dhcp1_ip_by_vendor_class\n      server: dhcp1\n      addressPool: pool1\n      code: 60 # Vendor Class Identifier\n      value: android-dhcp-11\n      matchingType: exact\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/dhcp-server/matcher/get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipDhcpServerOptionMatcher:IpDhcpServerOptionMatcher test \"*1\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressPool":{"type":"string","description":"IP pool, from which to take IP addresses for the clients. If set to static-only, then only the clients that have a static lease (added in lease submenu) will be allowed."},"code":{"type":"number","description":"DHCP option code. All codes are available at http://www.iana.org/assignments/bootp-dhcp-parameters"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ipDhcpServerOptionMatcherId":{"type":"string"},"matchingType":{"type":"string","description":"Matching method:\n\n- exact: option should match exactly to value\n- substring: value can match anywhere in the option string; at the start, middle, or end."},"name":{"type":"string"},"optionSet":{"type":"string","description":"A custom set of DHCP options defined in the Option Sets menu."},"server":{"type":"string","description":"Server name which serves option matcher."},"value":{"type":"string","description":"A value that will be searched for in option.\nAvailable data types for value are:\n\n- string\n- HEX"}},"type":"object","required":["code","ipDhcpServerOptionMatcherId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressPool":{"type":"string","description":"IP pool, from which to take IP addresses for the clients. If set to static-only, then only the clients that have a static lease (added in lease submenu) will be allowed."},"code":{"type":"number","description":"DHCP option code. All codes are available at http://www.iana.org/assignments/bootp-dhcp-parameters"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ipDhcpServerOptionMatcherId":{"type":"string"},"matchingType":{"type":"string","description":"Matching method:\n\n- exact: option should match exactly to value\n- substring: value can match anywhere in the option string; at the start, middle, or end."},"name":{"type":"string"},"optionSet":{"type":"string","description":"A custom set of DHCP options defined in the Option Sets menu."},"server":{"type":"string","description":"Server name which serves option matcher."},"value":{"type":"string","description":"A value that will be searched for in option.\nAvailable data types for value are:\n\n- string\n- HEX"}},"requiredInputs":["code"],"stateInputs":{"description":"Input properties used for looking up and filtering IpDhcpServerOptionMatcher resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressPool":{"type":"string","description":"IP pool, from which to take IP addresses for the clients. If set to static-only, then only the clients that have a static lease (added in lease submenu) will be allowed."},"code":{"type":"number","description":"DHCP option code. All codes are available at http://www.iana.org/assignments/bootp-dhcp-parameters"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ipDhcpServerOptionMatcherId":{"type":"string"},"matchingType":{"type":"string","description":"Matching method:\n\n- exact: option should match exactly to value\n- substring: value can match anywhere in the option string; at the start, middle, or end."},"name":{"type":"string"},"optionSet":{"type":"string","description":"A custom set of DHCP options defined in the Option Sets menu."},"server":{"type":"string","description":"Server name which serves option matcher."},"value":{"type":"string","description":"A value that will be searched for in option.\nAvailable data types for value are:\n\n- string\n- HEX"}},"type":"object"}},"routeros:index/ipDhcpServerOptionSet:IpDhcpServerOptionSet":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.IpDhcpServerOptionSet \" pulumi-lang-dotnet=\" routeros.IpDhcpServerOptionSet \" pulumi-lang-go=\" IpDhcpServerOptionSet \" pulumi-lang-python=\" IpDhcpServerOptionSet \" pulumi-lang-yaml=\" routeros.IpDhcpServerOptionSet \" pulumi-lang-java=\" routeros.IpDhcpServerOptionSet \"\u003e routeros.IpDhcpServerOptionSet \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.IpDhcpServerOptionSets\n\" pulumi-lang-dotnet=\" routeros.IpDhcpServerOptionSets\n\" pulumi-lang-go=\" IpDhcpServerOptionSets\n\" pulumi-lang-python=\" IpDhcpServerOptionSets\n\" pulumi-lang-yaml=\" routeros.IpDhcpServerOptionSets\n\" pulumi-lang-java=\" routeros.IpDhcpServerOptionSets\n\"\u003e routeros.IpDhcpServerOptionSets\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipDhcpServerOptionSetId":{"type":"string"},"name":{"type":"string","description":"The name of the DHCP option"},"options":{"type":"string","description":"The comma sepparated list of options"}},"type":"object","required":["ipDhcpServerOptionSetId","name","options"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipDhcpServerOptionSetId":{"type":"string"},"name":{"type":"string","description":"The name of the DHCP option"},"options":{"type":"string","description":"The comma sepparated list of options"}},"requiredInputs":["options"],"stateInputs":{"description":"Input properties used for looking up and filtering IpDhcpServerOptionSet resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipDhcpServerOptionSetId":{"type":"string"},"name":{"type":"string","description":"The name of the DHCP option"},"options":{"type":"string","description":"The comma sepparated list of options"}},"type":"object"}},"routeros:index/ipDhcpServerOptionSets:IpDhcpServerOptionSets":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.IpDhcpServerOptionSets \" pulumi-lang-dotnet=\" routeros.IpDhcpServerOptionSets \" pulumi-lang-go=\" IpDhcpServerOptionSets \" pulumi-lang-python=\" IpDhcpServerOptionSets \" pulumi-lang-yaml=\" routeros.IpDhcpServerOptionSets \" pulumi-lang-java=\" routeros.IpDhcpServerOptionSets \"\u003e routeros.IpDhcpServerOptionSets \u003c/span\u003e(Resource)\n\nCreates a DHCP lease on the mikrotik device.\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/dhcp-server/option/sets/get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipDhcpServerOptionSets:IpDhcpServerOptionSets lan_option_set \"*1\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipDhcpServerOptionSetsId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the DHCP option\n"},"options":{"type":"string","description":"The comma sepparated list of options\n"}},"type":"object","required":["ipDhcpServerOptionSetsId","name","options"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipDhcpServerOptionSetsId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the DHCP option\n"},"options":{"type":"string","description":"The comma sepparated list of options\n"}},"requiredInputs":["options"],"stateInputs":{"description":"Input properties used for looking up and filtering IpDhcpServerOptionSets resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipDhcpServerOptionSetsId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the DHCP option\n"},"options":{"type":"string","description":"The comma sepparated list of options\n"}},"type":"object"}},"routeros:index/ipDns:IpDns":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.IpDns \" pulumi-lang-dotnet=\" routeros.IpDns \" pulumi-lang-go=\" IpDns \" pulumi-lang-python=\" IpDns \" pulumi-lang-yaml=\" routeros.IpDns \" pulumi-lang-java=\" routeros.IpDns \"\u003e routeros.IpDns \u003c/span\u003e(Resource)\n\nA MikroTik router with DNS feature enabled can be set as a DNS server for any DNS-compliant client.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst dns_server = new routeros.IpDns(\"dns-server\", {\n    allowRemoteRequests: true,\n    servers: [\n        \"2606:4700:4700::1111,1.1.1.1\",\n        \"2606:4700:4700::1001,1.0.0.1\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ndns_server = routeros.IpDns(\"dns-server\",\n    allow_remote_requests=True,\n    servers=[\n        \"2606:4700:4700::1111,1.1.1.1\",\n        \"2606:4700:4700::1001,1.0.0.1\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dns_server = new Routeros.IpDns(\"dns-server\", new()\n    {\n        AllowRemoteRequests = true,\n        Servers = new[]\n        {\n            \"2606:4700:4700::1111,1.1.1.1\",\n            \"2606:4700:4700::1001,1.0.0.1\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDns(ctx, \"dns-server\", \u0026routeros.IpDnsArgs{\n\t\t\tAllowRemoteRequests: pulumi.Bool(true),\n\t\t\tServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2606:4700:4700::1111,1.1.1.1\"),\n\t\t\t\tpulumi.String(\"2606:4700:4700::1001,1.0.0.1\"),\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.routeros.IpDns;\nimport com.pulumi.routeros.IpDnsArgs;\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 dns_server = new IpDns(\"dns-server\", IpDnsArgs.builder()\n            .allowRemoteRequests(true)\n            .servers(            \n                \"2606:4700:4700::1111,1.1.1.1\",\n                \"2606:4700:4700::1001,1.0.0.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  dns-server:\n    type: routeros:IpDns\n    properties:\n      allowRemoteRequests: true\n      servers:\n        - 2606:4700:4700::1111,1.1.1.1\n        - 2606:4700:4700::1001,1.0.0.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The DNS Settings can not be imported. \n\n#Terraform will ignore the current settings and will overwrite the current settings with the settings defined in Terraform.\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressListExtraTime":{"type":"string"},"allowRemoteRequests":{"type":"boolean","description":"Specifies whether to allow network requests."},"cacheMaxTtl":{"type":"string","description":"Maximum time-to-live for cache records. In other words, cache records will expire unconditionally after cache-max-ttl time. Shorter TTL received from DNS servers are respected. *Default: 1w*"},"cacheSize":{"type":"number","description":"Specifies the size of DNS cache in KiB (64..4294967295). *Default: 2048*"},"cacheUsed":{"type":"number","description":"Shows the currently used cache size in KiB."},"dohMaxConcurrentQueries":{"type":"number","description":"Specifies how many DoH concurrent queries are allowed."},"dohMaxServerConnections":{"type":"number","description":"Specifies how many concurrent connections to the DoH server are allowed."},"dohTimeout":{"type":"string","description":"Specifies how long to wait for query response from the DoH server."},"dynamicServers":{"type":"string","description":"List of dynamically added DNS server from different services, for example, DHCP."},"ipDnsId":{"type":"string"},"maxConcurrentQueries":{"type":"number","description":"Specifies how much concurrent queries are allowed. *Default: 100*"},"maxConcurrentTcpSessions":{"type":"number","description":"Specifies how much concurrent TCP sessions are allowed. *Default: 20*"},"maxUdpPacketSize":{"type":"number","description":"Maximum size of allowed UDP packet. *Default: 4096*"},"mdnsRepeatIfaces":{"type":"array","items":{"type":"string"},"description":"An option to enable mDNS repeater on specified interfaces. This option is available in RouterOS starting from version 7.16."},"queryServerTimeout":{"type":"string","description":"Specifies how long to wait for query response from one server. Time can be specified in milliseconds. *Default: 2s*"},"queryTotalTimeout":{"type":"string","description":"Specifies how long to wait for query response in total. Note that this setting must be configured taking into account\u003cspan pulumi-lang-nodejs=\" queryServerTimeout \" pulumi-lang-dotnet=\" QueryServerTimeout \" pulumi-lang-go=\" queryServerTimeout \" pulumi-lang-python=\" query_server_timeout \" pulumi-lang-yaml=\" queryServerTimeout \" pulumi-lang-java=\" queryServerTimeout \"\u003e query_server_timeout \u003c/span\u003eand number of used DNS server. Time can be specified in milliseconds. *Default: 10s*"},"servers":{"type":"array","items":{"type":"string"},"description":"List of DNS server IPv4/IPv6 addresses."},"useDohServer":{"type":"string","description":"DNS over HTTPS (DoH) server URL.\n\t\u003e Mikrotik strongly suggest not use third-party download links for certificate fetching. \n\tUse the Certificate Authority's own website.\n\n\t\u003e RouterOS prioritize DoH over DNS server if both are configured on the device."},"verifyDohCert":{"type":"boolean","description":"DoH certificate verification. [See docs](https://wiki.mikrotik.com/wiki/Manual:IP/DNS#DNS_over_HTTPS)."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"type":"object","required":["cacheMaxTtl","cacheSize","cacheUsed","dohMaxConcurrentQueries","dohMaxServerConnections","dohTimeout","dynamicServers","ipDnsId","maxConcurrentQueries","maxConcurrentTcpSessions","maxUdpPacketSize","queryServerTimeout","queryTotalTimeout"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressListExtraTime":{"type":"string"},"allowRemoteRequests":{"type":"boolean","description":"Specifies whether to allow network requests."},"cacheMaxTtl":{"type":"string","description":"Maximum time-to-live for cache records. In other words, cache records will expire unconditionally after cache-max-ttl time. Shorter TTL received from DNS servers are respected. *Default: 1w*"},"cacheSize":{"type":"number","description":"Specifies the size of DNS cache in KiB (64..4294967295). *Default: 2048*"},"dohMaxConcurrentQueries":{"type":"number","description":"Specifies how many DoH concurrent queries are allowed."},"dohMaxServerConnections":{"type":"number","description":"Specifies how many concurrent connections to the DoH server are allowed."},"dohTimeout":{"type":"string","description":"Specifies how long to wait for query response from the DoH server."},"ipDnsId":{"type":"string"},"maxConcurrentQueries":{"type":"number","description":"Specifies how much concurrent queries are allowed. *Default: 100*"},"maxConcurrentTcpSessions":{"type":"number","description":"Specifies how much concurrent TCP sessions are allowed. *Default: 20*"},"maxUdpPacketSize":{"type":"number","description":"Maximum size of allowed UDP packet. *Default: 4096*"},"mdnsRepeatIfaces":{"type":"array","items":{"type":"string"},"description":"An option to enable mDNS repeater on specified interfaces. This option is available in RouterOS starting from version 7.16."},"queryServerTimeout":{"type":"string","description":"Specifies how long to wait for query response from one server. Time can be specified in milliseconds. *Default: 2s*"},"queryTotalTimeout":{"type":"string","description":"Specifies how long to wait for query response in total. Note that this setting must be configured taking into account\u003cspan pulumi-lang-nodejs=\" queryServerTimeout \" pulumi-lang-dotnet=\" QueryServerTimeout \" pulumi-lang-go=\" queryServerTimeout \" pulumi-lang-python=\" query_server_timeout \" pulumi-lang-yaml=\" queryServerTimeout \" pulumi-lang-java=\" queryServerTimeout \"\u003e query_server_timeout \u003c/span\u003eand number of used DNS server. Time can be specified in milliseconds. *Default: 10s*"},"servers":{"type":"array","items":{"type":"string"},"description":"List of DNS server IPv4/IPv6 addresses."},"useDohServer":{"type":"string","description":"DNS over HTTPS (DoH) server URL.\n\t\u003e Mikrotik strongly suggest not use third-party download links for certificate fetching. \n\tUse the Certificate Authority's own website.\n\n\t\u003e RouterOS prioritize DoH over DNS server if both are configured on the device."},"verifyDohCert":{"type":"boolean","description":"DoH certificate verification. [See docs](https://wiki.mikrotik.com/wiki/Manual:IP/DNS#DNS_over_HTTPS)."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"stateInputs":{"description":"Input properties used for looking up and filtering IpDns resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressListExtraTime":{"type":"string"},"allowRemoteRequests":{"type":"boolean","description":"Specifies whether to allow network requests."},"cacheMaxTtl":{"type":"string","description":"Maximum time-to-live for cache records. In other words, cache records will expire unconditionally after cache-max-ttl time. Shorter TTL received from DNS servers are respected. *Default: 1w*"},"cacheSize":{"type":"number","description":"Specifies the size of DNS cache in KiB (64..4294967295). *Default: 2048*"},"cacheUsed":{"type":"number","description":"Shows the currently used cache size in KiB."},"dohMaxConcurrentQueries":{"type":"number","description":"Specifies how many DoH concurrent queries are allowed."},"dohMaxServerConnections":{"type":"number","description":"Specifies how many concurrent connections to the DoH server are allowed."},"dohTimeout":{"type":"string","description":"Specifies how long to wait for query response from the DoH server."},"dynamicServers":{"type":"string","description":"List of dynamically added DNS server from different services, for example, DHCP."},"ipDnsId":{"type":"string"},"maxConcurrentQueries":{"type":"number","description":"Specifies how much concurrent queries are allowed. *Default: 100*"},"maxConcurrentTcpSessions":{"type":"number","description":"Specifies how much concurrent TCP sessions are allowed. *Default: 20*"},"maxUdpPacketSize":{"type":"number","description":"Maximum size of allowed UDP packet. *Default: 4096*"},"mdnsRepeatIfaces":{"type":"array","items":{"type":"string"},"description":"An option to enable mDNS repeater on specified interfaces. This option is available in RouterOS starting from version 7.16."},"queryServerTimeout":{"type":"string","description":"Specifies how long to wait for query response from one server. Time can be specified in milliseconds. *Default: 2s*"},"queryTotalTimeout":{"type":"string","description":"Specifies how long to wait for query response in total. Note that this setting must be configured taking into account\u003cspan pulumi-lang-nodejs=\" queryServerTimeout \" pulumi-lang-dotnet=\" QueryServerTimeout \" pulumi-lang-go=\" queryServerTimeout \" pulumi-lang-python=\" query_server_timeout \" pulumi-lang-yaml=\" queryServerTimeout \" pulumi-lang-java=\" queryServerTimeout \"\u003e query_server_timeout \u003c/span\u003eand number of used DNS server. Time can be specified in milliseconds. *Default: 10s*"},"servers":{"type":"array","items":{"type":"string"},"description":"List of DNS server IPv4/IPv6 addresses."},"useDohServer":{"type":"string","description":"DNS over HTTPS (DoH) server URL.\n\t\u003e Mikrotik strongly suggest not use third-party download links for certificate fetching. \n\tUse the Certificate Authority's own website.\n\n\t\u003e RouterOS prioritize DoH over DNS server if both are configured on the device."},"verifyDohCert":{"type":"boolean","description":"DoH certificate verification. [See docs](https://wiki.mikrotik.com/wiki/Manual:IP/DNS#DNS_over_HTTPS)."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"type":"object"}},"routeros:index/ipDnsAdlist:IpDnsAdlist":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpDnsAdlist(\"test\", {\n    url: \"https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts\",\n    sslVerify: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpDnsAdlist(\"test\",\n    url=\"https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts\",\n    ssl_verify=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpDnsAdlist(\"test\", new()\n    {\n        Url = \"https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts\",\n        SslVerify = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDnsAdlist(ctx, \"test\", \u0026routeros.IpDnsAdlistArgs{\n\t\t\tUrl:       pulumi.String(\"https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts\"),\n\t\t\tSslVerify: 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.routeros.IpDnsAdlist;\nimport com.pulumi.routeros.IpDnsAdlistArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpDnsAdlist(\"test\", IpDnsAdlistArgs.builder()\n            .url(\"https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts\")\n            .sslVerify(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpDnsAdlist\n    properties:\n      url: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts\n      sslVerify: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/dns/adlist get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipDnsAdlist:IpDnsAdlist test \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipDnsAdlist:IpDnsAdlist test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"file":{"type":"string","description":"Used to specify a local file path from which to read adlist data.\n"},"ipDnsAdlistId":{"type":"string","description":"The ID of this resource.\n"},"sslVerify":{"type":"boolean","description":"Specifies whether to validate the server's SSL certificate when connecting to an online resource. Will use the `/certificate` list to verify server validity.\n"},"url":{"type":"string","description":"Used to specify the URL of an adlist.\n"}},"type":"object","required":["ipDnsAdlistId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"file":{"type":"string","description":"Used to specify a local file path from which to read adlist data.\n"},"ipDnsAdlistId":{"type":"string","description":"The ID of this resource.\n"},"sslVerify":{"type":"boolean","description":"Specifies whether to validate the server's SSL certificate when connecting to an online resource. Will use the `/certificate` list to verify server validity.\n"},"url":{"type":"string","description":"Used to specify the URL of an adlist.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpDnsAdlist resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"file":{"type":"string","description":"Used to specify a local file path from which to read adlist data.\n"},"ipDnsAdlistId":{"type":"string","description":"The ID of this resource.\n"},"sslVerify":{"type":"boolean","description":"Specifies whether to validate the server's SSL certificate when connecting to an online resource. Will use the `/certificate` list to verify server validity.\n"},"url":{"type":"string","description":"Used to specify the URL of an adlist.\n"}},"type":"object"}},"routeros:index/ipDnsForwarders:IpDnsForwarders":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpDnsForwarders(\"test\", {\n    disabled: true,\n    dnsServers: [\"1.1.1.1\"],\n    dohServers: [\"2.2.2.2\"],\n    name: \"test\",\n    verifyDohCert: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpDnsForwarders(\"test\",\n    disabled=True,\n    dns_servers=[\"1.1.1.1\"],\n    doh_servers=[\"2.2.2.2\"],\n    name=\"test\",\n    verify_doh_cert=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpDnsForwarders(\"test\", new()\n    {\n        Disabled = true,\n        DnsServers = new[]\n        {\n            \"1.1.1.1\",\n        },\n        DohServers = new[]\n        {\n            \"2.2.2.2\",\n        },\n        Name = \"test\",\n        VerifyDohCert = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDnsForwarders(ctx, \"test\", \u0026routeros.IpDnsForwardersArgs{\n\t\t\tDisabled: pulumi.Bool(true),\n\t\t\tDnsServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\n\t\t\t},\n\t\t\tDohServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2.2.2.2\"),\n\t\t\t},\n\t\t\tName:          pulumi.String(\"test\"),\n\t\t\tVerifyDohCert: 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.routeros.IpDnsForwarders;\nimport com.pulumi.routeros.IpDnsForwardersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpDnsForwarders(\"test\", IpDnsForwardersArgs.builder()\n            .disabled(true)\n            .dnsServers(\"1.1.1.1\")\n            .dohServers(\"2.2.2.2\")\n            .name(\"test\")\n            .verifyDohCert(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpDnsForwarders\n    properties:\n      disabled: true\n      dnsServers:\n        - 1.1.1.1\n      dohServers:\n        - 2.2.2.2\n      name: test\n      verifyDohCert: 'false'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/dns/forwarders get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipDnsForwarders:IpDnsForwarders test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipDnsForwarders:IpDnsForwarders test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dnsServers":{"type":"array","items":{"type":"string"},"description":"An IP address or DNS name of a domain name server. Can contain multiple records.\n"},"dohServers":{"type":"array","items":{"type":"string"},"description":"A URL of DoH server. Can contain multiple records.\n"},"ipDnsForwardersId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Forwarder name.\n"},"verifyDohCert":{"type":"boolean","description":"Specifies whether to validate the DoH server, when one is being used. Will use the `/certificate` list in order to verify server validity.\n"}},"type":"object","required":["ipDnsForwardersId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dnsServers":{"type":"array","items":{"type":"string"},"description":"An IP address or DNS name of a domain name server. Can contain multiple records.\n"},"dohServers":{"type":"array","items":{"type":"string"},"description":"A URL of DoH server. Can contain multiple records.\n"},"ipDnsForwardersId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Forwarder name.\n"},"verifyDohCert":{"type":"boolean","description":"Specifies whether to validate the DoH server, when one is being used. Will use the `/certificate` list in order to verify server validity.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpDnsForwarders resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dnsServers":{"type":"array","items":{"type":"string"},"description":"An IP address or DNS name of a domain name server. Can contain multiple records.\n"},"dohServers":{"type":"array","items":{"type":"string"},"description":"A URL of DoH server. Can contain multiple records.\n"},"ipDnsForwardersId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Forwarder name.\n"},"verifyDohCert":{"type":"boolean","description":"Specifies whether to validate the DoH server, when one is being used. Will use the `/certificate` list in order to verify server validity.\n"}},"type":"object"}},"routeros:index/ipDnsRecord:IpDnsRecord":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.IpDnsRecord \" pulumi-lang-dotnet=\" routeros.IpDnsRecord \" pulumi-lang-go=\" IpDnsRecord \" pulumi-lang-python=\" IpDnsRecord \" pulumi-lang-yaml=\" routeros.IpDnsRecord \" pulumi-lang-java=\" routeros.IpDnsRecord \"\u003e routeros.IpDnsRecord \u003c/span\u003e(Resource)\n\nCreates a DNS record on the MikroTik device.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst nameRecord = new routeros.IpDnsRecord(\"name_record\", {\n    name: \"router.lan\",\n    address: \"192.168.88.1\",\n    type: \"A\",\n});\nconst regexpRecord = new routeros.IpDnsRecord(\"regexp_record\", {\n    regexp: \".*pool.ntp.org\",\n    address: \"192.168.88.1\",\n    type: \"A\",\n});\nconst aaaaRecord = new routeros.DnsRecord(\"aaaa_record\", {\n    name: \"ipv6.lan\",\n    address: \"ff00::1\",\n    type: \"AAAA\",\n});\nconst cnameRecord = new routeros.DnsRecord(\"cname_record\", {\n    name: \"cname.lan\",\n    cname: \"ipv4.lan\",\n    type: \"CNAME\",\n});\nconst fwdRecord = new routeros.DnsRecord(\"fwd_record\", {\n    name: \"fwd.lan\",\n    forwardTo: \"127.0.0.1\",\n    type: \"FWD\",\n});\nconst mxRecord = new routeros.DnsRecord(\"mx_record\", {\n    name: \"mx.lan\",\n    mxExchange: \"127.0.0.1\",\n    mxPreference: 10,\n    type: \"MX\",\n});\nconst nsRecord = new routeros.DnsRecord(\"ns_record\", {\n    name: \"ns.lan\",\n    ns: \"127.0.0.1\",\n    type: \"NS\",\n});\nconst nxdomainRecord = new routeros.DnsRecord(\"nxdomain_record\", {\n    name: \"nxdomain.lan\",\n    type: \"NXDOMAIN\",\n});\nconst srvRecord = new routeros.DnsRecord(\"srv_record\", {\n    name: \"srv.lan\",\n    srvPort: 8080,\n    srvPriority: 10,\n    srvTarget: \"127.0.0.1\",\n    srvWeight: \"100\",\n    type: \"SRV\",\n});\nconst txtRecord = new routeros.DnsRecord(\"txt_record\", {\n    name: \"_acme-challenge.yourwebsite.com\",\n    text: \"dW6MrI3nBy3eJgYWH3QAg1Cwk_TvjFESOuKo+mp6nm1\",\n    type: \"TXT\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nname_record = routeros.IpDnsRecord(\"name_record\",\n    name=\"router.lan\",\n    address=\"192.168.88.1\",\n    type=\"A\")\nregexp_record = routeros.IpDnsRecord(\"regexp_record\",\n    regexp=\".*pool.ntp.org\",\n    address=\"192.168.88.1\",\n    type=\"A\")\naaaa_record = routeros.DnsRecord(\"aaaa_record\",\n    name=\"ipv6.lan\",\n    address=\"ff00::1\",\n    type=\"AAAA\")\ncname_record = routeros.DnsRecord(\"cname_record\",\n    name=\"cname.lan\",\n    cname=\"ipv4.lan\",\n    type=\"CNAME\")\nfwd_record = routeros.DnsRecord(\"fwd_record\",\n    name=\"fwd.lan\",\n    forward_to=\"127.0.0.1\",\n    type=\"FWD\")\nmx_record = routeros.DnsRecord(\"mx_record\",\n    name=\"mx.lan\",\n    mx_exchange=\"127.0.0.1\",\n    mx_preference=10,\n    type=\"MX\")\nns_record = routeros.DnsRecord(\"ns_record\",\n    name=\"ns.lan\",\n    ns=\"127.0.0.1\",\n    type=\"NS\")\nnxdomain_record = routeros.DnsRecord(\"nxdomain_record\",\n    name=\"nxdomain.lan\",\n    type=\"NXDOMAIN\")\nsrv_record = routeros.DnsRecord(\"srv_record\",\n    name=\"srv.lan\",\n    srv_port=8080,\n    srv_priority=10,\n    srv_target=\"127.0.0.1\",\n    srv_weight=\"100\",\n    type=\"SRV\")\ntxt_record = routeros.DnsRecord(\"txt_record\",\n    name=\"_acme-challenge.yourwebsite.com\",\n    text=\"dW6MrI3nBy3eJgYWH3QAg1Cwk_TvjFESOuKo+mp6nm1\",\n    type=\"TXT\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var nameRecord = new Routeros.IpDnsRecord(\"name_record\", new()\n    {\n        Name = \"router.lan\",\n        Address = \"192.168.88.1\",\n        Type = \"A\",\n    });\n\n    var regexpRecord = new Routeros.IpDnsRecord(\"regexp_record\", new()\n    {\n        Regexp = \".*pool.ntp.org\",\n        Address = \"192.168.88.1\",\n        Type = \"A\",\n    });\n\n    var aaaaRecord = new Routeros.DnsRecord(\"aaaa_record\", new()\n    {\n        Name = \"ipv6.lan\",\n        Address = \"ff00::1\",\n        Type = \"AAAA\",\n    });\n\n    var cnameRecord = new Routeros.DnsRecord(\"cname_record\", new()\n    {\n        Name = \"cname.lan\",\n        Cname = \"ipv4.lan\",\n        Type = \"CNAME\",\n    });\n\n    var fwdRecord = new Routeros.DnsRecord(\"fwd_record\", new()\n    {\n        Name = \"fwd.lan\",\n        ForwardTo = \"127.0.0.1\",\n        Type = \"FWD\",\n    });\n\n    var mxRecord = new Routeros.DnsRecord(\"mx_record\", new()\n    {\n        Name = \"mx.lan\",\n        MxExchange = \"127.0.0.1\",\n        MxPreference = 10,\n        Type = \"MX\",\n    });\n\n    var nsRecord = new Routeros.DnsRecord(\"ns_record\", new()\n    {\n        Name = \"ns.lan\",\n        Ns = \"127.0.0.1\",\n        Type = \"NS\",\n    });\n\n    var nxdomainRecord = new Routeros.DnsRecord(\"nxdomain_record\", new()\n    {\n        Name = \"nxdomain.lan\",\n        Type = \"NXDOMAIN\",\n    });\n\n    var srvRecord = new Routeros.DnsRecord(\"srv_record\", new()\n    {\n        Name = \"srv.lan\",\n        SrvPort = 8080,\n        SrvPriority = 10,\n        SrvTarget = \"127.0.0.1\",\n        SrvWeight = \"100\",\n        Type = \"SRV\",\n    });\n\n    var txtRecord = new Routeros.DnsRecord(\"txt_record\", new()\n    {\n        Name = \"_acme-challenge.yourwebsite.com\",\n        Text = \"dW6MrI3nBy3eJgYWH3QAg1Cwk_TvjFESOuKo+mp6nm1\",\n        Type = \"TXT\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpDnsRecord(ctx, \"name_record\", \u0026routeros.IpDnsRecordArgs{\n\t\t\tName:    pulumi.String(\"router.lan\"),\n\t\t\tAddress: pulumi.String(\"192.168.88.1\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewIpDnsRecord(ctx, \"regexp_record\", \u0026routeros.IpDnsRecordArgs{\n\t\t\tRegexp:  pulumi.String(\".*pool.ntp.org\"),\n\t\t\tAddress: pulumi.String(\"192.168.88.1\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewDnsRecord(ctx, \"aaaa_record\", \u0026routeros.DnsRecordArgs{\n\t\t\tName:    pulumi.String(\"ipv6.lan\"),\n\t\t\tAddress: pulumi.String(\"ff00::1\"),\n\t\t\tType:    pulumi.String(\"AAAA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewDnsRecord(ctx, \"cname_record\", \u0026routeros.DnsRecordArgs{\n\t\t\tName:  pulumi.String(\"cname.lan\"),\n\t\t\tCname: pulumi.String(\"ipv4.lan\"),\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\t_, err = routeros.NewDnsRecord(ctx, \"fwd_record\", \u0026routeros.DnsRecordArgs{\n\t\t\tName:      pulumi.String(\"fwd.lan\"),\n\t\t\tForwardTo: pulumi.String(\"127.0.0.1\"),\n\t\t\tType:      pulumi.String(\"FWD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewDnsRecord(ctx, \"mx_record\", \u0026routeros.DnsRecordArgs{\n\t\t\tName:         pulumi.String(\"mx.lan\"),\n\t\t\tMxExchange:   pulumi.String(\"127.0.0.1\"),\n\t\t\tMxPreference: pulumi.Float64(10),\n\t\t\tType:         pulumi.String(\"MX\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewDnsRecord(ctx, \"ns_record\", \u0026routeros.DnsRecordArgs{\n\t\t\tName: pulumi.String(\"ns.lan\"),\n\t\t\tNs:   pulumi.String(\"127.0.0.1\"),\n\t\t\tType: pulumi.String(\"NS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewDnsRecord(ctx, \"nxdomain_record\", \u0026routeros.DnsRecordArgs{\n\t\t\tName: pulumi.String(\"nxdomain.lan\"),\n\t\t\tType: pulumi.String(\"NXDOMAIN\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewDnsRecord(ctx, \"srv_record\", \u0026routeros.DnsRecordArgs{\n\t\t\tName:        pulumi.String(\"srv.lan\"),\n\t\t\tSrvPort:     pulumi.Float64(8080),\n\t\t\tSrvPriority: pulumi.Float64(10),\n\t\t\tSrvTarget:   pulumi.String(\"127.0.0.1\"),\n\t\t\tSrvWeight:   pulumi.String(\"100\"),\n\t\t\tType:        pulumi.String(\"SRV\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewDnsRecord(ctx, \"txt_record\", \u0026routeros.DnsRecordArgs{\n\t\t\tName: pulumi.String(\"_acme-challenge.yourwebsite.com\"),\n\t\t\tText: pulumi.String(\"dW6MrI3nBy3eJgYWH3QAg1Cwk_TvjFESOuKo+mp6nm1\"),\n\t\t\tType: pulumi.String(\"TXT\"),\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.routeros.IpDnsRecord;\nimport com.pulumi.routeros.IpDnsRecordArgs;\nimport com.pulumi.routeros.DnsRecord;\nimport com.pulumi.routeros.DnsRecordArgs;\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 nameRecord = new IpDnsRecord(\"nameRecord\", IpDnsRecordArgs.builder()\n            .name(\"router.lan\")\n            .address(\"192.168.88.1\")\n            .type(\"A\")\n            .build());\n\n        var regexpRecord = new IpDnsRecord(\"regexpRecord\", IpDnsRecordArgs.builder()\n            .regexp(\".*pool.ntp.org\")\n            .address(\"192.168.88.1\")\n            .type(\"A\")\n            .build());\n\n        var aaaaRecord = new DnsRecord(\"aaaaRecord\", DnsRecordArgs.builder()\n            .name(\"ipv6.lan\")\n            .address(\"ff00::1\")\n            .type(\"AAAA\")\n            .build());\n\n        var cnameRecord = new DnsRecord(\"cnameRecord\", DnsRecordArgs.builder()\n            .name(\"cname.lan\")\n            .cname(\"ipv4.lan\")\n            .type(\"CNAME\")\n            .build());\n\n        var fwdRecord = new DnsRecord(\"fwdRecord\", DnsRecordArgs.builder()\n            .name(\"fwd.lan\")\n            .forwardTo(\"127.0.0.1\")\n            .type(\"FWD\")\n            .build());\n\n        var mxRecord = new DnsRecord(\"mxRecord\", DnsRecordArgs.builder()\n            .name(\"mx.lan\")\n            .mxExchange(\"127.0.0.1\")\n            .mxPreference(10.0)\n            .type(\"MX\")\n            .build());\n\n        var nsRecord = new DnsRecord(\"nsRecord\", DnsRecordArgs.builder()\n            .name(\"ns.lan\")\n            .ns(\"127.0.0.1\")\n            .type(\"NS\")\n            .build());\n\n        var nxdomainRecord = new DnsRecord(\"nxdomainRecord\", DnsRecordArgs.builder()\n            .name(\"nxdomain.lan\")\n            .type(\"NXDOMAIN\")\n            .build());\n\n        var srvRecord = new DnsRecord(\"srvRecord\", DnsRecordArgs.builder()\n            .name(\"srv.lan\")\n            .srvPort(8080.0)\n            .srvPriority(10.0)\n            .srvTarget(\"127.0.0.1\")\n            .srvWeight(\"100\")\n            .type(\"SRV\")\n            .build());\n\n        var txtRecord = new DnsRecord(\"txtRecord\", DnsRecordArgs.builder()\n            .name(\"_acme-challenge.yourwebsite.com\")\n            .text(\"dW6MrI3nBy3eJgYWH3QAg1Cwk_TvjFESOuKo+mp6nm1\")\n            .type(\"TXT\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  nameRecord:\n    type: routeros:IpDnsRecord\n    name: name_record\n    properties:\n      name: router.lan\n      address: 192.168.88.1\n      type: A\n  regexpRecord:\n    type: routeros:IpDnsRecord\n    name: regexp_record\n    properties:\n      regexp: .*pool.ntp.org\n      address: 192.168.88.1\n      type: A\n  aaaaRecord:\n    type: routeros:DnsRecord\n    name: aaaa_record\n    properties:\n      name: ipv6.lan\n      address: ff00::1\n      type: AAAA\n  cnameRecord:\n    type: routeros:DnsRecord\n    name: cname_record\n    properties:\n      name: cname.lan\n      cname: ipv4.lan\n      type: CNAME\n  fwdRecord:\n    type: routeros:DnsRecord\n    name: fwd_record\n    properties:\n      name: fwd.lan\n      forwardTo: 127.0.0.1\n      type: FWD\n  mxRecord:\n    type: routeros:DnsRecord\n    name: mx_record\n    properties:\n      name: mx.lan\n      mxExchange: 127.0.0.1\n      mxPreference: 10\n      type: MX\n  nsRecord:\n    type: routeros:DnsRecord\n    name: ns_record\n    properties:\n      name: ns.lan\n      ns: 127.0.0.1\n      type: NS\n  nxdomainRecord:\n    type: routeros:DnsRecord\n    name: nxdomain_record\n    properties:\n      name: nxdomain.lan\n      type: NXDOMAIN\n  srvRecord:\n    type: routeros:DnsRecord\n    name: srv_record\n    properties:\n      name: srv.lan\n      srvPort: 8080\n      srvPriority: 10\n      srvTarget: 127.0.0.1\n      srvWeight: 100\n      type: SRV\n  txtRecord:\n    type: routeros:DnsRecord\n    name: txt_record\n    properties:\n      name: _acme-challenge.yourwebsite.com\n      text: dW6MrI3nBy3eJgYWH3QAg1Cwk_TvjFESOuKo+mp6nm1\n      type: TXT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/dns/static get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipDnsRecord:IpDnsRecord name_record \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipDnsRecord:IpDnsRecord name_record \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The A record to be returend from the DNS hostname.\n"},"addressList":{"type":"string","description":"Name of the Firewall address list to which address must be dynamically added when some request matches the entry.\n"},"cname":{"type":"string","description":"Alias name for a domain name.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"forwardTo":{"type":"string","description":"The IP address of a domain name server to which a particular DNS request must be forwarded.\n"},"ipDnsRecordId":{"type":"string","description":"The ID of this resource.\n"},"matchSubdomain":{"type":"boolean","description":"Whether the record will match requests for subdomains.\n"},"mxExchange":{"type":"string","description":"The domain name of the MX server.\n"},"mxPreference":{"type":"number","description":"Preference of the particular MX record.\n"},"name":{"type":"string","description":"The name of the DNS hostname to be created.\n"},"ns":{"type":"string","description":"Name of the authoritative domain name server for the particular record.\n"},"regexp":{"type":"string","description":"DNS regexp. Regexp entries are case sensitive, but since DNS requests are not case sensitive, RouterOS converts DNS names to lowercase, you should write regex only with lowercase letters.\n"},"srvPort":{"type":"number","description":"The TCP or UDP port on which the service is to be found.\n"},"srvPriority":{"type":"number","description":"Priority of the particular SRV record.\n"},"srvTarget":{"type":"string","description":"The canonical hostname of the machine providing the service ends in a dot.\n"},"srvWeight":{"type":"string","description":"Weight of the particular SRC record.\n"},"text":{"type":"string","description":"Textual information about the domain name.\n"},"ttl":{"type":"string","description":"The ttl of the DNS record.\n"},"type":{"type":"string","description":"Type of the DNS record. Available values are: A, AAAA, CNAME, FWD, MX, NS, NXDOMAIN, SRV, TXT\n"}},"type":"object","required":["dynamic","ipDnsRecordId","mxPreference","name","srvPort","srvPriority","srvWeight","type"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The A record to be returend from the DNS hostname.\n"},"addressList":{"type":"string","description":"Name of the Firewall address list to which address must be dynamically added when some request matches the entry.\n"},"cname":{"type":"string","description":"Alias name for a domain name.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"forwardTo":{"type":"string","description":"The IP address of a domain name server to which a particular DNS request must be forwarded.\n"},"ipDnsRecordId":{"type":"string","description":"The ID of this resource.\n"},"matchSubdomain":{"type":"boolean","description":"Whether the record will match requests for subdomains.\n"},"mxExchange":{"type":"string","description":"The domain name of the MX server.\n"},"mxPreference":{"type":"number","description":"Preference of the particular MX record.\n"},"name":{"type":"string","description":"The name of the DNS hostname to be created.\n"},"ns":{"type":"string","description":"Name of the authoritative domain name server for the particular record.\n"},"regexp":{"type":"string","description":"DNS regexp. Regexp entries are case sensitive, but since DNS requests are not case sensitive, RouterOS converts DNS names to lowercase, you should write regex only with lowercase letters.\n"},"srvPort":{"type":"number","description":"The TCP or UDP port on which the service is to be found.\n"},"srvPriority":{"type":"number","description":"Priority of the particular SRV record.\n"},"srvTarget":{"type":"string","description":"The canonical hostname of the machine providing the service ends in a dot.\n"},"srvWeight":{"type":"string","description":"Weight of the particular SRC record.\n"},"text":{"type":"string","description":"Textual information about the domain name.\n"},"ttl":{"type":"string","description":"The ttl of the DNS record.\n"},"type":{"type":"string","description":"Type of the DNS record. Available values are: A, AAAA, CNAME, FWD, MX, NS, NXDOMAIN, SRV, TXT\n"}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering IpDnsRecord resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The A record to be returend from the DNS hostname.\n"},"addressList":{"type":"string","description":"Name of the Firewall address list to which address must be dynamically added when some request matches the entry.\n"},"cname":{"type":"string","description":"Alias name for a domain name.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"forwardTo":{"type":"string","description":"The IP address of a domain name server to which a particular DNS request must be forwarded.\n"},"ipDnsRecordId":{"type":"string","description":"The ID of this resource.\n"},"matchSubdomain":{"type":"boolean","description":"Whether the record will match requests for subdomains.\n"},"mxExchange":{"type":"string","description":"The domain name of the MX server.\n"},"mxPreference":{"type":"number","description":"Preference of the particular MX record.\n"},"name":{"type":"string","description":"The name of the DNS hostname to be created.\n"},"ns":{"type":"string","description":"Name of the authoritative domain name server for the particular record.\n"},"regexp":{"type":"string","description":"DNS regexp. Regexp entries are case sensitive, but since DNS requests are not case sensitive, RouterOS converts DNS names to lowercase, you should write regex only with lowercase letters.\n"},"srvPort":{"type":"number","description":"The TCP or UDP port on which the service is to be found.\n"},"srvPriority":{"type":"number","description":"Priority of the particular SRV record.\n"},"srvTarget":{"type":"string","description":"The canonical hostname of the machine providing the service ends in a dot.\n"},"srvWeight":{"type":"string","description":"Weight of the particular SRC record.\n"},"text":{"type":"string","description":"Textual information about the domain name.\n"},"ttl":{"type":"string","description":"The ttl of the DNS record.\n"},"type":{"type":"string","description":"Type of the DNS record. Available values are: A, AAAA, CNAME, FWD, MX, NS, NXDOMAIN, SRV, TXT\n"}},"type":"object"}},"routeros:index/ipFirewallAddrList:IpFirewallAddrList":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst exampleList = new routeros.IpFirewallAddrList(\"example_list\", {\n    address: \"1.1.1.1\",\n    list: \"Example List\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nexample_list = routeros.IpFirewallAddrList(\"example_list\",\n    address=\"1.1.1.1\",\n    list=\"Example List\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleList = new Routeros.IpFirewallAddrList(\"example_list\", new()\n    {\n        Address = \"1.1.1.1\",\n        List = \"Example List\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpFirewallAddrList(ctx, \"example_list\", \u0026routeros.IpFirewallAddrListArgs{\n\t\t\tAddress: pulumi.String(\"1.1.1.1\"),\n\t\t\tList:    pulumi.String(\"Example List\"),\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.routeros.IpFirewallAddrList;\nimport com.pulumi.routeros.IpFirewallAddrListArgs;\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 exampleList = new IpFirewallAddrList(\"exampleList\", IpFirewallAddrListArgs.builder()\n            .address(\"1.1.1.1\")\n            .list(\"Example List\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleList:\n    type: routeros:IpFirewallAddrList\n    name: example_list\n    properties:\n      address: 1.1.1.1\n      list: Example List\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/firewall/address-list get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipFirewallAddrList:IpFirewallAddrList example_list \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipFirewallAddrList:IpFirewallAddrList example_list \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"A single IP address or range of IPs to add to address list or DNS name. You can input for example, '192.168.0.0-192.168.1.255' and it will auto modify the typed entry to 192.168.0.0/23 on saving."},"comment":{"type":"string"},"creationTime":{"type":"string","description":"Rule creation time"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"ipFirewallAddrListId":{"type":"string"},"list":{"type":"string","description":"Name for the address list of the added IP address."},"timeout":{"type":"string"}},"type":"object","required":["address","creationTime","dynamic","ipFirewallAddrListId","list"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"A single IP address or range of IPs to add to address list or DNS name. You can input for example, '192.168.0.0-192.168.1.255' and it will auto modify the typed entry to 192.168.0.0/23 on saving."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ipFirewallAddrListId":{"type":"string"},"list":{"type":"string","description":"Name for the address list of the added IP address."},"timeout":{"type":"string"}},"requiredInputs":["address","list"],"stateInputs":{"description":"Input properties used for looking up and filtering IpFirewallAddrList resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"A single IP address or range of IPs to add to address list or DNS name. You can input for example, '192.168.0.0-192.168.1.255' and it will auto modify the typed entry to 192.168.0.0/23 on saving."},"comment":{"type":"string"},"creationTime":{"type":"string","description":"Rule creation time"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"ipFirewallAddrListId":{"type":"string"},"list":{"type":"string","description":"Name for the address list of the added IP address."},"timeout":{"type":"string"}},"type":"object"}},"routeros:index/ipFirewallConnectionTracking:IpFirewallConnectionTracking":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst data = new routeros.IpFirewallConnectionTracking(\"data\", {\n    enabled: \"yes\",\n    genericTimeout: \"3m\",\n    icmpTimeout: \"3m\",\n    looseTcpTracking: \"false\",\n    tcpCloseTimeout: \"3m\",\n    tcpCloseWaitTimeout: \"3m\",\n    tcpEstablishedTimeout: \"3m\",\n    tcpFinWaitTimeout: \"3m\",\n    tcpLastAckTimeout: \"3m\",\n    tcpMaxRetransTimeout: \"3m\",\n    tcpSynReceivedTimeout: \"3m\",\n    tcpSynSentTimeout: \"3m\",\n    tcpTimeWaitTimeout: \"3m\",\n    tcpUnackedTimeout: \"3m\",\n    udpStreamTimeout: \"3m\",\n    udpTimeout: \"3m\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ndata = routeros.IpFirewallConnectionTracking(\"data\",\n    enabled=\"yes\",\n    generic_timeout=\"3m\",\n    icmp_timeout=\"3m\",\n    loose_tcp_tracking=\"false\",\n    tcp_close_timeout=\"3m\",\n    tcp_close_wait_timeout=\"3m\",\n    tcp_established_timeout=\"3m\",\n    tcp_fin_wait_timeout=\"3m\",\n    tcp_last_ack_timeout=\"3m\",\n    tcp_max_retrans_timeout=\"3m\",\n    tcp_syn_received_timeout=\"3m\",\n    tcp_syn_sent_timeout=\"3m\",\n    tcp_time_wait_timeout=\"3m\",\n    tcp_unacked_timeout=\"3m\",\n    udp_stream_timeout=\"3m\",\n    udp_timeout=\"3m\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var data = new Routeros.IpFirewallConnectionTracking(\"data\", new()\n    {\n        Enabled = \"yes\",\n        GenericTimeout = \"3m\",\n        IcmpTimeout = \"3m\",\n        LooseTcpTracking = \"false\",\n        TcpCloseTimeout = \"3m\",\n        TcpCloseWaitTimeout = \"3m\",\n        TcpEstablishedTimeout = \"3m\",\n        TcpFinWaitTimeout = \"3m\",\n        TcpLastAckTimeout = \"3m\",\n        TcpMaxRetransTimeout = \"3m\",\n        TcpSynReceivedTimeout = \"3m\",\n        TcpSynSentTimeout = \"3m\",\n        TcpTimeWaitTimeout = \"3m\",\n        TcpUnackedTimeout = \"3m\",\n        UdpStreamTimeout = \"3m\",\n        UdpTimeout = \"3m\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpFirewallConnectionTracking(ctx, \"data\", \u0026routeros.IpFirewallConnectionTrackingArgs{\n\t\t\tEnabled:               pulumi.String(\"yes\"),\n\t\t\tGenericTimeout:        pulumi.String(\"3m\"),\n\t\t\tIcmpTimeout:           pulumi.String(\"3m\"),\n\t\t\tLooseTcpTracking:      pulumi.String(\"false\"),\n\t\t\tTcpCloseTimeout:       pulumi.String(\"3m\"),\n\t\t\tTcpCloseWaitTimeout:   pulumi.String(\"3m\"),\n\t\t\tTcpEstablishedTimeout: pulumi.String(\"3m\"),\n\t\t\tTcpFinWaitTimeout:     pulumi.String(\"3m\"),\n\t\t\tTcpLastAckTimeout:     pulumi.String(\"3m\"),\n\t\t\tTcpMaxRetransTimeout:  pulumi.String(\"3m\"),\n\t\t\tTcpSynReceivedTimeout: pulumi.String(\"3m\"),\n\t\t\tTcpSynSentTimeout:     pulumi.String(\"3m\"),\n\t\t\tTcpTimeWaitTimeout:    pulumi.String(\"3m\"),\n\t\t\tTcpUnackedTimeout:     pulumi.String(\"3m\"),\n\t\t\tUdpStreamTimeout:      pulumi.String(\"3m\"),\n\t\t\tUdpTimeout:            pulumi.String(\"3m\"),\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.routeros.IpFirewallConnectionTracking;\nimport com.pulumi.routeros.IpFirewallConnectionTrackingArgs;\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 data = new IpFirewallConnectionTracking(\"data\", IpFirewallConnectionTrackingArgs.builder()\n            .enabled(\"yes\")\n            .genericTimeout(\"3m\")\n            .icmpTimeout(\"3m\")\n            .looseTcpTracking(\"false\")\n            .tcpCloseTimeout(\"3m\")\n            .tcpCloseWaitTimeout(\"3m\")\n            .tcpEstablishedTimeout(\"3m\")\n            .tcpFinWaitTimeout(\"3m\")\n            .tcpLastAckTimeout(\"3m\")\n            .tcpMaxRetransTimeout(\"3m\")\n            .tcpSynReceivedTimeout(\"3m\")\n            .tcpSynSentTimeout(\"3m\")\n            .tcpTimeWaitTimeout(\"3m\")\n            .tcpUnackedTimeout(\"3m\")\n            .udpStreamTimeout(\"3m\")\n            .udpTimeout(\"3m\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  data:\n    type: routeros:IpFirewallConnectionTracking\n    properties:\n      enabled: yes\n      genericTimeout: 3m\n      icmpTimeout: 3m\n      looseTcpTracking: 'false'\n      tcpCloseTimeout: 3m\n      tcpCloseWaitTimeout: 3m\n      tcpEstablishedTimeout: 3m\n      tcpFinWaitTimeout: 3m\n      tcpLastAckTimeout: 3m\n      tcpMaxRetransTimeout: 3m\n      tcpSynReceivedTimeout: 3m\n      tcpSynSentTimeout: 3m\n      tcpTimeWaitTimeout: 3m\n      tcpUnackedTimeout: 3m\n      udpStreamTimeout: 3m\n      udpTimeout: 3m\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"activeIpv4":{"type":"boolean","description":"documentation is missing"},"activeIpv6":{"type":"boolean","description":"documentation is missing"},"enabled":{"type":"string","description":"Allows to disable or enable connection tracking. Disabling connection tracking will cause several firewall features to stop working.\n\t\t\t          See the list of affected features. Starting from v6.0rc2 default value is auto. This means that connection tracing is disabled until at least one firewall rule is added.\n"},"genericTimeout":{"type":"string","description":"Timeout for all other connection entries\n"},"icmpTimeout":{"type":"string","description":"ICMP connection timeout\n"},"ipFirewallConnectionTrackingId":{"type":"string"},"liberalTcpTracking":{"type":"boolean","description":"Enables or disables liberal TCP connection tracking by toggling the kernel parameter nf*conntrack*tcp*be*liberal. When set to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e, the system mark only out of window RST segments as INVALID.\n"},"looseTcpTracking":{"type":"string","description":"Disable picking up already established connections"},"maxEntries":{"type":"string","description":"Max amount of entries that the connection tracking table can hold. This value depends on the installed amount of RAM.\n                          Note that the system does not create a\u003cspan pulumi-lang-nodejs=\" maximumSize \" pulumi-lang-dotnet=\" MaximumSize \" pulumi-lang-go=\" maximumSize \" pulumi-lang-python=\" maximum_size \" pulumi-lang-yaml=\" maximumSize \" pulumi-lang-java=\" maximumSize \"\u003e maximum_size \u003c/span\u003econnection tracking table when it starts, it may increase if the situation demands it and the system still has free ram, but size will not exceed 1048576"},"tcpCloseTimeout":{"type":"string","description":"No documentation"},"tcpCloseWaitTimeout":{"type":"string","description":"No documentation"},"tcpEstablishedTimeout":{"type":"string","description":"Time when established TCP connection times out."},"tcpFinWaitTimeout":{"type":"string","description":"No documentation"},"tcpLastAckTimeout":{"type":"string","description":"No documentation"},"tcpMaxRetransTimeout":{"type":"string","description":"No documentation"},"tcpSynReceivedTimeout":{"type":"string","description":"TCP SYN timeout."},"tcpSynSentTimeout":{"type":"string","description":"TCP SYN timeout."},"tcpTimeWaitTimeout":{"type":"string","description":"No documentation"},"tcpUnackedTimeout":{"type":"string","description":"No documentation"},"udpStreamTimeout":{"type":"string","description":"Specifies the timeout of UDP connections that has seen packets in both directions"},"udpTimeout":{"type":"string","description":"Specifies the timeout for UDP connections that have seen packets in one direction"}},"type":"object","required":["activeIpv4","activeIpv6","ipFirewallConnectionTrackingId","maxEntries"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"string","description":"Allows to disable or enable connection tracking. Disabling connection tracking will cause several firewall features to stop working.\n\t\t\t          See the list of affected features. Starting from v6.0rc2 default value is auto. This means that connection tracing is disabled until at least one firewall rule is added.\n"},"genericTimeout":{"type":"string","description":"Timeout for all other connection entries\n"},"icmpTimeout":{"type":"string","description":"ICMP connection timeout\n"},"ipFirewallConnectionTrackingId":{"type":"string"},"liberalTcpTracking":{"type":"boolean","description":"Enables or disables liberal TCP connection tracking by toggling the kernel parameter nf*conntrack*tcp*be*liberal. When set to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e, the system mark only out of window RST segments as INVALID.\n"},"looseTcpTracking":{"type":"string","description":"Disable picking up already established connections"},"tcpCloseTimeout":{"type":"string","description":"No documentation"},"tcpCloseWaitTimeout":{"type":"string","description":"No documentation"},"tcpEstablishedTimeout":{"type":"string","description":"Time when established TCP connection times out."},"tcpFinWaitTimeout":{"type":"string","description":"No documentation"},"tcpLastAckTimeout":{"type":"string","description":"No documentation"},"tcpMaxRetransTimeout":{"type":"string","description":"No documentation"},"tcpSynReceivedTimeout":{"type":"string","description":"TCP SYN timeout."},"tcpSynSentTimeout":{"type":"string","description":"TCP SYN timeout."},"tcpTimeWaitTimeout":{"type":"string","description":"No documentation"},"tcpUnackedTimeout":{"type":"string","description":"No documentation"},"udpStreamTimeout":{"type":"string","description":"Specifies the timeout of UDP connections that has seen packets in both directions"},"udpTimeout":{"type":"string","description":"Specifies the timeout for UDP connections that have seen packets in one direction"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpFirewallConnectionTracking resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"activeIpv4":{"type":"boolean","description":"documentation is missing"},"activeIpv6":{"type":"boolean","description":"documentation is missing"},"enabled":{"type":"string","description":"Allows to disable or enable connection tracking. Disabling connection tracking will cause several firewall features to stop working.\n\t\t\t          See the list of affected features. Starting from v6.0rc2 default value is auto. This means that connection tracing is disabled until at least one firewall rule is added.\n"},"genericTimeout":{"type":"string","description":"Timeout for all other connection entries\n"},"icmpTimeout":{"type":"string","description":"ICMP connection timeout\n"},"ipFirewallConnectionTrackingId":{"type":"string"},"liberalTcpTracking":{"type":"boolean","description":"Enables or disables liberal TCP connection tracking by toggling the kernel parameter nf*conntrack*tcp*be*liberal. When set to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e, the system mark only out of window RST segments as INVALID.\n"},"looseTcpTracking":{"type":"string","description":"Disable picking up already established connections"},"maxEntries":{"type":"string","description":"Max amount of entries that the connection tracking table can hold. This value depends on the installed amount of RAM.\n                          Note that the system does not create a\u003cspan pulumi-lang-nodejs=\" maximumSize \" pulumi-lang-dotnet=\" MaximumSize \" pulumi-lang-go=\" maximumSize \" pulumi-lang-python=\" maximum_size \" pulumi-lang-yaml=\" maximumSize \" pulumi-lang-java=\" maximumSize \"\u003e maximum_size \u003c/span\u003econnection tracking table when it starts, it may increase if the situation demands it and the system still has free ram, but size will not exceed 1048576"},"tcpCloseTimeout":{"type":"string","description":"No documentation"},"tcpCloseWaitTimeout":{"type":"string","description":"No documentation"},"tcpEstablishedTimeout":{"type":"string","description":"Time when established TCP connection times out."},"tcpFinWaitTimeout":{"type":"string","description":"No documentation"},"tcpLastAckTimeout":{"type":"string","description":"No documentation"},"tcpMaxRetransTimeout":{"type":"string","description":"No documentation"},"tcpSynReceivedTimeout":{"type":"string","description":"TCP SYN timeout."},"tcpSynSentTimeout":{"type":"string","description":"TCP SYN timeout."},"tcpTimeWaitTimeout":{"type":"string","description":"No documentation"},"tcpUnackedTimeout":{"type":"string","description":"No documentation"},"udpStreamTimeout":{"type":"string","description":"Specifies the timeout of UDP connections that has seen packets in both directions"},"udpTimeout":{"type":"string","description":"Specifies the timeout for UDP connections that have seen packets in one direction"}},"type":"object"}},"routeros:index/ipFirewallFilter:IpFirewallFilter":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst rule = new routeros.IpFirewallFilter(\"rule\", {\n    action: \"accept\",\n    chain: \"forward\",\n    srcAddress: \"10.0.0.1\",\n    dstAddress: \"10.0.1.1\",\n    dstPort: \"443\",\n    protocol: \"tcp\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nrule = routeros.IpFirewallFilter(\"rule\",\n    action=\"accept\",\n    chain=\"forward\",\n    src_address=\"10.0.0.1\",\n    dst_address=\"10.0.1.1\",\n    dst_port=\"443\",\n    protocol=\"tcp\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rule = new Routeros.IpFirewallFilter(\"rule\", new()\n    {\n        Action = \"accept\",\n        Chain = \"forward\",\n        SrcAddress = \"10.0.0.1\",\n        DstAddress = \"10.0.1.1\",\n        DstPort = \"443\",\n        Protocol = \"tcp\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpFirewallFilter(ctx, \"rule\", \u0026routeros.IpFirewallFilterArgs{\n\t\t\tAction:     pulumi.String(\"accept\"),\n\t\t\tChain:      pulumi.String(\"forward\"),\n\t\t\tSrcAddress: pulumi.String(\"10.0.0.1\"),\n\t\t\tDstAddress: pulumi.String(\"10.0.1.1\"),\n\t\t\tDstPort:    pulumi.String(\"443\"),\n\t\t\tProtocol:   pulumi.String(\"tcp\"),\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.routeros.IpFirewallFilter;\nimport com.pulumi.routeros.IpFirewallFilterArgs;\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 rule = new IpFirewallFilter(\"rule\", IpFirewallFilterArgs.builder()\n            .action(\"accept\")\n            .chain(\"forward\")\n            .srcAddress(\"10.0.0.1\")\n            .dstAddress(\"10.0.1.1\")\n            .dstPort(\"443\")\n            .protocol(\"tcp\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule:\n    type: routeros:IpFirewallFilter\n    properties:\n      action: accept\n      chain: forward\n      srcAddress: 10.0.0.1\n      dstAddress: 10.0.1.1\n      dstPort: '443'\n      protocol: tcp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/firewall/filter get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipFirewallFilter:IpFirewallFilter rule \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipFirewallFilter:IpFirewallFilter rule \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list used in 'add-dst-to-address-list' and 'add-src-to-address-list' actions."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"hwOffload":{"type":"boolean","description":"Connection offloading for Fasttrack."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipFirewallFilterId":{"type":"string"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"rejectWith":{"type":"string","description":"Specifies ICMP error to be sent back if the packet is rejected. Applicable if action=reject."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"routingTable":{"type":"string","description":"Matches packets which destination address is resolved in specific a routing table."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object","required":["action","chain","dynamic","invalid","ipFirewallFilterId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list used in 'add-dst-to-address-list' and 'add-src-to-address-list' actions."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"hwOffload":{"type":"boolean","description":"Connection offloading for Fasttrack."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"ipFirewallFilterId":{"type":"string"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"rejectWith":{"type":"string","description":"Specifies ICMP error to be sent back if the packet is rejected. Applicable if action=reject."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"routingTable":{"type":"string","description":"Matches packets which destination address is resolved in specific a routing table."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"requiredInputs":["action","chain"],"stateInputs":{"description":"Input properties used for looking up and filtering IpFirewallFilter resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list used in 'add-dst-to-address-list' and 'add-src-to-address-list' actions."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"hwOffload":{"type":"boolean","description":"Connection offloading for Fasttrack."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipFirewallFilterId":{"type":"string"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"rejectWith":{"type":"string","description":"Specifies ICMP error to be sent back if the packet is rejected. Applicable if action=reject."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"routingTable":{"type":"string","description":"Matches packets which destination address is resolved in specific a routing table."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object"}},"routeros:index/ipFirewallLayer7Protocol:IpFirewallLayer7Protocol":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpFirewallLayer7Protocol(\"test\", {\n    name: \"rdp\",\n    regexp: \"rdpdr.*cliprdr.*rdpsnd\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpFirewallLayer7Protocol(\"test\",\n    name=\"rdp\",\n    regexp=\"rdpdr.*cliprdr.*rdpsnd\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpFirewallLayer7Protocol(\"test\", new()\n    {\n        Name = \"rdp\",\n        Regexp = \"rdpdr.*cliprdr.*rdpsnd\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpFirewallLayer7Protocol(ctx, \"test\", \u0026routeros.IpFirewallLayer7ProtocolArgs{\n\t\t\tName:   pulumi.String(\"rdp\"),\n\t\t\tRegexp: pulumi.String(\"rdpdr.*cliprdr.*rdpsnd\"),\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.routeros.IpFirewallLayer7Protocol;\nimport com.pulumi.routeros.IpFirewallLayer7ProtocolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpFirewallLayer7Protocol(\"test\", IpFirewallLayer7ProtocolArgs.builder()\n            .name(\"rdp\")\n            .regexp(\"rdpdr.*cliprdr.*rdpsnd\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpFirewallLayer7Protocol\n    properties:\n      name: rdp\n      regexp: rdpdr.*cliprdr.*rdpsnd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/firewall/layer7-protocol get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipFirewallLayer7Protocol:IpFirewallLayer7Protocol test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipFirewallLayer7Protocol:IpFirewallLayer7Protocol test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipFirewallLayer7ProtocolId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Descriptive name of l7 pattern used by configuration in firewall rules.\n"},"regexp":{"type":"string","description":"POSIX compliant regular expression is used to match a pattern.\n"}},"type":"object","required":["ipFirewallLayer7ProtocolId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipFirewallLayer7ProtocolId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Descriptive name of l7 pattern used by configuration in firewall rules.\n"},"regexp":{"type":"string","description":"POSIX compliant regular expression is used to match a pattern.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpFirewallLayer7Protocol resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipFirewallLayer7ProtocolId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Descriptive name of l7 pattern used by configuration in firewall rules.\n"},"regexp":{"type":"string","description":"POSIX compliant regular expression is used to match a pattern.\n"}},"type":"object"}},"routeros:index/ipFirewallMangle:IpFirewallMangle":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst rule = new routeros.IpFirewallMangle(\"rule\", {\n    action: \"change-mss\",\n    chain: \"forward\",\n    outInterface: \"pppoe-out\",\n    protocol: \"tcp\",\n    tcpFlags: \"syn\",\n    newMss: \"1130\",\n    tcpMss: \"1301-65535\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nrule = routeros.IpFirewallMangle(\"rule\",\n    action=\"change-mss\",\n    chain=\"forward\",\n    out_interface=\"pppoe-out\",\n    protocol=\"tcp\",\n    tcp_flags=\"syn\",\n    new_mss=\"1130\",\n    tcp_mss=\"1301-65535\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rule = new Routeros.IpFirewallMangle(\"rule\", new()\n    {\n        Action = \"change-mss\",\n        Chain = \"forward\",\n        OutInterface = \"pppoe-out\",\n        Protocol = \"tcp\",\n        TcpFlags = \"syn\",\n        NewMss = \"1130\",\n        TcpMss = \"1301-65535\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpFirewallMangle(ctx, \"rule\", \u0026routeros.IpFirewallMangleArgs{\n\t\t\tAction:       pulumi.String(\"change-mss\"),\n\t\t\tChain:        pulumi.String(\"forward\"),\n\t\t\tOutInterface: pulumi.String(\"pppoe-out\"),\n\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\tTcpFlags:     pulumi.String(\"syn\"),\n\t\t\tNewMss:       pulumi.String(\"1130\"),\n\t\t\tTcpMss:       pulumi.String(\"1301-65535\"),\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.routeros.IpFirewallMangle;\nimport com.pulumi.routeros.IpFirewallMangleArgs;\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 rule = new IpFirewallMangle(\"rule\", IpFirewallMangleArgs.builder()\n            .action(\"change-mss\")\n            .chain(\"forward\")\n            .outInterface(\"pppoe-out\")\n            .protocol(\"tcp\")\n            .tcpFlags(\"syn\")\n            .newMss(\"1130\")\n            .tcpMss(\"1301-65535\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule:\n    type: routeros:IpFirewallMangle\n    properties:\n      action: change-mss\n      chain: forward\n      outInterface: pppoe-out\n      protocol: tcp\n      tcpFlags: syn\n      newMss: '1130'\n      tcpMss: 1301-65535\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/firewall/mangle get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipFirewallMangle:IpFirewallMangle rule \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipFirewallMangle:IpFirewallMangle rule \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule."},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipFirewallMangleId":{"type":"string"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"newConnectionMark":{"type":"string","description":"Sets a new connection-mark value."},"newDscp":{"type":"number","description":"Sets a new DSCP value for a packet."},"newMss":{"type":"string","description":"Sets a new MSS for a packet.\n  * clamp-to-pmtu feature sets (DF) bit in the IP header to dynamically discover the PMTU of a path.\n  * Host sends all datagrams on that path with the DF bit set until receives ICMP.\n  * Destination Unreachable messages with a code meaning `fragmentation needed and DF set`.\n  * Upon receipt of such a message, the source host reduces its assumed PMTU for the path."},"newPacketMark":{"type":"string","description":"Sets a new packet-mark value."},"newPriority":{"type":"string","description":"Sets a new priority for a packet. This can be the VLAN, WMM, DSCP or MPLS EXP priority. This property can also be used to set an internal priority."},"newRoutingMark":{"type":"string","description":"Sets a new routing-mark value."},"newTtl":{"type":"string","description":"Sets a new TTL for a packet."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"passthrough":{"type":"boolean","description":"Whether to let the packet to pass further (like action passthrough) into the firewall or not (property only valid some actions)."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"routeDst":{"type":"string","description":"Matches packets with a specific gateway."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object","required":["action","chain","dynamic","invalid","ipFirewallMangleId","passthrough"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule."},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"ipFirewallMangleId":{"type":"string"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"newConnectionMark":{"type":"string","description":"Sets a new connection-mark value."},"newDscp":{"type":"number","description":"Sets a new DSCP value for a packet."},"newMss":{"type":"string","description":"Sets a new MSS for a packet.\n  * clamp-to-pmtu feature sets (DF) bit in the IP header to dynamically discover the PMTU of a path.\n  * Host sends all datagrams on that path with the DF bit set until receives ICMP.\n  * Destination Unreachable messages with a code meaning `fragmentation needed and DF set`.\n  * Upon receipt of such a message, the source host reduces its assumed PMTU for the path."},"newPacketMark":{"type":"string","description":"Sets a new packet-mark value."},"newPriority":{"type":"string","description":"Sets a new priority for a packet. This can be the VLAN, WMM, DSCP or MPLS EXP priority. This property can also be used to set an internal priority."},"newRoutingMark":{"type":"string","description":"Sets a new routing-mark value."},"newTtl":{"type":"string","description":"Sets a new TTL for a packet."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"passthrough":{"type":"boolean","description":"Whether to let the packet to pass further (like action passthrough) into the firewall or not (property only valid some actions)."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"routeDst":{"type":"string","description":"Matches packets with a specific gateway."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"requiredInputs":["action","chain"],"stateInputs":{"description":"Input properties used for looking up and filtering IpFirewallMangle resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule."},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipFirewallMangleId":{"type":"string"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"newConnectionMark":{"type":"string","description":"Sets a new connection-mark value."},"newDscp":{"type":"number","description":"Sets a new DSCP value for a packet."},"newMss":{"type":"string","description":"Sets a new MSS for a packet.\n  * clamp-to-pmtu feature sets (DF) bit in the IP header to dynamically discover the PMTU of a path.\n  * Host sends all datagrams on that path with the DF bit set until receives ICMP.\n  * Destination Unreachable messages with a code meaning `fragmentation needed and DF set`.\n  * Upon receipt of such a message, the source host reduces its assumed PMTU for the path."},"newPacketMark":{"type":"string","description":"Sets a new packet-mark value."},"newPriority":{"type":"string","description":"Sets a new priority for a packet. This can be the VLAN, WMM, DSCP or MPLS EXP priority. This property can also be used to set an internal priority."},"newRoutingMark":{"type":"string","description":"Sets a new routing-mark value."},"newTtl":{"type":"string","description":"Sets a new TTL for a packet."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"passthrough":{"type":"boolean","description":"Whether to let the packet to pass further (like action passthrough) into the firewall or not (property only valid some actions)."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"routeDst":{"type":"string","description":"Matches packets with a specific gateway."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object"}},"routeros:index/ipFirewallNat:IpFirewallNat":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst rule = new routeros.IpFirewallNat(\"rule\", {\n    action: \"masquerade\",\n    chain: \"srcnat\",\n    outInterface: \"ether16\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nrule = routeros.IpFirewallNat(\"rule\",\n    action=\"masquerade\",\n    chain=\"srcnat\",\n    out_interface=\"ether16\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rule = new Routeros.IpFirewallNat(\"rule\", new()\n    {\n        Action = \"masquerade\",\n        Chain = \"srcnat\",\n        OutInterface = \"ether16\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpFirewallNat(ctx, \"rule\", \u0026routeros.IpFirewallNatArgs{\n\t\t\tAction:       pulumi.String(\"masquerade\"),\n\t\t\tChain:        pulumi.String(\"srcnat\"),\n\t\t\tOutInterface: pulumi.String(\"ether16\"),\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.routeros.IpFirewallNat;\nimport com.pulumi.routeros.IpFirewallNatArgs;\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 rule = new IpFirewallNat(\"rule\", IpFirewallNatArgs.builder()\n            .action(\"masquerade\")\n            .chain(\"srcnat\")\n            .outInterface(\"ether16\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule:\n    type: routeros:IpFirewallNat\n    properties:\n      action: masquerade\n      chain: srcnat\n      outInterface: ether16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/firewall/nat get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipFirewallNat:IpFirewallNat rule \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipFirewallNat:IpFirewallNat rule \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipFirewallNatId":{"type":"string"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"randomisePorts":{"type":"boolean","description":"Randomize to which public port connections will be mapped."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"sameNotByDst":{"type":"boolean","description":"Specifies whether to take into account or not destination IP address when selecting a new source IP address. Applicable if action=same"},"socks5Port":{"type":"number","description":"Listening port of the SOCKS5 proxy server."},"socks5Server":{"type":"string","description":"IP address of the SOCKS5 proxy server. (only IPv4 addresses are supported)"},"socksifyService":{"type":"string","description":"Name of existing socksify service."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"toAddresses":{"type":"string","description":"Replace original address with specified one. Applicable if action is dst-nat, netmap, same, src-nat."},"toPorts":{"type":"string","description":"Replace the original port with the specified one. Applicable if action is dst-nat, redirect, masquerade, netmap, same, src-nat."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object","required":["action","chain","dynamic","invalid","ipFirewallNatId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"ipFirewallNatId":{"type":"string"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"randomisePorts":{"type":"boolean","description":"Randomize to which public port connections will be mapped."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"sameNotByDst":{"type":"boolean","description":"Specifies whether to take into account or not destination IP address when selecting a new source IP address. Applicable if action=same"},"socks5Port":{"type":"number","description":"Listening port of the SOCKS5 proxy server."},"socks5Server":{"type":"string","description":"IP address of the SOCKS5 proxy server. (only IPv4 addresses are supported)"},"socksifyService":{"type":"string","description":"Name of existing socksify service."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"toAddresses":{"type":"string","description":"Replace original address with specified one. Applicable if action is dst-nat, netmap, same, src-nat."},"toPorts":{"type":"string","description":"Replace the original port with the specified one. Applicable if action is dst-nat, redirect, masquerade, netmap, same, src-nat."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"requiredInputs":["action","chain"],"stateInputs":{"description":"Input properties used for looking up and filtering IpFirewallNat resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipFirewallNatId":{"type":"string"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"layer7Protocol":{"type":"string","description":"Layer7 filter name."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"randomisePorts":{"type":"boolean","description":"Randomize to which public port connections will be mapped."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"sameNotByDst":{"type":"boolean","description":"Specifies whether to take into account or not destination IP address when selecting a new source IP address. Applicable if action=same"},"socks5Port":{"type":"number","description":"Listening port of the SOCKS5 proxy server."},"socks5Server":{"type":"string","description":"IP address of the SOCKS5 proxy server. (only IPv4 addresses are supported)"},"socksifyService":{"type":"string","description":"Name of existing socksify service."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"toAddresses":{"type":"string","description":"Replace original address with specified one. Applicable if action is dst-nat, netmap, same, src-nat."},"toPorts":{"type":"string","description":"Replace the original port with the specified one. Applicable if action is dst-nat, redirect, masquerade, netmap, same, src-nat."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object"}},"routeros:index/ipFirewallRaw:IpFirewallRaw":{"properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list used in 'add-dst-to-address-list' and 'add-src-to-address-list' actions."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipFirewallRawId":{"type":"string"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object","required":["action","chain","dynamic","invalid","ipFirewallRawId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list used in 'add-dst-to-address-list' and 'add-src-to-address-list' actions."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"ipFirewallRawId":{"type":"string"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"requiredInputs":["action","chain"],"stateInputs":{"description":"Input properties used for looking up and filtering IpFirewallRaw resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list used in 'add-dst-to-address-list' and 'add-src-to-address-list' actions."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"fragment":{"type":"boolean","description":"Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet"},"hotspot":{"type":"string","description":"Matches packets received from HotSpot clients against various HotSpot matchers."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipFirewallRawId":{"type":"string"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv4Options":{"type":"string","description":"Matches IPv4 header options."},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"psd":{"type":"string","description":"Attempts to detect TCP and UDP scans. Parameters are in the following format WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object"}},"routeros:index/ipHotspot:IpHotspot":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpHotspot(\"test\", {\n    name: \"server-1\",\n    \"interface\": \"ether2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpHotspot(\"test\",\n    name=\"server-1\",\n    interface=\"ether2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpHotspot(\"test\", new()\n    {\n        Name = \"server-1\",\n        Interface = \"ether2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpHotspot(ctx, \"test\", \u0026routeros.IpHotspotArgs{\n\t\t\tName:      pulumi.String(\"server-1\"),\n\t\t\tInterface: pulumi.String(\"ether2\"),\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.routeros.IpHotspot;\nimport com.pulumi.routeros.IpHotspotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpHotspot(\"test\", IpHotspotArgs.builder()\n            .name(\"server-1\")\n            .interface_(\"ether2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpHotspot\n    properties:\n      name: server-1\n      interface: ether2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/hotspot get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipHotspot:IpHotspot test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipHotspot:IpHotspot test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressPool":{"type":"string","description":"Address space used to change HotSpot client any IP address to a valid address. Useful for providing public network access to mobile clients that are not willing to change their networking settings.\n"},"addressesPerMac":{"type":"string","description":"Number of IP addresses allowed to be bind with the MAC address, when multiple HotSpot clients connected with one MAC-address.\n"},"disabled":{"type":"boolean"},"idleTimeout":{"type":"string","description":"Period of inactivity for unauthorized clients. When there is no traffic from this client (literally client computer should be switched off), once the timeout is reached, a user is dropped from the HotSpot host list, its used address becomes available.\n"},"interface":{"type":"string","description":"Interface to run HotSpot on.\n"},"invalid":{"type":"boolean"},"ipHotspotId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"The exact value of the keepalive-timeout, that is applied to the user. Value shows how long the host can stay out of reach to be removed from the HotSpot.\n"},"loginTimeout":{"type":"string","description":"Period of time after which if a host hasn't been authorized itself with a system the host entry gets deleted from host table. Loop repeats until the host logs in the system. Enable if there are situations where a host cannot log in after being too long in the host table unauthorized.\n"},"name":{"type":"string","description":"HotSpot server's name or identifier.\n"},"profile":{"type":"string","description":"HotSpot server default HotSpot profile, which is located in `/ip/hotspot/profile`.\n"}},"type":"object","required":["interface","invalid","ipHotspotId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressPool":{"type":"string","description":"Address space used to change HotSpot client any IP address to a valid address. Useful for providing public network access to mobile clients that are not willing to change their networking settings.\n"},"addressesPerMac":{"type":"string","description":"Number of IP addresses allowed to be bind with the MAC address, when multiple HotSpot clients connected with one MAC-address.\n"},"disabled":{"type":"boolean"},"idleTimeout":{"type":"string","description":"Period of inactivity for unauthorized clients. When there is no traffic from this client (literally client computer should be switched off), once the timeout is reached, a user is dropped from the HotSpot host list, its used address becomes available.\n"},"interface":{"type":"string","description":"Interface to run HotSpot on.\n"},"ipHotspotId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"The exact value of the keepalive-timeout, that is applied to the user. Value shows how long the host can stay out of reach to be removed from the HotSpot.\n"},"loginTimeout":{"type":"string","description":"Period of time after which if a host hasn't been authorized itself with a system the host entry gets deleted from host table. Loop repeats until the host logs in the system. Enable if there are situations where a host cannot log in after being too long in the host table unauthorized.\n"},"name":{"type":"string","description":"HotSpot server's name or identifier.\n"},"profile":{"type":"string","description":"HotSpot server default HotSpot profile, which is located in `/ip/hotspot/profile`.\n"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering IpHotspot resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressPool":{"type":"string","description":"Address space used to change HotSpot client any IP address to a valid address. Useful for providing public network access to mobile clients that are not willing to change their networking settings.\n"},"addressesPerMac":{"type":"string","description":"Number of IP addresses allowed to be bind with the MAC address, when multiple HotSpot clients connected with one MAC-address.\n"},"disabled":{"type":"boolean"},"idleTimeout":{"type":"string","description":"Period of inactivity for unauthorized clients. When there is no traffic from this client (literally client computer should be switched off), once the timeout is reached, a user is dropped from the HotSpot host list, its used address becomes available.\n"},"interface":{"type":"string","description":"Interface to run HotSpot on.\n"},"invalid":{"type":"boolean"},"ipHotspotId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"The exact value of the keepalive-timeout, that is applied to the user. Value shows how long the host can stay out of reach to be removed from the HotSpot.\n"},"loginTimeout":{"type":"string","description":"Period of time after which if a host hasn't been authorized itself with a system the host entry gets deleted from host table. Loop repeats until the host logs in the system. Enable if there are situations where a host cannot log in after being too long in the host table unauthorized.\n"},"name":{"type":"string","description":"HotSpot server's name or identifier.\n"},"profile":{"type":"string","description":"HotSpot server default HotSpot profile, which is located in `/ip/hotspot/profile`.\n"}},"type":"object"}},"routeros:index/ipHotspotIpBinding:IpHotspotIpBinding":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpHotspotIpBinding(\"test\", {\n    address: \"0.0.0.1\",\n    comment: \"comment\",\n    macAddress: \"00:00:00:00:01:10\",\n    toAddress: \"0.0.0.2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpHotspotIpBinding(\"test\",\n    address=\"0.0.0.1\",\n    comment=\"comment\",\n    mac_address=\"00:00:00:00:01:10\",\n    to_address=\"0.0.0.2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpHotspotIpBinding(\"test\", new()\n    {\n        Address = \"0.0.0.1\",\n        Comment = \"comment\",\n        MacAddress = \"00:00:00:00:01:10\",\n        ToAddress = \"0.0.0.2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpHotspotIpBinding(ctx, \"test\", \u0026routeros.IpHotspotIpBindingArgs{\n\t\t\tAddress:    pulumi.String(\"0.0.0.1\"),\n\t\t\tComment:    pulumi.String(\"comment\"),\n\t\t\tMacAddress: pulumi.String(\"00:00:00:00:01:10\"),\n\t\t\tToAddress:  pulumi.String(\"0.0.0.2\"),\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.routeros.IpHotspotIpBinding;\nimport com.pulumi.routeros.IpHotspotIpBindingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpHotspotIpBinding(\"test\", IpHotspotIpBindingArgs.builder()\n            .address(\"0.0.0.1\")\n            .comment(\"comment\")\n            .macAddress(\"00:00:00:00:01:10\")\n            .toAddress(\"0.0.0.2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpHotspotIpBinding\n    properties:\n      address: 0.0.0.1\n      comment: comment\n      macAddress: 00:00:00:00:01:10\n      toAddress: 0.0.0.2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/hotspot/ip-binding get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipHotspotIpBinding:IpHotspotIpBinding test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipHotspotIpBinding:IpHotspotIpBinding test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The original IP address of the client."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ipHotspotIpBindingId":{"type":"string"},"macAddress":{"type":"string","description":"MAC address of the client."},"server":{"type":"string","description":"Name of the HotSpot server. \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 - will be applied to all hotspot servers."},"toAddress":{"type":"string","description":"New IP address of the client, translation occurs on the router (client does not know anything about the translation)."},"type":{"type":"string","description":"Type of the IP-binding action\n  * regular - performs One-to-One NAT according to the rule, translates the address to to-address;\n  * bypassed - performs the translation, but excludes client from login to the HotSpot;\n  * blocked - translation is not performed and packets from a host are dropped."}},"type":"object","required":["ipHotspotIpBindingId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The original IP address of the client."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ipHotspotIpBindingId":{"type":"string"},"macAddress":{"type":"string","description":"MAC address of the client."},"server":{"type":"string","description":"Name of the HotSpot server. \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 - will be applied to all hotspot servers."},"toAddress":{"type":"string","description":"New IP address of the client, translation occurs on the router (client does not know anything about the translation)."},"type":{"type":"string","description":"Type of the IP-binding action\n  * regular - performs One-to-One NAT according to the rule, translates the address to to-address;\n  * bypassed - performs the translation, but excludes client from login to the HotSpot;\n  * blocked - translation is not performed and packets from a host are dropped."}},"stateInputs":{"description":"Input properties used for looking up and filtering IpHotspotIpBinding resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"The original IP address of the client."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ipHotspotIpBindingId":{"type":"string"},"macAddress":{"type":"string","description":"MAC address of the client."},"server":{"type":"string","description":"Name of the HotSpot server. \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 - will be applied to all hotspot servers."},"toAddress":{"type":"string","description":"New IP address of the client, translation occurs on the router (client does not know anything about the translation)."},"type":{"type":"string","description":"Type of the IP-binding action\n  * regular - performs One-to-One NAT according to the rule, translates the address to to-address;\n  * bypassed - performs the translation, but excludes client from login to the HotSpot;\n  * blocked - translation is not performed and packets from a host are dropped."}},"type":"object"}},"routeros:index/ipHotspotProfile:IpHotspotProfile":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpHotspotProfile(\"test\", {\n    name: \"hsprof-1\",\n    loginBies: [\n        \"mac\",\n        \"https\",\n        \"trial\",\n    ],\n    useRadius: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpHotspotProfile(\"test\",\n    name=\"hsprof-1\",\n    login_bies=[\n        \"mac\",\n        \"https\",\n        \"trial\",\n    ],\n    use_radius=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpHotspotProfile(\"test\", new()\n    {\n        Name = \"hsprof-1\",\n        LoginBies = new[]\n        {\n            \"mac\",\n            \"https\",\n            \"trial\",\n        },\n        UseRadius = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpHotspotProfile(ctx, \"test\", \u0026routeros.IpHotspotProfileArgs{\n\t\t\tName: pulumi.String(\"hsprof-1\"),\n\t\t\tLoginBies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"mac\"),\n\t\t\t\tpulumi.String(\"https\"),\n\t\t\t\tpulumi.String(\"trial\"),\n\t\t\t},\n\t\t\tUseRadius: 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.routeros.IpHotspotProfile;\nimport com.pulumi.routeros.IpHotspotProfileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpHotspotProfile(\"test\", IpHotspotProfileArgs.builder()\n            .name(\"hsprof-1\")\n            .loginBies(            \n                \"mac\",\n                \"https\",\n                \"trial\")\n            .useRadius(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpHotspotProfile\n    properties:\n      name: hsprof-1\n      loginBies:\n        - mac\n        - https\n        - trial\n      useRadius: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/hotspot/profile get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipHotspotProfile:IpHotspotProfile test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipHotspotProfile:IpHotspotProfile test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"dnsName":{"type":"string","description":"DNS name of the HotSpot server (it appears as the location of the login page). This name will automatically be added as a static DNS entry in the DNS cache. Name can affect if Hotspot is automatically detected by client device. For example, iOS devices may not detect Hotspot that has a name which includes `.local`."},"hotspotAddress":{"type":"string","description":"IP address of HotSpot service."},"htmlDirectory":{"type":"string","description":"Directory name in which HotSpot HTML pages are stored (by default hotspot directory). It is possible to specify different directory with modified HTML pages. To change HotSpot login page, connect to the router with FTP and download hotspot directory contents. v6.31 and older software builds: For devices where \u003cspan pulumi-lang-nodejs=\"`flash`\" pulumi-lang-dotnet=\"`Flash`\" pulumi-lang-go=\"`flash`\" pulumi-lang-python=\"`flash`\" pulumi-lang-yaml=\"`flash`\" pulumi-lang-java=\"`flash`\"\u003e`flash`\u003c/span\u003e directory is present, hotspot html directory must be stored there and path must be typed in as follows: `/(hotspot_dir)`. This must be done in this order as hotspot sees \u003cspan pulumi-lang-nodejs=\"`flash`\" pulumi-lang-dotnet=\"`Flash`\" pulumi-lang-go=\"`flash`\" pulumi-lang-python=\"`flash`\" pulumi-lang-yaml=\"`flash`\" pulumi-lang-java=\"`flash`\"\u003e`flash`\u003c/span\u003e directory as root location. v6.32 and newer software builds: full path must be typed in html-directory field, including `/flash/(hotspot_dir)`."},"htmlDirectoryOverride":{"type":"string","description":"Alternative path for hotspot html files. It should be used only if customized hotspot html files are stored on external storage(attached usb, hdd, etc). If configured then hotspot will switch to this html path as soon at it becomes available and switch back to html-directory path if override path becomes non-available for some reason."},"httpCookieLifetime":{"type":"string","description":"HTTP cookie validity time, the option is related to cookie HotSpot login method."},"httpProxy":{"type":"string","description":"Address and port of the proxy server for HotSpot service, when default value is used all request are resolved by the local `/ip proxy`."},"httpsRedirect":{"type":"boolean","description":"Whether to redirect unauthenticated user to hotspot login page, if he is visiting a https:// url. Since certificate domain name will mismatch, often this leads to errors, so you can set this parameter to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e and all https requests will simply be rejected and user will have to visit a http page."},"ipHotspotProfileId":{"type":"string"},"loginBies":{"type":"array","items":{"type":"string"},"description":"Used HotSpot authentication method\n * mac-cookie - enables login by mac cookie method.\n * cookie - may only be used with other HTTP authentication method. HTTP cookie is generated, when user authenticates in HotSpot for the first time. User is not asked for the login/password and authenticated automatically, until cookie-lifetime is active.\n * http-chap - login/password is required for the user to authenticate in HotSpot. CHAP challenge-response method with MD5 hashing algorithm is used for protecting passwords. \n * http-pap - login/password is required for user to authenticate in HotSpot. Username and password are sent over network in plain text.\n * https - login/password is required for user to authenticate in HotSpot. Client login/password exchange between client and server is encrypted with SSL tunnel.\n * mac - client is authenticated without asking login form. Client MAC-address is added to `/ip hotspot user` database, client is authenticated as soon as connected to the HotSpot\n * trial - client is allowed to use internet without HotSpot login for the specified amount of time."},"macAuthMode":{"type":"string","description":"Allows to control User-Name and User-Password RADIUS attributes when using MAC authentication."},"macAuthPassword":{"type":"string","description":"Used together with MAC authentication, field used to specify password for the users to be authenticated by their MAC addresses. The following option is required, when specific RADIUS server rejects authentication for the clients with blank password.","secret":true},"name":{"type":"string","description":"Descriptive name of the profile."},"nasPortType":{"type":"string","description":"`NAS-Port-Type` value to be sent to RADIUS server, `NAS-Port-Type` values are described in the RADIUS RFC 2865. This optional value attribute indicates the type of the physical port of the HotSpot server."},"radiusAccounting":{"type":"boolean","description":"Send RADIUS server accounting information for each user, when yes is used."},"radiusDefaultDomain":{"type":"string","description":"Default domain to use for RADIUS requests. Allows to use separate RADIUS server per `/ip hotspot profile`. If used, same domain name should be specified under `/radius domain` value."},"radiusInterimUpdate":{"type":"string","description":"How often to send accounting updates . When received is set, interim-time is used from RADIUS server. 0s is the same as received."},"radiusLocationId":{"type":"string","description":"`RADIUS-Location-Id` property."},"radiusLocationName":{"type":"string","description":"`RADIUS-Location-Id` to be sent to RADIUS server. Used to identify location of the HotSpot server during the communication with RADIUS server. Value is optional and used together with RADIUS server."},"radiusMacFormat":{"type":"string","description":"Controls how the MAC address of the client is encoded in the `User-Name` and `User-Password` attributes when using MAC authentication."},"rateLimit":{"type":"string","description":"Rate limitation in form of rx-rate[/tx-rate] [rx-burst-rate[/tx-burst-rate] [rx-burst-threshold[/tx-burst-threshold] [rx-burst-time[/tx-burst-time]]]] [priority] [rx-rate-min[/tx-rate-min]] from the point of view of the router (so \u003cspan pulumi-lang-nodejs=\"`rx`\" pulumi-lang-dotnet=\"`Rx`\" pulumi-lang-go=\"`rx`\" pulumi-lang-python=\"`rx`\" pulumi-lang-yaml=\"`rx`\" pulumi-lang-java=\"`rx`\"\u003e`rx`\u003c/span\u003e is client upload, and \u003cspan pulumi-lang-nodejs=\"`tx`\" pulumi-lang-dotnet=\"`Tx`\" pulumi-lang-go=\"`tx`\" pulumi-lang-python=\"`tx`\" pulumi-lang-yaml=\"`tx`\" pulumi-lang-java=\"`tx`\"\u003e`tx`\u003c/span\u003e is client download). All rates should be numbers with optional 'k' (1,000s) or 'M' (1,000,000s). If tx-rate is not specified, rx-rate is as tx-rate too. Same goes for tx-burst-rate and tx-burst-threshold and tx-burst-time. If both rx-burst-threshold and tx-burst-threshold are not specified (but burst-rate is specified), rx-rate and tx-rate is used as burst thresholds. If both rx-burst-time and tx-burst-time are not specified, 1s is used as default. rx-rate-min and tx-rate min are the values of limit-at properties."},"smtpServer":{"type":"string","description":"SMTP server address to be used to redirect HotSpot users SMTP requests."},"splitUserDomain":{"type":"boolean","description":"Split username from domain name when the username is given in `user@domain` or in `domain\\user` format from RADIUS server."},"sslCertificate":{"type":"string","description":"Name of the SSL certificate on the router to to use only for HTTPS authentication."},"trialUptimeLimit":{"type":"string","description":"Used only with trial authentication method. Time value specifies, how long trial user identified by MAC address can use access to public networks without HotSpot authentication."},"trialUptimeReset":{"type":"string","description":"Used only with trial authentication method."},"trialUserProfile":{"type":"string","description":"Specifies hotspot user profile for trial users."},"useRadius":{"type":"boolean","description":"Use RADIUS to authenticate HotSpot users."}},"type":"object","required":["ipHotspotProfileId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"dnsName":{"type":"string","description":"DNS name of the HotSpot server (it appears as the location of the login page). This name will automatically be added as a static DNS entry in the DNS cache. Name can affect if Hotspot is automatically detected by client device. For example, iOS devices may not detect Hotspot that has a name which includes `.local`."},"hotspotAddress":{"type":"string","description":"IP address of HotSpot service."},"htmlDirectory":{"type":"string","description":"Directory name in which HotSpot HTML pages are stored (by default hotspot directory). It is possible to specify different directory with modified HTML pages. To change HotSpot login page, connect to the router with FTP and download hotspot directory contents. v6.31 and older software builds: For devices where \u003cspan pulumi-lang-nodejs=\"`flash`\" pulumi-lang-dotnet=\"`Flash`\" pulumi-lang-go=\"`flash`\" pulumi-lang-python=\"`flash`\" pulumi-lang-yaml=\"`flash`\" pulumi-lang-java=\"`flash`\"\u003e`flash`\u003c/span\u003e directory is present, hotspot html directory must be stored there and path must be typed in as follows: `/(hotspot_dir)`. This must be done in this order as hotspot sees \u003cspan pulumi-lang-nodejs=\"`flash`\" pulumi-lang-dotnet=\"`Flash`\" pulumi-lang-go=\"`flash`\" pulumi-lang-python=\"`flash`\" pulumi-lang-yaml=\"`flash`\" pulumi-lang-java=\"`flash`\"\u003e`flash`\u003c/span\u003e directory as root location. v6.32 and newer software builds: full path must be typed in html-directory field, including `/flash/(hotspot_dir)`."},"htmlDirectoryOverride":{"type":"string","description":"Alternative path for hotspot html files. It should be used only if customized hotspot html files are stored on external storage(attached usb, hdd, etc). If configured then hotspot will switch to this html path as soon at it becomes available and switch back to html-directory path if override path becomes non-available for some reason."},"httpCookieLifetime":{"type":"string","description":"HTTP cookie validity time, the option is related to cookie HotSpot login method."},"httpProxy":{"type":"string","description":"Address and port of the proxy server for HotSpot service, when default value is used all request are resolved by the local `/ip proxy`."},"httpsRedirect":{"type":"boolean","description":"Whether to redirect unauthenticated user to hotspot login page, if he is visiting a https:// url. Since certificate domain name will mismatch, often this leads to errors, so you can set this parameter to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e and all https requests will simply be rejected and user will have to visit a http page."},"ipHotspotProfileId":{"type":"string"},"loginBies":{"type":"array","items":{"type":"string"},"description":"Used HotSpot authentication method\n * mac-cookie - enables login by mac cookie method.\n * cookie - may only be used with other HTTP authentication method. HTTP cookie is generated, when user authenticates in HotSpot for the first time. User is not asked for the login/password and authenticated automatically, until cookie-lifetime is active.\n * http-chap - login/password is required for the user to authenticate in HotSpot. CHAP challenge-response method with MD5 hashing algorithm is used for protecting passwords. \n * http-pap - login/password is required for user to authenticate in HotSpot. Username and password are sent over network in plain text.\n * https - login/password is required for user to authenticate in HotSpot. Client login/password exchange between client and server is encrypted with SSL tunnel.\n * mac - client is authenticated without asking login form. Client MAC-address is added to `/ip hotspot user` database, client is authenticated as soon as connected to the HotSpot\n * trial - client is allowed to use internet without HotSpot login for the specified amount of time."},"macAuthMode":{"type":"string","description":"Allows to control User-Name and User-Password RADIUS attributes when using MAC authentication."},"macAuthPassword":{"type":"string","description":"Used together with MAC authentication, field used to specify password for the users to be authenticated by their MAC addresses. The following option is required, when specific RADIUS server rejects authentication for the clients with blank password.","secret":true},"name":{"type":"string","description":"Descriptive name of the profile."},"nasPortType":{"type":"string","description":"`NAS-Port-Type` value to be sent to RADIUS server, `NAS-Port-Type` values are described in the RADIUS RFC 2865. This optional value attribute indicates the type of the physical port of the HotSpot server."},"radiusAccounting":{"type":"boolean","description":"Send RADIUS server accounting information for each user, when yes is used."},"radiusDefaultDomain":{"type":"string","description":"Default domain to use for RADIUS requests. Allows to use separate RADIUS server per `/ip hotspot profile`. If used, same domain name should be specified under `/radius domain` value."},"radiusInterimUpdate":{"type":"string","description":"How often to send accounting updates . When received is set, interim-time is used from RADIUS server. 0s is the same as received."},"radiusLocationId":{"type":"string","description":"`RADIUS-Location-Id` property."},"radiusLocationName":{"type":"string","description":"`RADIUS-Location-Id` to be sent to RADIUS server. Used to identify location of the HotSpot server during the communication with RADIUS server. Value is optional and used together with RADIUS server."},"radiusMacFormat":{"type":"string","description":"Controls how the MAC address of the client is encoded in the `User-Name` and `User-Password` attributes when using MAC authentication."},"rateLimit":{"type":"string","description":"Rate limitation in form of rx-rate[/tx-rate] [rx-burst-rate[/tx-burst-rate] [rx-burst-threshold[/tx-burst-threshold] [rx-burst-time[/tx-burst-time]]]] [priority] [rx-rate-min[/tx-rate-min]] from the point of view of the router (so \u003cspan pulumi-lang-nodejs=\"`rx`\" pulumi-lang-dotnet=\"`Rx`\" pulumi-lang-go=\"`rx`\" pulumi-lang-python=\"`rx`\" pulumi-lang-yaml=\"`rx`\" pulumi-lang-java=\"`rx`\"\u003e`rx`\u003c/span\u003e is client upload, and \u003cspan pulumi-lang-nodejs=\"`tx`\" pulumi-lang-dotnet=\"`Tx`\" pulumi-lang-go=\"`tx`\" pulumi-lang-python=\"`tx`\" pulumi-lang-yaml=\"`tx`\" pulumi-lang-java=\"`tx`\"\u003e`tx`\u003c/span\u003e is client download). All rates should be numbers with optional 'k' (1,000s) or 'M' (1,000,000s). If tx-rate is not specified, rx-rate is as tx-rate too. Same goes for tx-burst-rate and tx-burst-threshold and tx-burst-time. If both rx-burst-threshold and tx-burst-threshold are not specified (but burst-rate is specified), rx-rate and tx-rate is used as burst thresholds. If both rx-burst-time and tx-burst-time are not specified, 1s is used as default. rx-rate-min and tx-rate min are the values of limit-at properties."},"smtpServer":{"type":"string","description":"SMTP server address to be used to redirect HotSpot users SMTP requests."},"splitUserDomain":{"type":"boolean","description":"Split username from domain name when the username is given in `user@domain` or in `domain\\user` format from RADIUS server."},"sslCertificate":{"type":"string","description":"Name of the SSL certificate on the router to to use only for HTTPS authentication."},"trialUptimeLimit":{"type":"string","description":"Used only with trial authentication method. Time value specifies, how long trial user identified by MAC address can use access to public networks without HotSpot authentication."},"trialUptimeReset":{"type":"string","description":"Used only with trial authentication method."},"trialUserProfile":{"type":"string","description":"Specifies hotspot user profile for trial users."},"useRadius":{"type":"boolean","description":"Use RADIUS to authenticate HotSpot users."}},"stateInputs":{"description":"Input properties used for looking up and filtering IpHotspotProfile resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"dnsName":{"type":"string","description":"DNS name of the HotSpot server (it appears as the location of the login page). This name will automatically be added as a static DNS entry in the DNS cache. Name can affect if Hotspot is automatically detected by client device. For example, iOS devices may not detect Hotspot that has a name which includes `.local`."},"hotspotAddress":{"type":"string","description":"IP address of HotSpot service."},"htmlDirectory":{"type":"string","description":"Directory name in which HotSpot HTML pages are stored (by default hotspot directory). It is possible to specify different directory with modified HTML pages. To change HotSpot login page, connect to the router with FTP and download hotspot directory contents. v6.31 and older software builds: For devices where \u003cspan pulumi-lang-nodejs=\"`flash`\" pulumi-lang-dotnet=\"`Flash`\" pulumi-lang-go=\"`flash`\" pulumi-lang-python=\"`flash`\" pulumi-lang-yaml=\"`flash`\" pulumi-lang-java=\"`flash`\"\u003e`flash`\u003c/span\u003e directory is present, hotspot html directory must be stored there and path must be typed in as follows: `/(hotspot_dir)`. This must be done in this order as hotspot sees \u003cspan pulumi-lang-nodejs=\"`flash`\" pulumi-lang-dotnet=\"`Flash`\" pulumi-lang-go=\"`flash`\" pulumi-lang-python=\"`flash`\" pulumi-lang-yaml=\"`flash`\" pulumi-lang-java=\"`flash`\"\u003e`flash`\u003c/span\u003e directory as root location. v6.32 and newer software builds: full path must be typed in html-directory field, including `/flash/(hotspot_dir)`."},"htmlDirectoryOverride":{"type":"string","description":"Alternative path for hotspot html files. It should be used only if customized hotspot html files are stored on external storage(attached usb, hdd, etc). If configured then hotspot will switch to this html path as soon at it becomes available and switch back to html-directory path if override path becomes non-available for some reason."},"httpCookieLifetime":{"type":"string","description":"HTTP cookie validity time, the option is related to cookie HotSpot login method."},"httpProxy":{"type":"string","description":"Address and port of the proxy server for HotSpot service, when default value is used all request are resolved by the local `/ip proxy`."},"httpsRedirect":{"type":"boolean","description":"Whether to redirect unauthenticated user to hotspot login page, if he is visiting a https:// url. Since certificate domain name will mismatch, often this leads to errors, so you can set this parameter to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e and all https requests will simply be rejected and user will have to visit a http page."},"ipHotspotProfileId":{"type":"string"},"loginBies":{"type":"array","items":{"type":"string"},"description":"Used HotSpot authentication method\n * mac-cookie - enables login by mac cookie method.\n * cookie - may only be used with other HTTP authentication method. HTTP cookie is generated, when user authenticates in HotSpot for the first time. User is not asked for the login/password and authenticated automatically, until cookie-lifetime is active.\n * http-chap - login/password is required for the user to authenticate in HotSpot. CHAP challenge-response method with MD5 hashing algorithm is used for protecting passwords. \n * http-pap - login/password is required for user to authenticate in HotSpot. Username and password are sent over network in plain text.\n * https - login/password is required for user to authenticate in HotSpot. Client login/password exchange between client and server is encrypted with SSL tunnel.\n * mac - client is authenticated without asking login form. Client MAC-address is added to `/ip hotspot user` database, client is authenticated as soon as connected to the HotSpot\n * trial - client is allowed to use internet without HotSpot login for the specified amount of time."},"macAuthMode":{"type":"string","description":"Allows to control User-Name and User-Password RADIUS attributes when using MAC authentication."},"macAuthPassword":{"type":"string","description":"Used together with MAC authentication, field used to specify password for the users to be authenticated by their MAC addresses. The following option is required, when specific RADIUS server rejects authentication for the clients with blank password.","secret":true},"name":{"type":"string","description":"Descriptive name of the profile."},"nasPortType":{"type":"string","description":"`NAS-Port-Type` value to be sent to RADIUS server, `NAS-Port-Type` values are described in the RADIUS RFC 2865. This optional value attribute indicates the type of the physical port of the HotSpot server."},"radiusAccounting":{"type":"boolean","description":"Send RADIUS server accounting information for each user, when yes is used."},"radiusDefaultDomain":{"type":"string","description":"Default domain to use for RADIUS requests. Allows to use separate RADIUS server per `/ip hotspot profile`. If used, same domain name should be specified under `/radius domain` value."},"radiusInterimUpdate":{"type":"string","description":"How often to send accounting updates . When received is set, interim-time is used from RADIUS server. 0s is the same as received."},"radiusLocationId":{"type":"string","description":"`RADIUS-Location-Id` property."},"radiusLocationName":{"type":"string","description":"`RADIUS-Location-Id` to be sent to RADIUS server. Used to identify location of the HotSpot server during the communication with RADIUS server. Value is optional and used together with RADIUS server."},"radiusMacFormat":{"type":"string","description":"Controls how the MAC address of the client is encoded in the `User-Name` and `User-Password` attributes when using MAC authentication."},"rateLimit":{"type":"string","description":"Rate limitation in form of rx-rate[/tx-rate] [rx-burst-rate[/tx-burst-rate] [rx-burst-threshold[/tx-burst-threshold] [rx-burst-time[/tx-burst-time]]]] [priority] [rx-rate-min[/tx-rate-min]] from the point of view of the router (so \u003cspan pulumi-lang-nodejs=\"`rx`\" pulumi-lang-dotnet=\"`Rx`\" pulumi-lang-go=\"`rx`\" pulumi-lang-python=\"`rx`\" pulumi-lang-yaml=\"`rx`\" pulumi-lang-java=\"`rx`\"\u003e`rx`\u003c/span\u003e is client upload, and \u003cspan pulumi-lang-nodejs=\"`tx`\" pulumi-lang-dotnet=\"`Tx`\" pulumi-lang-go=\"`tx`\" pulumi-lang-python=\"`tx`\" pulumi-lang-yaml=\"`tx`\" pulumi-lang-java=\"`tx`\"\u003e`tx`\u003c/span\u003e is client download). All rates should be numbers with optional 'k' (1,000s) or 'M' (1,000,000s). If tx-rate is not specified, rx-rate is as tx-rate too. Same goes for tx-burst-rate and tx-burst-threshold and tx-burst-time. If both rx-burst-threshold and tx-burst-threshold are not specified (but burst-rate is specified), rx-rate and tx-rate is used as burst thresholds. If both rx-burst-time and tx-burst-time are not specified, 1s is used as default. rx-rate-min and tx-rate min are the values of limit-at properties."},"smtpServer":{"type":"string","description":"SMTP server address to be used to redirect HotSpot users SMTP requests."},"splitUserDomain":{"type":"boolean","description":"Split username from domain name when the username is given in `user@domain` or in `domain\\user` format from RADIUS server."},"sslCertificate":{"type":"string","description":"Name of the SSL certificate on the router to to use only for HTTPS authentication."},"trialUptimeLimit":{"type":"string","description":"Used only with trial authentication method. Time value specifies, how long trial user identified by MAC address can use access to public networks without HotSpot authentication."},"trialUptimeReset":{"type":"string","description":"Used only with trial authentication method."},"trialUserProfile":{"type":"string","description":"Specifies hotspot user profile for trial users."},"useRadius":{"type":"boolean","description":"Use RADIUS to authenticate HotSpot users."}},"type":"object"}},"routeros:index/ipHotspotServicePort:IpHotspotServicePort":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpHotspotServicePort(\"test\", {\n    name: \"ftp\",\n    disabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpHotspotServicePort(\"test\",\n    name=\"ftp\",\n    disabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpHotspotServicePort(\"test\", new()\n    {\n        Name = \"ftp\",\n        Disabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpHotspotServicePort(ctx, \"test\", \u0026routeros.IpHotspotServicePortArgs{\n\t\t\tName:     pulumi.String(\"ftp\"),\n\t\t\tDisabled: 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.routeros.IpHotspotServicePort;\nimport com.pulumi.routeros.IpHotspotServicePortArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpHotspotServicePort(\"test\", IpHotspotServicePortArgs.builder()\n            .name(\"ftp\")\n            .disabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpHotspotServicePort\n    properties:\n      name: ftp\n      disabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/hotspot/service-port get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipHotspotServicePort:IpHotspotServicePort test *1\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipHotspotServicePort:IpHotspotServicePort test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"ipHotspotServicePortId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Service name.\n"},"ports":{"type":"string"}},"type":"object","required":["ipHotspotServicePortId","name","ports"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"ipHotspotServicePortId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Service name.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpHotspotServicePort resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"ipHotspotServicePortId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Service name.\n"},"ports":{"type":"string"}},"type":"object"}},"routeros:index/ipHotspotUser:IpHotspotUser":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpHotspotUser(\"test\", {name: \"user-1\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpHotspotUser(\"test\", name=\"user-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpHotspotUser(\"test\", new()\n    {\n        Name = \"user-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpHotspotUser(ctx, \"test\", \u0026routeros.IpHotspotUserArgs{\n\t\t\tName: pulumi.String(\"user-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.routeros.IpHotspotUser;\nimport com.pulumi.routeros.IpHotspotUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpHotspotUser(\"test\", IpHotspotUserArgs.builder()\n            .name(\"user-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpHotspotUser\n    properties:\n      name: user-1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/hotspot/user get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipHotspotUser:IpHotspotUser test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipHotspotUser:IpHotspotUser test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"number","description":"IP address, when specified client will get the address from the HotSpot one-to-one NAT translations. Address does not restrict HotSpot login only from this address.\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"email":{"type":"string","description":"HotSpot client's e-mail, informational value for the HotSpot user.\n"},"ipHotspotUserId":{"type":"string","description":"The ID of this resource.\n"},"limitBytesIn":{"type":"number","description":"Maximal amount of bytes that can be received from the user. User is disconnected from HotSpot after the limit is reached.\n"},"limitBytesOut":{"type":"number","description":"Maximal amount of bytes that can be transmitted from the user. User is disconnected from HotSpot after the limit is reached.\n"},"limitBytesTotal":{"type":"number","description":"(limit-bytes-in+limit-bytes-out). User is disconnected from HotSpot after the limit is reached.\n"},"limitUptime":{"type":"number","description":"Uptime limit for the HotSpot client, user is disconnected from HotSpot as soon as uptime is reached.\n"},"macAddress":{"type":"number","description":"Client is allowed to login only from the specified MAC-address. If value is 00:00:00:00:00:00, any mac address is allowed.\n"},"name":{"type":"string","description":"HotSpot login page username, when MAC-address authentication is used name is configured as client's MAC-address.\n"},"password":{"type":"string","description":"User password.\n","secret":true},"profile":{"type":"string","description":"User profile configured in `/ip hotspot user profile`.\n"},"routes":{"type":"string","description":"Routes added to HotSpot gateway when client is connected. The route format dst-address gateway metric (for example, `192.168.1.0/24 192.168.0.1 1`).\n"},"server":{"type":"string","description":"HotSpot server's name to which user is allowed login.\n"}},"type":"object","required":["default","dynamic","ipHotspotUserId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"number","description":"IP address, when specified client will get the address from the HotSpot one-to-one NAT translations. Address does not restrict HotSpot login only from this address.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"email":{"type":"string","description":"HotSpot client's e-mail, informational value for the HotSpot user.\n"},"ipHotspotUserId":{"type":"string","description":"The ID of this resource.\n"},"limitBytesIn":{"type":"number","description":"Maximal amount of bytes that can be received from the user. User is disconnected from HotSpot after the limit is reached.\n"},"limitBytesOut":{"type":"number","description":"Maximal amount of bytes that can be transmitted from the user. User is disconnected from HotSpot after the limit is reached.\n"},"limitBytesTotal":{"type":"number","description":"(limit-bytes-in+limit-bytes-out). User is disconnected from HotSpot after the limit is reached.\n"},"limitUptime":{"type":"number","description":"Uptime limit for the HotSpot client, user is disconnected from HotSpot as soon as uptime is reached.\n"},"macAddress":{"type":"number","description":"Client is allowed to login only from the specified MAC-address. If value is 00:00:00:00:00:00, any mac address is allowed.\n"},"name":{"type":"string","description":"HotSpot login page username, when MAC-address authentication is used name is configured as client's MAC-address.\n"},"password":{"type":"string","description":"User password.\n","secret":true},"profile":{"type":"string","description":"User profile configured in `/ip hotspot user profile`.\n"},"routes":{"type":"string","description":"Routes added to HotSpot gateway when client is connected. The route format dst-address gateway metric (for example, `192.168.1.0/24 192.168.0.1 1`).\n"},"server":{"type":"string","description":"HotSpot server's name to which user is allowed login.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpHotspotUser resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"number","description":"IP address, when specified client will get the address from the HotSpot one-to-one NAT translations. Address does not restrict HotSpot login only from this address.\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"email":{"type":"string","description":"HotSpot client's e-mail, informational value for the HotSpot user.\n"},"ipHotspotUserId":{"type":"string","description":"The ID of this resource.\n"},"limitBytesIn":{"type":"number","description":"Maximal amount of bytes that can be received from the user. User is disconnected from HotSpot after the limit is reached.\n"},"limitBytesOut":{"type":"number","description":"Maximal amount of bytes that can be transmitted from the user. User is disconnected from HotSpot after the limit is reached.\n"},"limitBytesTotal":{"type":"number","description":"(limit-bytes-in+limit-bytes-out). User is disconnected from HotSpot after the limit is reached.\n"},"limitUptime":{"type":"number","description":"Uptime limit for the HotSpot client, user is disconnected from HotSpot as soon as uptime is reached.\n"},"macAddress":{"type":"number","description":"Client is allowed to login only from the specified MAC-address. If value is 00:00:00:00:00:00, any mac address is allowed.\n"},"name":{"type":"string","description":"HotSpot login page username, when MAC-address authentication is used name is configured as client's MAC-address.\n"},"password":{"type":"string","description":"User password.\n","secret":true},"profile":{"type":"string","description":"User profile configured in `/ip hotspot user profile`.\n"},"routes":{"type":"string","description":"Routes added to HotSpot gateway when client is connected. The route format dst-address gateway metric (for example, `192.168.1.0/24 192.168.0.1 1`).\n"},"server":{"type":"string","description":"HotSpot server's name to which user is allowed login.\n"}},"type":"object"}},"routeros:index/ipHotspotUserProfile:IpHotspotUserProfile":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpHotspotUserProfile(\"test\", {\n    addMacCookie: true,\n    addressList: \"list-1\",\n    idleTimeout: \"none\",\n    keepaliveTimeout: \"2m\",\n    macCookieTimeout: \"3d\",\n    name: \"new-profile\",\n    sharedUsers: \"3\",\n    statusAutorefresh: \"2m\",\n    transparentProxy: true,\n    advertise: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpHotspotUserProfile(\"test\",\n    add_mac_cookie=True,\n    address_list=\"list-1\",\n    idle_timeout=\"none\",\n    keepalive_timeout=\"2m\",\n    mac_cookie_timeout=\"3d\",\n    name=\"new-profile\",\n    shared_users=\"3\",\n    status_autorefresh=\"2m\",\n    transparent_proxy=True,\n    advertise=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpHotspotUserProfile(\"test\", new()\n    {\n        AddMacCookie = true,\n        AddressList = \"list-1\",\n        IdleTimeout = \"none\",\n        KeepaliveTimeout = \"2m\",\n        MacCookieTimeout = \"3d\",\n        Name = \"new-profile\",\n        SharedUsers = \"3\",\n        StatusAutorefresh = \"2m\",\n        TransparentProxy = true,\n        Advertise = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpHotspotUserProfile(ctx, \"test\", \u0026routeros.IpHotspotUserProfileArgs{\n\t\t\tAddMacCookie:      pulumi.Bool(true),\n\t\t\tAddressList:       pulumi.String(\"list-1\"),\n\t\t\tIdleTimeout:       pulumi.String(\"none\"),\n\t\t\tKeepaliveTimeout:  pulumi.String(\"2m\"),\n\t\t\tMacCookieTimeout:  pulumi.String(\"3d\"),\n\t\t\tName:              pulumi.String(\"new-profile\"),\n\t\t\tSharedUsers:       pulumi.String(\"3\"),\n\t\t\tStatusAutorefresh: pulumi.String(\"2m\"),\n\t\t\tTransparentProxy:  pulumi.Bool(true),\n\t\t\tAdvertise:         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.routeros.IpHotspotUserProfile;\nimport com.pulumi.routeros.IpHotspotUserProfileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpHotspotUserProfile(\"test\", IpHotspotUserProfileArgs.builder()\n            .addMacCookie(true)\n            .addressList(\"list-1\")\n            .idleTimeout(\"none\")\n            .keepaliveTimeout(\"2m\")\n            .macCookieTimeout(\"3d\")\n            .name(\"new-profile\")\n            .sharedUsers(\"3\")\n            .statusAutorefresh(\"2m\")\n            .transparentProxy(true)\n            .advertise(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpHotspotUserProfile\n    properties:\n      addMacCookie: true\n      addressList: list-1\n      idleTimeout: none\n      keepaliveTimeout: 2m\n      macCookieTimeout: 3d\n      name: new-profile\n      sharedUsers: 3\n      statusAutorefresh: 2m\n      transparentProxy: true\n      advertise: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/hotspot/user/profile get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipHotspotUserProfile:IpHotspotUserProfile test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipHotspotUserProfile:IpHotspotUserProfile test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addMacCookie":{"type":"boolean","description":"Allows to add mac cookie for users.\n"},"addressList":{"type":"string","description":"Name of the address list in which users IP address will be added. Useful to mark traffic per user groups for queue tree configurations.\n"},"addressPool":{"type":"string","description":"IP pool name from which the user will get IP. When user has improper network settings configuration on the computer, HotSpot server makes translation and assigns correct IP address from the pool instead of incorrect one.\n"},"advertise":{"type":"boolean","description":"Enable forced advertisement popups. After certain interval specific web-page is being displayed for HotSpot users. Advertisement page might be blocked by browsers popup blockers.\n"},"advertiseIntervals":{"type":"array","items":{"type":"string"},"description":"Set of intervals between advertisement popups. After the list is done, the last value is used for all further advertisements, 10 minutes.\n"},"advertiseTimeout":{"type":"string","description":"How long advertisement is shown, before blocking network access for HotSpot client. Connection to Internet is not allowed, when advertisement is not shown.\n"},"advertiseUrl":{"type":"string","description":"List of URLs that is show for advertisement popups. After the last URL is used, list starts from the begining.\n"},"default":{"type":"boolean","description":"It's the default item.\n"},"idleTimeout":{"type":"string","description":"Maximal period of inactivity for authorized HotSpot clients. Timer is counting, when there is no traffic coming from that client and going through the router, for example computer is switched off. User is logged out, dropped of the host list, the address used by the user is freed, when timeout is reached.\n"},"incomingFilter":{"type":"string","description":"Name of the firewall chain applied to incoming packets from the users of this profile, jump rule is required from built-in chain (input, forward, output) to chain=hotspot.\n"},"incomingPacketMark":{"type":"string","description":"Packet mark put on incoming packets from every user of this profile.\n"},"insertQueueBefore":{"type":"string"},"ipHotspotUserProfileId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"Keepalive timeout for authorized HotSpot clients. Used to detect, that the computer of the client is alive and reachable. User is logged out, when timeout value is reached.\n"},"macCookieTimeout":{"type":"string","description":"Selects mac-cookie timeout from last login or logout. Read more\u003e\u003e.\n"},"name":{"type":"string","description":"Descriptive name of the profile.\n"},"onLogin":{"type":"string","description":"Script name to be executed, when user logs in to the HotSpot from the particular profile. It is possible to get username from internal user and interface variable. For example, :log info `User $user logged in!` . If hotspot is set on bridge interface, then interface variable will show bridge as actual interface unless use-ip-firewall' is set in bridge settings. List of available variables: $user $username (alternative var name for $user) $address $`mac-address` $interface.\n"},"onLogout":{"type":"string","description":"Script name to be executed, when user logs out from the HotSpot.It is possible to get username from internal user and interface variable. For example, :log info `User $user logged in!` . If hotspot is set on bridge interface, then interface variable will show bridge as actual interface unless use-ip-firewall is set in bridge settings. List of available variables: $user $username (alternative var name for $user) $address $`mac-address` $interface $cause Starting with v6.34rc11 some additional variables are available: $uptime-secs - final session time in seconds $bytes-in - bytes uploaded $bytes-out - bytes downloaded $bytes-total - bytes up + bytes down $packets-in - packets uploaded $packets-out - packets downloaded $packets-total - packets up + packets down.\n"},"openStatusPage":{"type":"string","description":"Option to show status page for user authenticated with mac login method. For example to show advertisement on status page (alogin.html) http-login - open status page only for HTTP login (includes cookie and HTTPS) always - open HTTP status page in case of mac login as well.\n"},"outgoingFilter":{"type":"string","description":"Name of the firewall chain applied to outgoing packets from the users of this profile, jump rule is required from built-in chain (input, forward, output) to chain=hotspot.\n"},"outgoingPacketMark":{"type":"string","description":"Packet mark put on outgoing packets from every user of this profile.\n"},"parentQueue":{"type":"string"},"queueType":{"type":"string"},"rateLimit":{"type":"string","description":"Simple dynamic queue is created for user, once it logs in to the HotSpot. Rate-limitation is configured in the following form [rx-rate[/tx-rate] [rx-burst-rate[/tx-burst-rate] [rx-burst-threshold[/tx-burst-threshold] [rx-burst-time[/tx-burst-time] [priority] [rx-rate-min[/tx-rate-min]]]]. For example, to set 1M download, 512k upload for the client, rate-limit=512k/1M.\n"},"sessionTimeout":{"type":"string","description":"Allowed session time for client. After this time, the user is logged out unconditionally.\n"},"sharedUsers":{"type":"string","description":"Allowed number of simultaneously logged in users with the same HotSpot username.\n"},"statusAutorefresh":{"type":"string","description":"HotSpot status page autorefresh interval.\n"},"transparentProxy":{"type":"boolean","description":"Use transparent HTTP proxy for the authorized users of this profile.\n"}},"type":"object","required":["default","ipHotspotUserProfileId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addMacCookie":{"type":"boolean","description":"Allows to add mac cookie for users.\n"},"addressList":{"type":"string","description":"Name of the address list in which users IP address will be added. Useful to mark traffic per user groups for queue tree configurations.\n"},"addressPool":{"type":"string","description":"IP pool name from which the user will get IP. When user has improper network settings configuration on the computer, HotSpot server makes translation and assigns correct IP address from the pool instead of incorrect one.\n"},"advertise":{"type":"boolean","description":"Enable forced advertisement popups. After certain interval specific web-page is being displayed for HotSpot users. Advertisement page might be blocked by browsers popup blockers.\n"},"advertiseIntervals":{"type":"array","items":{"type":"string"},"description":"Set of intervals between advertisement popups. After the list is done, the last value is used for all further advertisements, 10 minutes.\n"},"advertiseTimeout":{"type":"string","description":"How long advertisement is shown, before blocking network access for HotSpot client. Connection to Internet is not allowed, when advertisement is not shown.\n"},"advertiseUrl":{"type":"string","description":"List of URLs that is show for advertisement popups. After the last URL is used, list starts from the begining.\n"},"idleTimeout":{"type":"string","description":"Maximal period of inactivity for authorized HotSpot clients. Timer is counting, when there is no traffic coming from that client and going through the router, for example computer is switched off. User is logged out, dropped of the host list, the address used by the user is freed, when timeout is reached.\n"},"incomingFilter":{"type":"string","description":"Name of the firewall chain applied to incoming packets from the users of this profile, jump rule is required from built-in chain (input, forward, output) to chain=hotspot.\n"},"incomingPacketMark":{"type":"string","description":"Packet mark put on incoming packets from every user of this profile.\n"},"insertQueueBefore":{"type":"string"},"ipHotspotUserProfileId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"Keepalive timeout for authorized HotSpot clients. Used to detect, that the computer of the client is alive and reachable. User is logged out, when timeout value is reached.\n"},"macCookieTimeout":{"type":"string","description":"Selects mac-cookie timeout from last login or logout. Read more\u003e\u003e.\n"},"name":{"type":"string","description":"Descriptive name of the profile.\n"},"onLogin":{"type":"string","description":"Script name to be executed, when user logs in to the HotSpot from the particular profile. It is possible to get username from internal user and interface variable. For example, :log info `User $user logged in!` . If hotspot is set on bridge interface, then interface variable will show bridge as actual interface unless use-ip-firewall' is set in bridge settings. List of available variables: $user $username (alternative var name for $user) $address $`mac-address` $interface.\n"},"onLogout":{"type":"string","description":"Script name to be executed, when user logs out from the HotSpot.It is possible to get username from internal user and interface variable. For example, :log info `User $user logged in!` . If hotspot is set on bridge interface, then interface variable will show bridge as actual interface unless use-ip-firewall is set in bridge settings. List of available variables: $user $username (alternative var name for $user) $address $`mac-address` $interface $cause Starting with v6.34rc11 some additional variables are available: $uptime-secs - final session time in seconds $bytes-in - bytes uploaded $bytes-out - bytes downloaded $bytes-total - bytes up + bytes down $packets-in - packets uploaded $packets-out - packets downloaded $packets-total - packets up + packets down.\n"},"openStatusPage":{"type":"string","description":"Option to show status page for user authenticated with mac login method. For example to show advertisement on status page (alogin.html) http-login - open status page only for HTTP login (includes cookie and HTTPS) always - open HTTP status page in case of mac login as well.\n"},"outgoingFilter":{"type":"string","description":"Name of the firewall chain applied to outgoing packets from the users of this profile, jump rule is required from built-in chain (input, forward, output) to chain=hotspot.\n"},"outgoingPacketMark":{"type":"string","description":"Packet mark put on outgoing packets from every user of this profile.\n"},"parentQueue":{"type":"string"},"queueType":{"type":"string"},"rateLimit":{"type":"string","description":"Simple dynamic queue is created for user, once it logs in to the HotSpot. Rate-limitation is configured in the following form [rx-rate[/tx-rate] [rx-burst-rate[/tx-burst-rate] [rx-burst-threshold[/tx-burst-threshold] [rx-burst-time[/tx-burst-time] [priority] [rx-rate-min[/tx-rate-min]]]]. For example, to set 1M download, 512k upload for the client, rate-limit=512k/1M.\n"},"sessionTimeout":{"type":"string","description":"Allowed session time for client. After this time, the user is logged out unconditionally.\n"},"sharedUsers":{"type":"string","description":"Allowed number of simultaneously logged in users with the same HotSpot username.\n"},"statusAutorefresh":{"type":"string","description":"HotSpot status page autorefresh interval.\n"},"transparentProxy":{"type":"boolean","description":"Use transparent HTTP proxy for the authorized users of this profile.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpHotspotUserProfile resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addMacCookie":{"type":"boolean","description":"Allows to add mac cookie for users.\n"},"addressList":{"type":"string","description":"Name of the address list in which users IP address will be added. Useful to mark traffic per user groups for queue tree configurations.\n"},"addressPool":{"type":"string","description":"IP pool name from which the user will get IP. When user has improper network settings configuration on the computer, HotSpot server makes translation and assigns correct IP address from the pool instead of incorrect one.\n"},"advertise":{"type":"boolean","description":"Enable forced advertisement popups. After certain interval specific web-page is being displayed for HotSpot users. Advertisement page might be blocked by browsers popup blockers.\n"},"advertiseIntervals":{"type":"array","items":{"type":"string"},"description":"Set of intervals between advertisement popups. After the list is done, the last value is used for all further advertisements, 10 minutes.\n"},"advertiseTimeout":{"type":"string","description":"How long advertisement is shown, before blocking network access for HotSpot client. Connection to Internet is not allowed, when advertisement is not shown.\n"},"advertiseUrl":{"type":"string","description":"List of URLs that is show for advertisement popups. After the last URL is used, list starts from the begining.\n"},"default":{"type":"boolean","description":"It's the default item.\n"},"idleTimeout":{"type":"string","description":"Maximal period of inactivity for authorized HotSpot clients. Timer is counting, when there is no traffic coming from that client and going through the router, for example computer is switched off. User is logged out, dropped of the host list, the address used by the user is freed, when timeout is reached.\n"},"incomingFilter":{"type":"string","description":"Name of the firewall chain applied to incoming packets from the users of this profile, jump rule is required from built-in chain (input, forward, output) to chain=hotspot.\n"},"incomingPacketMark":{"type":"string","description":"Packet mark put on incoming packets from every user of this profile.\n"},"insertQueueBefore":{"type":"string"},"ipHotspotUserProfileId":{"type":"string","description":"The ID of this resource.\n"},"keepaliveTimeout":{"type":"string","description":"Keepalive timeout for authorized HotSpot clients. Used to detect, that the computer of the client is alive and reachable. User is logged out, when timeout value is reached.\n"},"macCookieTimeout":{"type":"string","description":"Selects mac-cookie timeout from last login or logout. Read more\u003e\u003e.\n"},"name":{"type":"string","description":"Descriptive name of the profile.\n"},"onLogin":{"type":"string","description":"Script name to be executed, when user logs in to the HotSpot from the particular profile. It is possible to get username from internal user and interface variable. For example, :log info `User $user logged in!` . If hotspot is set on bridge interface, then interface variable will show bridge as actual interface unless use-ip-firewall' is set in bridge settings. List of available variables: $user $username (alternative var name for $user) $address $`mac-address` $interface.\n"},"onLogout":{"type":"string","description":"Script name to be executed, when user logs out from the HotSpot.It is possible to get username from internal user and interface variable. For example, :log info `User $user logged in!` . If hotspot is set on bridge interface, then interface variable will show bridge as actual interface unless use-ip-firewall is set in bridge settings. List of available variables: $user $username (alternative var name for $user) $address $`mac-address` $interface $cause Starting with v6.34rc11 some additional variables are available: $uptime-secs - final session time in seconds $bytes-in - bytes uploaded $bytes-out - bytes downloaded $bytes-total - bytes up + bytes down $packets-in - packets uploaded $packets-out - packets downloaded $packets-total - packets up + packets down.\n"},"openStatusPage":{"type":"string","description":"Option to show status page for user authenticated with mac login method. For example to show advertisement on status page (alogin.html) http-login - open status page only for HTTP login (includes cookie and HTTPS) always - open HTTP status page in case of mac login as well.\n"},"outgoingFilter":{"type":"string","description":"Name of the firewall chain applied to outgoing packets from the users of this profile, jump rule is required from built-in chain (input, forward, output) to chain=hotspot.\n"},"outgoingPacketMark":{"type":"string","description":"Packet mark put on outgoing packets from every user of this profile.\n"},"parentQueue":{"type":"string"},"queueType":{"type":"string"},"rateLimit":{"type":"string","description":"Simple dynamic queue is created for user, once it logs in to the HotSpot. Rate-limitation is configured in the following form [rx-rate[/tx-rate] [rx-burst-rate[/tx-burst-rate] [rx-burst-threshold[/tx-burst-threshold] [rx-burst-time[/tx-burst-time] [priority] [rx-rate-min[/tx-rate-min]]]]. For example, to set 1M download, 512k upload for the client, rate-limit=512k/1M.\n"},"sessionTimeout":{"type":"string","description":"Allowed session time for client. After this time, the user is logged out unconditionally.\n"},"sharedUsers":{"type":"string","description":"Allowed number of simultaneously logged in users with the same HotSpot username.\n"},"statusAutorefresh":{"type":"string","description":"HotSpot status page autorefresh interval.\n"},"transparentProxy":{"type":"boolean","description":"Use transparent HTTP proxy for the authorized users of this profile.\n"}},"type":"object"}},"routeros:index/ipHotspotWalledGarden:IpHotspotWalledGarden":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpHotspotWalledGarden(\"test\", {\n    action: \"deny\",\n    dstHost: \"1.2.3.4\",\n    dstPort: \"!443\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpHotspotWalledGarden(\"test\",\n    action=\"deny\",\n    dst_host=\"1.2.3.4\",\n    dst_port=\"!443\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpHotspotWalledGarden(\"test\", new()\n    {\n        Action = \"deny\",\n        DstHost = \"1.2.3.4\",\n        DstPort = \"!443\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpHotspotWalledGarden(ctx, \"test\", \u0026routeros.IpHotspotWalledGardenArgs{\n\t\t\tAction:  pulumi.String(\"deny\"),\n\t\t\tDstHost: pulumi.String(\"1.2.3.4\"),\n\t\t\tDstPort: pulumi.String(\"!443\"),\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.routeros.IpHotspotWalledGarden;\nimport com.pulumi.routeros.IpHotspotWalledGardenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpHotspotWalledGarden(\"test\", IpHotspotWalledGardenArgs.builder()\n            .action(\"deny\")\n            .dstHost(\"1.2.3.4\")\n            .dstPort(\"!443\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpHotspotWalledGarden\n    properties:\n      action: deny\n      dstHost: 1.2.3.4\n      dstPort: '!443'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/hotspot/walled-garden get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipHotspotWalledGarden:IpHotspotWalledGarden test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipHotspotWalledGarden:IpHotspotWalledGarden test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to perform, when packet matches the rule \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e - allow access to the web-page without authorization, \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e - the authorization is required to access the web-page.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstHost":{"type":"string","description":"Domain name of the destination web-server.\n"},"dstPort":{"type":"string","description":"TCP port number, client sends request to.\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"ipHotspotWalledGardenId":{"type":"string","description":"The ID of this resource.\n"},"method":{"type":"string","description":"HTTP method of the request.\n"},"path":{"type":"string","description":"The path of the request, path comes after `http://dst_host/`.\n"},"server":{"type":"string","description":"Name of the HotSpot server, rule is applied to.\n"},"srcAddress":{"type":"string","description":"Source address of the user, usually IP address of the HotSpot client.\n"}},"type":"object","required":["dynamic","ipHotspotWalledGardenId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to perform, when packet matches the rule \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e - allow access to the web-page without authorization, \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e - the authorization is required to access the web-page.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstHost":{"type":"string","description":"Domain name of the destination web-server.\n"},"dstPort":{"type":"string","description":"TCP port number, client sends request to.\n"},"ipHotspotWalledGardenId":{"type":"string","description":"The ID of this resource.\n"},"method":{"type":"string","description":"HTTP method of the request.\n"},"path":{"type":"string","description":"The path of the request, path comes after `http://dst_host/`.\n"},"server":{"type":"string","description":"Name of the HotSpot server, rule is applied to.\n"},"srcAddress":{"type":"string","description":"Source address of the user, usually IP address of the HotSpot client.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpHotspotWalledGarden resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to perform, when packet matches the rule \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e - allow access to the web-page without authorization, \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e - the authorization is required to access the web-page.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstHost":{"type":"string","description":"Domain name of the destination web-server.\n"},"dstPort":{"type":"string","description":"TCP port number, client sends request to.\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"ipHotspotWalledGardenId":{"type":"string","description":"The ID of this resource.\n"},"method":{"type":"string","description":"HTTP method of the request.\n"},"path":{"type":"string","description":"The path of the request, path comes after `http://dst_host/`.\n"},"server":{"type":"string","description":"Name of the HotSpot server, rule is applied to.\n"},"srcAddress":{"type":"string","description":"Source address of the user, usually IP address of the HotSpot client.\n"}},"type":"object"}},"routeros:index/ipHotspotWalledGardenIp:IpHotspotWalledGardenIp":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpHotspotWalledGardenIp(\"test\", {\n    action: \"reject\",\n    dstAddress: \"!0.0.0.0\",\n    dstAddressList: \"dlist\",\n    dstPort: \"0-65535\",\n    protocol: \"tcp\",\n    srcAddress: \"0.0.0.0\",\n    srcAddressList: \"slist\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpHotspotWalledGardenIp(\"test\",\n    action=\"reject\",\n    dst_address=\"!0.0.0.0\",\n    dst_address_list=\"dlist\",\n    dst_port=\"0-65535\",\n    protocol=\"tcp\",\n    src_address=\"0.0.0.0\",\n    src_address_list=\"slist\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpHotspotWalledGardenIp(\"test\", new()\n    {\n        Action = \"reject\",\n        DstAddress = \"!0.0.0.0\",\n        DstAddressList = \"dlist\",\n        DstPort = \"0-65535\",\n        Protocol = \"tcp\",\n        SrcAddress = \"0.0.0.0\",\n        SrcAddressList = \"slist\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpHotspotWalledGardenIp(ctx, \"test\", \u0026routeros.IpHotspotWalledGardenIpArgs{\n\t\t\tAction:         pulumi.String(\"reject\"),\n\t\t\tDstAddress:     pulumi.String(\"!0.0.0.0\"),\n\t\t\tDstAddressList: pulumi.String(\"dlist\"),\n\t\t\tDstPort:        pulumi.String(\"0-65535\"),\n\t\t\tProtocol:       pulumi.String(\"tcp\"),\n\t\t\tSrcAddress:     pulumi.String(\"0.0.0.0\"),\n\t\t\tSrcAddressList: pulumi.String(\"slist\"),\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.routeros.IpHotspotWalledGardenIp;\nimport com.pulumi.routeros.IpHotspotWalledGardenIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpHotspotWalledGardenIp(\"test\", IpHotspotWalledGardenIpArgs.builder()\n            .action(\"reject\")\n            .dstAddress(\"!0.0.0.0\")\n            .dstAddressList(\"dlist\")\n            .dstPort(\"0-65535\")\n            .protocol(\"tcp\")\n            .srcAddress(\"0.0.0.0\")\n            .srcAddressList(\"slist\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpHotspotWalledGardenIp\n    properties:\n      action: reject\n      dstAddress: '!0.0.0.0'\n      dstAddressList: dlist\n      dstPort: 0-65535\n      protocol: tcp\n      srcAddress: 0.0.0.0\n      srcAddressList: slist\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/hotspot/walled-garden/ip get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipHotspotWalledGardenIp:IpHotspotWalledGardenIp test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipHotspotWalledGardenIp:IpHotspotWalledGardenIp test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to perform, when packet matches the rule allow - allow access to the web-page without authorization deny - the authorization is required to access the web-page reject - the authorization is required to access the resource, ICMP reject message will be sent to client, when packet will match the rule.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"Destination IP address, IP address of the WEB-server. Ignored if dst-host is already specified.\n"},"dstAddressList":{"type":"string","description":"Destination IP address list. Ignored if dst-host is already specified.\n"},"dstHost":{"type":"string","description":"Domain name of the destination web-server. When this parameter is specified dynamic entry is added to Walled Garden.\n"},"dstPort":{"type":"string","description":"TCP port number, client sends request to.\n"},"invalid":{"type":"boolean"},"ipHotspotWalledGardenIpId":{"type":"string","description":"The ID of this resource.\n"},"protocol":{"type":"string","description":"IP protocol.\n"},"server":{"type":"string","description":"Name of the HotSpot server, rule is applied to.\n"},"srcAddress":{"type":"string","description":"Source address of the user, usually IP address of the HotSpot client.\n"},"srcAddressList":{"type":"string","description":"Source IP address list.\n"}},"type":"object","required":["invalid","ipHotspotWalledGardenIpId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to perform, when packet matches the rule allow - allow access to the web-page without authorization deny - the authorization is required to access the web-page reject - the authorization is required to access the resource, ICMP reject message will be sent to client, when packet will match the rule.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"Destination IP address, IP address of the WEB-server. Ignored if dst-host is already specified.\n"},"dstAddressList":{"type":"string","description":"Destination IP address list. Ignored if dst-host is already specified.\n"},"dstHost":{"type":"string","description":"Domain name of the destination web-server. When this parameter is specified dynamic entry is added to Walled Garden.\n"},"dstPort":{"type":"string","description":"TCP port number, client sends request to.\n"},"ipHotspotWalledGardenIpId":{"type":"string","description":"The ID of this resource.\n"},"protocol":{"type":"string","description":"IP protocol.\n"},"server":{"type":"string","description":"Name of the HotSpot server, rule is applied to.\n"},"srcAddress":{"type":"string","description":"Source address of the user, usually IP address of the HotSpot client.\n"},"srcAddressList":{"type":"string","description":"Source IP address list.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpHotspotWalledGardenIp resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to perform, when packet matches the rule allow - allow access to the web-page without authorization deny - the authorization is required to access the web-page reject - the authorization is required to access the resource, ICMP reject message will be sent to client, when packet will match the rule.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"Destination IP address, IP address of the WEB-server. Ignored if dst-host is already specified.\n"},"dstAddressList":{"type":"string","description":"Destination IP address list. Ignored if dst-host is already specified.\n"},"dstHost":{"type":"string","description":"Domain name of the destination web-server. When this parameter is specified dynamic entry is added to Walled Garden.\n"},"dstPort":{"type":"string","description":"TCP port number, client sends request to.\n"},"invalid":{"type":"boolean"},"ipHotspotWalledGardenIpId":{"type":"string","description":"The ID of this resource.\n"},"protocol":{"type":"string","description":"IP protocol.\n"},"server":{"type":"string","description":"Name of the HotSpot server, rule is applied to.\n"},"srcAddress":{"type":"string","description":"Source address of the user, usually IP address of the HotSpot client.\n"},"srcAddressList":{"type":"string","description":"Source IP address list.\n"}},"type":"object"}},"routeros:index/ipIpsecIdentity:IpIpsecIdentity":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpIpsecModeConfig(\"test\", {\n    name: \"NordVPN\",\n    responder: false,\n});\nconst testIpIpsecPeer = new routeros.IpIpsecPeer(\"test\", {\n    address: \"lv20.nordvpn.com\",\n    exchangeMode: \"ike2\",\n    name: \"NordVPN\",\n});\nconst testIpIpsecIdentity = new routeros.IpIpsecIdentity(\"test\", {\n    authMethod: \"eap\",\n    certificate: \"\",\n    eapMethods: \"eap-mschapv2\",\n    generatePolicy: \"port-strict\",\n    modeConfig: test.name,\n    peer: testIpIpsecPeer.name,\n    username: \"support@mikrotik.com\",\n    password: \"secret\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpIpsecModeConfig(\"test\",\n    name=\"NordVPN\",\n    responder=False)\ntest_ip_ipsec_peer = routeros.IpIpsecPeer(\"test\",\n    address=\"lv20.nordvpn.com\",\n    exchange_mode=\"ike2\",\n    name=\"NordVPN\")\ntest_ip_ipsec_identity = routeros.IpIpsecIdentity(\"test\",\n    auth_method=\"eap\",\n    certificate=\"\",\n    eap_methods=\"eap-mschapv2\",\n    generate_policy=\"port-strict\",\n    mode_config=test.name,\n    peer=test_ip_ipsec_peer.name,\n    username=\"support@mikrotik.com\",\n    password=\"secret\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpIpsecModeConfig(\"test\", new()\n    {\n        Name = \"NordVPN\",\n        Responder = false,\n    });\n\n    var testIpIpsecPeer = new Routeros.IpIpsecPeer(\"test\", new()\n    {\n        Address = \"lv20.nordvpn.com\",\n        ExchangeMode = \"ike2\",\n        Name = \"NordVPN\",\n    });\n\n    var testIpIpsecIdentity = new Routeros.IpIpsecIdentity(\"test\", new()\n    {\n        AuthMethod = \"eap\",\n        Certificate = \"\",\n        EapMethods = \"eap-mschapv2\",\n        GeneratePolicy = \"port-strict\",\n        ModeConfig = test.Name,\n        Peer = testIpIpsecPeer.Name,\n        Username = \"support@mikrotik.com\",\n        Password = \"secret\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := routeros.NewIpIpsecModeConfig(ctx, \"test\", \u0026routeros.IpIpsecModeConfigArgs{\n\t\t\tName:      pulumi.String(\"NordVPN\"),\n\t\t\tResponder: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestIpIpsecPeer, err := routeros.NewIpIpsecPeer(ctx, \"test\", \u0026routeros.IpIpsecPeerArgs{\n\t\t\tAddress:      pulumi.String(\"lv20.nordvpn.com\"),\n\t\t\tExchangeMode: pulumi.String(\"ike2\"),\n\t\t\tName:         pulumi.String(\"NordVPN\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewIpIpsecIdentity(ctx, \"test\", \u0026routeros.IpIpsecIdentityArgs{\n\t\t\tAuthMethod:     pulumi.String(\"eap\"),\n\t\t\tCertificate:    pulumi.String(\"\"),\n\t\t\tEapMethods:     pulumi.String(\"eap-mschapv2\"),\n\t\t\tGeneratePolicy: pulumi.String(\"port-strict\"),\n\t\t\tModeConfig:     test.Name,\n\t\t\tPeer:           testIpIpsecPeer.Name,\n\t\t\tUsername:       pulumi.String(\"support@mikrotik.com\"),\n\t\t\tPassword:       pulumi.String(\"secret\"),\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.routeros.IpIpsecModeConfig;\nimport com.pulumi.routeros.IpIpsecModeConfigArgs;\nimport com.pulumi.routeros.IpIpsecPeer;\nimport com.pulumi.routeros.IpIpsecPeerArgs;\nimport com.pulumi.routeros.IpIpsecIdentity;\nimport com.pulumi.routeros.IpIpsecIdentityArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpIpsecModeConfig(\"test\", IpIpsecModeConfigArgs.builder()\n            .name(\"NordVPN\")\n            .responder(false)\n            .build());\n\n        var testIpIpsecPeer = new IpIpsecPeer(\"testIpIpsecPeer\", IpIpsecPeerArgs.builder()\n            .address(\"lv20.nordvpn.com\")\n            .exchangeMode(\"ike2\")\n            .name(\"NordVPN\")\n            .build());\n\n        var testIpIpsecIdentity = new IpIpsecIdentity(\"testIpIpsecIdentity\", IpIpsecIdentityArgs.builder()\n            .authMethod(\"eap\")\n            .certificate(\"\")\n            .eapMethods(\"eap-mschapv2\")\n            .generatePolicy(\"port-strict\")\n            .modeConfig(test.name())\n            .peer(testIpIpsecPeer.name())\n            .username(\"support@mikrotik.com\")\n            .password(\"secret\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpIpsecModeConfig\n    properties:\n      name: NordVPN\n      responder: false\n  testIpIpsecPeer:\n    type: routeros:IpIpsecPeer\n    name: test\n    properties:\n      address: lv20.nordvpn.com\n      exchangeMode: ike2\n      name: NordVPN\n  testIpIpsecIdentity:\n    type: routeros:IpIpsecIdentity\n    name: test\n    properties:\n      authMethod: eap\n      certificate: \"\"\n      eapMethods: eap-mschapv2\n      generatePolicy: port-strict\n      modeConfig: ${test.name}\n      peer: ${testIpIpsecPeer.name}\n      username: support@mikrotik.com\n      password: secret\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/ipsec/identity get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipIpsecIdentity:IpIpsecIdentity test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipIpsecIdentity:IpIpsecIdentity test \"peer=NordVPN\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authMethod":{"type":"string","description":"Authentication method:\n  * digital-signature - authenticate using a pair of RSA certificates;\n  * eap - IKEv2 EAP authentication for initiator (peer with a netmask of `/32`). Must be used together with eap-methods;\n  * eap-radius - IKEv2 EAP RADIUS passthrough authentication for the responder (RFC 3579). A server certificate in this case is required. If a server certificate is not specified then only clients supporting EAP-only (RFC 5998) will be able to connect. Note that the EAP method should be compatible with EAP-only;\n  * pre-shared-key - authenticate by a password (pre-shared secret) string shared between the peers (not recommended since an offline attack on the pre-shared key is possible);\n  * rsa-key - authenticate using an RSA key imported in keys menu. Only supported in IKEv1;\n  * pre-shared-key-xauth - authenticate by a password (pre-shared secret) string shared between the peers + XAuth username and password. Only supported in IKEv1;\n  * rsa-signature-hybrid - responder certificate authentication with initiator XAuth. Only supported in IKEv1."},"certificate":{"type":"string","description":"Name of a certificate listed in System/Certificates (signing packets; the certificate must have the private key). Applicable if digital signature authentication method (`auth-method=digital-signature`) or EAP (a`uth-method=eap`) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"eapMethods":{"type":"string","description":"All EAP methods requires whole certificate chain including intermediate and root CA certificates to be present in System/Certificates menu. Also, the username and password (if required by the authentication server) must be specified. Multiple EAP methods may be specified and will be used in a specified order. Currently supported EAP methods:\n  * eap-mschapv2;\n  * eap-peap - also known as PEAPv0/EAP-MSCHAPv2;\n  * eap-tls - requires additional client certificate specified under certificate parameter;\n  * eap-ttls."},"generatePolicy":{"type":"string","description":"Allow this peer to establish SA for non-existing policies. Such policies are created dynamically for the lifetime of SA. Automatic policies allows, for example, to create IPsec secured L2TP tunnels, or any other setup where remote peer's IP address is not known at the configuration time. \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e - do not generate policies; `port-override` - generate policies and force policy to use any port (old behavior); `port-strict` - use ports from peer's proposal, which should match peer's policy."},"ipIpsecIdentityId":{"type":"string"},"key":{"type":"string","description":"Name of the private key from keys menu. Applicable if RSA key authentication method (`auth-method=rsa-key`) is used."},"matchBy":{"type":"string","description":"Defines the logic used for peer's identity validation. `remote-id` - will verify the peer's ID according to remote-id setting. \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e will verify the peer's certificate with what is specified under remote-certificate setting."},"modeConfig":{"type":"string","description":"Name of the configuration parameters from mode-config menu. When parameter is set mode-config is enabled."},"myId":{"type":"string","description":"On initiator, this controls what ID_i is sent to the responder. On responder, this controls what ID_r is sent to the initiator. In IKEv2, responder also expects this ID in received ID_r from initiator. \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e - tries to use correct ID automatically: IP for pre-shared key, SAN (DN if not present) for certificate based connections; \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e - IP address is used as ID;dn - the binary Distinguished Encoding Rules (DER) encoding of an ASN.1 X.500 Distinguished Name; \u003cspan pulumi-lang-nodejs=\"`fqdn`\" pulumi-lang-dotnet=\"`Fqdn`\" pulumi-lang-go=\"`fqdn`\" pulumi-lang-python=\"`fqdn`\" pulumi-lang-yaml=\"`fqdn`\" pulumi-lang-java=\"`fqdn`\"\u003e`fqdn`\u003c/span\u003e - fully qualified domain name; `key-id` - use the specified key ID for the identity; `user-fqdn` - specifies a fully-qualified username string, for example, `user@domain.com`."},"notrackChain":{"type":"string","description":"Adds IP/Firewall/Raw rules matching IPsec policy to a specified chain. Use together with generate-policy."},"password":{"type":"string","description":"XAuth or EAP password. Applicable if pre-shared key with XAuth authentication method (`auth-method=pre-shared-key-xauth`) or EAP (`auth-method=eap`) is used.","secret":true},"peer":{"type":"string","description":"Name of the peer on which the identity applies."},"policyTemplateGroup":{"type":"string","description":"If generate-policy is enabled, traffic selectors are checked against templates from the same group. If none of the templates match, Phase 2 SA will not be established."},"remoteCertificate":{"type":"string","description":"Name of a certificate (listed in `System/Certificates`) for authenticating the remote side (validating packets; no private key required). If a remote-certificate is not specified then the received certificate from a remote peer is used and checked against CA in the certificate menu. Proper CA must be imported in a certificate store. If remote-certificate and match-by=certificate is specified, only the specific client certificate will be matched. Applicable if digital signature authentication method (`auth-method=digital-signature`) is used."},"remoteId":{"type":"string","description":"This parameter controls what ID value to expect from the remote peer. Note that all types except for ignoring will verify remote peer's ID with a received certificate. In case when the peer sends the certificate name as its ID, it is checked against the certificate, else the ID is checked against Subject Alt. Name. \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e - accept all ID's;address - IP address is used as ID;dn - the binary Distinguished Encoding Rules (DER) encoding of an ASN.1 X.500 Distinguished Name; \u003cspan pulumi-lang-nodejs=\"`fqdn`\" pulumi-lang-dotnet=\"`Fqdn`\" pulumi-lang-go=\"`fqdn`\" pulumi-lang-python=\"`fqdn`\" pulumi-lang-yaml=\"`fqdn`\" pulumi-lang-java=\"`fqdn`\"\u003e`fqdn`\u003c/span\u003e - fully qualified domain name. Only supported in IKEv2; `user-fqdn` - a fully-qualified username string, for example, `user@domain.com`. Only supported in IKEv2; `key-id` - specific key ID for the identity. Only supported in IKEv2; \u003cspan pulumi-lang-nodejs=\"`ignore`\" pulumi-lang-dotnet=\"`Ignore`\" pulumi-lang-go=\"`ignore`\" pulumi-lang-python=\"`ignore`\" pulumi-lang-yaml=\"`ignore`\" pulumi-lang-java=\"`ignore`\"\u003e`ignore`\u003c/span\u003e - do not verify received ID with certificate (dangerous). * Wildcard key ID matching **is not supported**, for example `remote-id=`key-id:CN=*.domain.com`."},"remoteKey":{"type":"string","description":"Name of the public key from keys menu. Applicable if RSA key authentication method (`auth-method=rsa-key`) is used."},"secret":{"type":"string","description":"Secret string. If it starts with '0x', it is parsed as a hexadecimal value. Applicable if pre-shared key authentication method (`auth-method=pre-shared-key` and `auth-method=pre-shared-key-xauth`) is used.","secret":true},"username":{"type":"string","description":"XAuth or EAP username. Applicable if pre-shared key with XAuth authentication method (`auth-method=pre-shared-key-xauth`) or EAP (`auth-method=eap`) is used."}},"type":"object","required":["dynamic","ipIpsecIdentityId","peer"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authMethod":{"type":"string","description":"Authentication method:\n  * digital-signature - authenticate using a pair of RSA certificates;\n  * eap - IKEv2 EAP authentication for initiator (peer with a netmask of `/32`). Must be used together with eap-methods;\n  * eap-radius - IKEv2 EAP RADIUS passthrough authentication for the responder (RFC 3579). A server certificate in this case is required. If a server certificate is not specified then only clients supporting EAP-only (RFC 5998) will be able to connect. Note that the EAP method should be compatible with EAP-only;\n  * pre-shared-key - authenticate by a password (pre-shared secret) string shared between the peers (not recommended since an offline attack on the pre-shared key is possible);\n  * rsa-key - authenticate using an RSA key imported in keys menu. Only supported in IKEv1;\n  * pre-shared-key-xauth - authenticate by a password (pre-shared secret) string shared between the peers + XAuth username and password. Only supported in IKEv1;\n  * rsa-signature-hybrid - responder certificate authentication with initiator XAuth. Only supported in IKEv1."},"certificate":{"type":"string","description":"Name of a certificate listed in System/Certificates (signing packets; the certificate must have the private key). Applicable if digital signature authentication method (`auth-method=digital-signature`) or EAP (a`uth-method=eap`) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"eapMethods":{"type":"string","description":"All EAP methods requires whole certificate chain including intermediate and root CA certificates to be present in System/Certificates menu. Also, the username and password (if required by the authentication server) must be specified. Multiple EAP methods may be specified and will be used in a specified order. Currently supported EAP methods:\n  * eap-mschapv2;\n  * eap-peap - also known as PEAPv0/EAP-MSCHAPv2;\n  * eap-tls - requires additional client certificate specified under certificate parameter;\n  * eap-ttls."},"generatePolicy":{"type":"string","description":"Allow this peer to establish SA for non-existing policies. Such policies are created dynamically for the lifetime of SA. Automatic policies allows, for example, to create IPsec secured L2TP tunnels, or any other setup where remote peer's IP address is not known at the configuration time. \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e - do not generate policies; `port-override` - generate policies and force policy to use any port (old behavior); `port-strict` - use ports from peer's proposal, which should match peer's policy."},"ipIpsecIdentityId":{"type":"string"},"key":{"type":"string","description":"Name of the private key from keys menu. Applicable if RSA key authentication method (`auth-method=rsa-key`) is used."},"matchBy":{"type":"string","description":"Defines the logic used for peer's identity validation. `remote-id` - will verify the peer's ID according to remote-id setting. \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e will verify the peer's certificate with what is specified under remote-certificate setting."},"modeConfig":{"type":"string","description":"Name of the configuration parameters from mode-config menu. When parameter is set mode-config is enabled."},"myId":{"type":"string","description":"On initiator, this controls what ID_i is sent to the responder. On responder, this controls what ID_r is sent to the initiator. In IKEv2, responder also expects this ID in received ID_r from initiator. \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e - tries to use correct ID automatically: IP for pre-shared key, SAN (DN if not present) for certificate based connections; \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e - IP address is used as ID;dn - the binary Distinguished Encoding Rules (DER) encoding of an ASN.1 X.500 Distinguished Name; \u003cspan pulumi-lang-nodejs=\"`fqdn`\" pulumi-lang-dotnet=\"`Fqdn`\" pulumi-lang-go=\"`fqdn`\" pulumi-lang-python=\"`fqdn`\" pulumi-lang-yaml=\"`fqdn`\" pulumi-lang-java=\"`fqdn`\"\u003e`fqdn`\u003c/span\u003e - fully qualified domain name; `key-id` - use the specified key ID for the identity; `user-fqdn` - specifies a fully-qualified username string, for example, `user@domain.com`."},"notrackChain":{"type":"string","description":"Adds IP/Firewall/Raw rules matching IPsec policy to a specified chain. Use together with generate-policy."},"password":{"type":"string","description":"XAuth or EAP password. Applicable if pre-shared key with XAuth authentication method (`auth-method=pre-shared-key-xauth`) or EAP (`auth-method=eap`) is used.","secret":true},"peer":{"type":"string","description":"Name of the peer on which the identity applies."},"policyTemplateGroup":{"type":"string","description":"If generate-policy is enabled, traffic selectors are checked against templates from the same group. If none of the templates match, Phase 2 SA will not be established."},"remoteCertificate":{"type":"string","description":"Name of a certificate (listed in `System/Certificates`) for authenticating the remote side (validating packets; no private key required). If a remote-certificate is not specified then the received certificate from a remote peer is used and checked against CA in the certificate menu. Proper CA must be imported in a certificate store. If remote-certificate and match-by=certificate is specified, only the specific client certificate will be matched. Applicable if digital signature authentication method (`auth-method=digital-signature`) is used."},"remoteId":{"type":"string","description":"This parameter controls what ID value to expect from the remote peer. Note that all types except for ignoring will verify remote peer's ID with a received certificate. In case when the peer sends the certificate name as its ID, it is checked against the certificate, else the ID is checked against Subject Alt. Name. \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e - accept all ID's;address - IP address is used as ID;dn - the binary Distinguished Encoding Rules (DER) encoding of an ASN.1 X.500 Distinguished Name; \u003cspan pulumi-lang-nodejs=\"`fqdn`\" pulumi-lang-dotnet=\"`Fqdn`\" pulumi-lang-go=\"`fqdn`\" pulumi-lang-python=\"`fqdn`\" pulumi-lang-yaml=\"`fqdn`\" pulumi-lang-java=\"`fqdn`\"\u003e`fqdn`\u003c/span\u003e - fully qualified domain name. Only supported in IKEv2; `user-fqdn` - a fully-qualified username string, for example, `user@domain.com`. Only supported in IKEv2; `key-id` - specific key ID for the identity. Only supported in IKEv2; \u003cspan pulumi-lang-nodejs=\"`ignore`\" pulumi-lang-dotnet=\"`Ignore`\" pulumi-lang-go=\"`ignore`\" pulumi-lang-python=\"`ignore`\" pulumi-lang-yaml=\"`ignore`\" pulumi-lang-java=\"`ignore`\"\u003e`ignore`\u003c/span\u003e - do not verify received ID with certificate (dangerous). * Wildcard key ID matching **is not supported**, for example `remote-id=`key-id:CN=*.domain.com`."},"remoteKey":{"type":"string","description":"Name of the public key from keys menu. Applicable if RSA key authentication method (`auth-method=rsa-key`) is used."},"secret":{"type":"string","description":"Secret string. If it starts with '0x', it is parsed as a hexadecimal value. Applicable if pre-shared key authentication method (`auth-method=pre-shared-key` and `auth-method=pre-shared-key-xauth`) is used.","secret":true},"username":{"type":"string","description":"XAuth or EAP username. Applicable if pre-shared key with XAuth authentication method (`auth-method=pre-shared-key-xauth`) or EAP (`auth-method=eap`) is used."}},"requiredInputs":["peer"],"stateInputs":{"description":"Input properties used for looking up and filtering IpIpsecIdentity resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authMethod":{"type":"string","description":"Authentication method:\n  * digital-signature - authenticate using a pair of RSA certificates;\n  * eap - IKEv2 EAP authentication for initiator (peer with a netmask of `/32`). Must be used together with eap-methods;\n  * eap-radius - IKEv2 EAP RADIUS passthrough authentication for the responder (RFC 3579). A server certificate in this case is required. If a server certificate is not specified then only clients supporting EAP-only (RFC 5998) will be able to connect. Note that the EAP method should be compatible with EAP-only;\n  * pre-shared-key - authenticate by a password (pre-shared secret) string shared between the peers (not recommended since an offline attack on the pre-shared key is possible);\n  * rsa-key - authenticate using an RSA key imported in keys menu. Only supported in IKEv1;\n  * pre-shared-key-xauth - authenticate by a password (pre-shared secret) string shared between the peers + XAuth username and password. Only supported in IKEv1;\n  * rsa-signature-hybrid - responder certificate authentication with initiator XAuth. Only supported in IKEv1."},"certificate":{"type":"string","description":"Name of a certificate listed in System/Certificates (signing packets; the certificate must have the private key). Applicable if digital signature authentication method (`auth-method=digital-signature`) or EAP (a`uth-method=eap`) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"eapMethods":{"type":"string","description":"All EAP methods requires whole certificate chain including intermediate and root CA certificates to be present in System/Certificates menu. Also, the username and password (if required by the authentication server) must be specified. Multiple EAP methods may be specified and will be used in a specified order. Currently supported EAP methods:\n  * eap-mschapv2;\n  * eap-peap - also known as PEAPv0/EAP-MSCHAPv2;\n  * eap-tls - requires additional client certificate specified under certificate parameter;\n  * eap-ttls."},"generatePolicy":{"type":"string","description":"Allow this peer to establish SA for non-existing policies. Such policies are created dynamically for the lifetime of SA. Automatic policies allows, for example, to create IPsec secured L2TP tunnels, or any other setup where remote peer's IP address is not known at the configuration time. \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e - do not generate policies; `port-override` - generate policies and force policy to use any port (old behavior); `port-strict` - use ports from peer's proposal, which should match peer's policy."},"ipIpsecIdentityId":{"type":"string"},"key":{"type":"string","description":"Name of the private key from keys menu. Applicable if RSA key authentication method (`auth-method=rsa-key`) is used."},"matchBy":{"type":"string","description":"Defines the logic used for peer's identity validation. `remote-id` - will verify the peer's ID according to remote-id setting. \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e will verify the peer's certificate with what is specified under remote-certificate setting."},"modeConfig":{"type":"string","description":"Name of the configuration parameters from mode-config menu. When parameter is set mode-config is enabled."},"myId":{"type":"string","description":"On initiator, this controls what ID_i is sent to the responder. On responder, this controls what ID_r is sent to the initiator. In IKEv2, responder also expects this ID in received ID_r from initiator. \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e - tries to use correct ID automatically: IP for pre-shared key, SAN (DN if not present) for certificate based connections; \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e - IP address is used as ID;dn - the binary Distinguished Encoding Rules (DER) encoding of an ASN.1 X.500 Distinguished Name; \u003cspan pulumi-lang-nodejs=\"`fqdn`\" pulumi-lang-dotnet=\"`Fqdn`\" pulumi-lang-go=\"`fqdn`\" pulumi-lang-python=\"`fqdn`\" pulumi-lang-yaml=\"`fqdn`\" pulumi-lang-java=\"`fqdn`\"\u003e`fqdn`\u003c/span\u003e - fully qualified domain name; `key-id` - use the specified key ID for the identity; `user-fqdn` - specifies a fully-qualified username string, for example, `user@domain.com`."},"notrackChain":{"type":"string","description":"Adds IP/Firewall/Raw rules matching IPsec policy to a specified chain. Use together with generate-policy."},"password":{"type":"string","description":"XAuth or EAP password. Applicable if pre-shared key with XAuth authentication method (`auth-method=pre-shared-key-xauth`) or EAP (`auth-method=eap`) is used.","secret":true},"peer":{"type":"string","description":"Name of the peer on which the identity applies."},"policyTemplateGroup":{"type":"string","description":"If generate-policy is enabled, traffic selectors are checked against templates from the same group. If none of the templates match, Phase 2 SA will not be established."},"remoteCertificate":{"type":"string","description":"Name of a certificate (listed in `System/Certificates`) for authenticating the remote side (validating packets; no private key required). If a remote-certificate is not specified then the received certificate from a remote peer is used and checked against CA in the certificate menu. Proper CA must be imported in a certificate store. If remote-certificate and match-by=certificate is specified, only the specific client certificate will be matched. Applicable if digital signature authentication method (`auth-method=digital-signature`) is used."},"remoteId":{"type":"string","description":"This parameter controls what ID value to expect from the remote peer. Note that all types except for ignoring will verify remote peer's ID with a received certificate. In case when the peer sends the certificate name as its ID, it is checked against the certificate, else the ID is checked against Subject Alt. Name. \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e - accept all ID's;address - IP address is used as ID;dn - the binary Distinguished Encoding Rules (DER) encoding of an ASN.1 X.500 Distinguished Name; \u003cspan pulumi-lang-nodejs=\"`fqdn`\" pulumi-lang-dotnet=\"`Fqdn`\" pulumi-lang-go=\"`fqdn`\" pulumi-lang-python=\"`fqdn`\" pulumi-lang-yaml=\"`fqdn`\" pulumi-lang-java=\"`fqdn`\"\u003e`fqdn`\u003c/span\u003e - fully qualified domain name. Only supported in IKEv2; `user-fqdn` - a fully-qualified username string, for example, `user@domain.com`. Only supported in IKEv2; `key-id` - specific key ID for the identity. Only supported in IKEv2; \u003cspan pulumi-lang-nodejs=\"`ignore`\" pulumi-lang-dotnet=\"`Ignore`\" pulumi-lang-go=\"`ignore`\" pulumi-lang-python=\"`ignore`\" pulumi-lang-yaml=\"`ignore`\" pulumi-lang-java=\"`ignore`\"\u003e`ignore`\u003c/span\u003e - do not verify received ID with certificate (dangerous). * Wildcard key ID matching **is not supported**, for example `remote-id=`key-id:CN=*.domain.com`."},"remoteKey":{"type":"string","description":"Name of the public key from keys menu. Applicable if RSA key authentication method (`auth-method=rsa-key`) is used."},"secret":{"type":"string","description":"Secret string. If it starts with '0x', it is parsed as a hexadecimal value. Applicable if pre-shared key authentication method (`auth-method=pre-shared-key` and `auth-method=pre-shared-key-xauth`) is used.","secret":true},"username":{"type":"string","description":"XAuth or EAP username. Applicable if pre-shared key with XAuth authentication method (`auth-method=pre-shared-key-xauth`) or EAP (`auth-method=eap`) is used."}},"type":"object"}},"routeros:index/ipIpsecKey:IpIpsecKey":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpIpsecKey(\"test\", {\n    name: \"test-key\",\n    keySize: 2048,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpIpsecKey(\"test\",\n    name=\"test-key\",\n    key_size=2048)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpIpsecKey(\"test\", new()\n    {\n        Name = \"test-key\",\n        KeySize = 2048,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpIpsecKey(ctx, \"test\", \u0026routeros.IpIpsecKeyArgs{\n\t\t\tName:    pulumi.String(\"test-key\"),\n\t\t\tKeySize: pulumi.Float64(2048),\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.routeros.IpIpsecKey;\nimport com.pulumi.routeros.IpIpsecKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpIpsecKey(\"test\", IpIpsecKeyArgs.builder()\n            .name(\"test-key\")\n            .keySize(2048.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpIpsecKey\n    properties:\n      name: test-key\n      keySize: 2048\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/ipsec/key get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipIpsecKey:IpIpsecKey test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipIpsecKey:IpIpsecKey test \"name=test-key\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipIpsecKeyId":{"type":"string"},"keySize":{"type":"number","description":"Size of this key.\n"},"name":{"type":"string"}},"type":"object","required":["ipIpsecKeyId","keySize","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipIpsecKeyId":{"type":"string"},"keySize":{"type":"number","description":"Size of this key.\n"},"name":{"type":"string"}},"requiredInputs":["keySize"],"stateInputs":{"description":"Input properties used for looking up and filtering IpIpsecKey resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipIpsecKeyId":{"type":"string"},"keySize":{"type":"number","description":"Size of this key.\n"},"name":{"type":"string"}},"type":"object"}},"routeros:index/ipIpsecModeConfig:IpIpsecModeConfig":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpIpsecModeConfig(\"test\", {\n    name: \"test-cfg\",\n    address: \"1.2.3.4\",\n    splitIncludes: [\"0.0.0.0/0\"],\n    splitDns: [\"1.1.1.1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpIpsecModeConfig(\"test\",\n    name=\"test-cfg\",\n    address=\"1.2.3.4\",\n    split_includes=[\"0.0.0.0/0\"],\n    split_dns=[\"1.1.1.1\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpIpsecModeConfig(\"test\", new()\n    {\n        Name = \"test-cfg\",\n        Address = \"1.2.3.4\",\n        SplitIncludes = new[]\n        {\n            \"0.0.0.0/0\",\n        },\n        SplitDns = new[]\n        {\n            \"1.1.1.1\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpIpsecModeConfig(ctx, \"test\", \u0026routeros.IpIpsecModeConfigArgs{\n\t\t\tName:    pulumi.String(\"test-cfg\"),\n\t\t\tAddress: pulumi.String(\"1.2.3.4\"),\n\t\t\tSplitIncludes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t},\n\t\t\tSplitDns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.1.1.1\"),\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.routeros.IpIpsecModeConfig;\nimport com.pulumi.routeros.IpIpsecModeConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpIpsecModeConfig(\"test\", IpIpsecModeConfigArgs.builder()\n            .name(\"test-cfg\")\n            .address(\"1.2.3.4\")\n            .splitIncludes(\"0.0.0.0/0\")\n            .splitDns(\"1.1.1.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpIpsecModeConfig\n    properties:\n      name: test-cfg\n      address: 1.2.3.4\n      splitIncludes:\n        - 0.0.0.0/0\n      splitDns:\n        - 1.1.1.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/ipsec/mode/config get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipIpsecModeConfig:IpIpsecModeConfig test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipIpsecModeConfig:IpIpsecModeConfig test \"address=1.2.3.4\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"Single IP address for the initiator instead of specifying a whole address pool.\n"},"addressPool":{"type":"string","description":"Name of the address pool from which the responder will try to assign address if mode-config is enabled.\n"},"addressPrefixLength":{"type":"number","description":"Prefix length (netmask) of the assigned address from the pool.\n"},"connectionMark":{"type":"string","description":"Firewall connection mark.\n"},"ipIpsecModeConfigId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"responder":{"type":"boolean","description":"Specifies whether the configuration will work as an initiator (client) or responder (server). The initiator will request for mode-config parameters from the responder.\n"},"splitDns":{"type":"array","items":{"type":"string"},"description":"List of DNS names that will be resolved using a system-dns=yes or static-dns= setting.\n"},"splitIncludes":{"type":"array","items":{"type":"string"},"description":"List of subnets in CIDR format, which to tunnel. Subnets will be sent to the peer using the CISCO UNITY extension, a remote peer will create specific dynamic policies.\n"},"srcAddressList":{"type":"string","description":"Specifying an address list will generate dynamic source NAT rules. This parameter is only available with responder=no. A roadWarrior client with NAT.\n"},"staticDns":{"type":"string","description":"Manually specified DNS server's IP address to be sent to the client.\n"},"systemDns":{"type":"boolean","description":"When this option is enabled DNS addresses will be taken from `/ip dns`.\n"},"useResponderDns":{"type":"string"}},"type":"object","required":["ipIpsecModeConfigId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"Single IP address for the initiator instead of specifying a whole address pool.\n"},"addressPool":{"type":"string","description":"Name of the address pool from which the responder will try to assign address if mode-config is enabled.\n"},"addressPrefixLength":{"type":"number","description":"Prefix length (netmask) of the assigned address from the pool.\n"},"connectionMark":{"type":"string","description":"Firewall connection mark.\n"},"ipIpsecModeConfigId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"responder":{"type":"boolean","description":"Specifies whether the configuration will work as an initiator (client) or responder (server). The initiator will request for mode-config parameters from the responder.\n"},"splitDns":{"type":"array","items":{"type":"string"},"description":"List of DNS names that will be resolved using a system-dns=yes or static-dns= setting.\n"},"splitIncludes":{"type":"array","items":{"type":"string"},"description":"List of subnets in CIDR format, which to tunnel. Subnets will be sent to the peer using the CISCO UNITY extension, a remote peer will create specific dynamic policies.\n"},"srcAddressList":{"type":"string","description":"Specifying an address list will generate dynamic source NAT rules. This parameter is only available with responder=no. A roadWarrior client with NAT.\n"},"staticDns":{"type":"string","description":"Manually specified DNS server's IP address to be sent to the client.\n"},"systemDns":{"type":"boolean","description":"When this option is enabled DNS addresses will be taken from `/ip dns`.\n"},"useResponderDns":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpIpsecModeConfig resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"Single IP address for the initiator instead of specifying a whole address pool.\n"},"addressPool":{"type":"string","description":"Name of the address pool from which the responder will try to assign address if mode-config is enabled.\n"},"addressPrefixLength":{"type":"number","description":"Prefix length (netmask) of the assigned address from the pool.\n"},"connectionMark":{"type":"string","description":"Firewall connection mark.\n"},"ipIpsecModeConfigId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"responder":{"type":"boolean","description":"Specifies whether the configuration will work as an initiator (client) or responder (server). The initiator will request for mode-config parameters from the responder.\n"},"splitDns":{"type":"array","items":{"type":"string"},"description":"List of DNS names that will be resolved using a system-dns=yes or static-dns= setting.\n"},"splitIncludes":{"type":"array","items":{"type":"string"},"description":"List of subnets in CIDR format, which to tunnel. Subnets will be sent to the peer using the CISCO UNITY extension, a remote peer will create specific dynamic policies.\n"},"srcAddressList":{"type":"string","description":"Specifying an address list will generate dynamic source NAT rules. This parameter is only available with responder=no. A roadWarrior client with NAT.\n"},"staticDns":{"type":"string","description":"Manually specified DNS server's IP address to be sent to the client.\n"},"systemDns":{"type":"boolean","description":"When this option is enabled DNS addresses will be taken from `/ip dns`.\n"},"useResponderDns":{"type":"string"}},"type":"object"}},"routeros:index/ipIpsecPeer:IpIpsecPeer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpIpsecPeer(\"test\", {\n    address: \"lv20.nordvpn.com\",\n    exchangeMode: \"ike2\",\n    name: \"NordVPN\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpIpsecPeer(\"test\",\n    address=\"lv20.nordvpn.com\",\n    exchange_mode=\"ike2\",\n    name=\"NordVPN\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpIpsecPeer(\"test\", new()\n    {\n        Address = \"lv20.nordvpn.com\",\n        ExchangeMode = \"ike2\",\n        Name = \"NordVPN\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpIpsecPeer(ctx, \"test\", \u0026routeros.IpIpsecPeerArgs{\n\t\t\tAddress:      pulumi.String(\"lv20.nordvpn.com\"),\n\t\t\tExchangeMode: pulumi.String(\"ike2\"),\n\t\t\tName:         pulumi.String(\"NordVPN\"),\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.routeros.IpIpsecPeer;\nimport com.pulumi.routeros.IpIpsecPeerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpIpsecPeer(\"test\", IpIpsecPeerArgs.builder()\n            .address(\"lv20.nordvpn.com\")\n            .exchangeMode(\"ike2\")\n            .name(\"NordVPN\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpIpsecPeer\n    properties:\n      address: lv20.nordvpn.com\n      exchangeMode: ike2\n      name: NordVPN\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/ipsec/peer get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipIpsecPeer:IpIpsecPeer test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipIpsecPeer:IpIpsecPeer test \"name=NordVPN\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"If the remote peer's address matches this prefix, then the peer configuration is used in authentication and establishment of Phase 1. If several peer's addresses match several configuration entries, the most specific one (i.e. the one with the largest netmask) will be used.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"exchangeMode":{"type":"string","description":"Different ISAKMP phase 1 exchange modes according to RFC 2408. the main mode relaxes rfc2409 section 5.4, to allow pre-shared-key authentication in the main mode. ike2 mode enables Ikev2 RFC 7296. Parameters that are ignored by IKEv2 proposal-check, compatibility-options, lifebytes, dpd-maximum-failures, nat-traversal.\n"},"ipIpsecPeerId":{"type":"string","description":"The ID of this resource.\n"},"localAddress":{"type":"string","description":"Routers local address on which Phase 1 should be bounded to.\n"},"name":{"type":"string","description":"Peer name.\n"},"passive":{"type":"boolean","description":"When a passive mode is enabled will wait for a remote peer to initiate an IKE connection. The enabled passive mode also indicates that the peer is xauth responder, and disabled passive mode - xauth initiator. When a passive mode is a disabled peer will try to establish not only phase1 but also phase2 automatically, if policies are configured or created during the phase1.\n"},"port":{"type":"number","description":"Communication port used (when a router is an initiator) to connect to remote peer in cases if remote peer uses the non-default port.\n"},"profile":{"type":"string","description":"Name of the profile template that will be used during IKE negotiation.\n"},"responder":{"type":"boolean","description":"Whether this peer will act as a responder only (listen to incoming requests) and not initiate a connection.\n"},"sendInitialContact":{"type":"boolean","description":"Specifies whether to send `initial contact` IKE packet or wait for remote side, this packet should trigger the removal of old peer SAs for current source address. Usually, in road warrior setups clients are initiators and this parameter should be set to no. Initial contact is not sent if modecfg or xauth is enabled for ikev1.\n"}},"type":"object","required":["dynamic","ipIpsecPeerId","name","responder"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"If the remote peer's address matches this prefix, then the peer configuration is used in authentication and establishment of Phase 1. If several peer's addresses match several configuration entries, the most specific one (i.e. the one with the largest netmask) will be used.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"exchangeMode":{"type":"string","description":"Different ISAKMP phase 1 exchange modes according to RFC 2408. the main mode relaxes rfc2409 section 5.4, to allow pre-shared-key authentication in the main mode. ike2 mode enables Ikev2 RFC 7296. Parameters that are ignored by IKEv2 proposal-check, compatibility-options, lifebytes, dpd-maximum-failures, nat-traversal.\n"},"ipIpsecPeerId":{"type":"string","description":"The ID of this resource.\n"},"localAddress":{"type":"string","description":"Routers local address on which Phase 1 should be bounded to.\n"},"name":{"type":"string","description":"Peer name.\n"},"passive":{"type":"boolean","description":"When a passive mode is enabled will wait for a remote peer to initiate an IKE connection. The enabled passive mode also indicates that the peer is xauth responder, and disabled passive mode - xauth initiator. When a passive mode is a disabled peer will try to establish not only phase1 but also phase2 automatically, if policies are configured or created during the phase1.\n"},"port":{"type":"number","description":"Communication port used (when a router is an initiator) to connect to remote peer in cases if remote peer uses the non-default port.\n"},"profile":{"type":"string","description":"Name of the profile template that will be used during IKE negotiation.\n"},"sendInitialContact":{"type":"boolean","description":"Specifies whether to send `initial contact` IKE packet or wait for remote side, this packet should trigger the removal of old peer SAs for current source address. Usually, in road warrior setups clients are initiators and this parameter should be set to no. Initial contact is not sent if modecfg or xauth is enabled for ikev1.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpIpsecPeer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"If the remote peer's address matches this prefix, then the peer configuration is used in authentication and establishment of Phase 1. If several peer's addresses match several configuration entries, the most specific one (i.e. the one with the largest netmask) will be used.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"exchangeMode":{"type":"string","description":"Different ISAKMP phase 1 exchange modes according to RFC 2408. the main mode relaxes rfc2409 section 5.4, to allow pre-shared-key authentication in the main mode. ike2 mode enables Ikev2 RFC 7296. Parameters that are ignored by IKEv2 proposal-check, compatibility-options, lifebytes, dpd-maximum-failures, nat-traversal.\n"},"ipIpsecPeerId":{"type":"string","description":"The ID of this resource.\n"},"localAddress":{"type":"string","description":"Routers local address on which Phase 1 should be bounded to.\n"},"name":{"type":"string","description":"Peer name.\n"},"passive":{"type":"boolean","description":"When a passive mode is enabled will wait for a remote peer to initiate an IKE connection. The enabled passive mode also indicates that the peer is xauth responder, and disabled passive mode - xauth initiator. When a passive mode is a disabled peer will try to establish not only phase1 but also phase2 automatically, if policies are configured or created during the phase1.\n"},"port":{"type":"number","description":"Communication port used (when a router is an initiator) to connect to remote peer in cases if remote peer uses the non-default port.\n"},"profile":{"type":"string","description":"Name of the profile template that will be used during IKE negotiation.\n"},"responder":{"type":"boolean","description":"Whether this peer will act as a responder only (listen to incoming requests) and not initiate a connection.\n"},"sendInitialContact":{"type":"boolean","description":"Specifies whether to send `initial contact` IKE packet or wait for remote side, this packet should trigger the removal of old peer SAs for current source address. Usually, in road warrior setups clients are initiators and this parameter should be set to no. Initial contact is not sent if modecfg or xauth is enabled for ikev1.\n"}},"type":"object"}},"routeros:index/ipIpsecPolicy:IpIpsecPolicy":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst group_for_policy = new routeros.IpIpsecPolicyGroup(\"group-for-policy\", {name: \"test-group\"});\nconst policy = new routeros.IpIpsecPolicy(\"policy\", {\n    dstAddress: \"0.0.0.0/0\",\n    group: group_for_policy.name,\n    proposal: \"NordVPN\",\n    srcAddress: \"0.0.0.0/0\",\n    template: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ngroup_for_policy = routeros.IpIpsecPolicyGroup(\"group-for-policy\", name=\"test-group\")\npolicy = routeros.IpIpsecPolicy(\"policy\",\n    dst_address=\"0.0.0.0/0\",\n    group=group_for_policy.name,\n    proposal=\"NordVPN\",\n    src_address=\"0.0.0.0/0\",\n    template=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var group_for_policy = new Routeros.IpIpsecPolicyGroup(\"group-for-policy\", new()\n    {\n        Name = \"test-group\",\n    });\n\n    var policy = new Routeros.IpIpsecPolicy(\"policy\", new()\n    {\n        DstAddress = \"0.0.0.0/0\",\n        Group = group_for_policy.Name,\n        Proposal = \"NordVPN\",\n        SrcAddress = \"0.0.0.0/0\",\n        Template = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgroup_for_policy, err := routeros.NewIpIpsecPolicyGroup(ctx, \"group-for-policy\", \u0026routeros.IpIpsecPolicyGroupArgs{\n\t\t\tName: pulumi.String(\"test-group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewIpIpsecPolicy(ctx, \"policy\", \u0026routeros.IpIpsecPolicyArgs{\n\t\t\tDstAddress: pulumi.String(\"0.0.0.0/0\"),\n\t\t\tGroup:      group_for_policy.Name,\n\t\t\tProposal:   pulumi.String(\"NordVPN\"),\n\t\t\tSrcAddress: pulumi.String(\"0.0.0.0/0\"),\n\t\t\tTemplate:   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.routeros.IpIpsecPolicyGroup;\nimport com.pulumi.routeros.IpIpsecPolicyGroupArgs;\nimport com.pulumi.routeros.IpIpsecPolicy;\nimport com.pulumi.routeros.IpIpsecPolicyArgs;\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 group_for_policy = new IpIpsecPolicyGroup(\"group-for-policy\", IpIpsecPolicyGroupArgs.builder()\n            .name(\"test-group\")\n            .build());\n\n        var policy = new IpIpsecPolicy(\"policy\", IpIpsecPolicyArgs.builder()\n            .dstAddress(\"0.0.0.0/0\")\n            .group(group_for_policy.name())\n            .proposal(\"NordVPN\")\n            .srcAddress(\"0.0.0.0/0\")\n            .template(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group-for-policy:\n    type: routeros:IpIpsecPolicyGroup\n    properties:\n      name: test-group\n  policy:\n    type: routeros:IpIpsecPolicy\n    properties:\n      dstAddress: 0.0.0.0/0\n      group: ${[\"group-for-policy\"].name}\n      proposal: NordVPN\n      srcAddress: 0.0.0.0/0\n      template: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/ipsec/policy get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipIpsecPolicy:IpIpsecPolicy test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipIpsecPolicy:IpIpsecPolicy test \"group=test-group\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Specifies what to do with the packet matched by the policy.none - pass the packet unchanged.discard - drop the packet.encrypt - apply transformations specified in this policy and it's SA."},"active":{"type":"boolean"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"Destination address to be matched in packets. Applicable when tunnel mode (`tunnel=yes`) or template (`template=yes`) is used."},"dstPort":{"type":"string","description":"Destination port to be matched in packets. If set to any all ports will be matched."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"group":{"type":"string","description":"Name of the policy group to which this **template** is assigned."},"invalid":{"type":"boolean"},"ipIpsecPolicyId":{"type":"string"},"ipsecProtocols":{"type":"string","description":"Specifies what combination of Authentication Header and Encapsulating Security Payload protocols you want to apply to matched traffic."},"level":{"type":"string","description":"Specifies what to do if some of the SAs for this policy cannot be found:\n  * use - skip this transform, do not drop the packet, and do not acquire SA from IKE daemon;\n  * require - drop the packet and acquire SA;\n  * unique - drop the packet and acquire a unique SA that is only used with this particular policy. It is used in setups where multiple clients can sit behind one public IP address (clients behind NAT)."},"peer":{"type":"string","description":"Name of the peer on which the policy applies."},"proposal":{"type":"string","description":"Name of the proposal template that will be sent by IKE daemon to establish SAs for this policy."},"protocol":{"type":"string","description":"IP packet protocol to match."},"srcAddress":{"type":"string","description":"Source address to be matched in packets. Applicable when tunnel mode (`tunnel=yes`) or template (`template=yes`) is used."},"srcPort":{"type":"string","description":"Source port to be matched in packets. If set to any all ports will be matched."},"template":{"type":"boolean","description":"Creates a template and assigns it to a specified policy group.Following parameters are used by template:\n  * group - name of the policy group to which this template is assigned;\n  * src-address,\n  * dst-address - Requested subnet must match in both directions (for example 0.0.0.0/0 to allow all);\n  * protocol - protocol to match, if set to all, then any protocol is accepted;\n  * proposal - SA parameters used for this template;\n  * level - useful when unique is required in setups with multiple clients behind NAT."},"tunnel":{"type":"boolean","description":"Specifies whether to use tunnel mode."}},"type":"object","required":["active","dynamic","invalid","ipIpsecPolicyId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Specifies what to do with the packet matched by the policy.none - pass the packet unchanged.discard - drop the packet.encrypt - apply transformations specified in this policy and it's SA."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"Destination address to be matched in packets. Applicable when tunnel mode (`tunnel=yes`) or template (`template=yes`) is used."},"dstPort":{"type":"string","description":"Destination port to be matched in packets. If set to any all ports will be matched."},"group":{"type":"string","description":"Name of the policy group to which this **template** is assigned."},"ipIpsecPolicyId":{"type":"string"},"ipsecProtocols":{"type":"string","description":"Specifies what combination of Authentication Header and Encapsulating Security Payload protocols you want to apply to matched traffic."},"level":{"type":"string","description":"Specifies what to do if some of the SAs for this policy cannot be found:\n  * use - skip this transform, do not drop the packet, and do not acquire SA from IKE daemon;\n  * require - drop the packet and acquire SA;\n  * unique - drop the packet and acquire a unique SA that is only used with this particular policy. It is used in setups where multiple clients can sit behind one public IP address (clients behind NAT)."},"peer":{"type":"string","description":"Name of the peer on which the policy applies."},"proposal":{"type":"string","description":"Name of the proposal template that will be sent by IKE daemon to establish SAs for this policy."},"protocol":{"type":"string","description":"IP packet protocol to match."},"srcAddress":{"type":"string","description":"Source address to be matched in packets. Applicable when tunnel mode (`tunnel=yes`) or template (`template=yes`) is used."},"srcPort":{"type":"string","description":"Source port to be matched in packets. If set to any all ports will be matched."},"template":{"type":"boolean","description":"Creates a template and assigns it to a specified policy group.Following parameters are used by template:\n  * group - name of the policy group to which this template is assigned;\n  * src-address,\n  * dst-address - Requested subnet must match in both directions (for example 0.0.0.0/0 to allow all);\n  * protocol - protocol to match, if set to all, then any protocol is accepted;\n  * proposal - SA parameters used for this template;\n  * level - useful when unique is required in setups with multiple clients behind NAT."},"tunnel":{"type":"boolean","description":"Specifies whether to use tunnel mode."}},"stateInputs":{"description":"Input properties used for looking up and filtering IpIpsecPolicy resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Specifies what to do with the packet matched by the policy.none - pass the packet unchanged.discard - drop the packet.encrypt - apply transformations specified in this policy and it's SA."},"active":{"type":"boolean"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"Destination address to be matched in packets. Applicable when tunnel mode (`tunnel=yes`) or template (`template=yes`) is used."},"dstPort":{"type":"string","description":"Destination port to be matched in packets. If set to any all ports will be matched."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"group":{"type":"string","description":"Name of the policy group to which this **template** is assigned."},"invalid":{"type":"boolean"},"ipIpsecPolicyId":{"type":"string"},"ipsecProtocols":{"type":"string","description":"Specifies what combination of Authentication Header and Encapsulating Security Payload protocols you want to apply to matched traffic."},"level":{"type":"string","description":"Specifies what to do if some of the SAs for this policy cannot be found:\n  * use - skip this transform, do not drop the packet, and do not acquire SA from IKE daemon;\n  * require - drop the packet and acquire SA;\n  * unique - drop the packet and acquire a unique SA that is only used with this particular policy. It is used in setups where multiple clients can sit behind one public IP address (clients behind NAT)."},"peer":{"type":"string","description":"Name of the peer on which the policy applies."},"proposal":{"type":"string","description":"Name of the proposal template that will be sent by IKE daemon to establish SAs for this policy."},"protocol":{"type":"string","description":"IP packet protocol to match."},"srcAddress":{"type":"string","description":"Source address to be matched in packets. Applicable when tunnel mode (`tunnel=yes`) or template (`template=yes`) is used."},"srcPort":{"type":"string","description":"Source port to be matched in packets. If set to any all ports will be matched."},"template":{"type":"boolean","description":"Creates a template and assigns it to a specified policy group.Following parameters are used by template:\n  * group - name of the policy group to which this template is assigned;\n  * src-address,\n  * dst-address - Requested subnet must match in both directions (for example 0.0.0.0/0 to allow all);\n  * protocol - protocol to match, if set to all, then any protocol is accepted;\n  * proposal - SA parameters used for this template;\n  * level - useful when unique is required in setups with multiple clients behind NAT."},"tunnel":{"type":"boolean","description":"Specifies whether to use tunnel mode."}},"type":"object"}},"routeros:index/ipIpsecPolicyGroup:IpIpsecPolicyGroup":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpIpsecPolicyGroup(\"test\", {name: \"test-group\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpIpsecPolicyGroup(\"test\", name=\"test-group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpIpsecPolicyGroup(\"test\", new()\n    {\n        Name = \"test-group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpIpsecPolicyGroup(ctx, \"test\", \u0026routeros.IpIpsecPolicyGroupArgs{\n\t\t\tName: pulumi.String(\"test-group\"),\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.routeros.IpIpsecPolicyGroup;\nimport com.pulumi.routeros.IpIpsecPolicyGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpIpsecPolicyGroup(\"test\", IpIpsecPolicyGroupArgs.builder()\n            .name(\"test-group\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpIpsecPolicyGroup\n    properties:\n      name: test-group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/ipsec/policy/group get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipIpsecPolicyGroup:IpIpsecPolicyGroup test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipIpsecPolicyGroup:IpIpsecPolicyGroup test \"name=test-group\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"ipIpsecPolicyGroupId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"}},"type":"object","required":["default","ipIpsecPolicyGroupId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipIpsecPolicyGroupId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpIpsecPolicyGroup resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"ipIpsecPolicyGroupId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"}},"type":"object"}},"routeros:index/ipIpsecProfile:IpIpsecProfile":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpIpsecProfile(\"test\", {\n    name: \"test-profile\",\n    hashAlgorithm: \"sha256\",\n    encAlgorithms: [\n        \"aes-192\",\n        \"aes-256\",\n    ],\n    dhGroups: [\n        \"ecp384\",\n        \"ecp521\",\n    ],\n    natTraversal: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpIpsecProfile(\"test\",\n    name=\"test-profile\",\n    hash_algorithm=\"sha256\",\n    enc_algorithms=[\n        \"aes-192\",\n        \"aes-256\",\n    ],\n    dh_groups=[\n        \"ecp384\",\n        \"ecp521\",\n    ],\n    nat_traversal=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpIpsecProfile(\"test\", new()\n    {\n        Name = \"test-profile\",\n        HashAlgorithm = \"sha256\",\n        EncAlgorithms = new[]\n        {\n            \"aes-192\",\n            \"aes-256\",\n        },\n        DhGroups = new[]\n        {\n            \"ecp384\",\n            \"ecp521\",\n        },\n        NatTraversal = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpIpsecProfile(ctx, \"test\", \u0026routeros.IpIpsecProfileArgs{\n\t\t\tName:          pulumi.String(\"test-profile\"),\n\t\t\tHashAlgorithm: pulumi.String(\"sha256\"),\n\t\t\tEncAlgorithms: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aes-192\"),\n\t\t\t\tpulumi.String(\"aes-256\"),\n\t\t\t},\n\t\t\tDhGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ecp384\"),\n\t\t\t\tpulumi.String(\"ecp521\"),\n\t\t\t},\n\t\t\tNatTraversal: 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.routeros.IpIpsecProfile;\nimport com.pulumi.routeros.IpIpsecProfileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpIpsecProfile(\"test\", IpIpsecProfileArgs.builder()\n            .name(\"test-profile\")\n            .hashAlgorithm(\"sha256\")\n            .encAlgorithms(            \n                \"aes-192\",\n                \"aes-256\")\n            .dhGroups(            \n                \"ecp384\",\n                \"ecp521\")\n            .natTraversal(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpIpsecProfile\n    properties:\n      name: test-profile\n      hashAlgorithm: sha256\n      encAlgorithms:\n        - aes-192\n        - aes-256\n      dhGroups:\n        - ecp384\n        - ecp521\n      natTraversal: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/ipsec/profile get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipIpsecProfile:IpIpsecProfile test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipIpsecProfile:IpIpsecProfile test \"name=test-profile\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"dhGroups":{"type":"array","items":{"type":"string"},"description":"Diffie-Hellman group (cipher strength)."},"dpdInterval":{"type":"string","description":"Dead peer detection interval. If set to disable-dpd, dead peer detection will not be used."},"dpdMaximumFailures":{"type":"number","description":"Maximum count of failures until peer is considered to be dead. Applicable if DPD is enabled."},"encAlgorithms":{"type":"array","items":{"type":"string"},"description":"List of encryption algorithms that will be used by the peer."},"hashAlgorithm":{"type":"string","description":"Hashing algorithm. SHA (Secure Hash Algorithm) is stronger, but slower. MD5 uses 128-bit key, sha1-160bit key."},"ipIpsecProfileId":{"type":"string"},"lifebytes":{"type":"number","description":"Phase 1 lifebytes is used only as administrative value which is added to proposal. Used in cases if remote peer requires specific lifebytes value to establish phase 1."},"lifetime":{"type":"string","description":"Phase 1 lifetime: specifies how long the SA will be valid."},"name":{"type":"string"},"natTraversal":{"type":"boolean","description":"Use Linux NAT-T mechanism to solve IPsec incompatibility with NAT routers between IPsec peers. This can only be used with ESP protocol (AH is not supported by design, as it signs the complete packet, including the IP header, which is changed by NAT, rendering AH signature invalid). The method encapsulates IPsec ESP traffic into UDP streams in order to overcome some minor issues that made ESP incompatible with NAT."},"prfAlgorithm":{"type":"string"},"proposalCheck":{"type":"string","description":"Phase 2 lifetime check logic:\n  * claim - take shortest of proposed and configured lifetimes and notify initiator about it\n  * exact - require lifetimes to be the same\n  * obey - accept whatever is sent by an initiator\n  * strict - if the proposed lifetime is longer than the default then reject the proposal otherwise accept a proposed lifetime."}},"type":"object","required":["ipIpsecProfileId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"dhGroups":{"type":"array","items":{"type":"string"},"description":"Diffie-Hellman group (cipher strength)."},"dpdInterval":{"type":"string","description":"Dead peer detection interval. If set to disable-dpd, dead peer detection will not be used."},"dpdMaximumFailures":{"type":"number","description":"Maximum count of failures until peer is considered to be dead. Applicable if DPD is enabled."},"encAlgorithms":{"type":"array","items":{"type":"string"},"description":"List of encryption algorithms that will be used by the peer."},"hashAlgorithm":{"type":"string","description":"Hashing algorithm. SHA (Secure Hash Algorithm) is stronger, but slower. MD5 uses 128-bit key, sha1-160bit key."},"ipIpsecProfileId":{"type":"string"},"lifebytes":{"type":"number","description":"Phase 1 lifebytes is used only as administrative value which is added to proposal. Used in cases if remote peer requires specific lifebytes value to establish phase 1."},"lifetime":{"type":"string","description":"Phase 1 lifetime: specifies how long the SA will be valid."},"name":{"type":"string"},"natTraversal":{"type":"boolean","description":"Use Linux NAT-T mechanism to solve IPsec incompatibility with NAT routers between IPsec peers. This can only be used with ESP protocol (AH is not supported by design, as it signs the complete packet, including the IP header, which is changed by NAT, rendering AH signature invalid). The method encapsulates IPsec ESP traffic into UDP streams in order to overcome some minor issues that made ESP incompatible with NAT."},"prfAlgorithm":{"type":"string"},"proposalCheck":{"type":"string","description":"Phase 2 lifetime check logic:\n  * claim - take shortest of proposed and configured lifetimes and notify initiator about it\n  * exact - require lifetimes to be the same\n  * obey - accept whatever is sent by an initiator\n  * strict - if the proposed lifetime is longer than the default then reject the proposal otherwise accept a proposed lifetime."}},"stateInputs":{"description":"Input properties used for looking up and filtering IpIpsecProfile resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"dhGroups":{"type":"array","items":{"type":"string"},"description":"Diffie-Hellman group (cipher strength)."},"dpdInterval":{"type":"string","description":"Dead peer detection interval. If set to disable-dpd, dead peer detection will not be used."},"dpdMaximumFailures":{"type":"number","description":"Maximum count of failures until peer is considered to be dead. Applicable if DPD is enabled."},"encAlgorithms":{"type":"array","items":{"type":"string"},"description":"List of encryption algorithms that will be used by the peer."},"hashAlgorithm":{"type":"string","description":"Hashing algorithm. SHA (Secure Hash Algorithm) is stronger, but slower. MD5 uses 128-bit key, sha1-160bit key."},"ipIpsecProfileId":{"type":"string"},"lifebytes":{"type":"number","description":"Phase 1 lifebytes is used only as administrative value which is added to proposal. Used in cases if remote peer requires specific lifebytes value to establish phase 1."},"lifetime":{"type":"string","description":"Phase 1 lifetime: specifies how long the SA will be valid."},"name":{"type":"string"},"natTraversal":{"type":"boolean","description":"Use Linux NAT-T mechanism to solve IPsec incompatibility with NAT routers between IPsec peers. This can only be used with ESP protocol (AH is not supported by design, as it signs the complete packet, including the IP header, which is changed by NAT, rendering AH signature invalid). The method encapsulates IPsec ESP traffic into UDP streams in order to overcome some minor issues that made ESP incompatible with NAT."},"prfAlgorithm":{"type":"string"},"proposalCheck":{"type":"string","description":"Phase 2 lifetime check logic:\n  * claim - take shortest of proposed and configured lifetimes and notify initiator about it\n  * exact - require lifetimes to be the same\n  * obey - accept whatever is sent by an initiator\n  * strict - if the proposed lifetime is longer than the default then reject the proposal otherwise accept a proposed lifetime."}},"type":"object"}},"routeros:index/ipIpsecProposal:IpIpsecProposal":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpIpsecProposal(\"test\", {\n    name: \"NordVPN\",\n    pfsGroup: \"none\",\n    lifetime: \"45m10s\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpIpsecProposal(\"test\",\n    name=\"NordVPN\",\n    pfs_group=\"none\",\n    lifetime=\"45m10s\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpIpsecProposal(\"test\", new()\n    {\n        Name = \"NordVPN\",\n        PfsGroup = \"none\",\n        Lifetime = \"45m10s\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpIpsecProposal(ctx, \"test\", \u0026routeros.IpIpsecProposalArgs{\n\t\t\tName:     pulumi.String(\"NordVPN\"),\n\t\t\tPfsGroup: pulumi.String(\"none\"),\n\t\t\tLifetime: pulumi.String(\"45m10s\"),\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.routeros.IpIpsecProposal;\nimport com.pulumi.routeros.IpIpsecProposalArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpIpsecProposal(\"test\", IpIpsecProposalArgs.builder()\n            .name(\"NordVPN\")\n            .pfsGroup(\"none\")\n            .lifetime(\"45m10s\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpIpsecProposal\n    properties:\n      name: NordVPN\n      pfsGroup: none\n      lifetime: 45m10s\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/ipsec/proposal get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipIpsecProposal:IpIpsecProposal test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipIpsecProposal:IpIpsecProposal test \"name=NordVPN\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authAlgorithms":{"type":"array","items":{"type":"string"},"description":"Allowed algorithms for authorization. SHA (Secure Hash Algorithm) is stronger but slower. MD5 uses a 128-bit key, sha1-160bit key.\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"encAlgorithms":{"type":"array","items":{"type":"string"},"description":"Allowed algorithms and key lengths to use for SAs.\n"},"ipIpsecProposalId":{"type":"string","description":"The ID of this resource.\n"},"lifetime":{"type":"string","description":"How long to use SA before throwing it out.\n"},"name":{"type":"string"},"pfsGroup":{"type":"string","description":"The diffie-Helman group used for Perfect Forward Secrecy.\n"}},"type":"object","required":["default","ipIpsecProposalId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authAlgorithms":{"type":"array","items":{"type":"string"},"description":"Allowed algorithms for authorization. SHA (Secure Hash Algorithm) is stronger but slower. MD5 uses a 128-bit key, sha1-160bit key.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"encAlgorithms":{"type":"array","items":{"type":"string"},"description":"Allowed algorithms and key lengths to use for SAs.\n"},"ipIpsecProposalId":{"type":"string","description":"The ID of this resource.\n"},"lifetime":{"type":"string","description":"How long to use SA before throwing it out.\n"},"name":{"type":"string"},"pfsGroup":{"type":"string","description":"The diffie-Helman group used for Perfect Forward Secrecy.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpIpsecProposal resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authAlgorithms":{"type":"array","items":{"type":"string"},"description":"Allowed algorithms for authorization. SHA (Secure Hash Algorithm) is stronger but slower. MD5 uses a 128-bit key, sha1-160bit key.\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"encAlgorithms":{"type":"array","items":{"type":"string"},"description":"Allowed algorithms and key lengths to use for SAs.\n"},"ipIpsecProposalId":{"type":"string","description":"The ID of this resource.\n"},"lifetime":{"type":"string","description":"How long to use SA before throwing it out.\n"},"name":{"type":"string"},"pfsGroup":{"type":"string","description":"The diffie-Helman group used for Perfect Forward Secrecy.\n"}},"type":"object"}},"routeros:index/ipIpsecSettings:IpIpsecSettings":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpIpsecSettings(\"test\", {\n    xauthUseRadius: true,\n    interimUpdate: \"60s\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpIpsecSettings(\"test\",\n    xauth_use_radius=True,\n    interim_update=\"60s\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpIpsecSettings(\"test\", new()\n    {\n        XauthUseRadius = true,\n        InterimUpdate = \"60s\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpIpsecSettings(ctx, \"test\", \u0026routeros.IpIpsecSettingsArgs{\n\t\t\tXauthUseRadius: pulumi.Bool(true),\n\t\t\tInterimUpdate:  pulumi.String(\"60s\"),\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.routeros.IpIpsecSettings;\nimport com.pulumi.routeros.IpIpsecSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpIpsecSettings(\"test\", IpIpsecSettingsArgs.builder()\n            .xauthUseRadius(true)\n            .interimUpdate(\"60s\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpIpsecSettings\n    properties:\n      xauthUseRadius: true\n      interimUpdate: 60s\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipIpsecSettings:IpIpsecSettings test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"Whether to send RADIUS accounting requests to a RADIUS server. Applicable if EAP Radius (`auth-method=eap-radius`) or pre-shared key with XAuth authentication method (`auth-method=pre-shared-key-xauth`) is used.\n"},"interimUpdate":{"type":"string","description":"The interval between each consecutive RADIUS accounting Interim update. Accounting must be enabled.\n"},"ipIpsecSettingsId":{"type":"string","description":"The ID of this resource.\n"},"xauthUseRadius":{"type":"boolean","description":"Whether to use Radius client for XAuth users or not. Property is only applicable to peers using the IKEv1 exchange mode.\n"}},"type":"object","required":["ipIpsecSettingsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"Whether to send RADIUS accounting requests to a RADIUS server. Applicable if EAP Radius (`auth-method=eap-radius`) or pre-shared key with XAuth authentication method (`auth-method=pre-shared-key-xauth`) is used.\n"},"interimUpdate":{"type":"string","description":"The interval between each consecutive RADIUS accounting Interim update. Accounting must be enabled.\n"},"ipIpsecSettingsId":{"type":"string","description":"The ID of this resource.\n"},"xauthUseRadius":{"type":"boolean","description":"Whether to use Radius client for XAuth users or not. Property is only applicable to peers using the IKEv1 exchange mode.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpIpsecSettings resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"Whether to send RADIUS accounting requests to a RADIUS server. Applicable if EAP Radius (`auth-method=eap-radius`) or pre-shared key with XAuth authentication method (`auth-method=pre-shared-key-xauth`) is used.\n"},"interimUpdate":{"type":"string","description":"The interval between each consecutive RADIUS accounting Interim update. Accounting must be enabled.\n"},"ipIpsecSettingsId":{"type":"string","description":"The ID of this resource.\n"},"xauthUseRadius":{"type":"boolean","description":"Whether to use Radius client for XAuth users or not. Property is only applicable to peers using the IKEv1 exchange mode.\n"}},"type":"object"}},"routeros:index/ipNatPmp:IpNatPmp":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpNatPmp(\"test\", {enabled: true});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpNatPmp(\"test\", enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpNatPmp(\"test\", new()\n    {\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpNatPmp(ctx, \"test\", \u0026routeros.IpNatPmpArgs{\n\t\t\tEnabled: 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.routeros.IpNatPmp;\nimport com.pulumi.routeros.IpNatPmpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpNatPmp(\"test\", IpNatPmpArgs.builder()\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpNatPmp\n    properties:\n      enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipNatPmp:IpNatPmp test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"Enable NAT-PMP service.\n"},"ipNatPmpId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["ipNatPmpId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"Enable NAT-PMP service.\n"},"ipNatPmpId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpNatPmp resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"Enable NAT-PMP service.\n"},"ipNatPmpId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/ipNatPmpInterfaces:IpNatPmpInterfaces":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpNatPmpInterfaces(\"test\", {\n    \"interface\": \"ether1\",\n    type: \"external\",\n    forcedIp: \"0.0.0.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpNatPmpInterfaces(\"test\",\n    interface=\"ether1\",\n    type=\"external\",\n    forced_ip=\"0.0.0.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpNatPmpInterfaces(\"test\", new()\n    {\n        Interface = \"ether1\",\n        Type = \"external\",\n        ForcedIp = \"0.0.0.0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpNatPmpInterfaces(ctx, \"test\", \u0026routeros.IpNatPmpInterfacesArgs{\n\t\t\tInterface: pulumi.String(\"ether1\"),\n\t\t\tType:      pulumi.String(\"external\"),\n\t\t\tForcedIp:  pulumi.String(\"0.0.0.0\"),\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.routeros.IpNatPmpInterfaces;\nimport com.pulumi.routeros.IpNatPmpInterfacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpNatPmpInterfaces(\"test\", IpNatPmpInterfacesArgs.builder()\n            .interface_(\"ether1\")\n            .type(\"external\")\n            .forcedIp(\"0.0.0.0\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpNatPmpInterfaces\n    properties:\n      interface: ether1\n      type: external\n      forcedIp: 0.0.0.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/nat-pmp/interfaces get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipNatPmpInterfaces:IpNatPmpInterfaces test '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipNatPmpInterfaces:IpNatPmpInterfaces test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"forcedIp":{"type":"string","description":"Allow specifying what public IP to use if the external interface has more than one IP available."},"interface":{"type":"string","description":"Interface name on which PMP will be running on"},"ipNatPmpInterfacesId":{"type":"string"},"type":{"type":"string","description":"NAT-PMP interface type:\n  * external - the interface a global IP address is assigned to\n  * internal - router's local interface the clients are connected to"}},"type":"object","required":["dynamic","interface","ipNatPmpInterfacesId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"forcedIp":{"type":"string","description":"Allow specifying what public IP to use if the external interface has more than one IP available."},"interface":{"type":"string","description":"Interface name on which PMP will be running on"},"ipNatPmpInterfacesId":{"type":"string"},"type":{"type":"string","description":"NAT-PMP interface type:\n  * external - the interface a global IP address is assigned to\n  * internal - router's local interface the clients are connected to"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering IpNatPmpInterfaces resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"forcedIp":{"type":"string","description":"Allow specifying what public IP to use if the external interface has more than one IP available."},"interface":{"type":"string","description":"Interface name on which PMP will be running on"},"ipNatPmpInterfacesId":{"type":"string"},"type":{"type":"string","description":"NAT-PMP interface type:\n  * external - the interface a global IP address is assigned to\n  * internal - router's local interface the clients are connected to"}},"type":"object"}},"routeros:index/ipNeighborDiscoverySettings:IpNeighborDiscoverySettings":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpNeighborDiscoverySettings(\"test\", {\n    discoverInterfaceList: \"static\",\n    lldpMedNetPolicyVlan: \"1\",\n    mode: \"tx-and-rx\",\n    protocols: [],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpNeighborDiscoverySettings(\"test\",\n    discover_interface_list=\"static\",\n    lldp_med_net_policy_vlan=\"1\",\n    mode=\"tx-and-rx\",\n    protocols=[])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpNeighborDiscoverySettings(\"test\", new()\n    {\n        DiscoverInterfaceList = \"static\",\n        LldpMedNetPolicyVlan = \"1\",\n        Mode = \"tx-and-rx\",\n        Protocols = new[] {},\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpNeighborDiscoverySettings(ctx, \"test\", \u0026routeros.IpNeighborDiscoverySettingsArgs{\n\t\t\tDiscoverInterfaceList: pulumi.String(\"static\"),\n\t\t\tLldpMedNetPolicyVlan:  pulumi.String(\"1\"),\n\t\t\tMode:                  pulumi.String(\"tx-and-rx\"),\n\t\t\tProtocols:             pulumi.StringArray{},\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.routeros.IpNeighborDiscoverySettings;\nimport com.pulumi.routeros.IpNeighborDiscoverySettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpNeighborDiscoverySettings(\"test\", IpNeighborDiscoverySettingsArgs.builder()\n            .discoverInterfaceList(\"static\")\n            .lldpMedNetPolicyVlan(\"1\")\n            .mode(\"tx-and-rx\")\n            .protocols()\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpNeighborDiscoverySettings\n    properties:\n      discoverInterfaceList: static\n      lldpMedNetPolicyVlan: '1'\n      mode: tx-and-rx\n      protocols: []\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipNeighborDiscoverySettings:IpNeighborDiscoverySettings test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"discoverInterfaceList":{"type":"string","description":"Interface list on which members the discovery protocol will run on."},"discoverInterval":{"type":"string","description":"An option to adjust the frequency at which neighbor discovery packets are transmitted. The setting is available since RouterOS version 7.16."},"ipNeighborDiscoverySettingsId":{"type":"string"},"lldpDcbx":{"type":"boolean","description":"Whether to send Data Center Bridging Capabilities Exchange Protocol (DCBX) TLVs, which allows to communicate switch QoS settings and capabilities with other neighboring devices using LLDP. **Only applies to CRS3xx, CRS5xx, CCR2116 and CCR2216 devices.**"},"lldpMacPhyConfig":{"type":"boolean","description":"Whether to send MAC/PHY Configuration/Status TLV in LLDP, which indicates the interface capabilities, current setting of the duplex status, bit rate, and auto-negotiation. Only applies to the Ethernet interfaces. While TLV is optional in LLDP, it is mandatory when sending LLDP-MED, meaning this TLV will be included when necessary even though the property is configured as disabled."},"lldpMaxFrameSize":{"type":"boolean","description":"Whether to send Maximum Frame Size TLV in LLDP, which indicates the maximum frame size capability of the interface in bytes (`l2mtu + 18`). Only applies to the Ethernet interfaces."},"lldpMedNetPolicyVlan":{"type":"string","description":"Advertised VLAN ID for LLDP-MED Network Policy TLV. This allows assigning a VLAN ID for LLDP-MED capable devices, such as VoIP phones. The TLV will only be added to interfaces where LLDP-MED capable devices are discovered. Other TLV values are predefined and cannot be changed:\n  * Application Type - Voice\n  * VLAN Type - Tagged\n  * L2 Priority - 0\n  * DSCP Priority - 0\nWhen used together with the bridge interface, the (R/M)STP protocol should be enabled with protocol-mode setting.\nAdditionally, other neighbor discovery protocols (e.g. CDP) should be excluded using protocol setting to avoid LLDP-MED misconfiguration."},"lldpPoePower":{"type":"boolean","description":"Two specific TLVs facilitate Power over Ethernet (PoE) management between Power Sourcing Equipment (PSE) and Powered Devices (PD)."},"lldpVlanInfo":{"type":"boolean","description":"An option whether to send IEEE 802.1 Organizationally Specific TLVs in LLDP related to VLANs. The setting is available since RouterOS version 7.16."},"mode":{"type":"string","description":"Selects the neighbor discovery packet sending and receiving mode. The setting is available since RouterOS version 7.7."},"protocols":{"type":"array","items":{"type":"string"},"description":"List of used discovery protocols."}},"type":"object","required":["ipNeighborDiscoverySettingsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"discoverInterfaceList":{"type":"string","description":"Interface list on which members the discovery protocol will run on."},"discoverInterval":{"type":"string","description":"An option to adjust the frequency at which neighbor discovery packets are transmitted. The setting is available since RouterOS version 7.16."},"ipNeighborDiscoverySettingsId":{"type":"string"},"lldpDcbx":{"type":"boolean","description":"Whether to send Data Center Bridging Capabilities Exchange Protocol (DCBX) TLVs, which allows to communicate switch QoS settings and capabilities with other neighboring devices using LLDP. **Only applies to CRS3xx, CRS5xx, CCR2116 and CCR2216 devices.**"},"lldpMacPhyConfig":{"type":"boolean","description":"Whether to send MAC/PHY Configuration/Status TLV in LLDP, which indicates the interface capabilities, current setting of the duplex status, bit rate, and auto-negotiation. Only applies to the Ethernet interfaces. While TLV is optional in LLDP, it is mandatory when sending LLDP-MED, meaning this TLV will be included when necessary even though the property is configured as disabled."},"lldpMaxFrameSize":{"type":"boolean","description":"Whether to send Maximum Frame Size TLV in LLDP, which indicates the maximum frame size capability of the interface in bytes (`l2mtu + 18`). Only applies to the Ethernet interfaces."},"lldpMedNetPolicyVlan":{"type":"string","description":"Advertised VLAN ID for LLDP-MED Network Policy TLV. This allows assigning a VLAN ID for LLDP-MED capable devices, such as VoIP phones. The TLV will only be added to interfaces where LLDP-MED capable devices are discovered. Other TLV values are predefined and cannot be changed:\n  * Application Type - Voice\n  * VLAN Type - Tagged\n  * L2 Priority - 0\n  * DSCP Priority - 0\nWhen used together with the bridge interface, the (R/M)STP protocol should be enabled with protocol-mode setting.\nAdditionally, other neighbor discovery protocols (e.g. CDP) should be excluded using protocol setting to avoid LLDP-MED misconfiguration."},"lldpPoePower":{"type":"boolean","description":"Two specific TLVs facilitate Power over Ethernet (PoE) management between Power Sourcing Equipment (PSE) and Powered Devices (PD)."},"lldpVlanInfo":{"type":"boolean","description":"An option whether to send IEEE 802.1 Organizationally Specific TLVs in LLDP related to VLANs. The setting is available since RouterOS version 7.16."},"mode":{"type":"string","description":"Selects the neighbor discovery packet sending and receiving mode. The setting is available since RouterOS version 7.7."},"protocols":{"type":"array","items":{"type":"string"},"description":"List of used discovery protocols."}},"stateInputs":{"description":"Input properties used for looking up and filtering IpNeighborDiscoverySettings resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"discoverInterfaceList":{"type":"string","description":"Interface list on which members the discovery protocol will run on."},"discoverInterval":{"type":"string","description":"An option to adjust the frequency at which neighbor discovery packets are transmitted. The setting is available since RouterOS version 7.16."},"ipNeighborDiscoverySettingsId":{"type":"string"},"lldpDcbx":{"type":"boolean","description":"Whether to send Data Center Bridging Capabilities Exchange Protocol (DCBX) TLVs, which allows to communicate switch QoS settings and capabilities with other neighboring devices using LLDP. **Only applies to CRS3xx, CRS5xx, CCR2116 and CCR2216 devices.**"},"lldpMacPhyConfig":{"type":"boolean","description":"Whether to send MAC/PHY Configuration/Status TLV in LLDP, which indicates the interface capabilities, current setting of the duplex status, bit rate, and auto-negotiation. Only applies to the Ethernet interfaces. While TLV is optional in LLDP, it is mandatory when sending LLDP-MED, meaning this TLV will be included when necessary even though the property is configured as disabled."},"lldpMaxFrameSize":{"type":"boolean","description":"Whether to send Maximum Frame Size TLV in LLDP, which indicates the maximum frame size capability of the interface in bytes (`l2mtu + 18`). Only applies to the Ethernet interfaces."},"lldpMedNetPolicyVlan":{"type":"string","description":"Advertised VLAN ID for LLDP-MED Network Policy TLV. This allows assigning a VLAN ID for LLDP-MED capable devices, such as VoIP phones. The TLV will only be added to interfaces where LLDP-MED capable devices are discovered. Other TLV values are predefined and cannot be changed:\n  * Application Type - Voice\n  * VLAN Type - Tagged\n  * L2 Priority - 0\n  * DSCP Priority - 0\nWhen used together with the bridge interface, the (R/M)STP protocol should be enabled with protocol-mode setting.\nAdditionally, other neighbor discovery protocols (e.g. CDP) should be excluded using protocol setting to avoid LLDP-MED misconfiguration."},"lldpPoePower":{"type":"boolean","description":"Two specific TLVs facilitate Power over Ethernet (PoE) management between Power Sourcing Equipment (PSE) and Powered Devices (PD)."},"lldpVlanInfo":{"type":"boolean","description":"An option whether to send IEEE 802.1 Organizationally Specific TLVs in LLDP related to VLANs. The setting is available since RouterOS version 7.16."},"mode":{"type":"string","description":"Selects the neighbor discovery packet sending and receiving mode. The setting is available since RouterOS version 7.7."},"protocols":{"type":"array","items":{"type":"string"},"description":"List of used discovery protocols."}},"type":"object"}},"routeros:index/ipPool:IpPool":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst pool = new routeros.IpPool(\"pool\", {\n    name: \"my_ip_pool\",\n    ranges: [\"10.0.0.100-10.0.0.200\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\npool = routeros.IpPool(\"pool\",\n    name=\"my_ip_pool\",\n    ranges=[\"10.0.0.100-10.0.0.200\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var pool = new Routeros.IpPool(\"pool\", new()\n    {\n        Name = \"my_ip_pool\",\n        Ranges = new[]\n        {\n            \"10.0.0.100-10.0.0.200\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpPool(ctx, \"pool\", \u0026routeros.IpPoolArgs{\n\t\t\tName: pulumi.String(\"my_ip_pool\"),\n\t\t\tRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.100-10.0.0.200\"),\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.routeros.IpPool;\nimport com.pulumi.routeros.IpPoolArgs;\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 pool = new IpPool(\"pool\", IpPoolArgs.builder()\n            .name(\"my_ip_pool\")\n            .ranges(\"10.0.0.100-10.0.0.200\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pool:\n    type: routeros:IpPool\n    properties:\n      name: my_ip_pool\n      ranges:\n        - 10.0.0.100-10.0.0.200\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/pool get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipPool:IpPool pool \"*1\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipPoolId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"nextPool":{"type":"string","description":"When address is acquired from pool that has no free addresses, and next-pool property is set to another pool, then next IP address will be acquired from next-pool.\n"},"ranges":{"type":"array","items":{"type":"string"},"description":"IP address list of non-overlapping IP address ranges in form of: [\"from1-to1\", \"from2-to2\", ..., \"fromN-toN\"]. For example, [\"10.0.0.1-10.0.0.27\", \"10.0.0.32-10.0.0.47\"]\n"}},"type":"object","required":["ipPoolId","name","ranges"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipPoolId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"nextPool":{"type":"string","description":"When address is acquired from pool that has no free addresses, and next-pool property is set to another pool, then next IP address will be acquired from next-pool.\n"},"ranges":{"type":"array","items":{"type":"string"},"description":"IP address list of non-overlapping IP address ranges in form of: [\"from1-to1\", \"from2-to2\", ..., \"fromN-toN\"]. For example, [\"10.0.0.1-10.0.0.27\", \"10.0.0.32-10.0.0.47\"]\n"}},"requiredInputs":["ranges"],"stateInputs":{"description":"Input properties used for looking up and filtering IpPool resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipPoolId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string"},"nextPool":{"type":"string","description":"When address is acquired from pool that has no free addresses, and next-pool property is set to another pool, then next IP address will be acquired from next-pool.\n"},"ranges":{"type":"array","items":{"type":"string"},"description":"IP address list of non-overlapping IP address ranges in form of: [\"from1-to1\", \"from2-to2\", ..., \"fromN-toN\"]. For example, [\"10.0.0.1-10.0.0.27\", \"10.0.0.32-10.0.0.47\"]\n"}},"type":"object"}},"routeros:index/ipRoute:IpRoute":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst aRoute = new routeros.IpRoute(\"a_route\", {\n    dstAddress: \"0.0.0.0/0\",\n    gateway: \"10.0.0.1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\na_route = routeros.IpRoute(\"a_route\",\n    dst_address=\"0.0.0.0/0\",\n    gateway=\"10.0.0.1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var aRoute = new Routeros.IpRoute(\"a_route\", new()\n    {\n        DstAddress = \"0.0.0.0/0\",\n        Gateway = \"10.0.0.1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpRoute(ctx, \"a_route\", \u0026routeros.IpRouteArgs{\n\t\t\tDstAddress: pulumi.String(\"0.0.0.0/0\"),\n\t\t\tGateway:    pulumi.String(\"10.0.0.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.routeros.IpRoute;\nimport com.pulumi.routeros.IpRouteArgs;\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 aRoute = new IpRoute(\"aRoute\", IpRouteArgs.builder()\n            .dstAddress(\"0.0.0.0/0\")\n            .gateway(\"10.0.0.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  aRoute:\n    type: routeros:IpRoute\n    name: a_route\n    properties:\n      dstAddress: 0.0.0.0/0\n      gateway: 10.0.0.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/route get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipRoute:IpRoute a_route \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipRoute:IpRoute a_route \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"active":{"type":"boolean","description":"A flag indicates whether the route is elected as Active and eligible to be added to the FIB.\n"},"blackhole":{"type":"boolean","description":"It's a blackhole route. If you need to cancel route marking, then simply delete the parameter from the configuration of the TF. The value of the parameter (true or false) has no effect on the MT processing logic.\n"},"checkGateway":{"type":"string","description":"Currently used check-gateway option.\n"},"comment":{"type":"string"},"connect":{"type":"boolean","description":"The route is directly reachable.\n"},"dhcp":{"type":"boolean","description":"A flag indicates whether the route was added by the DHCP service.\n"},"disabled":{"type":"boolean"},"distance":{"type":"number","description":"Value used in route selection. Routes with smaller distance value are given preference.\n"},"dstAddress":{"type":"string","description":"IP prefix of route, specifies destination addresses that this route can be used for.\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"ecmp":{"type":"boolean","description":"A flag indicates whether the route is added as an Equal-Cost Multi-Path route in the FIB.\n"},"gateway":{"type":"string","description":"Array of IP addresses or interface names. Specifies which host or interface packets should be sent to (IP | interface | IP%interface | IP@table[, IP | string, [..]]).\n"},"hwOffloaded":{"type":"boolean","description":"Indicates whether the route is eligible to be hardware offloaded on supported hardware.\n"},"immediateGw":{"type":"string","description":"Shows actual (resolved) gateway and interface that will be used for packet forwarding.\n"},"inactive":{"type":"boolean"},"ipRouteId":{"type":"string","description":"The ID of this resource.\n"},"localAddress":{"type":"string","description":"Local IP address of the connected network.\n"},"prefSrc":{"type":"string","description":"Which of the local IP addresses to use for locally originated packets that are sent via this route. Value of this property has no effect on forwarded packets. If value of this property is set to IP address that is not local address of this router then the route will be inactive (in ROS v6, ROS v7 allows IP spoofing).\n"},"routingTable":{"type":"string","description":"Routing table this route belongs to.\n"},"scope":{"type":"number","description":"Used in nexthop resolution. Route can resolve nexthop only through routes that have scope less than or equal to the target-scope of this route.\n"},"static":{"type":"boolean"},"suppressHwOffload":{"type":"boolean"},"targetScope":{"type":"number","description":"Used in nexthop resolution. This is the maximum value of scope for a route through which a nexthop of this route can be resolved.\n"},"vrfInterface":{"type":"string","description":"VRF interface name.\n"}},"type":"object","required":["active","connect","dhcp","dynamic","ecmp","gateway","hwOffloaded","immediateGw","inactive","ipRouteId","localAddress","static","vrfInterface"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"blackhole":{"type":"boolean","description":"It's a blackhole route. If you need to cancel route marking, then simply delete the parameter from the configuration of the TF. The value of the parameter (true or false) has no effect on the MT processing logic.\n"},"checkGateway":{"type":"string","description":"Currently used check-gateway option.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"distance":{"type":"number","description":"Value used in route selection. Routes with smaller distance value are given preference.\n"},"dstAddress":{"type":"string","description":"IP prefix of route, specifies destination addresses that this route can be used for.\n"},"gateway":{"type":"string","description":"Array of IP addresses or interface names. Specifies which host or interface packets should be sent to (IP | interface | IP%interface | IP@table[, IP | string, [..]]).\n"},"ipRouteId":{"type":"string","description":"The ID of this resource.\n"},"prefSrc":{"type":"string","description":"Which of the local IP addresses to use for locally originated packets that are sent via this route. Value of this property has no effect on forwarded packets. If value of this property is set to IP address that is not local address of this router then the route will be inactive (in ROS v6, ROS v7 allows IP spoofing).\n"},"routingTable":{"type":"string","description":"Routing table this route belongs to.\n"},"scope":{"type":"number","description":"Used in nexthop resolution. Route can resolve nexthop only through routes that have scope less than or equal to the target-scope of this route.\n"},"suppressHwOffload":{"type":"boolean"},"targetScope":{"type":"number","description":"Used in nexthop resolution. This is the maximum value of scope for a route through which a nexthop of this route can be resolved.\n"},"vrfInterface":{"type":"string","description":"VRF interface name.\n"}},"requiredInputs":["gateway"],"stateInputs":{"description":"Input properties used for looking up and filtering IpRoute resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"active":{"type":"boolean","description":"A flag indicates whether the route is elected as Active and eligible to be added to the FIB.\n"},"blackhole":{"type":"boolean","description":"It's a blackhole route. If you need to cancel route marking, then simply delete the parameter from the configuration of the TF. The value of the parameter (true or false) has no effect on the MT processing logic.\n"},"checkGateway":{"type":"string","description":"Currently used check-gateway option.\n"},"comment":{"type":"string"},"connect":{"type":"boolean","description":"The route is directly reachable.\n"},"dhcp":{"type":"boolean","description":"A flag indicates whether the route was added by the DHCP service.\n"},"disabled":{"type":"boolean"},"distance":{"type":"number","description":"Value used in route selection. Routes with smaller distance value are given preference.\n"},"dstAddress":{"type":"string","description":"IP prefix of route, specifies destination addresses that this route can be used for.\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"ecmp":{"type":"boolean","description":"A flag indicates whether the route is added as an Equal-Cost Multi-Path route in the FIB.\n"},"gateway":{"type":"string","description":"Array of IP addresses or interface names. Specifies which host or interface packets should be sent to (IP | interface | IP%interface | IP@table[, IP | string, [..]]).\n"},"hwOffloaded":{"type":"boolean","description":"Indicates whether the route is eligible to be hardware offloaded on supported hardware.\n"},"immediateGw":{"type":"string","description":"Shows actual (resolved) gateway and interface that will be used for packet forwarding.\n"},"inactive":{"type":"boolean"},"ipRouteId":{"type":"string","description":"The ID of this resource.\n"},"localAddress":{"type":"string","description":"Local IP address of the connected network.\n"},"prefSrc":{"type":"string","description":"Which of the local IP addresses to use for locally originated packets that are sent via this route. Value of this property has no effect on forwarded packets. If value of this property is set to IP address that is not local address of this router then the route will be inactive (in ROS v6, ROS v7 allows IP spoofing).\n"},"routingTable":{"type":"string","description":"Routing table this route belongs to.\n"},"scope":{"type":"number","description":"Used in nexthop resolution. Route can resolve nexthop only through routes that have scope less than or equal to the target-scope of this route.\n"},"static":{"type":"boolean"},"suppressHwOffload":{"type":"boolean"},"targetScope":{"type":"number","description":"Used in nexthop resolution. This is the maximum value of scope for a route through which a nexthop of this route can be resolved.\n"},"vrfInterface":{"type":"string","description":"VRF interface name.\n"}},"type":"object"}},"routeros:index/ipService:IpService":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst tlsService = {\n    \"api-ssl\": 8729,\n    \"www-ssl\": 443,\n};\nconst disableService = {\n    api: 8728,\n    ftp: 21,\n    telnet: 23,\n    www: 80,\n};\nconst enableService = {\n    ssh: 22,\n    winbox: 8291,\n};\nconst tlsCert = new routeros.SystemCertificate(\"tls_cert\", {\n    signs: [{}],\n    name: \"tls-cert\",\n    commonName: \"Mikrotik Router\",\n    daysValid: 3650,\n    keyUsages: [\n        \"key-cert-sign\",\n        \"crl-sign\",\n        \"digital-signature\",\n        \"key-agreement\",\n        \"tls-server\",\n    ],\n    keySize: \"prime256v1\",\n});\n// terraform state rm 'routeros_ip_service.tls[\"www-ssl\"]'\n// terraform import 'routeros_ip_service.tls[\"www-ssl\"]' www-ssl\nconst tls: routeros.IpService[] = [];\nfor (const range of Object.entries(tlsService).map(([k, v]) =\u003e ({key: k, value: v}))) {\n    tls.push(new routeros.IpService(`tls-${range.key}`, {\n        numbers: range.key,\n        port: range.value,\n        certificate: tlsCert.name,\n        tlsVersion: \"only-1.2\",\n        disabled: false,\n    }));\n}\nconst disabled: routeros.IpService[] = [];\nfor (const range of Object.entries(disableService).map(([k, v]) =\u003e ({key: k, value: v}))) {\n    disabled.push(new routeros.IpService(`disabled-${range.key}`, {\n        numbers: range.key,\n        port: range.value,\n        disabled: true,\n    }));\n}\nconst enabled: routeros.IpService[] = [];\nfor (const range of Object.entries(enableService).map(([k, v]) =\u003e ({key: k, value: v}))) {\n    enabled.push(new routeros.IpService(`enabled-${range.key}`, {\n        numbers: range.key,\n        port: range.value,\n        disabled: false,\n    }));\n}\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntls_service = {\n    \"api-ssl\": 8729,\n    \"www-ssl\": 443,\n}\ndisable_service = {\n    \"api\": 8728,\n    \"ftp\": 21,\n    \"telnet\": 23,\n    \"www\": 80,\n}\nenable_service = {\n    \"ssh\": 22,\n    \"winbox\": 8291,\n}\ntls_cert = routeros.SystemCertificate(\"tls_cert\",\n    signs=[{}],\n    name=\"tls-cert\",\n    common_name=\"Mikrotik Router\",\n    days_valid=3650,\n    key_usages=[\n        \"key-cert-sign\",\n        \"crl-sign\",\n        \"digital-signature\",\n        \"key-agreement\",\n        \"tls-server\",\n    ],\n    key_size=\"prime256v1\")\n# terraform state rm 'routeros_ip_service.tls[\"www-ssl\"]'\n# terraform import 'routeros_ip_service.tls[\"www-ssl\"]' www-ssl\ntls = []\nfor range in [{\"key\": k, \"value\": v} for [k, v] in enumerate(tls_service)]:\n    tls.append(routeros.IpService(f\"tls-{range['key']}\",\n        numbers=range[\"key\"],\n        port=range[\"value\"],\n        certificate=tls_cert.name,\n        tls_version=\"only-1.2\",\n        disabled=False))\ndisabled = []\nfor range in [{\"key\": k, \"value\": v} for [k, v] in enumerate(disable_service)]:\n    disabled.append(routeros.IpService(f\"disabled-{range['key']}\",\n        numbers=range[\"key\"],\n        port=range[\"value\"],\n        disabled=True))\nenabled = []\nfor range in [{\"key\": k, \"value\": v} for [k, v] in enumerate(enable_service)]:\n    enabled.append(routeros.IpService(f\"enabled-{range['key']}\",\n        numbers=range[\"key\"],\n        port=range[\"value\"],\n        disabled=False))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var tlsService = \n    {\n        { \"api-ssl\", 8729 },\n        { \"www-ssl\", 443 },\n    };\n\n    var disableService = \n    {\n        { \"api\", 8728 },\n        { \"ftp\", 21 },\n        { \"telnet\", 23 },\n        { \"www\", 80 },\n    };\n\n    var enableService = \n    {\n        { \"ssh\", 22 },\n        { \"winbox\", 8291 },\n    };\n\n    var tlsCert = new Routeros.SystemCertificate(\"tls_cert\", new()\n    {\n        Signs = new[]\n        {\n            null,\n        },\n        Name = \"tls-cert\",\n        CommonName = \"Mikrotik Router\",\n        DaysValid = 3650,\n        KeyUsages = new[]\n        {\n            \"key-cert-sign\",\n            \"crl-sign\",\n            \"digital-signature\",\n            \"key-agreement\",\n            \"tls-server\",\n        },\n        KeySize = \"prime256v1\",\n    });\n\n    // terraform state rm 'routeros_ip_service.tls[\"www-ssl\"]'\n    // terraform import 'routeros_ip_service.tls[\"www-ssl\"]' www-ssl\n    var tls = new List\u003cRouteros.IpService\u003e();\n    foreach (var range in tlsService.Select(pair =\u003e new { pair.Key, pair.Value }))\n    {\n        tls.Add(new Routeros.IpService($\"tls-{range.Key}\", new()\n        {\n            Numbers = range.Key,\n            Port = range.Value,\n            Certificate = tlsCert.Name,\n            TlsVersion = \"only-1.2\",\n            Disabled = false,\n        }));\n    }\n    var disabled = new List\u003cRouteros.IpService\u003e();\n    foreach (var range in disableService.Select(pair =\u003e new { pair.Key, pair.Value }))\n    {\n        disabled.Add(new Routeros.IpService($\"disabled-{range.Key}\", new()\n        {\n            Numbers = range.Key,\n            Port = range.Value,\n            Disabled = true,\n        }));\n    }\n    var enabled = new List\u003cRouteros.IpService\u003e();\n    foreach (var range in enableService.Select(pair =\u003e new { pair.Key, pair.Value }))\n    {\n        enabled.Add(new Routeros.IpService($\"enabled-{range.Key}\", new()\n        {\n            Numbers = range.Key,\n            Port = range.Value,\n            Disabled = false,\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttlsService := map[string]interface{}{\n\t\t\t\"api-ssl\": 8729,\n\t\t\t\"www-ssl\": 443,\n\t\t}\n\t\tdisableService := map[string]interface{}{\n\t\t\t\"api\":    8728,\n\t\t\t\"ftp\":    21,\n\t\t\t\"telnet\": 23,\n\t\t\t\"www\":    80,\n\t\t}\n\t\tenableService := map[string]interface{}{\n\t\t\t\"ssh\":    22,\n\t\t\t\"winbox\": 8291,\n\t\t}\n\t\ttlsCert, err := routeros.NewSystemCertificate(ctx, \"tls_cert\", \u0026routeros.SystemCertificateArgs{\n\t\t\tSigns: routeros.SystemCertificateSignArray{\n\t\t\t\t\u0026routeros.SystemCertificateSignArgs{},\n\t\t\t},\n\t\t\tName:       pulumi.String(\"tls-cert\"),\n\t\t\tCommonName: pulumi.String(\"Mikrotik Router\"),\n\t\t\tDaysValid:  pulumi.Float64(3650),\n\t\t\tKeyUsages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"key-cert-sign\"),\n\t\t\t\tpulumi.String(\"crl-sign\"),\n\t\t\t\tpulumi.String(\"digital-signature\"),\n\t\t\t\tpulumi.String(\"key-agreement\"),\n\t\t\t\tpulumi.String(\"tls-server\"),\n\t\t\t},\n\t\t\tKeySize: pulumi.String(\"prime256v1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// terraform state rm 'routeros_ip_service.tls[\"www-ssl\"]'\n\t\t// terraform import 'routeros_ip_service.tls[\"www-ssl\"]' www-ssl\n\t\tvar tls []*routeros.IpService\n\t\tfor key0, val0 := range tlsService {\n\t\t\t__res, err := routeros.NewIpService(ctx, fmt.Sprintf(\"tls-%v\", key0), \u0026routeros.IpServiceArgs{\n\t\t\t\tNumbers:     pulumi.String(key0),\n\t\t\t\tPort:        pulumi.Float64(val0),\n\t\t\t\tCertificate: tlsCert.Name,\n\t\t\t\tTlsVersion:  pulumi.String(\"only-1.2\"),\n\t\t\t\tDisabled:    pulumi.Bool(false),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\ttls = append(tls, __res)\n\t\t}\n\t\tvar disabled []*routeros.IpService\n\t\tfor key0, val0 := range disableService {\n\t\t\t__res, err := routeros.NewIpService(ctx, fmt.Sprintf(\"disabled-%v\", key0), \u0026routeros.IpServiceArgs{\n\t\t\t\tNumbers:  pulumi.String(key0),\n\t\t\t\tPort:     pulumi.Float64(val0),\n\t\t\t\tDisabled: pulumi.Bool(true),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdisabled = append(disabled, __res)\n\t\t}\n\t\tvar enabled []*routeros.IpService\n\t\tfor key0, val0 := range enableService {\n\t\t\t__res, err := routeros.NewIpService(ctx, fmt.Sprintf(\"enabled-%v\", key0), \u0026routeros.IpServiceArgs{\n\t\t\t\tNumbers:  pulumi.String(key0),\n\t\t\t\tPort:     pulumi.Float64(val0),\n\t\t\t\tDisabled: pulumi.Bool(false),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tenabled = append(enabled, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.routeros.SystemCertificate;\nimport com.pulumi.routeros.SystemCertificateArgs;\nimport com.pulumi.routeros.inputs.SystemCertificateSignArgs;\nimport com.pulumi.routeros.IpService;\nimport com.pulumi.routeros.IpServiceArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var tlsService = Map.ofEntries(\n            Map.entry(\"api-ssl\", 8729),\n            Map.entry(\"www-ssl\", 443)\n        );\n\n        final var disableService = Map.ofEntries(\n            Map.entry(\"api\", 8728),\n            Map.entry(\"ftp\", 21),\n            Map.entry(\"telnet\", 23),\n            Map.entry(\"www\", 80)\n        );\n\n        final var enableService = Map.ofEntries(\n            Map.entry(\"ssh\", 22),\n            Map.entry(\"winbox\", 8291)\n        );\n\n        var tlsCert = new SystemCertificate(\"tlsCert\", SystemCertificateArgs.builder()\n            .signs(SystemCertificateSignArgs.builder()\n                .build())\n            .name(\"tls-cert\")\n            .commonName(\"Mikrotik Router\")\n            .daysValid(3650.0)\n            .keyUsages(            \n                \"key-cert-sign\",\n                \"crl-sign\",\n                \"digital-signature\",\n                \"key-agreement\",\n                \"tls-server\")\n            .keySize(\"prime256v1\")\n            .build());\n\n        // terraform state rm 'routeros_ip_service.tls[\"www-ssl\"]'\n        // terraform import 'routeros_ip_service.tls[\"www-ssl\"]' www-ssl\n        for (var range : KeyedValue.of(tlsService)) {\n            new IpService(\"tls-\" + range.key(), IpServiceArgs.builder()\n                .numbers(range.key())\n                .port(range.value())\n                .certificate(tlsCert.name())\n                .tlsVersion(\"only-1.2\")\n                .disabled(false)\n                .build());\n        }\n\n        for (var range : KeyedValue.of(disableService)) {\n            new IpService(\"disabled-\" + range.key(), IpServiceArgs.builder()\n                .numbers(range.key())\n                .port(range.value())\n                .disabled(true)\n                .build());\n        }\n\n        for (var range : KeyedValue.of(enableService)) {\n            new IpService(\"enabled-\" + range.key(), IpServiceArgs.builder()\n                .numbers(range.key())\n                .port(range.value())\n                .disabled(false)\n                .build());\n        }\n\n    }\n}\n```\n```yaml\nresources:\n  tlsCert:\n    type: routeros:SystemCertificate\n    name: tls_cert\n    properties:\n      signs:\n        - {}\n      name: tls-cert\n      commonName: Mikrotik Router\n      daysValid: 3650\n      keyUsages:\n        - key-cert-sign\n        - crl-sign\n        - digital-signature\n        - key-agreement\n        - tls-server\n      keySize: prime256v1\n  # terraform state rm 'routeros_ip_service.tls[\"www-ssl\"]'\n  # terraform import 'routeros_ip_service.tls[\"www-ssl\"]' www-ssl\n  tls:\n    type: routeros:IpService\n    properties:\n      numbers: ${range.key}\n      port: ${range.value}\n      certificate: ${tlsCert.name}\n      tlsVersion: only-1.2\n      disabled: false\n    options: {}\n  disabled:\n    type: routeros:IpService\n    properties:\n      numbers: ${range.key}\n      port: ${range.value}\n      disabled: true\n    options: {}\n  enabled:\n    type: routeros:IpService\n    properties:\n      numbers: ${range.key}\n      port: ${range.value}\n      disabled: false\n    options: {}\nvariables:\n  tlsService:\n    api-ssl: 8729\n    www-ssl: 443\n  disableService:\n    api: 8728\n    ftp: 21\n    telnet: 23\n    www: 80\n  enableService:\n    ssh: 22\n    winbox: 8291\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImport with the name of the ip service in case of the example use www-ssl\n\n```sh\n$ pulumi import routeros:index/ipService:IpService www_ssl www-ssl\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipService:IpService www_ssl \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"List of IP/IPv6 prefixes from which the service is accessible.\n"},"certificate":{"type":"string","description":"The name of the certificate used by a particular service. Applicable only for services that depend on certificates ( www-ssl, api-ssl ).\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"invalid":{"type":"boolean"},"ipServiceId":{"type":"string","description":"The ID of this resource.\n"},"maxSessions":{"type":"number","description":"Maximum number of concurrent connections to a particular service. This option is available in RouterOS starting from version 7.16.\n"},"name":{"type":"string","description":"Service name.\n"},"numbers":{"type":"string","description":"The name of the service whose settings will be changed ( api, api-ssl, ftp, ssh, telnet, winbox, www, www-ssl ).\n"},"port":{"type":"number","description":"The port particular service listens on.\n"},"proto":{"type":"string"},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow by a particular service.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object","required":["dynamic","invalid","ipServiceId","name","numbers","port","proto"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"List of IP/IPv6 prefixes from which the service is accessible.\n"},"certificate":{"type":"string","description":"The name of the certificate used by a particular service. Applicable only for services that depend on certificates ( www-ssl, api-ssl ).\n"},"disabled":{"type":"boolean"},"ipServiceId":{"type":"string","description":"The ID of this resource.\n"},"maxSessions":{"type":"number","description":"Maximum number of concurrent connections to a particular service. This option is available in RouterOS starting from version 7.16.\n"},"numbers":{"type":"string","description":"The name of the service whose settings will be changed ( api, api-ssl, ftp, ssh, telnet, winbox, www, www-ssl ).\n"},"port":{"type":"number","description":"The port particular service listens on.\n"},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow by a particular service.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"requiredInputs":["numbers","port"],"stateInputs":{"description":"Input properties used for looking up and filtering IpService resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"List of IP/IPv6 prefixes from which the service is accessible.\n"},"certificate":{"type":"string","description":"The name of the certificate used by a particular service. Applicable only for services that depend on certificates ( www-ssl, api-ssl ).\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"invalid":{"type":"boolean"},"ipServiceId":{"type":"string","description":"The ID of this resource.\n"},"maxSessions":{"type":"number","description":"Maximum number of concurrent connections to a particular service. This option is available in RouterOS starting from version 7.16.\n"},"name":{"type":"string","description":"Service name.\n"},"numbers":{"type":"string","description":"The name of the service whose settings will be changed ( api, api-ssl, ftp, ssh, telnet, winbox, www, www-ssl ).\n"},"port":{"type":"number","description":"The port particular service listens on.\n"},"proto":{"type":"string"},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow by a particular service.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object"}},"routeros:index/ipSettings:IpSettings":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.IpSettings(\"settings\", {ipv4MultipathHashPolicy: \"l3-inner\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.IpSettings(\"settings\", ipv4_multipath_hash_policy=\"l3-inner\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.IpSettings(\"settings\", new()\n    {\n        Ipv4MultipathHashPolicy = \"l3-inner\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpSettings(ctx, \"settings\", \u0026routeros.IpSettingsArgs{\n\t\t\tIpv4MultipathHashPolicy: pulumi.String(\"l3-inner\"),\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.routeros.IpSettings;\nimport com.pulumi.routeros.IpSettingsArgs;\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 settings = new IpSettings(\"settings\", IpSettingsArgs.builder()\n            .ipv4MultipathHashPolicy(\"l3-inner\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:IpSettings\n    properties:\n      ipv4MultipathHashPolicy: l3-inner\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipSettings:IpSettings settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acceptRedirects":{"type":"boolean","description":"Whether to accept ICMP redirect messages. Typically should be enabled on the host and disabled on routers."},"acceptSourceRoute":{"type":"boolean","description":"Whether to accept packets with the SRR option. Typically should be enabled on the router."},"allowFastPath":{"type":"boolean","description":"Allows Fast Path."},"arpTimeout":{"type":"string","description":"Sets Linux\u003cspan pulumi-lang-nodejs=\" baseReachableTime \" pulumi-lang-dotnet=\" BaseReachableTime \" pulumi-lang-go=\" baseReachableTime \" pulumi-lang-python=\" base_reachable_time \" pulumi-lang-yaml=\" baseReachableTime \" pulumi-lang-java=\" baseReachableTime \"\u003e base_reachable_time \u003c/span\u003e(base_reachable_time_ms) on all interfaces that use ARP. The initial validity of the ARP entry is picked from the interval [timeout/2 - 3*timeout/2] (default from 15s to 45s) after the neighbor was found. Can use postfix ms, s, m, h, d for milliseconds, seconds, minutes, hours, or days. if no postfix is set then seconds (s) are used. The parameter means how long a valid ARP record will be considered complete if no one communicates with the specific MAC/IP during this time. The parameter does not represent a time when an ARP entry is removed from the ARP cache (see max-neighbor-entries setting)."},"icmpErrorsUseInboundInterfaceAddress":{"type":"boolean","description":"If enabled, the ICMP error message reply will be sent with the source address equal to primary address of the receiving interface that caused the error . This feature can be useful for complex network debugging."},"icmpRateLimit":{"type":"number","description":"Limit the maximum rates for sending ICMP packets whose type matches icmp-rate-mask to specific targets. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e disables any limiting, other values indicate the minimum space between responses in milliseconds."},"icmpRateMask":{"type":"string","description":"Mask made of ICMP types for which rates are being limited."},"ipForward":{"type":"boolean","description":"Enable/disable packet forwarding between interfaces. Resets all configuration parameters to defaults according to RFC1812 for routers."},"ipSettingsId":{"type":"string"},"ipv4MultipathHashPolicy":{"type":"string","description":"IPv4 Hash policy used for ECMP routing in `/ip/settings` menu\n  * l3 -- layer-3 hashing of src IP, dst IP\n  * l3-inner -- layer-3 hashing or inner layer-3 hashing if available\n  * l4 -- layer-4 hashing of src IP, dst IP, IP protocol, src port, dst port"},"maxNeighborEntries":{"type":"number","description":"Sets Linux gc_thresh3. A maximum number of allowed neighbors in the ARP table. Since `RouterOS version 7.1`, the default value depends on the installed amount of RAM. It is possible to set a higher value than the default, but it increases the risk of out-of-memory condition.\nThe default values for certain RAM sizes:\n  *  2048 for 64 MB,\n  *  4096 for 128 MB,\n  *  8192 for 256 MB,\n  *  16384 for 512 MB or higher.\nThe ARP cache stores ARP entries, and if some of these entries are incomplete, they can stay in the cache for an indefinite period of time. This will only happen if the number of entries in the cache is less than one-fourth of the maximum number allowed. The reason for this is to prevent the unnecessary running of the garbage-collector when the ARP table is not close to being full."},"routeCache":{"type":"boolean","description":"Disable or enable the Linux route cache. Note that disabling the route cache, will also disable the fast path."},"rpFilter":{"type":"string","description":"Disables or enables source validation.\n  *  no - No source validation.\n  *  strict - Strict mode as defined in RFC3704 Strict Reverse Path. Each incoming packet is tested against the FIB and if the interface is not the best reverse path the packet check will fail. By default failed packets are discarded.\n  *  loose - Loose mode as defined in RFC3704 Loose Reverse Path. Each incoming packet's source address is also tested against the FIB and if the source address is not reachable via any interface the packet check will fail.\nThe current recommended practice in RFC3704 is to enable strict mode to prevent IP spoofing from DDoS attacks. If using asymmetric routing or other complicated routing or VRRP, then the loose mode is recommended.\n`Warning`: strict mode does not work with routing tables"},"secureRedirects":{"type":"boolean","description":"Accept ICMP redirect messages only for gateways, listed in the default gateway list."},"sendRedirects":{"type":"boolean","description":"Whether to send ICMP redirects. Recommended to be enabled on routers."},"tcpSyncookies":{"type":"boolean","description":"end out syncookies when the syn backlog queue of a socket overflows. This is to prevent the common 'SYN flood attack'. syncookies seriously violate TCP protocol, and disallow the use of TCP extensions, which can result in serious degradation of some services (f.e. SMTP relaying), visible not by you, but to your clients and relays, contacting you."},"tcpTimestamps":{"type":"string","description":"Parameter allows to enable/disable TCP timestamps or add random offset to TCP timestamp (default behavior). Disabling timestamps completely may help to reduce spikes of performance drops."}},"type":"object","required":["ipSettingsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acceptRedirects":{"type":"boolean","description":"Whether to accept ICMP redirect messages. Typically should be enabled on the host and disabled on routers."},"acceptSourceRoute":{"type":"boolean","description":"Whether to accept packets with the SRR option. Typically should be enabled on the router."},"allowFastPath":{"type":"boolean","description":"Allows Fast Path."},"arpTimeout":{"type":"string","description":"Sets Linux\u003cspan pulumi-lang-nodejs=\" baseReachableTime \" pulumi-lang-dotnet=\" BaseReachableTime \" pulumi-lang-go=\" baseReachableTime \" pulumi-lang-python=\" base_reachable_time \" pulumi-lang-yaml=\" baseReachableTime \" pulumi-lang-java=\" baseReachableTime \"\u003e base_reachable_time \u003c/span\u003e(base_reachable_time_ms) on all interfaces that use ARP. The initial validity of the ARP entry is picked from the interval [timeout/2 - 3*timeout/2] (default from 15s to 45s) after the neighbor was found. Can use postfix ms, s, m, h, d for milliseconds, seconds, minutes, hours, or days. if no postfix is set then seconds (s) are used. The parameter means how long a valid ARP record will be considered complete if no one communicates with the specific MAC/IP during this time. The parameter does not represent a time when an ARP entry is removed from the ARP cache (see max-neighbor-entries setting)."},"icmpErrorsUseInboundInterfaceAddress":{"type":"boolean","description":"If enabled, the ICMP error message reply will be sent with the source address equal to primary address of the receiving interface that caused the error . This feature can be useful for complex network debugging."},"icmpRateLimit":{"type":"number","description":"Limit the maximum rates for sending ICMP packets whose type matches icmp-rate-mask to specific targets. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e disables any limiting, other values indicate the minimum space between responses in milliseconds."},"icmpRateMask":{"type":"string","description":"Mask made of ICMP types for which rates are being limited."},"ipForward":{"type":"boolean","description":"Enable/disable packet forwarding between interfaces. Resets all configuration parameters to defaults according to RFC1812 for routers."},"ipSettingsId":{"type":"string"},"ipv4MultipathHashPolicy":{"type":"string","description":"IPv4 Hash policy used for ECMP routing in `/ip/settings` menu\n  * l3 -- layer-3 hashing of src IP, dst IP\n  * l3-inner -- layer-3 hashing or inner layer-3 hashing if available\n  * l4 -- layer-4 hashing of src IP, dst IP, IP protocol, src port, dst port"},"maxNeighborEntries":{"type":"number","description":"Sets Linux gc_thresh3. A maximum number of allowed neighbors in the ARP table. Since `RouterOS version 7.1`, the default value depends on the installed amount of RAM. It is possible to set a higher value than the default, but it increases the risk of out-of-memory condition.\nThe default values for certain RAM sizes:\n  *  2048 for 64 MB,\n  *  4096 for 128 MB,\n  *  8192 for 256 MB,\n  *  16384 for 512 MB or higher.\nThe ARP cache stores ARP entries, and if some of these entries are incomplete, they can stay in the cache for an indefinite period of time. This will only happen if the number of entries in the cache is less than one-fourth of the maximum number allowed. The reason for this is to prevent the unnecessary running of the garbage-collector when the ARP table is not close to being full."},"routeCache":{"type":"boolean","description":"Disable or enable the Linux route cache. Note that disabling the route cache, will also disable the fast path."},"rpFilter":{"type":"string","description":"Disables or enables source validation.\n  *  no - No source validation.\n  *  strict - Strict mode as defined in RFC3704 Strict Reverse Path. Each incoming packet is tested against the FIB and if the interface is not the best reverse path the packet check will fail. By default failed packets are discarded.\n  *  loose - Loose mode as defined in RFC3704 Loose Reverse Path. Each incoming packet's source address is also tested against the FIB and if the source address is not reachable via any interface the packet check will fail.\nThe current recommended practice in RFC3704 is to enable strict mode to prevent IP spoofing from DDoS attacks. If using asymmetric routing or other complicated routing or VRRP, then the loose mode is recommended.\n`Warning`: strict mode does not work with routing tables"},"secureRedirects":{"type":"boolean","description":"Accept ICMP redirect messages only for gateways, listed in the default gateway list."},"sendRedirects":{"type":"boolean","description":"Whether to send ICMP redirects. Recommended to be enabled on routers."},"tcpSyncookies":{"type":"boolean","description":"end out syncookies when the syn backlog queue of a socket overflows. This is to prevent the common 'SYN flood attack'. syncookies seriously violate TCP protocol, and disallow the use of TCP extensions, which can result in serious degradation of some services (f.e. SMTP relaying), visible not by you, but to your clients and relays, contacting you."},"tcpTimestamps":{"type":"string","description":"Parameter allows to enable/disable TCP timestamps or add random offset to TCP timestamp (default behavior). Disabling timestamps completely may help to reduce spikes of performance drops."}},"stateInputs":{"description":"Input properties used for looking up and filtering IpSettings resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acceptRedirects":{"type":"boolean","description":"Whether to accept ICMP redirect messages. Typically should be enabled on the host and disabled on routers."},"acceptSourceRoute":{"type":"boolean","description":"Whether to accept packets with the SRR option. Typically should be enabled on the router."},"allowFastPath":{"type":"boolean","description":"Allows Fast Path."},"arpTimeout":{"type":"string","description":"Sets Linux\u003cspan pulumi-lang-nodejs=\" baseReachableTime \" pulumi-lang-dotnet=\" BaseReachableTime \" pulumi-lang-go=\" baseReachableTime \" pulumi-lang-python=\" base_reachable_time \" pulumi-lang-yaml=\" baseReachableTime \" pulumi-lang-java=\" baseReachableTime \"\u003e base_reachable_time \u003c/span\u003e(base_reachable_time_ms) on all interfaces that use ARP. The initial validity of the ARP entry is picked from the interval [timeout/2 - 3*timeout/2] (default from 15s to 45s) after the neighbor was found. Can use postfix ms, s, m, h, d for milliseconds, seconds, minutes, hours, or days. if no postfix is set then seconds (s) are used. The parameter means how long a valid ARP record will be considered complete if no one communicates with the specific MAC/IP during this time. The parameter does not represent a time when an ARP entry is removed from the ARP cache (see max-neighbor-entries setting)."},"icmpErrorsUseInboundInterfaceAddress":{"type":"boolean","description":"If enabled, the ICMP error message reply will be sent with the source address equal to primary address of the receiving interface that caused the error . This feature can be useful for complex network debugging."},"icmpRateLimit":{"type":"number","description":"Limit the maximum rates for sending ICMP packets whose type matches icmp-rate-mask to specific targets. \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e disables any limiting, other values indicate the minimum space between responses in milliseconds."},"icmpRateMask":{"type":"string","description":"Mask made of ICMP types for which rates are being limited."},"ipForward":{"type":"boolean","description":"Enable/disable packet forwarding between interfaces. Resets all configuration parameters to defaults according to RFC1812 for routers."},"ipSettingsId":{"type":"string"},"ipv4MultipathHashPolicy":{"type":"string","description":"IPv4 Hash policy used for ECMP routing in `/ip/settings` menu\n  * l3 -- layer-3 hashing of src IP, dst IP\n  * l3-inner -- layer-3 hashing or inner layer-3 hashing if available\n  * l4 -- layer-4 hashing of src IP, dst IP, IP protocol, src port, dst port"},"maxNeighborEntries":{"type":"number","description":"Sets Linux gc_thresh3. A maximum number of allowed neighbors in the ARP table. Since `RouterOS version 7.1`, the default value depends on the installed amount of RAM. It is possible to set a higher value than the default, but it increases the risk of out-of-memory condition.\nThe default values for certain RAM sizes:\n  *  2048 for 64 MB,\n  *  4096 for 128 MB,\n  *  8192 for 256 MB,\n  *  16384 for 512 MB or higher.\nThe ARP cache stores ARP entries, and if some of these entries are incomplete, they can stay in the cache for an indefinite period of time. This will only happen if the number of entries in the cache is less than one-fourth of the maximum number allowed. The reason for this is to prevent the unnecessary running of the garbage-collector when the ARP table is not close to being full."},"routeCache":{"type":"boolean","description":"Disable or enable the Linux route cache. Note that disabling the route cache, will also disable the fast path."},"rpFilter":{"type":"string","description":"Disables or enables source validation.\n  *  no - No source validation.\n  *  strict - Strict mode as defined in RFC3704 Strict Reverse Path. Each incoming packet is tested against the FIB and if the interface is not the best reverse path the packet check will fail. By default failed packets are discarded.\n  *  loose - Loose mode as defined in RFC3704 Loose Reverse Path. Each incoming packet's source address is also tested against the FIB and if the source address is not reachable via any interface the packet check will fail.\nThe current recommended practice in RFC3704 is to enable strict mode to prevent IP spoofing from DDoS attacks. If using asymmetric routing or other complicated routing or VRRP, then the loose mode is recommended.\n`Warning`: strict mode does not work with routing tables"},"secureRedirects":{"type":"boolean","description":"Accept ICMP redirect messages only for gateways, listed in the default gateway list."},"sendRedirects":{"type":"boolean","description":"Whether to send ICMP redirects. Recommended to be enabled on routers."},"tcpSyncookies":{"type":"boolean","description":"end out syncookies when the syn backlog queue of a socket overflows. This is to prevent the common 'SYN flood attack'. syncookies seriously violate TCP protocol, and disallow the use of TCP extensions, which can result in serious degradation of some services (f.e. SMTP relaying), visible not by you, but to your clients and relays, contacting you."},"tcpTimestamps":{"type":"string","description":"Parameter allows to enable/disable TCP timestamps or add random offset to TCP timestamp (default behavior). Disabling timestamps completely may help to reduce spikes of performance drops."}},"type":"object"}},"routeros:index/ipSmb:IpSmb":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpSmb(\"test\", {\n    enabled: \"auto\",\n    domain: \"MSHOME\",\n    comment: \"MikrotikSMB\",\n    interfaces: [\"all\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpSmb(\"test\",\n    enabled=\"auto\",\n    domain=\"MSHOME\",\n    comment=\"MikrotikSMB\",\n    interfaces=[\"all\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpSmb(\"test\", new()\n    {\n        Enabled = \"auto\",\n        Domain = \"MSHOME\",\n        Comment = \"MikrotikSMB\",\n        Interfaces = new[]\n        {\n            \"all\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpSmb(ctx, \"test\", \u0026routeros.IpSmbArgs{\n\t\t\tEnabled: pulumi.String(\"auto\"),\n\t\t\tDomain:  pulumi.String(\"MSHOME\"),\n\t\t\tComment: pulumi.String(\"MikrotikSMB\"),\n\t\t\tInterfaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"all\"),\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.routeros.IpSmb;\nimport com.pulumi.routeros.IpSmbArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpSmb(\"test\", IpSmbArgs.builder()\n            .enabled(\"auto\")\n            .domain(\"MSHOME\")\n            .comment(\"MikrotikSMB\")\n            .interfaces(\"all\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpSmb\n    properties:\n      enabled: auto\n      domain: MSHOME\n      comment: MikrotikSMB\n      interfaces:\n        - all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipSmb:IpSmb test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string","description":"Set comment for the server.\n"},"domain":{"type":"string","description":"Name of Windows Workgroup.\n"},"enabled":{"type":"string","description":"The default value is 'auto'. This means that the SMB server will automatically be enabled when the first non-disabled SMB share is configured under '/ip smb share'.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces on which SMB service will be running.\n"},"ipSmbId":{"type":"string","description":"The ID of this resource.\n"},"status":{"type":"string"}},"type":"object","required":["ipSmbId","status"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string","description":"Set comment for the server.\n"},"domain":{"type":"string","description":"Name of Windows Workgroup.\n"},"enabled":{"type":"string","description":"The default value is 'auto'. This means that the SMB server will automatically be enabled when the first non-disabled SMB share is configured under '/ip smb share'.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces on which SMB service will be running.\n"},"ipSmbId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpSmb resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string","description":"Set comment for the server.\n"},"domain":{"type":"string","description":"Name of Windows Workgroup.\n"},"enabled":{"type":"string","description":"The default value is 'auto'. This means that the SMB server will automatically be enabled when the first non-disabled SMB share is configured under '/ip smb share'.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces on which SMB service will be running.\n"},"ipSmbId":{"type":"string","description":"The ID of this resource.\n"},"status":{"type":"string"}},"type":"object"}},"routeros:index/ipSshServer:IpSshServer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpSshServer(\"test\", {\n    strongCrypto: true,\n    forwardingEnabled: \"local\",\n    hostKeySize: 4096,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpSshServer(\"test\",\n    strong_crypto=True,\n    forwarding_enabled=\"local\",\n    host_key_size=4096)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpSshServer(\"test\", new()\n    {\n        StrongCrypto = true,\n        ForwardingEnabled = \"local\",\n        HostKeySize = 4096,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpSshServer(ctx, \"test\", \u0026routeros.IpSshServerArgs{\n\t\t\tStrongCrypto:      pulumi.Bool(true),\n\t\t\tForwardingEnabled: pulumi.String(\"local\"),\n\t\t\tHostKeySize:       pulumi.Float64(4096),\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.routeros.IpSshServer;\nimport com.pulumi.routeros.IpSshServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpSshServer(\"test\", IpSshServerArgs.builder()\n            .strongCrypto(true)\n            .forwardingEnabled(\"local\")\n            .hostKeySize(4096.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpSshServer\n    properties:\n      strongCrypto: true\n      forwardingEnabled: local\n      hostKeySize: 4096\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipSshServer:IpSshServer test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowNoneCrypto":{"type":"boolean","description":"Whether to allow connection if cryptographic algorithms are set to none."},"alwaysAllowPasswordLogin":{"type":"boolean","description":"Whether to allow password login at the same time when public key authorization is configured for a user."},"ciphers":{"type":"string","description":"Allow to configure SSH ciphers."},"forwardingEnabled":{"type":"string","description":"Allows to control which SSH forwarding method to allow:\n  * no - SSH forwarding is disabled;\n  * local - Allow SSH clients to originate connections from the server(router), this setting controls also dynamic forwarding;\n  * remote - Allow SSH clients to listen on the server(router) and forward incoming connections;\n  * both - Allow both local and remote forwarding methods."},"hostKeySize":{"type":"number","description":"RSA key size when host key is being regenerated."},"hostKeyType":{"type":"string","description":"Select host key type."},"ipSshServerId":{"type":"string"},"strongCrypto":{"type":"boolean","description":"Use stronger encryption."}},"type":"object","required":["ipSshServerId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowNoneCrypto":{"type":"boolean","description":"Whether to allow connection if cryptographic algorithms are set to none."},"alwaysAllowPasswordLogin":{"type":"boolean","description":"Whether to allow password login at the same time when public key authorization is configured for a user."},"ciphers":{"type":"string","description":"Allow to configure SSH ciphers."},"forwardingEnabled":{"type":"string","description":"Allows to control which SSH forwarding method to allow:\n  * no - SSH forwarding is disabled;\n  * local - Allow SSH clients to originate connections from the server(router), this setting controls also dynamic forwarding;\n  * remote - Allow SSH clients to listen on the server(router) and forward incoming connections;\n  * both - Allow both local and remote forwarding methods."},"hostKeySize":{"type":"number","description":"RSA key size when host key is being regenerated."},"hostKeyType":{"type":"string","description":"Select host key type."},"ipSshServerId":{"type":"string"},"strongCrypto":{"type":"boolean","description":"Use stronger encryption."}},"stateInputs":{"description":"Input properties used for looking up and filtering IpSshServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowNoneCrypto":{"type":"boolean","description":"Whether to allow connection if cryptographic algorithms are set to none."},"alwaysAllowPasswordLogin":{"type":"boolean","description":"Whether to allow password login at the same time when public key authorization is configured for a user."},"ciphers":{"type":"string","description":"Allow to configure SSH ciphers."},"forwardingEnabled":{"type":"string","description":"Allows to control which SSH forwarding method to allow:\n  * no - SSH forwarding is disabled;\n  * local - Allow SSH clients to originate connections from the server(router), this setting controls also dynamic forwarding;\n  * remote - Allow SSH clients to listen on the server(router) and forward incoming connections;\n  * both - Allow both local and remote forwarding methods."},"hostKeySize":{"type":"number","description":"RSA key size when host key is being regenerated."},"hostKeyType":{"type":"string","description":"Select host key type."},"ipSshServerId":{"type":"string"},"strongCrypto":{"type":"boolean","description":"Use stronger encryption."}},"type":"object"}},"routeros:index/ipTftp:IpTftp":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst file = new routeros.IpTftp(\"file\", {\n    ipAddresses: [\"10.0.0.0/24\"],\n    reqFilename: \"file.txt\",\n    realFilename: fileRouterosFile.name,\n    readOnly: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nfile = routeros.IpTftp(\"file\",\n    ip_addresses=[\"10.0.0.0/24\"],\n    req_filename=\"file.txt\",\n    real_filename=file_routeros_file[\"name\"],\n    read_only=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var file = new Routeros.IpTftp(\"file\", new()\n    {\n        IpAddresses = new[]\n        {\n            \"10.0.0.0/24\",\n        },\n        ReqFilename = \"file.txt\",\n        RealFilename = fileRouterosFile.Name,\n        ReadOnly = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpTftp(ctx, \"file\", \u0026routeros.IpTftpArgs{\n\t\t\tIpAddresses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/24\"),\n\t\t\t},\n\t\t\tReqFilename:  pulumi.String(\"file.txt\"),\n\t\t\tRealFilename: pulumi.Any(fileRouterosFile.Name),\n\t\t\tReadOnly:     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.routeros.IpTftp;\nimport com.pulumi.routeros.IpTftpArgs;\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 file = new IpTftp(\"file\", IpTftpArgs.builder()\n            .ipAddresses(\"10.0.0.0/24\")\n            .reqFilename(\"file.txt\")\n            .realFilename(fileRouterosFile.name())\n            .readOnly(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  file:\n    type: routeros:IpTftp\n    properties:\n      ipAddresses:\n        - 10.0.0.0/24\n      reqFilename: file.txt\n      realFilename: ${fileRouterosFile.name}\n      readOnly: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/tftp get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipTftp:IpTftp file \"*0\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allow":{"type":"boolean","description":"Allow connection.\n"},"allowOverwrite":{"type":"boolean","description":"If \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, overwriting the file is allowed.\n"},"allowRollover":{"type":"boolean","description":"If set, server will allow sequence number to roll over when maximum value is reached. This is used to enable large downloads using TFTP server.\n"},"disabled":{"type":"boolean"},"ipAddresses":{"type":"array","items":{"type":"string"},"description":"Range of IP addresses accepted as clients. If empty `0.0.0.0/0` will be used.\n"},"ipTftpId":{"type":"string","description":"The ID of this resource.\n"},"readOnly":{"type":"boolean","description":"Sets if file can be written to. If set to \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 write attempts will fail with an error.\n"},"readingWindowSize":{"type":"string","description":"TFTP Windowsize option value.\n"},"realFilename":{"type":"string","description":"If `req-filename` and `real-filename` values are set and valid, the requested filename will be replaced with matched file. This field has to be set. If multiple regex are specified in `req-filename`, with this field you can set which ones should match, so this rule is validated. `real-filename` format for using multiple regex is `filename\\0\\5\\6`.\n"},"reqFilename":{"type":"string","description":"Requested filename as regular expression (regex) if field is left empty it defaults to `.*`.\n"}},"type":"object","required":["ipTftpId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allow":{"type":"boolean","description":"Allow connection.\n"},"allowOverwrite":{"type":"boolean","description":"If \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, overwriting the file is allowed.\n"},"allowRollover":{"type":"boolean","description":"If set, server will allow sequence number to roll over when maximum value is reached. This is used to enable large downloads using TFTP server.\n"},"disabled":{"type":"boolean"},"ipAddresses":{"type":"array","items":{"type":"string"},"description":"Range of IP addresses accepted as clients. If empty `0.0.0.0/0` will be used.\n"},"ipTftpId":{"type":"string","description":"The ID of this resource.\n"},"readOnly":{"type":"boolean","description":"Sets if file can be written to. If set to \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 write attempts will fail with an error.\n"},"readingWindowSize":{"type":"string","description":"TFTP Windowsize option value.\n"},"realFilename":{"type":"string","description":"If `req-filename` and `real-filename` values are set and valid, the requested filename will be replaced with matched file. This field has to be set. If multiple regex are specified in `req-filename`, with this field you can set which ones should match, so this rule is validated. `real-filename` format for using multiple regex is `filename\\0\\5\\6`.\n"},"reqFilename":{"type":"string","description":"Requested filename as regular expression (regex) if field is left empty it defaults to `.*`.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpTftp resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allow":{"type":"boolean","description":"Allow connection.\n"},"allowOverwrite":{"type":"boolean","description":"If \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, overwriting the file is allowed.\n"},"allowRollover":{"type":"boolean","description":"If set, server will allow sequence number to roll over when maximum value is reached. This is used to enable large downloads using TFTP server.\n"},"disabled":{"type":"boolean"},"ipAddresses":{"type":"array","items":{"type":"string"},"description":"Range of IP addresses accepted as clients. If empty `0.0.0.0/0` will be used.\n"},"ipTftpId":{"type":"string","description":"The ID of this resource.\n"},"readOnly":{"type":"boolean","description":"Sets if file can be written to. If set to \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 write attempts will fail with an error.\n"},"readingWindowSize":{"type":"string","description":"TFTP Windowsize option value.\n"},"realFilename":{"type":"string","description":"If `req-filename` and `real-filename` values are set and valid, the requested filename will be replaced with matched file. This field has to be set. If multiple regex are specified in `req-filename`, with this field you can set which ones should match, so this rule is validated. `real-filename` format for using multiple regex is `filename\\0\\5\\6`.\n"},"reqFilename":{"type":"string","description":"Requested filename as regular expression (regex) if field is left empty it defaults to `.*`.\n"}},"type":"object"}},"routeros:index/ipTftpSettings:IpTftpSettings":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst tftpSettings = new routeros.IpTftpSettings(\"tftp_settings\", {maxBlockSize: 4096});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntftp_settings = routeros.IpTftpSettings(\"tftp_settings\", max_block_size=4096)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var tftpSettings = new Routeros.IpTftpSettings(\"tftp_settings\", new()\n    {\n        MaxBlockSize = 4096,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpTftpSettings(ctx, \"tftp_settings\", \u0026routeros.IpTftpSettingsArgs{\n\t\t\tMaxBlockSize: pulumi.Float64(4096),\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.routeros.IpTftpSettings;\nimport com.pulumi.routeros.IpTftpSettingsArgs;\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 tftpSettings = new IpTftpSettings(\"tftpSettings\", IpTftpSettingsArgs.builder()\n            .maxBlockSize(4096.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  tftpSettings:\n    type: routeros:IpTftpSettings\n    name: tftp_settings\n    properties:\n      maxBlockSize: 4096\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipTftpSettings:IpTftpSettings tftp_settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipTftpSettingsId":{"type":"string","description":"The ID of this resource.\n"},"maxBlockSize":{"type":"number","description":"Maximum accepted block size value. During transfer negotiation phase, RouterOS device will not negotiate larger value than this.\n"}},"type":"object","required":["ipTftpSettingsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipTftpSettingsId":{"type":"string","description":"The ID of this resource.\n"},"maxBlockSize":{"type":"number","description":"Maximum accepted block size value. During transfer negotiation phase, RouterOS device will not negotiate larger value than this.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpTftpSettings resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipTftpSettingsId":{"type":"string","description":"The ID of this resource.\n"},"maxBlockSize":{"type":"number","description":"Maximum accepted block size value. During transfer negotiation phase, RouterOS device will not negotiate larger value than this.\n"}},"type":"object"}},"routeros:index/ipTrafficFlow:IpTrafficFlow":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpTrafficFlow(\"test\", {\n    packetSampling: true,\n    samplingInterval: 2222,\n    samplingSpace: 1111,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpTrafficFlow(\"test\",\n    packet_sampling=True,\n    sampling_interval=2222,\n    sampling_space=1111)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpTrafficFlow(\"test\", new()\n    {\n        PacketSampling = true,\n        SamplingInterval = 2222,\n        SamplingSpace = 1111,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpTrafficFlow(ctx, \"test\", \u0026routeros.IpTrafficFlowArgs{\n\t\t\tPacketSampling:   pulumi.Bool(true),\n\t\t\tSamplingInterval: pulumi.Float64(2222),\n\t\t\tSamplingSpace:    pulumi.Float64(1111),\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.routeros.IpTrafficFlow;\nimport com.pulumi.routeros.IpTrafficFlowArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpTrafficFlow(\"test\", IpTrafficFlowArgs.builder()\n            .packetSampling(true)\n            .samplingInterval(2222.0)\n            .samplingSpace(1111.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpTrafficFlow\n    properties:\n      packetSampling: true\n      samplingInterval: 2222\n      samplingSpace: 1111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipTrafficFlow:IpTrafficFlow test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"activeFlowTimeout":{"type":"string","description":"Maximum life-time of a flow.\n"},"cacheEntries":{"type":"string","description":"Number of flows which can be in router's memory simultaneously.\n"},"inactiveFlowTimeout":{"type":"string","description":"How long to keep the flow active, if it is idle. If a connection does not see any packet within this timeout, then traffic-flow will send a packet out as a new flow. If this timeout is too small it can create a significant amount of flows and overflow the buffer.\n"},"interfaces":{"type":"string","description":"Names of those interfaces will be used to gather statistics for traffic-flow. To specify more than one interface, separate them with a comma.\n"},"ipTrafficFlowId":{"type":"string","description":"The ID of this resource.\n"},"packetSampling":{"type":"boolean","description":"Enable or disable packet sampling feature.\n"},"samplingInterval":{"type":"number","description":"The number of packets that are consecutively sampled.\n"},"samplingSpace":{"type":"number","description":"The number of packets that are consecutively omitted.\n"}},"type":"object","required":["ipTrafficFlowId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"activeFlowTimeout":{"type":"string","description":"Maximum life-time of a flow.\n"},"cacheEntries":{"type":"string","description":"Number of flows which can be in router's memory simultaneously.\n"},"inactiveFlowTimeout":{"type":"string","description":"How long to keep the flow active, if it is idle. If a connection does not see any packet within this timeout, then traffic-flow will send a packet out as a new flow. If this timeout is too small it can create a significant amount of flows and overflow the buffer.\n"},"interfaces":{"type":"string","description":"Names of those interfaces will be used to gather statistics for traffic-flow. To specify more than one interface, separate them with a comma.\n"},"ipTrafficFlowId":{"type":"string","description":"The ID of this resource.\n"},"packetSampling":{"type":"boolean","description":"Enable or disable packet sampling feature.\n"},"samplingInterval":{"type":"number","description":"The number of packets that are consecutively sampled.\n"},"samplingSpace":{"type":"number","description":"The number of packets that are consecutively omitted.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpTrafficFlow resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"activeFlowTimeout":{"type":"string","description":"Maximum life-time of a flow.\n"},"cacheEntries":{"type":"string","description":"Number of flows which can be in router's memory simultaneously.\n"},"inactiveFlowTimeout":{"type":"string","description":"How long to keep the flow active, if it is idle. If a connection does not see any packet within this timeout, then traffic-flow will send a packet out as a new flow. If this timeout is too small it can create a significant amount of flows and overflow the buffer.\n"},"interfaces":{"type":"string","description":"Names of those interfaces will be used to gather statistics for traffic-flow. To specify more than one interface, separate them with a comma.\n"},"ipTrafficFlowId":{"type":"string","description":"The ID of this resource.\n"},"packetSampling":{"type":"boolean","description":"Enable or disable packet sampling feature.\n"},"samplingInterval":{"type":"number","description":"The number of packets that are consecutively sampled.\n"},"samplingSpace":{"type":"number","description":"The number of packets that are consecutively omitted.\n"}},"type":"object"}},"routeros:index/ipTrafficFlowIpfix:IpTrafficFlowIpfix":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpTrafficFlowIpfix(\"test\", {\n    natEvents: \"true\",\n    dstPort: \"false\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpTrafficFlowIpfix(\"test\",\n    nat_events=\"true\",\n    dst_port=\"false\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpTrafficFlowIpfix(\"test\", new()\n    {\n        NatEvents = \"true\",\n        DstPort = \"false\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpTrafficFlowIpfix(ctx, \"test\", \u0026routeros.IpTrafficFlowIpfixArgs{\n\t\t\tNatEvents: pulumi.String(\"true\"),\n\t\t\tDstPort:   pulumi.String(\"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.routeros.IpTrafficFlowIpfix;\nimport com.pulumi.routeros.IpTrafficFlowIpfixArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpTrafficFlowIpfix(\"test\", IpTrafficFlowIpfixArgs.builder()\n            .natEvents(\"true\")\n            .dstPort(\"false\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpTrafficFlowIpfix\n    properties:\n      natEvents: true\n      dstPort: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipTrafficFlowIpfix:IpTrafficFlowIpfix test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bytes":{"type":"string","description":"Total number of bytes processed in the flow.\n"},"dstAddress":{"type":"string","description":"The destination IP address of the flow.\n"},"dstAddressMask":{"type":"string","description":"Network mask for the destination address.\n"},"dstMacAddress":{"type":"string","description":"Destination MAC address.\n"},"dstPort":{"type":"string","description":"Destination port number.\n"},"firstForwarded":{"type":"string","description":"Timestamp of the first packet forwarded in a flow.\n"},"gateway":{"type":"string","description":"IP address of the gateway through which the flow was routed.\n"},"icmpCode":{"type":"string","description":"ICMP code for error messaging and operational information.\n"},"icmpType":{"type":"string","description":"Type of ICMP message, important for diagnostic messages.\n"},"igmpType":{"type":"string","description":"Type of Internet Group Management Protocol operation.\n"},"inInterface":{"type":"string","description":"Interface through which packets of the flow are received.\n"},"ipHeaderLength":{"type":"string","description":"Length of the IP header.\n"},"ipTotalLenght":{"type":"string","description":"Length of the IP packet in bytes.\n"},"ipTrafficFlowIpfixId":{"type":"string","description":"The ID of this resource.\n"},"ipv6FlowLabel":{"type":"string","description":"Label field from an IPv6 header, used to classify flows.\n"},"isMulticast":{"type":"string","description":"Indicates whether the flow is a multicast flow.\n"},"lastForwarded":{"type":"string","description":"Timestamp of the last packet forwarded in a flow.\n"},"natDstAddress":{"type":"string","description":"Translated destination IP address by NAT.\n"},"natDstPort":{"type":"string","description":"Translated destination port number by NAT.\n"},"natEvents":{"type":"string","description":"Events related to Network Address Translation for the flow.\n"},"natSrcAddress":{"type":"string","description":"Translated source IP address by NAT.\n"},"natSrcPort":{"type":"string","description":"Translated source port number by NAT.\n"},"outInterface":{"type":"string","description":"Interface through which packets of the flow are sent out.\n"},"packets":{"type":"string","description":"Number of packets processed in the flow.\n"},"protocol":{"type":"string","description":"Protocol number (e.g., TCP, UDP, ICMP).\n"},"srcAddress":{"type":"string","description":"The source IP address of the flow.\n"},"srcAddressMask":{"type":"string","description":"Network mask for the source address, useful in summarizing data.\n"},"srcMacAddress":{"type":"string","description":"Source MAC address.\n"},"srcPort":{"type":"string","description":"Source port number.\n"},"sysInitTime":{"type":"string","description":"System initialization time, can be used for timing analysis.\n"},"tcpAckNum":{"type":"string","description":"Acknowledgment number in a TCP connection.\n"},"tcpFlags":{"type":"string","description":"Flags from the TCP header (e.g., SYN, ACK).\n"},"tcpSeqNum":{"type":"string","description":"Sequence number in a TCP connection.\n"},"tcpWindowSize":{"type":"string","description":"Window size in a TCP connection, indicating the scale of received data buffering.\n"},"tos":{"type":"string","description":"Type of Service field in the IP header, indicating priority and handling of the packet.\n"},"ttl":{"type":"string","description":"Time To Live for the packet, decremented by each router to prevent infinite loops.\n"},"udpLength":{"type":"string","description":"Length of the UDP payload.\n"}},"type":"object","required":["ipTrafficFlowIpfixId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bytes":{"type":"string","description":"Total number of bytes processed in the flow.\n"},"dstAddress":{"type":"string","description":"The destination IP address of the flow.\n"},"dstAddressMask":{"type":"string","description":"Network mask for the destination address.\n"},"dstMacAddress":{"type":"string","description":"Destination MAC address.\n"},"dstPort":{"type":"string","description":"Destination port number.\n"},"firstForwarded":{"type":"string","description":"Timestamp of the first packet forwarded in a flow.\n"},"gateway":{"type":"string","description":"IP address of the gateway through which the flow was routed.\n"},"icmpCode":{"type":"string","description":"ICMP code for error messaging and operational information.\n"},"icmpType":{"type":"string","description":"Type of ICMP message, important for diagnostic messages.\n"},"igmpType":{"type":"string","description":"Type of Internet Group Management Protocol operation.\n"},"inInterface":{"type":"string","description":"Interface through which packets of the flow are received.\n"},"ipHeaderLength":{"type":"string","description":"Length of the IP header.\n"},"ipTotalLenght":{"type":"string","description":"Length of the IP packet in bytes.\n"},"ipTrafficFlowIpfixId":{"type":"string","description":"The ID of this resource.\n"},"ipv6FlowLabel":{"type":"string","description":"Label field from an IPv6 header, used to classify flows.\n"},"isMulticast":{"type":"string","description":"Indicates whether the flow is a multicast flow.\n"},"lastForwarded":{"type":"string","description":"Timestamp of the last packet forwarded in a flow.\n"},"natDstAddress":{"type":"string","description":"Translated destination IP address by NAT.\n"},"natDstPort":{"type":"string","description":"Translated destination port number by NAT.\n"},"natEvents":{"type":"string","description":"Events related to Network Address Translation for the flow.\n"},"natSrcAddress":{"type":"string","description":"Translated source IP address by NAT.\n"},"natSrcPort":{"type":"string","description":"Translated source port number by NAT.\n"},"outInterface":{"type":"string","description":"Interface through which packets of the flow are sent out.\n"},"packets":{"type":"string","description":"Number of packets processed in the flow.\n"},"protocol":{"type":"string","description":"Protocol number (e.g., TCP, UDP, ICMP).\n"},"srcAddress":{"type":"string","description":"The source IP address of the flow.\n"},"srcAddressMask":{"type":"string","description":"Network mask for the source address, useful in summarizing data.\n"},"srcMacAddress":{"type":"string","description":"Source MAC address.\n"},"srcPort":{"type":"string","description":"Source port number.\n"},"sysInitTime":{"type":"string","description":"System initialization time, can be used for timing analysis.\n"},"tcpAckNum":{"type":"string","description":"Acknowledgment number in a TCP connection.\n"},"tcpFlags":{"type":"string","description":"Flags from the TCP header (e.g., SYN, ACK).\n"},"tcpSeqNum":{"type":"string","description":"Sequence number in a TCP connection.\n"},"tcpWindowSize":{"type":"string","description":"Window size in a TCP connection, indicating the scale of received data buffering.\n"},"tos":{"type":"string","description":"Type of Service field in the IP header, indicating priority and handling of the packet.\n"},"ttl":{"type":"string","description":"Time To Live for the packet, decremented by each router to prevent infinite loops.\n"},"udpLength":{"type":"string","description":"Length of the UDP payload.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpTrafficFlowIpfix resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bytes":{"type":"string","description":"Total number of bytes processed in the flow.\n"},"dstAddress":{"type":"string","description":"The destination IP address of the flow.\n"},"dstAddressMask":{"type":"string","description":"Network mask for the destination address.\n"},"dstMacAddress":{"type":"string","description":"Destination MAC address.\n"},"dstPort":{"type":"string","description":"Destination port number.\n"},"firstForwarded":{"type":"string","description":"Timestamp of the first packet forwarded in a flow.\n"},"gateway":{"type":"string","description":"IP address of the gateway through which the flow was routed.\n"},"icmpCode":{"type":"string","description":"ICMP code for error messaging and operational information.\n"},"icmpType":{"type":"string","description":"Type of ICMP message, important for diagnostic messages.\n"},"igmpType":{"type":"string","description":"Type of Internet Group Management Protocol operation.\n"},"inInterface":{"type":"string","description":"Interface through which packets of the flow are received.\n"},"ipHeaderLength":{"type":"string","description":"Length of the IP header.\n"},"ipTotalLenght":{"type":"string","description":"Length of the IP packet in bytes.\n"},"ipTrafficFlowIpfixId":{"type":"string","description":"The ID of this resource.\n"},"ipv6FlowLabel":{"type":"string","description":"Label field from an IPv6 header, used to classify flows.\n"},"isMulticast":{"type":"string","description":"Indicates whether the flow is a multicast flow.\n"},"lastForwarded":{"type":"string","description":"Timestamp of the last packet forwarded in a flow.\n"},"natDstAddress":{"type":"string","description":"Translated destination IP address by NAT.\n"},"natDstPort":{"type":"string","description":"Translated destination port number by NAT.\n"},"natEvents":{"type":"string","description":"Events related to Network Address Translation for the flow.\n"},"natSrcAddress":{"type":"string","description":"Translated source IP address by NAT.\n"},"natSrcPort":{"type":"string","description":"Translated source port number by NAT.\n"},"outInterface":{"type":"string","description":"Interface through which packets of the flow are sent out.\n"},"packets":{"type":"string","description":"Number of packets processed in the flow.\n"},"protocol":{"type":"string","description":"Protocol number (e.g., TCP, UDP, ICMP).\n"},"srcAddress":{"type":"string","description":"The source IP address of the flow.\n"},"srcAddressMask":{"type":"string","description":"Network mask for the source address, useful in summarizing data.\n"},"srcMacAddress":{"type":"string","description":"Source MAC address.\n"},"srcPort":{"type":"string","description":"Source port number.\n"},"sysInitTime":{"type":"string","description":"System initialization time, can be used for timing analysis.\n"},"tcpAckNum":{"type":"string","description":"Acknowledgment number in a TCP connection.\n"},"tcpFlags":{"type":"string","description":"Flags from the TCP header (e.g., SYN, ACK).\n"},"tcpSeqNum":{"type":"string","description":"Sequence number in a TCP connection.\n"},"tcpWindowSize":{"type":"string","description":"Window size in a TCP connection, indicating the scale of received data buffering.\n"},"tos":{"type":"string","description":"Type of Service field in the IP header, indicating priority and handling of the packet.\n"},"ttl":{"type":"string","description":"Time To Live for the packet, decremented by each router to prevent infinite loops.\n"},"udpLength":{"type":"string","description":"Length of the UDP payload.\n"}},"type":"object"}},"routeros:index/ipTrafficFlowTarget:IpTrafficFlowTarget":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpTrafficFlowTarget(\"test\", {\n    dstAddress: \"192.168.0.2\",\n    port: 2055,\n    version: \"9\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpTrafficFlowTarget(\"test\",\n    dst_address=\"192.168.0.2\",\n    port=2055,\n    version=\"9\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpTrafficFlowTarget(\"test\", new()\n    {\n        DstAddress = \"192.168.0.2\",\n        Port = 2055,\n        Version = \"9\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpTrafficFlowTarget(ctx, \"test\", \u0026routeros.IpTrafficFlowTargetArgs{\n\t\t\tDstAddress: pulumi.String(\"192.168.0.2\"),\n\t\t\tPort:       pulumi.Float64(2055),\n\t\t\tVersion:    pulumi.String(\"9\"),\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.routeros.IpTrafficFlowTarget;\nimport com.pulumi.routeros.IpTrafficFlowTargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpTrafficFlowTarget(\"test\", IpTrafficFlowTargetArgs.builder()\n            .dstAddress(\"192.168.0.2\")\n            .port(2055.0)\n            .version(\"9\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpTrafficFlowTarget\n    properties:\n      dstAddress: 192.168.0.2\n      port: 2055\n      version: '9'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/traffic/flow/target get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipTrafficFlowTarget:IpTrafficFlowTarget test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipTrafficFlowTarget:IpTrafficFlowTarget test \"dst_address=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"IP address of the host which receives Traffic-Flow statistic packets from the router.\n"},"ipTrafficFlowTargetId":{"type":"string","description":"The ID of this resource.\n"},"port":{"type":"number","description":"Port (UDP) of the host which receives Traffic-Flow statistic packets from the router.\n"},"srcAddress":{"type":"string","description":"IP address used as source when sending Traffic-Flow statistics.\n"},"v9TemplateRefresh":{"type":"number","description":"Number of packets after which the template is sent to the receiving host (only for NetFlow version 9 and IPFIX).\n"},"v9TemplateTimeout":{"type":"string","description":"After how long to send the template, if it has not been sent. (only for NetFlow version 9 and IPFIX).\n"},"version":{"type":"string","description":"Which version format of NetFlow to use.\n"}},"type":"object","required":["ipTrafficFlowTargetId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"IP address of the host which receives Traffic-Flow statistic packets from the router.\n"},"ipTrafficFlowTargetId":{"type":"string","description":"The ID of this resource.\n"},"port":{"type":"number","description":"Port (UDP) of the host which receives Traffic-Flow statistic packets from the router.\n"},"srcAddress":{"type":"string","description":"IP address used as source when sending Traffic-Flow statistics.\n"},"v9TemplateRefresh":{"type":"number","description":"Number of packets after which the template is sent to the receiving host (only for NetFlow version 9 and IPFIX).\n"},"v9TemplateTimeout":{"type":"string","description":"After how long to send the template, if it has not been sent. (only for NetFlow version 9 and IPFIX).\n"},"version":{"type":"string","description":"Which version format of NetFlow to use.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpTrafficFlowTarget resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"IP address of the host which receives Traffic-Flow statistic packets from the router.\n"},"ipTrafficFlowTargetId":{"type":"string","description":"The ID of this resource.\n"},"port":{"type":"number","description":"Port (UDP) of the host which receives Traffic-Flow statistic packets from the router.\n"},"srcAddress":{"type":"string","description":"IP address used as source when sending Traffic-Flow statistics.\n"},"v9TemplateRefresh":{"type":"number","description":"Number of packets after which the template is sent to the receiving host (only for NetFlow version 9 and IPFIX).\n"},"v9TemplateTimeout":{"type":"string","description":"After how long to send the template, if it has not been sent. (only for NetFlow version 9 and IPFIX).\n"},"version":{"type":"string","description":"Which version format of NetFlow to use.\n"}},"type":"object"}},"routeros:index/ipUpnp:IpUpnp":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.IpUpnp \" pulumi-lang-dotnet=\" routeros.IpUpnp \" pulumi-lang-go=\" IpUpnp \" pulumi-lang-python=\" IpUpnp \" pulumi-lang-yaml=\" routeros.IpUpnp \" pulumi-lang-java=\" routeros.IpUpnp \"\u003e routeros.IpUpnp \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eIf you do not disable the `allow-disable-external-interface`, any user from the local network will be able (without any authentication procedures) to disable the router's external interface.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.IpUpnp(\"test\", {\n    allowDisableExternalInterface: true,\n    enabled: true,\n    showDummyRule: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.IpUpnp(\"test\",\n    allow_disable_external_interface=True,\n    enabled=True,\n    show_dummy_rule=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.IpUpnp(\"test\", new()\n    {\n        AllowDisableExternalInterface = true,\n        Enabled = true,\n        ShowDummyRule = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpUpnp(ctx, \"test\", \u0026routeros.IpUpnpArgs{\n\t\t\tAllowDisableExternalInterface: pulumi.Bool(true),\n\t\t\tEnabled:                       pulumi.Bool(true),\n\t\t\tShowDummyRule:                 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.routeros.IpUpnp;\nimport com.pulumi.routeros.IpUpnpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new IpUpnp(\"test\", IpUpnpArgs.builder()\n            .allowDisableExternalInterface(true)\n            .enabled(true)\n            .showDummyRule(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:IpUpnp\n    properties:\n      allowDisableExternalInterface: true\n      enabled: true\n      showDummyRule: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipUpnp:IpUpnp test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowDisableExternalInterface":{"type":"boolean","description":"Whether or not should the users be allowed to disable the router's external interface. This functionality (for users to be able to turn the router's external interface off without any authentication procedure) is required by the standard, but as it is sometimes not expected or unwanted in UPnP deployments which the standard was not designed for (it was designed mostly for home users to establish their own local networks), you can disable this behavior\n"},"enabled":{"type":"boolean","description":"Enable UPnP service.\n"},"ipUpnpId":{"type":"string","description":"The ID of this resource.\n"},"showDummyRule":{"type":"boolean","description":"Enable a workaround for some broken implementations, which are handling the absence of UPnP rules incorrectly (for example, popping up error messages). This option will instruct the server to install a dummy (meaningless) UPnP rule that can be observed by the clients, which refuse to work correctly otherwise\n"}},"type":"object","required":["ipUpnpId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowDisableExternalInterface":{"type":"boolean","description":"Whether or not should the users be allowed to disable the router's external interface. This functionality (for users to be able to turn the router's external interface off without any authentication procedure) is required by the standard, but as it is sometimes not expected or unwanted in UPnP deployments which the standard was not designed for (it was designed mostly for home users to establish their own local networks), you can disable this behavior\n"},"enabled":{"type":"boolean","description":"Enable UPnP service.\n"},"ipUpnpId":{"type":"string","description":"The ID of this resource.\n"},"showDummyRule":{"type":"boolean","description":"Enable a workaround for some broken implementations, which are handling the absence of UPnP rules incorrectly (for example, popping up error messages). This option will instruct the server to install a dummy (meaningless) UPnP rule that can be observed by the clients, which refuse to work correctly otherwise\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IpUpnp resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowDisableExternalInterface":{"type":"boolean","description":"Whether or not should the users be allowed to disable the router's external interface. This functionality (for users to be able to turn the router's external interface off without any authentication procedure) is required by the standard, but as it is sometimes not expected or unwanted in UPnP deployments which the standard was not designed for (it was designed mostly for home users to establish their own local networks), you can disable this behavior\n"},"enabled":{"type":"boolean","description":"Enable UPnP service.\n"},"ipUpnpId":{"type":"string","description":"The ID of this resource.\n"},"showDummyRule":{"type":"boolean","description":"Enable a workaround for some broken implementations, which are handling the absence of UPnP rules incorrectly (for example, popping up error messages). This option will instruct the server to install a dummy (meaningless) UPnP rule that can be observed by the clients, which refuse to work correctly otherwise\n"}},"type":"object"}},"routeros:index/ipUpnpInterfaces:IpUpnpInterfaces":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  test:\n    type: routeros:IpUpnpInterfaces\n    properties:\n      interface: ether1\n      type: external\n      forcedExternalIp: 0.0.0.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/upnp/interfaces get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipUpnpInterfaces:IpUpnpInterfaces test '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipUpnpInterfaces:IpUpnpInterfaces test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"forcedIp":{"type":"string","description":"Allow specifying what public IP to use if the external interface has more than one IP available."},"interface":{"type":"string","description":"Interface name on which UPnP will be running."},"ipUpnpInterfacesId":{"type":"string"},"type":{"type":"string","description":"UPnP interface type:\n  * external - the interface a global IP address is assigned to\n  * internal - router's local interface the clients are connected to"}},"type":"object","required":["dynamic","interface","ipUpnpInterfacesId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"forcedIp":{"type":"string","description":"Allow specifying what public IP to use if the external interface has more than one IP available."},"interface":{"type":"string","description":"Interface name on which UPnP will be running."},"ipUpnpInterfacesId":{"type":"string"},"type":{"type":"string","description":"UPnP interface type:\n  * external - the interface a global IP address is assigned to\n  * internal - router's local interface the clients are connected to"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering IpUpnpInterfaces resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"forcedIp":{"type":"string","description":"Allow specifying what public IP to use if the external interface has more than one IP available."},"interface":{"type":"string","description":"Interface name on which UPnP will be running."},"ipUpnpInterfacesId":{"type":"string"},"type":{"type":"string","description":"UPnP interface type:\n  * external - the interface a global IP address is assigned to\n  * internal - router's local interface the clients are connected to"}},"type":"object"}},"routeros:index/ipVrf:IpVrf":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst veth1 = new routeros.InterfaceVeth(\"veth1\", {name: \"veth1\"});\nconst veth2 = new routeros.InterfaceVeth(\"veth2\", {name: \"veth2\"});\nconst testVrfA = new routeros.IpVrf(\"test_vrf_a\", {\n    disabled: true,\n    name: \"vrf_1\",\n    comment: \"Custom routing\",\n    interfaces: [\n        \"veth1\",\n        \"veth2\",\n    ],\n}, {\n    dependsOn: [\n        veth1,\n        veth2,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nveth1 = routeros.InterfaceVeth(\"veth1\", name=\"veth1\")\nveth2 = routeros.InterfaceVeth(\"veth2\", name=\"veth2\")\ntest_vrf_a = routeros.IpVrf(\"test_vrf_a\",\n    disabled=True,\n    name=\"vrf_1\",\n    comment=\"Custom routing\",\n    interfaces=[\n        \"veth1\",\n        \"veth2\",\n    ],\n    opts = pulumi.ResourceOptions(depends_on=[\n            veth1,\n            veth2,\n        ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var veth1 = new Routeros.InterfaceVeth(\"veth1\", new()\n    {\n        Name = \"veth1\",\n    });\n\n    var veth2 = new Routeros.InterfaceVeth(\"veth2\", new()\n    {\n        Name = \"veth2\",\n    });\n\n    var testVrfA = new Routeros.IpVrf(\"test_vrf_a\", new()\n    {\n        Disabled = true,\n        Name = \"vrf_1\",\n        Comment = \"Custom routing\",\n        Interfaces = new[]\n        {\n            \"veth1\",\n            \"veth2\",\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            veth1,\n            veth2,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tveth1, err := routeros.NewInterfaceVeth(ctx, \"veth1\", \u0026routeros.InterfaceVethArgs{\n\t\t\tName: pulumi.String(\"veth1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tveth2, err := routeros.NewInterfaceVeth(ctx, \"veth2\", \u0026routeros.InterfaceVethArgs{\n\t\t\tName: pulumi.String(\"veth2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewIpVrf(ctx, \"test_vrf_a\", \u0026routeros.IpVrfArgs{\n\t\t\tDisabled: pulumi.Bool(true),\n\t\t\tName:     pulumi.String(\"vrf_1\"),\n\t\t\tComment:  pulumi.String(\"Custom routing\"),\n\t\t\tInterfaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"veth1\"),\n\t\t\t\tpulumi.String(\"veth2\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tveth1,\n\t\t\tveth2,\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.routeros.InterfaceVeth;\nimport com.pulumi.routeros.InterfaceVethArgs;\nimport com.pulumi.routeros.IpVrf;\nimport com.pulumi.routeros.IpVrfArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var veth1 = new InterfaceVeth(\"veth1\", InterfaceVethArgs.builder()\n            .name(\"veth1\")\n            .build());\n\n        var veth2 = new InterfaceVeth(\"veth2\", InterfaceVethArgs.builder()\n            .name(\"veth2\")\n            .build());\n\n        var testVrfA = new IpVrf(\"testVrfA\", IpVrfArgs.builder()\n            .disabled(true)\n            .name(\"vrf_1\")\n            .comment(\"Custom routing\")\n            .interfaces(            \n                \"veth1\",\n                \"veth2\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    veth1,\n                    veth2)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  veth1:\n    type: routeros:InterfaceVeth\n    properties:\n      name: veth1\n  veth2:\n    type: routeros:InterfaceVeth\n    properties:\n      name: veth2\n  testVrfA:\n    type: routeros:IpVrf\n    name: test_vrf_a\n    properties:\n      disabled: true\n      name: vrf_1\n      comment: Custom routing\n      interfaces:\n        - veth1\n        - veth2\n    options:\n      dependsOn:\n        - ${veth1}\n        - ${veth2}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ip/vrf get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipVrf:IpVrf test_vrf_a \"*0\"\n```\n\nor\n\n```sh\n$ pulumi import routeros:index/ipVrf:IpVrf test_vrf_a \"vrf_1\"\n```\n\nor\n\n```sh\n$ pulumi import routeros:index/ipVrf:IpVrf test_vrf_a `\"comment=Custom routing\"`\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaces":{"type":"array","items":{"type":"string"},"description":"At least one interface must be added to the VRF.\n"},"ipVrfId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Unique name of the VRF.\n"}},"type":"object","required":["interfaces","ipVrfId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaces":{"type":"array","items":{"type":"string"},"description":"At least one interface must be added to the VRF.\n"},"ipVrfId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Unique name of the VRF.\n"}},"requiredInputs":["interfaces"],"stateInputs":{"description":"Input properties used for looking up and filtering IpVrf resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaces":{"type":"array","items":{"type":"string"},"description":"At least one interface must be added to the VRF.\n"},"ipVrfId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Unique name of the VRF.\n"}},"type":"object"}},"routeros:index/ipip:Ipip":{"properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used.\n"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"ipipId":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string","description":"Name of the ipip interface.\n"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"},"running":{"type":"boolean"}},"type":"object","required":["actualMtu","ipipId","l2mtu","mtu","name","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used.\n"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"ipipId":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string","description":"Name of the ipip interface.\n"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Ipip resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualMtu":{"type":"number"},"allowFastPath":{"type":"boolean","description":"Whether to allow FastPath processing. Must be disabled if IPsec tunneling is used.\n"},"clampTcpMss":{"type":"boolean","description":"Controls whether to change MSS size for received TCP SYN packets. When enabled, a router will change the MSS size for received TCP SYN packets if the current MSS size exceeds the tunnel interface MTU (taking into account the TCP/IP overhead). The received encapsulated packet will still contain the original MSS, and only after decapsulation the MSS is changed.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dontFragment":{"type":"string"},"dscp":{"type":"string","description":"Set dscp value in GRE header to a fixed value '0..63' or 'inherit' from dscp value taken from tunnelled traffic.\n"},"ipipId":{"type":"string","description":"The ID of this resource.\n"},"ipsecSecret":{"type":"string","description":"When secret is specified, router adds dynamic IPsec peer to remote-address with pre-shared key and policy (by default phase2 uses sha1/aes128cbc).\n","secret":true},"keepalive":{"type":"string","description":"Tunnel keepalive parameter sets the time interval in which the tunnel running flag will remain even if the remote end of tunnel goes down. If configured time,retries fail, interface running flag is removed. Parameters are written in following format: `KeepaliveInterval,KeepaliveRetries` where `KeepaliveInterval` is time interval and `KeepaliveRetries` - number of retry attempts. `KeepaliveInterval` is integer 0..4294967295\n"},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"localAddress":{"type":"string","description":"Source address of the tunnel packets, local on the router.\n"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation\n"},"name":{"type":"string","description":"Name of the ipip interface.\n"},"remoteAddress":{"type":"string","description":"IP address of the remote end of the tunnel.\n"},"running":{"type":"boolean"}},"type":"object"}},"routeros:index/ipv6Address:Ipv6Address":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst ipv6Address = new routeros.Ipv6Address(\"ipv6_address\", {\n    address: \"fd55::1/64\",\n    \"interface\": \"ether1\",\n    disabled: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nipv6_address = routeros.Ipv6Address(\"ipv6_address\",\n    address=\"fd55::1/64\",\n    interface=\"ether1\",\n    disabled=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ipv6Address = new Routeros.Ipv6Address(\"ipv6_address\", new()\n    {\n        Address = \"fd55::1/64\",\n        Interface = \"ether1\",\n        Disabled = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpv6Address(ctx, \"ipv6_address\", \u0026routeros.Ipv6AddressArgs{\n\t\t\tAddress:   pulumi.String(\"fd55::1/64\"),\n\t\t\tInterface: pulumi.String(\"ether1\"),\n\t\t\tDisabled:  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.routeros.Ipv6Address;\nimport com.pulumi.routeros.Ipv6AddressArgs;\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 ipv6Address = new Ipv6Address(\"ipv6Address\", Ipv6AddressArgs.builder()\n            .address(\"fd55::1/64\")\n            .interface_(\"ether1\")\n            .disabled(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ipv6Address:\n    type: routeros:Ipv6Address\n    name: ipv6_address\n    properties:\n      address: fd55::1/64\n      interface: ether1\n      disabled: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/address get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6Address:Ipv6Address ipv6_address \"*0\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualInterface":{"type":"string","description":"Name of the actual interface the logical one is bound to.\n"},"address":{"type":"string","description":"IPv6 address. Using the eui*64 and from*pool options can transform the original address! [See docs](https://wiki.mikrotik.com/wiki/Manual:IPv6/Address#Properties)\n"},"advertise":{"type":"boolean","description":"Whether to enable stateless address configuration. The prefix of that address is automatically advertised to hosts using ICMPv6 protocol. The option is set by default for addresses with prefix length 64.\n"},"autoLinkLocal":{"type":"boolean","description":"If newly created address is manual link-local address this setting allows to override dynamically created IPv6 link-local address.\n"},"comment":{"type":"string"},"deprecated":{"type":"boolean","description":"Whether address is deprecated\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"eui64":{"type":"boolean","description":"Whether to calculate EUI-64 address and use it as last 64 bits of the IPv6 address.\n"},"fromPool":{"type":"string","description":"Name of the pool from which prefix will be taken to construct IPv6 address taking last part of the address from address property.\n"},"global":{"type":"boolean","description":"Whether address is global.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"invalid":{"type":"boolean"},"ipv6AddressId":{"type":"string","description":"The ID of this resource.\n"},"linkLocal":{"type":"boolean","description":"Whether address is link local.\n"},"noDad":{"type":"boolean","description":"If set indicates that address is anycast address and Duplicate Address Detection should not be performed.\n"},"slave":{"type":"boolean","description":"Whether address belongs to an interface which is a slave port to some other master interface\n"}},"type":"object","required":["actualInterface","address","deprecated","dynamic","global","interface","invalid","ipv6AddressId","linkLocal","slave"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"IPv6 address. Using the eui*64 and from*pool options can transform the original address! [See docs](https://wiki.mikrotik.com/wiki/Manual:IPv6/Address#Properties)\n"},"advertise":{"type":"boolean","description":"Whether to enable stateless address configuration. The prefix of that address is automatically advertised to hosts using ICMPv6 protocol. The option is set by default for addresses with prefix length 64.\n"},"autoLinkLocal":{"type":"boolean","description":"If newly created address is manual link-local address this setting allows to override dynamically created IPv6 link-local address.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"eui64":{"type":"boolean","description":"Whether to calculate EUI-64 address and use it as last 64 bits of the IPv6 address.\n"},"fromPool":{"type":"string","description":"Name of the pool from which prefix will be taken to construct IPv6 address taking last part of the address from address property.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"ipv6AddressId":{"type":"string","description":"The ID of this resource.\n"},"noDad":{"type":"boolean","description":"If set indicates that address is anycast address and Duplicate Address Detection should not be performed.\n"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6Address resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"actualInterface":{"type":"string","description":"Name of the actual interface the logical one is bound to.\n"},"address":{"type":"string","description":"IPv6 address. Using the eui*64 and from*pool options can transform the original address! [See docs](https://wiki.mikrotik.com/wiki/Manual:IPv6/Address#Properties)\n"},"advertise":{"type":"boolean","description":"Whether to enable stateless address configuration. The prefix of that address is automatically advertised to hosts using ICMPv6 protocol. The option is set by default for addresses with prefix length 64.\n"},"autoLinkLocal":{"type":"boolean","description":"If newly created address is manual link-local address this setting allows to override dynamically created IPv6 link-local address.\n"},"comment":{"type":"string"},"deprecated":{"type":"boolean","description":"Whether address is deprecated\n"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"eui64":{"type":"boolean","description":"Whether to calculate EUI-64 address and use it as last 64 bits of the IPv6 address.\n"},"fromPool":{"type":"string","description":"Name of the pool from which prefix will be taken to construct IPv6 address taking last part of the address from address property.\n"},"global":{"type":"boolean","description":"Whether address is global.\n"},"interface":{"type":"string","description":"Name of the interface.\n"},"invalid":{"type":"boolean"},"ipv6AddressId":{"type":"string","description":"The ID of this resource.\n"},"linkLocal":{"type":"boolean","description":"Whether address is link local.\n"},"noDad":{"type":"boolean","description":"If set indicates that address is anycast address and Duplicate Address Detection should not be performed.\n"},"slave":{"type":"boolean","description":"Whether address belongs to an interface which is a slave port to some other master interface\n"}},"type":"object"}},"routeros:index/ipv6DhcpClient:Ipv6DhcpClient":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst inetProvider = new routeros.Ipv6DhcpClient(\"inet_provider\", {\n    poolName: \"pub-add-pool\",\n    \"interface\": \"ether1\",\n    addDefaultRoute: true,\n    poolPrefixLength: 64,\n    requests: [\"prefix\"],\n    disabled: false,\n});\nconst client = new routeros.Ipv6DhcpClient(\"client\", {\n    poolName: \"pub-add-pool\",\n    \"interface\": \"ether1\",\n    addDefaultRoute: true,\n    poolPrefixLength: 64,\n    requests: [\"prefix\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ninet_provider = routeros.Ipv6DhcpClient(\"inet_provider\",\n    pool_name=\"pub-add-pool\",\n    interface=\"ether1\",\n    add_default_route=True,\n    pool_prefix_length=64,\n    requests=[\"prefix\"],\n    disabled=False)\nclient = routeros.Ipv6DhcpClient(\"client\",\n    pool_name=\"pub-add-pool\",\n    interface=\"ether1\",\n    add_default_route=True,\n    pool_prefix_length=64,\n    requests=[\"prefix\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var inetProvider = new Routeros.Ipv6DhcpClient(\"inet_provider\", new()\n    {\n        PoolName = \"pub-add-pool\",\n        Interface = \"ether1\",\n        AddDefaultRoute = true,\n        PoolPrefixLength = 64,\n        Requests = new[]\n        {\n            \"prefix\",\n        },\n        Disabled = false,\n    });\n\n    var client = new Routeros.Ipv6DhcpClient(\"client\", new()\n    {\n        PoolName = \"pub-add-pool\",\n        Interface = \"ether1\",\n        AddDefaultRoute = true,\n        PoolPrefixLength = 64,\n        Requests = new[]\n        {\n            \"prefix\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpv6DhcpClient(ctx, \"inet_provider\", \u0026routeros.Ipv6DhcpClientArgs{\n\t\t\tPoolName:         pulumi.String(\"pub-add-pool\"),\n\t\t\tInterface:        pulumi.String(\"ether1\"),\n\t\t\tAddDefaultRoute:  pulumi.Bool(true),\n\t\t\tPoolPrefixLength: pulumi.Float64(64),\n\t\t\tRequests: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"prefix\"),\n\t\t\t},\n\t\t\tDisabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewIpv6DhcpClient(ctx, \"client\", \u0026routeros.Ipv6DhcpClientArgs{\n\t\t\tPoolName:         pulumi.String(\"pub-add-pool\"),\n\t\t\tInterface:        pulumi.String(\"ether1\"),\n\t\t\tAddDefaultRoute:  pulumi.Bool(true),\n\t\t\tPoolPrefixLength: pulumi.Float64(64),\n\t\t\tRequests: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"prefix\"),\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.routeros.Ipv6DhcpClient;\nimport com.pulumi.routeros.Ipv6DhcpClientArgs;\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 inetProvider = new Ipv6DhcpClient(\"inetProvider\", Ipv6DhcpClientArgs.builder()\n            .poolName(\"pub-add-pool\")\n            .interface_(\"ether1\")\n            .addDefaultRoute(true)\n            .poolPrefixLength(64.0)\n            .requests(\"prefix\")\n            .disabled(false)\n            .build());\n\n        var client = new Ipv6DhcpClient(\"client\", Ipv6DhcpClientArgs.builder()\n            .poolName(\"pub-add-pool\")\n            .interface_(\"ether1\")\n            .addDefaultRoute(true)\n            .poolPrefixLength(64.0)\n            .requests(\"prefix\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  inetProvider:\n    type: routeros:Ipv6DhcpClient\n    name: inet_provider\n    properties:\n      poolName: pub-add-pool\n      interface: ether1\n      addDefaultRoute: true\n      poolPrefixLength: 64\n      requests:\n        - prefix\n      disabled: false\n  client:\n    type: routeros:Ipv6DhcpClient\n    properties:\n      poolName: pub-add-pool\n      interface: ether1\n      addDefaultRoute: true\n      poolPrefixLength: 64\n      requests:\n        - prefix\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/dhcp-client/  get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6DhcpClient:Ipv6DhcpClient inet_provider \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6DhcpClient:Ipv6DhcpClient inet_provider \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acceptPrefixWithoutAddress":{"type":"boolean"},"addDefaultRoute":{"type":"boolean","description":"Whether to add default IPv6 route after a client connects."},"address":{"type":"string","description":"IPv6 address, which is assigned to DHCPv6 Client from the Server."},"allowReconfigure":{"type":"boolean","description":"Allow reconfigure messages."},"checkGateway":{"type":"string","description":"Method on how to check gateway reachability."},"comment":{"type":"string"},"customIanaId":{"type":"string","description":"Allow to specify custom IANA ID."},"customIapdId":{"type":"string","description":"Allow to specify custom IAPD ID."},"defaultRouteDistance":{"type":"number","description":"Distance of default route. Applicable if add-default-route is set to yes."},"defaultRouteTables":{"type":"array","items":{"type":"string"},"description":"List of routing tables to which default route must be added. Table name can be proceeded with \":x\" where x would be the distance for the route to be installed with."},"dhcpOptions":{"type":"array","items":{"type":"string"},"description":"Options that are sent to the DHCP server."},"dhcpServerV6":{"type":"string","description":"The IPv6 address of the DHCP server"},"disabled":{"type":"boolean"},"duid":{"type":"string","description":"Auto-generated DUID that is sent to the server. DUID is generated using one of the MAC addresses available on the router."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"expiresAfter":{"type":"string","description":"A time when the IPv6 prefix expires (specified by the DHCPv6 server)."},"gateway":{"type":"string","description":"The IP address of the gateway which is assigned by DHCP server."},"interface":{"type":"string","description":"Name of the interface."},"invalid":{"type":"boolean"},"ipv6DhcpClientId":{"type":"string"},"poolName":{"type":"string","description":"Name of the IPv6 pool in which received IPv6 prefix will be added"},"poolPrefixLength":{"type":"number","description":"Prefix length parameter that will be set for IPv6 pool in which received IPv6 prefix is added. Prefix length must be greater than the length of the received prefix, otherwise, prefix-length will be set to received prefix length + 8 bits."},"prefix":{"type":"string","description":"Shows received IPv6 prefix from DHCPv6-PD server"},"prefixAddressLists":{"type":"array","items":{"type":"string"},"description":"Names of the firewall address lists to which received prefix will be added."},"prefixHint":{"type":"string","description":"Include a preferred prefix length."},"rapidCommit":{"type":"boolean","description":"Enable DHCP rapid commit (fast address assignment)"},"requests":{"type":"array","items":{"type":"string"},"description":"To choose if the DHCPv6 request will ask for the address, info or the IPv6 prefix."},"script":{"type":"string","description":"Run this script on the DHCP-client status change. Available variables:\n  * pd-valid - if the prefix is acquired by the client;\n  * pd-prefix - the prefix acquired by the client if any;\n  * na-valid - if the address is acquired by the client;\n  * na-address - the address acquired by the client if any.\n  * options - array of received options (only ROSv7)"},"status":{"type":"string","description":"Shows the status of DHCPv6 Client:\n  * stopped - dhcpv6 client is stopped\n  * searching - sending \u003cspan pulumi-lang-nodejs=\"`solicit`\" pulumi-lang-dotnet=\"`Solicit`\" pulumi-lang-go=\"`solicit`\" pulumi-lang-python=\"`solicit`\" pulumi-lang-yaml=\"`solicit`\" pulumi-lang-java=\"`solicit`\"\u003e`solicit`\u003c/span\u003e and trying to get \u003cspan pulumi-lang-nodejs=\"`advertise`\" pulumi-lang-dotnet=\"`Advertise`\" pulumi-lang-go=\"`advertise`\" pulumi-lang-python=\"`advertise`\" pulumi-lang-yaml=\"`advertise`\" pulumi-lang-java=\"`advertise`\"\u003e`advertise`\u003c/span\u003e  Shows actual (resolved) gateway and interface that will be used for packet forwarding.requesting - sent \u003cspan pulumi-lang-nodejs=\"`request`\" pulumi-lang-dotnet=\"`Request`\" pulumi-lang-go=\"`request`\" pulumi-lang-python=\"`request`\" pulumi-lang-yaml=\"`request`\" pulumi-lang-java=\"`request`\"\u003e`request`\u003c/span\u003e waiting for \u003cspan pulumi-lang-nodejs=\"`reply`\" pulumi-lang-dotnet=\"`Reply`\" pulumi-lang-go=\"`reply`\" pulumi-lang-python=\"`reply`\" pulumi-lang-yaml=\"`reply`\" pulumi-lang-java=\"`reply`\"\u003e`reply`\u003c/span\u003e\n  * bound - received \u003cspan pulumi-lang-nodejs=\"`reply`\" pulumi-lang-dotnet=\"`Reply`\" pulumi-lang-go=\"`reply`\" pulumi-lang-python=\"`reply`\" pulumi-lang-yaml=\"`reply`\" pulumi-lang-java=\"`reply`\"\u003e`reply`\u003c/span\u003e. Prefix assigned.\n  * renewing - sent \u003cspan pulumi-lang-nodejs=\"`renew`\" pulumi-lang-dotnet=\"`Renew`\" pulumi-lang-go=\"`renew`\" pulumi-lang-python=\"`renew`\" pulumi-lang-yaml=\"`renew`\" pulumi-lang-java=\"`renew`\"\u003e`renew`\u003c/span\u003e, waiting for \u003cspan pulumi-lang-nodejs=\"`reply`\" pulumi-lang-dotnet=\"`Reply`\" pulumi-lang-go=\"`reply`\" pulumi-lang-python=\"`reply`\" pulumi-lang-yaml=\"`reply`\" pulumi-lang-java=\"`reply`\"\u003e`reply`\u003c/span\u003e\n  * rebinding - sent \u003cspan pulumi-lang-nodejs=\"`rebind`\" pulumi-lang-dotnet=\"`Rebind`\" pulumi-lang-go=\"`rebind`\" pulumi-lang-python=\"`rebind`\" pulumi-lang-yaml=\"`rebind`\" pulumi-lang-java=\"`rebind`\"\u003e`rebind`\u003c/span\u003e, waiting for \u003cspan pulumi-lang-nodejs=\"`reply`\" pulumi-lang-dotnet=\"`Reply`\" pulumi-lang-go=\"`reply`\" pulumi-lang-python=\"`reply`\" pulumi-lang-yaml=\"`reply`\" pulumi-lang-java=\"`reply`\"\u003e`reply`\u003c/span\u003e\n  * error - reply was not received in time or some other error occurred.\n  * stopping - sent \u003cspan pulumi-lang-nodejs=\"`release`\" pulumi-lang-dotnet=\"`Release`\" pulumi-lang-go=\"`release`\" pulumi-lang-python=\"`release`\" pulumi-lang-yaml=\"`release`\" pulumi-lang-java=\"`release`\"\u003e`release`\u003c/span\u003e"},"useInterfaceDuid":{"type":"boolean","description":"Specifies the MAC address of the specified interface as the DHCPv6 client DUID."},"usePeerDns":{"type":"boolean","description":"Whether to accept the DNS settings advertised by the IPv6 DHCP Server."},"validateServerDuid":{"type":"boolean","description":"Whether to validate the DUID of the IPv6 DHCP Server."}},"type":"object","required":["address","dhcpServerV6","duid","dynamic","expiresAfter","gateway","interface","invalid","ipv6DhcpClientId","prefix","prefixHint","requests","status"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acceptPrefixWithoutAddress":{"type":"boolean"},"addDefaultRoute":{"type":"boolean","description":"Whether to add default IPv6 route after a client connects."},"allowReconfigure":{"type":"boolean","description":"Allow reconfigure messages."},"checkGateway":{"type":"string","description":"Method on how to check gateway reachability."},"comment":{"type":"string"},"customIanaId":{"type":"string","description":"Allow to specify custom IANA ID."},"customIapdId":{"type":"string","description":"Allow to specify custom IAPD ID."},"defaultRouteDistance":{"type":"number","description":"Distance of default route. Applicable if add-default-route is set to yes."},"defaultRouteTables":{"type":"array","items":{"type":"string"},"description":"List of routing tables to which default route must be added. Table name can be proceeded with \":x\" where x would be the distance for the route to be installed with."},"dhcpOptions":{"type":"array","items":{"type":"string"},"description":"Options that are sent to the DHCP server."},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"ipv6DhcpClientId":{"type":"string"},"poolName":{"type":"string","description":"Name of the IPv6 pool in which received IPv6 prefix will be added"},"poolPrefixLength":{"type":"number","description":"Prefix length parameter that will be set for IPv6 pool in which received IPv6 prefix is added. Prefix length must be greater than the length of the received prefix, otherwise, prefix-length will be set to received prefix length + 8 bits."},"prefixAddressLists":{"type":"array","items":{"type":"string"},"description":"Names of the firewall address lists to which received prefix will be added."},"prefixHint":{"type":"string","description":"Include a preferred prefix length."},"rapidCommit":{"type":"boolean","description":"Enable DHCP rapid commit (fast address assignment)"},"requests":{"type":"array","items":{"type":"string"},"description":"To choose if the DHCPv6 request will ask for the address, info or the IPv6 prefix."},"script":{"type":"string","description":"Run this script on the DHCP-client status change. Available variables:\n  * pd-valid - if the prefix is acquired by the client;\n  * pd-prefix - the prefix acquired by the client if any;\n  * na-valid - if the address is acquired by the client;\n  * na-address - the address acquired by the client if any.\n  * options - array of received options (only ROSv7)"},"useInterfaceDuid":{"type":"boolean","description":"Specifies the MAC address of the specified interface as the DHCPv6 client DUID."},"usePeerDns":{"type":"boolean","description":"Whether to accept the DNS settings advertised by the IPv6 DHCP Server."},"validateServerDuid":{"type":"boolean","description":"Whether to validate the DUID of the IPv6 DHCP Server."}},"requiredInputs":["interface","requests"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6DhcpClient resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acceptPrefixWithoutAddress":{"type":"boolean"},"addDefaultRoute":{"type":"boolean","description":"Whether to add default IPv6 route after a client connects."},"address":{"type":"string","description":"IPv6 address, which is assigned to DHCPv6 Client from the Server."},"allowReconfigure":{"type":"boolean","description":"Allow reconfigure messages."},"checkGateway":{"type":"string","description":"Method on how to check gateway reachability."},"comment":{"type":"string"},"customIanaId":{"type":"string","description":"Allow to specify custom IANA ID."},"customIapdId":{"type":"string","description":"Allow to specify custom IAPD ID."},"defaultRouteDistance":{"type":"number","description":"Distance of default route. Applicable if add-default-route is set to yes."},"defaultRouteTables":{"type":"array","items":{"type":"string"},"description":"List of routing tables to which default route must be added. Table name can be proceeded with \":x\" where x would be the distance for the route to be installed with."},"dhcpOptions":{"type":"array","items":{"type":"string"},"description":"Options that are sent to the DHCP server."},"dhcpServerV6":{"type":"string","description":"The IPv6 address of the DHCP server"},"disabled":{"type":"boolean"},"duid":{"type":"string","description":"Auto-generated DUID that is sent to the server. DUID is generated using one of the MAC addresses available on the router."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"expiresAfter":{"type":"string","description":"A time when the IPv6 prefix expires (specified by the DHCPv6 server)."},"gateway":{"type":"string","description":"The IP address of the gateway which is assigned by DHCP server."},"interface":{"type":"string","description":"Name of the interface."},"invalid":{"type":"boolean"},"ipv6DhcpClientId":{"type":"string"},"poolName":{"type":"string","description":"Name of the IPv6 pool in which received IPv6 prefix will be added"},"poolPrefixLength":{"type":"number","description":"Prefix length parameter that will be set for IPv6 pool in which received IPv6 prefix is added. Prefix length must be greater than the length of the received prefix, otherwise, prefix-length will be set to received prefix length + 8 bits."},"prefix":{"type":"string","description":"Shows received IPv6 prefix from DHCPv6-PD server"},"prefixAddressLists":{"type":"array","items":{"type":"string"},"description":"Names of the firewall address lists to which received prefix will be added."},"prefixHint":{"type":"string","description":"Include a preferred prefix length."},"rapidCommit":{"type":"boolean","description":"Enable DHCP rapid commit (fast address assignment)"},"requests":{"type":"array","items":{"type":"string"},"description":"To choose if the DHCPv6 request will ask for the address, info or the IPv6 prefix."},"script":{"type":"string","description":"Run this script on the DHCP-client status change. Available variables:\n  * pd-valid - if the prefix is acquired by the client;\n  * pd-prefix - the prefix acquired by the client if any;\n  * na-valid - if the address is acquired by the client;\n  * na-address - the address acquired by the client if any.\n  * options - array of received options (only ROSv7)"},"status":{"type":"string","description":"Shows the status of DHCPv6 Client:\n  * stopped - dhcpv6 client is stopped\n  * searching - sending \u003cspan pulumi-lang-nodejs=\"`solicit`\" pulumi-lang-dotnet=\"`Solicit`\" pulumi-lang-go=\"`solicit`\" pulumi-lang-python=\"`solicit`\" pulumi-lang-yaml=\"`solicit`\" pulumi-lang-java=\"`solicit`\"\u003e`solicit`\u003c/span\u003e and trying to get \u003cspan pulumi-lang-nodejs=\"`advertise`\" pulumi-lang-dotnet=\"`Advertise`\" pulumi-lang-go=\"`advertise`\" pulumi-lang-python=\"`advertise`\" pulumi-lang-yaml=\"`advertise`\" pulumi-lang-java=\"`advertise`\"\u003e`advertise`\u003c/span\u003e  Shows actual (resolved) gateway and interface that will be used for packet forwarding.requesting - sent \u003cspan pulumi-lang-nodejs=\"`request`\" pulumi-lang-dotnet=\"`Request`\" pulumi-lang-go=\"`request`\" pulumi-lang-python=\"`request`\" pulumi-lang-yaml=\"`request`\" pulumi-lang-java=\"`request`\"\u003e`request`\u003c/span\u003e waiting for \u003cspan pulumi-lang-nodejs=\"`reply`\" pulumi-lang-dotnet=\"`Reply`\" pulumi-lang-go=\"`reply`\" pulumi-lang-python=\"`reply`\" pulumi-lang-yaml=\"`reply`\" pulumi-lang-java=\"`reply`\"\u003e`reply`\u003c/span\u003e\n  * bound - received \u003cspan pulumi-lang-nodejs=\"`reply`\" pulumi-lang-dotnet=\"`Reply`\" pulumi-lang-go=\"`reply`\" pulumi-lang-python=\"`reply`\" pulumi-lang-yaml=\"`reply`\" pulumi-lang-java=\"`reply`\"\u003e`reply`\u003c/span\u003e. Prefix assigned.\n  * renewing - sent \u003cspan pulumi-lang-nodejs=\"`renew`\" pulumi-lang-dotnet=\"`Renew`\" pulumi-lang-go=\"`renew`\" pulumi-lang-python=\"`renew`\" pulumi-lang-yaml=\"`renew`\" pulumi-lang-java=\"`renew`\"\u003e`renew`\u003c/span\u003e, waiting for \u003cspan pulumi-lang-nodejs=\"`reply`\" pulumi-lang-dotnet=\"`Reply`\" pulumi-lang-go=\"`reply`\" pulumi-lang-python=\"`reply`\" pulumi-lang-yaml=\"`reply`\" pulumi-lang-java=\"`reply`\"\u003e`reply`\u003c/span\u003e\n  * rebinding - sent \u003cspan pulumi-lang-nodejs=\"`rebind`\" pulumi-lang-dotnet=\"`Rebind`\" pulumi-lang-go=\"`rebind`\" pulumi-lang-python=\"`rebind`\" pulumi-lang-yaml=\"`rebind`\" pulumi-lang-java=\"`rebind`\"\u003e`rebind`\u003c/span\u003e, waiting for \u003cspan pulumi-lang-nodejs=\"`reply`\" pulumi-lang-dotnet=\"`Reply`\" pulumi-lang-go=\"`reply`\" pulumi-lang-python=\"`reply`\" pulumi-lang-yaml=\"`reply`\" pulumi-lang-java=\"`reply`\"\u003e`reply`\u003c/span\u003e\n  * error - reply was not received in time or some other error occurred.\n  * stopping - sent \u003cspan pulumi-lang-nodejs=\"`release`\" pulumi-lang-dotnet=\"`Release`\" pulumi-lang-go=\"`release`\" pulumi-lang-python=\"`release`\" pulumi-lang-yaml=\"`release`\" pulumi-lang-java=\"`release`\"\u003e`release`\u003c/span\u003e"},"useInterfaceDuid":{"type":"boolean","description":"Specifies the MAC address of the specified interface as the DHCPv6 client DUID."},"usePeerDns":{"type":"boolean","description":"Whether to accept the DNS settings advertised by the IPv6 DHCP Server."},"validateServerDuid":{"type":"boolean","description":"Whether to validate the DUID of the IPv6 DHCP Server."}},"type":"object"}},"routeros:index/ipv6DhcpClientOption:Ipv6DhcpClientOption":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst option = new routeros.Ipv6DhcpClientOption(\"option\", {\n    name: \"my-dhcp-option\",\n    code: 60,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\noption = routeros.Ipv6DhcpClientOption(\"option\",\n    name=\"my-dhcp-option\",\n    code=60)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var option = new Routeros.Ipv6DhcpClientOption(\"option\", new()\n    {\n        Name = \"my-dhcp-option\",\n        Code = 60,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpv6DhcpClientOption(ctx, \"option\", \u0026routeros.Ipv6DhcpClientOptionArgs{\n\t\t\tName: pulumi.String(\"my-dhcp-option\"),\n\t\t\tCode: pulumi.Float64(60),\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.routeros.Ipv6DhcpClientOption;\nimport com.pulumi.routeros.Ipv6DhcpClientOptionArgs;\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 option = new Ipv6DhcpClientOption(\"option\", Ipv6DhcpClientOptionArgs.builder()\n            .name(\"my-dhcp-option\")\n            .code(60.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  option:\n    type: routeros:Ipv6DhcpClientOption\n    properties:\n      name: my-dhcp-option\n      code: 60\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/dhcp-client/option get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6DhcpClientOption:Ipv6DhcpClientOption option \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6DhcpClientOption:Ipv6DhcpClientOption option \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"The dhcp-client option code.\n"},"ipv6DhcpClientOptionId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name that will be used in dhcp-client.\n"},"rawValue":{"type":"string","description":"raw_value is computed from value.\n"},"value":{"type":"string","description":"The dhcp-client option\n"}},"type":"object","required":["code","ipv6DhcpClientOptionId","name","rawValue"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"The dhcp-client option code.\n"},"ipv6DhcpClientOptionId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name that will be used in dhcp-client.\n"},"value":{"type":"string","description":"The dhcp-client option\n"}},"requiredInputs":["code"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6DhcpClientOption resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"The dhcp-client option code.\n"},"ipv6DhcpClientOptionId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name that will be used in dhcp-client.\n"},"rawValue":{"type":"string","description":"raw_value is computed from value.\n"},"value":{"type":"string","description":"The dhcp-client option\n"}},"type":"object"}},"routeros:index/ipv6DhcpServer:Ipv6DhcpServer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst pool_0 = new routeros.Ipv6Pool(\"pool-0\", {\n    name: \"test-pool-0\",\n    prefix: \"2001:db8:40::/48\",\n    prefixLength: 64,\n});\nconst test = new routeros.Ipv6DhcpServer(\"test\", {\n    addressPool: pool_0.name,\n    \"interface\": \"bridge\",\n    leaseTime: \"1m\",\n    name: \"test-dhcpv6\",\n    preference: 128,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\npool_0 = routeros.Ipv6Pool(\"pool-0\",\n    name=\"test-pool-0\",\n    prefix=\"2001:db8:40::/48\",\n    prefix_length=64)\ntest = routeros.Ipv6DhcpServer(\"test\",\n    address_pool=pool_0.name,\n    interface=\"bridge\",\n    lease_time=\"1m\",\n    name=\"test-dhcpv6\",\n    preference=128)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var pool_0 = new Routeros.Ipv6Pool(\"pool-0\", new()\n    {\n        Name = \"test-pool-0\",\n        Prefix = \"2001:db8:40::/48\",\n        PrefixLength = 64,\n    });\n\n    var test = new Routeros.Ipv6DhcpServer(\"test\", new()\n    {\n        AddressPool = pool_0.Name,\n        Interface = \"bridge\",\n        LeaseTime = \"1m\",\n        Name = \"test-dhcpv6\",\n        Preference = 128,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpool_0, err := routeros.NewIpv6Pool(ctx, \"pool-0\", \u0026routeros.Ipv6PoolArgs{\n\t\t\tName:         pulumi.String(\"test-pool-0\"),\n\t\t\tPrefix:       pulumi.String(\"2001:db8:40::/48\"),\n\t\t\tPrefixLength: pulumi.Float64(64),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewIpv6DhcpServer(ctx, \"test\", \u0026routeros.Ipv6DhcpServerArgs{\n\t\t\tAddressPool: pool_0.Name,\n\t\t\tInterface:   pulumi.String(\"bridge\"),\n\t\t\tLeaseTime:   pulumi.String(\"1m\"),\n\t\t\tName:        pulumi.String(\"test-dhcpv6\"),\n\t\t\tPreference:  pulumi.Float64(128),\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.routeros.Ipv6Pool;\nimport com.pulumi.routeros.Ipv6PoolArgs;\nimport com.pulumi.routeros.Ipv6DhcpServer;\nimport com.pulumi.routeros.Ipv6DhcpServerArgs;\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 pool_0 = new Ipv6Pool(\"pool-0\", Ipv6PoolArgs.builder()\n            .name(\"test-pool-0\")\n            .prefix(\"2001:db8:40::/48\")\n            .prefixLength(64.0)\n            .build());\n\n        var test = new Ipv6DhcpServer(\"test\", Ipv6DhcpServerArgs.builder()\n            .addressPool(pool_0.name())\n            .interface_(\"bridge\")\n            .leaseTime(\"1m\")\n            .name(\"test-dhcpv6\")\n            .preference(128.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pool-0:\n    type: routeros:Ipv6Pool\n    properties:\n      name: test-pool-0\n      prefix: 2001:db8:40::/48\n      prefixLength: 64\n  test:\n    type: routeros:Ipv6DhcpServer\n    properties:\n      addressPool: ${[\"pool-0\"].name}\n      interface: bridge\n      leaseTime: 1m\n      name: test-dhcpv6\n      preference: 128\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/dhcp/server get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6DhcpServer:Ipv6DhcpServer test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6DhcpServer:Ipv6DhcpServer test \"name=test-dhcpv6\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressLists":{"type":"array","items":{"type":"string"},"description":"Firewall address lists to which the allocated addresses and prefixes will be added if the lease is bound."},"addressPool":{"type":"string","description":"IPv6 pool, from which to take IPv6 address for the clients. The prefix length of the pool must be 128."},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, and uses the MAC address and DUID for identification. Requires IPv6 DHCP Server to have this option enabled as well to work properly."},"bindingScript":{"type":"string","description":"A script that will be executed after binding is assigned or de-assigned. Internal \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e variables that can be used in the script:\n    - bindingBound - set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e if bound, otherwise set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e\n    - bindingServerName - dhcp server name\n    - bindingDUID - DUID\n    - bindingAddress - active address\n    - bindingPrefix - active prefix."},"comment":{"type":"string"},"dhcpOptions":{"type":"array","items":{"type":"string"},"description":"Add additional DHCP options from option list."},"disabled":{"type":"boolean"},"duid":{"type":"string","description":"DUID value."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"ignoreIaNaBindings":{"type":"boolean","description":"Do not reply to DHCPv6 address requests and process only prefixes. Without this setting even if server does not have address-pool configured, it has to respond to client that there is no address available for the client. That can lead up to the situation when DHCPv6 client requests address and prefix in a loop."},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with a rate-limit parameter set."},"interface":{"type":"string","description":"The interface on which server will be running."},"invalid":{"type":"boolean"},"ipv6DhcpServerId":{"type":"string"},"leaseTime":{"type":"string","description":"The time that a client may use the assigned address. The client will try to renew this address after half of this time and will request a new address after the time limit expires."},"name":{"type":"string","description":"Reference name."},"parentQueue":{"type":"string","description":"A dynamically created queue for this lease will be configured as a child queue of the specified parent queue."},"preference":{"type":"number"},"prefixPool":{"type":"string","description":"IPv6 pool, from which to take IPv6 prefix for the clients."},"rapidCommit":{"type":"boolean"},"routeDistance":{"type":"number","description":"Distance of the route."},"useRadius":{"type":"boolean","description":"Whether to use RADIUS server."},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure messages to clients."}},"type":"object","required":["duid","dynamic","interface","invalid","ipv6DhcpServerId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressLists":{"type":"array","items":{"type":"string"},"description":"Firewall address lists to which the allocated addresses and prefixes will be added if the lease is bound."},"addressPool":{"type":"string","description":"IPv6 pool, from which to take IPv6 address for the clients. The prefix length of the pool must be 128."},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, and uses the MAC address and DUID for identification. Requires IPv6 DHCP Server to have this option enabled as well to work properly."},"bindingScript":{"type":"string","description":"A script that will be executed after binding is assigned or de-assigned. Internal \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e variables that can be used in the script:\n    - bindingBound - set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e if bound, otherwise set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e\n    - bindingServerName - dhcp server name\n    - bindingDUID - DUID\n    - bindingAddress - active address\n    - bindingPrefix - active prefix."},"comment":{"type":"string"},"dhcpOptions":{"type":"array","items":{"type":"string"},"description":"Add additional DHCP options from option list."},"disabled":{"type":"boolean"},"ignoreIaNaBindings":{"type":"boolean","description":"Do not reply to DHCPv6 address requests and process only prefixes. Without this setting even if server does not have address-pool configured, it has to respond to client that there is no address available for the client. That can lead up to the situation when DHCPv6 client requests address and prefix in a loop."},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with a rate-limit parameter set."},"interface":{"type":"string","description":"The interface on which server will be running."},"ipv6DhcpServerId":{"type":"string"},"leaseTime":{"type":"string","description":"The time that a client may use the assigned address. The client will try to renew this address after half of this time and will request a new address after the time limit expires."},"name":{"type":"string","description":"Reference name."},"parentQueue":{"type":"string","description":"A dynamically created queue for this lease will be configured as a child queue of the specified parent queue."},"preference":{"type":"number"},"prefixPool":{"type":"string","description":"IPv6 pool, from which to take IPv6 prefix for the clients."},"rapidCommit":{"type":"boolean"},"routeDistance":{"type":"number","description":"Distance of the route."},"useRadius":{"type":"boolean","description":"Whether to use RADIUS server."},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure messages to clients."}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6DhcpServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressLists":{"type":"array","items":{"type":"string"},"description":"Firewall address lists to which the allocated addresses and prefixes will be added if the lease is bound."},"addressPool":{"type":"string","description":"IPv6 pool, from which to take IPv6 address for the clients. The prefix length of the pool must be 128."},"allowDualStackQueue":{"type":"boolean","description":"Creates a single simple queue entry for both IPv4 and IPv6 addresses, and uses the MAC address and DUID for identification. Requires IPv6 DHCP Server to have this option enabled as well to work properly."},"bindingScript":{"type":"string","description":"A script that will be executed after binding is assigned or de-assigned. Internal \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e variables that can be used in the script:\n    - bindingBound - set to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e if bound, otherwise set to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e\n    - bindingServerName - dhcp server name\n    - bindingDUID - DUID\n    - bindingAddress - active address\n    - bindingPrefix - active prefix."},"comment":{"type":"string"},"dhcpOptions":{"type":"array","items":{"type":"string"},"description":"Add additional DHCP options from option list."},"disabled":{"type":"boolean"},"duid":{"type":"string","description":"DUID value."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"ignoreIaNaBindings":{"type":"boolean","description":"Do not reply to DHCPv6 address requests and process only prefixes. Without this setting even if server does not have address-pool configured, it has to respond to client that there is no address available for the client. That can lead up to the situation when DHCPv6 client requests address and prefix in a loop."},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with a rate-limit parameter set."},"interface":{"type":"string","description":"The interface on which server will be running."},"invalid":{"type":"boolean"},"ipv6DhcpServerId":{"type":"string"},"leaseTime":{"type":"string","description":"The time that a client may use the assigned address. The client will try to renew this address after half of this time and will request a new address after the time limit expires."},"name":{"type":"string","description":"Reference name."},"parentQueue":{"type":"string","description":"A dynamically created queue for this lease will be configured as a child queue of the specified parent queue."},"preference":{"type":"number"},"prefixPool":{"type":"string","description":"IPv6 pool, from which to take IPv6 prefix for the clients."},"rapidCommit":{"type":"boolean"},"routeDistance":{"type":"number","description":"Distance of the route."},"useRadius":{"type":"boolean","description":"Whether to use RADIUS server."},"useReconfigure":{"type":"boolean","description":"Allow the server to send Reconfigure messages to clients."}},"type":"object"}},"routeros:index/ipv6DhcpServerOption:Ipv6DhcpServerOption":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.Ipv6DhcpServerOption(\"test\", {\n    name: \"domain-search\",\n    code: 24,\n    value: \"0x07'example'0x05'local'0x00\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.Ipv6DhcpServerOption(\"test\",\n    name=\"domain-search\",\n    code=24,\n    value=\"0x07'example'0x05'local'0x00\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.Ipv6DhcpServerOption(\"test\", new()\n    {\n        Name = \"domain-search\",\n        Code = 24,\n        Value = \"0x07'example'0x05'local'0x00\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpv6DhcpServerOption(ctx, \"test\", \u0026routeros.Ipv6DhcpServerOptionArgs{\n\t\t\tName:  pulumi.String(\"domain-search\"),\n\t\t\tCode:  pulumi.Float64(24),\n\t\t\tValue: pulumi.String(\"0x07'example'0x05'local'0x00\"),\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.routeros.Ipv6DhcpServerOption;\nimport com.pulumi.routeros.Ipv6DhcpServerOptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Ipv6DhcpServerOption(\"test\", Ipv6DhcpServerOptionArgs.builder()\n            .name(\"domain-search\")\n            .code(24.0)\n            .value(\"0x07'example'0x05'local'0x00\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:Ipv6DhcpServerOption\n    properties:\n      name: domain-search\n      code: 24\n      value: 0x07'example'0x05'local'0x00\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/dhcp/server/option get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6DhcpServerOption:Ipv6DhcpServerOption test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6DhcpServerOption:Ipv6DhcpServerOption test \"name=domain-search\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"Dhcp option [code](https://www.ipamworldwide.com/ipam/isc-dhcpv6-options.html)."},"comment":{"type":"string"},"ipv6DhcpServerOptionId":{"type":"string"},"name":{"type":"string","description":"Descriptive name of the option."},"rawValue":{"type":"string","description":"Read-only field which shows raw DHCP option value (the format actually sent out)."},"value":{"type":"string","description":"Parameter's value. Available data types for options are:\n    - `'test'` \u003e ASCII to Hex 0x74657374\n    - `'10.10.10.10'` \u003e Unicode IP to Hex 0x0a0a0a0a\n    - `s'10.10.10.10'` \u003e ASCII to Hex 0x31302e31302e31302e3130\n    - `s'160'` \u003e ASCII to Hex 0x313630\n    - `'10'` \u003e Decimal to Hex 0x0a\n    - \u003cspan pulumi-lang-nodejs=\"`0x0a0a`\" pulumi-lang-dotnet=\"`0x0a0a`\" pulumi-lang-go=\"`0x0a0a`\" pulumi-lang-python=\"`0x0a0a`\" pulumi-lang-yaml=\"`0x0a0a`\" pulumi-lang-java=\"`0x0a0a`\"\u003e`0x0a0a`\u003c/span\u003e \u003e No conversion\n    - `$(VARIABLE)` \u003e hardcoded values\n\n\tRouterOS has predefined variables that can be used:\n    - `HOSTNAME` - client hostname\n    - `RADIUS_MT_STR1` - from radius MT attr nr. \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e\n    - `RADIUS_MT_STR2` - from radius MT attr nr. \u003cspan pulumi-lang-nodejs=\"`25`\" pulumi-lang-dotnet=\"`25`\" pulumi-lang-go=\"`25`\" pulumi-lang-python=\"`25`\" pulumi-lang-yaml=\"`25`\" pulumi-lang-java=\"`25`\"\u003e`25`\u003c/span\u003e\n    - `REMOTE_ID` - agent remote-id\n    - `NETWORK_GATEWAY - the first gateway from `/ip dhcp-server network`, note that this option won't work if used from lease.\n\nNow it is also possible to combine data types into one, for example: `0x01'vards'$(HOSTNAME)`For example if HOSTNAME is 'kvm', then raw value will be 0x0176617264736b766d."}},"type":"object","required":["code","ipv6DhcpServerOptionId","name","rawValue"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"Dhcp option [code](https://www.ipamworldwide.com/ipam/isc-dhcpv6-options.html)."},"comment":{"type":"string"},"ipv6DhcpServerOptionId":{"type":"string"},"name":{"type":"string","description":"Descriptive name of the option."},"value":{"type":"string","description":"Parameter's value. Available data types for options are:\n    - `'test'` \u003e ASCII to Hex 0x74657374\n    - `'10.10.10.10'` \u003e Unicode IP to Hex 0x0a0a0a0a\n    - `s'10.10.10.10'` \u003e ASCII to Hex 0x31302e31302e31302e3130\n    - `s'160'` \u003e ASCII to Hex 0x313630\n    - `'10'` \u003e Decimal to Hex 0x0a\n    - \u003cspan pulumi-lang-nodejs=\"`0x0a0a`\" pulumi-lang-dotnet=\"`0x0a0a`\" pulumi-lang-go=\"`0x0a0a`\" pulumi-lang-python=\"`0x0a0a`\" pulumi-lang-yaml=\"`0x0a0a`\" pulumi-lang-java=\"`0x0a0a`\"\u003e`0x0a0a`\u003c/span\u003e \u003e No conversion\n    - `$(VARIABLE)` \u003e hardcoded values\n\n\tRouterOS has predefined variables that can be used:\n    - `HOSTNAME` - client hostname\n    - `RADIUS_MT_STR1` - from radius MT attr nr. \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e\n    - `RADIUS_MT_STR2` - from radius MT attr nr. \u003cspan pulumi-lang-nodejs=\"`25`\" pulumi-lang-dotnet=\"`25`\" pulumi-lang-go=\"`25`\" pulumi-lang-python=\"`25`\" pulumi-lang-yaml=\"`25`\" pulumi-lang-java=\"`25`\"\u003e`25`\u003c/span\u003e\n    - `REMOTE_ID` - agent remote-id\n    - `NETWORK_GATEWAY - the first gateway from `/ip dhcp-server network`, note that this option won't work if used from lease.\n\nNow it is also possible to combine data types into one, for example: `0x01'vards'$(HOSTNAME)`For example if HOSTNAME is 'kvm', then raw value will be 0x0176617264736b766d."}},"requiredInputs":["code"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6DhcpServerOption resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"code":{"type":"number","description":"Dhcp option [code](https://www.ipamworldwide.com/ipam/isc-dhcpv6-options.html)."},"comment":{"type":"string"},"ipv6DhcpServerOptionId":{"type":"string"},"name":{"type":"string","description":"Descriptive name of the option."},"rawValue":{"type":"string","description":"Read-only field which shows raw DHCP option value (the format actually sent out)."},"value":{"type":"string","description":"Parameter's value. Available data types for options are:\n    - `'test'` \u003e ASCII to Hex 0x74657374\n    - `'10.10.10.10'` \u003e Unicode IP to Hex 0x0a0a0a0a\n    - `s'10.10.10.10'` \u003e ASCII to Hex 0x31302e31302e31302e3130\n    - `s'160'` \u003e ASCII to Hex 0x313630\n    - `'10'` \u003e Decimal to Hex 0x0a\n    - \u003cspan pulumi-lang-nodejs=\"`0x0a0a`\" pulumi-lang-dotnet=\"`0x0a0a`\" pulumi-lang-go=\"`0x0a0a`\" pulumi-lang-python=\"`0x0a0a`\" pulumi-lang-yaml=\"`0x0a0a`\" pulumi-lang-java=\"`0x0a0a`\"\u003e`0x0a0a`\u003c/span\u003e \u003e No conversion\n    - `$(VARIABLE)` \u003e hardcoded values\n\n\tRouterOS has predefined variables that can be used:\n    - `HOSTNAME` - client hostname\n    - `RADIUS_MT_STR1` - from radius MT attr nr. \u003cspan pulumi-lang-nodejs=\"`24`\" pulumi-lang-dotnet=\"`24`\" pulumi-lang-go=\"`24`\" pulumi-lang-python=\"`24`\" pulumi-lang-yaml=\"`24`\" pulumi-lang-java=\"`24`\"\u003e`24`\u003c/span\u003e\n    - `RADIUS_MT_STR2` - from radius MT attr nr. \u003cspan pulumi-lang-nodejs=\"`25`\" pulumi-lang-dotnet=\"`25`\" pulumi-lang-go=\"`25`\" pulumi-lang-python=\"`25`\" pulumi-lang-yaml=\"`25`\" pulumi-lang-java=\"`25`\"\u003e`25`\u003c/span\u003e\n    - `REMOTE_ID` - agent remote-id\n    - `NETWORK_GATEWAY - the first gateway from `/ip dhcp-server network`, note that this option won't work if used from lease.\n\nNow it is also possible to combine data types into one, for example: `0x01'vards'$(HOSTNAME)`For example if HOSTNAME is 'kvm', then raw value will be 0x0176617264736b766d."}},"type":"object"}},"routeros:index/ipv6DhcpServerOptionSets:Ipv6DhcpServerOptionSets":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst domain_search = new routeros.Ipv6DhcpServerOption(\"domain-search\", {\n    name: \"domain-search\",\n    code: 24,\n    value: \"0x07'example'0x05'local'0x00\",\n});\nconst test = new routeros.Ipv6DhcpServerOptionSets(\"test\", {\n    name: \"test-set\",\n    options: [domain_search.name],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ndomain_search = routeros.Ipv6DhcpServerOption(\"domain-search\",\n    name=\"domain-search\",\n    code=24,\n    value=\"0x07'example'0x05'local'0x00\")\ntest = routeros.Ipv6DhcpServerOptionSets(\"test\",\n    name=\"test-set\",\n    options=[domain_search.name])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var domain_search = new Routeros.Ipv6DhcpServerOption(\"domain-search\", new()\n    {\n        Name = \"domain-search\",\n        Code = 24,\n        Value = \"0x07'example'0x05'local'0x00\",\n    });\n\n    var test = new Routeros.Ipv6DhcpServerOptionSets(\"test\", new()\n    {\n        Name = \"test-set\",\n        Options = new[]\n        {\n            domain_search.Name,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdomain_search, err := routeros.NewIpv6DhcpServerOption(ctx, \"domain-search\", \u0026routeros.Ipv6DhcpServerOptionArgs{\n\t\t\tName:  pulumi.String(\"domain-search\"),\n\t\t\tCode:  pulumi.Float64(24),\n\t\t\tValue: pulumi.String(\"0x07'example'0x05'local'0x00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewIpv6DhcpServerOptionSets(ctx, \"test\", \u0026routeros.Ipv6DhcpServerOptionSetsArgs{\n\t\t\tName: pulumi.String(\"test-set\"),\n\t\t\tOptions: pulumi.StringArray{\n\t\t\t\tdomain_search.Name,\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.routeros.Ipv6DhcpServerOption;\nimport com.pulumi.routeros.Ipv6DhcpServerOptionArgs;\nimport com.pulumi.routeros.Ipv6DhcpServerOptionSets;\nimport com.pulumi.routeros.Ipv6DhcpServerOptionSetsArgs;\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 domain_search = new Ipv6DhcpServerOption(\"domain-search\", Ipv6DhcpServerOptionArgs.builder()\n            .name(\"domain-search\")\n            .code(24.0)\n            .value(\"0x07'example'0x05'local'0x00\")\n            .build());\n\n        var test = new Ipv6DhcpServerOptionSets(\"test\", Ipv6DhcpServerOptionSetsArgs.builder()\n            .name(\"test-set\")\n            .options(domain_search.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  domain-search:\n    type: routeros:Ipv6DhcpServerOption\n    properties:\n      name: domain-search\n      code: 24\n      value: 0x07'example'0x05'local'0x00\n  test:\n    type: routeros:Ipv6DhcpServerOptionSets\n    properties:\n      name: test-set\n      options:\n        - ${[\"domain-search\"].name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/dhcp/server/option/sets get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6DhcpServerOptionSets:Ipv6DhcpServerOptionSets test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6DhcpServerOptionSets:Ipv6DhcpServerOptionSets test \"name=test-set\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipv6DhcpServerOptionSetsId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the DHCPv6 option.\n"},"options":{"type":"array","items":{"type":"string"},"description":"The list of options.\n"}},"type":"object","required":["ipv6DhcpServerOptionSetsId","name"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipv6DhcpServerOptionSetsId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the DHCPv6 option.\n"},"options":{"type":"array","items":{"type":"string"},"description":"The list of options.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6DhcpServerOptionSets resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"ipv6DhcpServerOptionSetsId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the DHCPv6 option.\n"},"options":{"type":"array","items":{"type":"string"},"description":"The list of options.\n"}},"type":"object"}},"routeros:index/ipv6FirewallAddrList:Ipv6FirewallAddrList":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst exampleList = new routeros.Ipv6FirewallAddrList(\"example_list\", {\n    address: \"123:dead:beaf::/64\",\n    list: \"Example List\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nexample_list = routeros.Ipv6FirewallAddrList(\"example_list\",\n    address=\"123:dead:beaf::/64\",\n    list=\"Example List\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleList = new Routeros.Ipv6FirewallAddrList(\"example_list\", new()\n    {\n        Address = \"123:dead:beaf::/64\",\n        List = \"Example List\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpv6FirewallAddrList(ctx, \"example_list\", \u0026routeros.Ipv6FirewallAddrListArgs{\n\t\t\tAddress: pulumi.String(\"123:dead:beaf::/64\"),\n\t\t\tList:    pulumi.String(\"Example List\"),\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.routeros.Ipv6FirewallAddrList;\nimport com.pulumi.routeros.Ipv6FirewallAddrListArgs;\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 exampleList = new Ipv6FirewallAddrList(\"exampleList\", Ipv6FirewallAddrListArgs.builder()\n            .address(\"123:dead:beaf::/64\")\n            .list(\"Example List\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleList:\n    type: routeros:Ipv6FirewallAddrList\n    name: example_list\n    properties:\n      address: 123:dead:beaf::/64\n      list: Example List\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/firewall/address-list get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6FirewallAddrList:Ipv6FirewallAddrList example_list \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6FirewallAddrList:Ipv6FirewallAddrList example_list \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"A single IPv6 address or IPv6 CIDR subnet"},"comment":{"type":"string"},"creationTime":{"type":"string","description":"Rule creation time"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"ipv6FirewallAddrListId":{"type":"string"},"list":{"type":"string","description":"Name for the address list of the added IPv6 address."},"timeout":{"type":"string"}},"type":"object","required":["address","creationTime","dynamic","ipv6FirewallAddrListId","list"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"A single IPv6 address or IPv6 CIDR subnet"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ipv6FirewallAddrListId":{"type":"string"},"list":{"type":"string","description":"Name for the address list of the added IPv6 address."},"timeout":{"type":"string"}},"requiredInputs":["address","list"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6FirewallAddrList resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"A single IPv6 address or IPv6 CIDR subnet"},"comment":{"type":"string"},"creationTime":{"type":"string","description":"Rule creation time"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"ipv6FirewallAddrListId":{"type":"string"},"list":{"type":"string","description":"Name for the address list of the added IPv6 address."},"timeout":{"type":"string"}},"type":"object"}},"routeros:index/ipv6FirewallFilter:Ipv6FirewallFilter":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst rule = new routeros.Ipv6FirewallFilter(\"rule\", {\n    action: \"accept\",\n    chain: \"forward\",\n    srcAddress: \"2001:DB8:1000::1\",\n    dstAddress: \"2001:DB8:2000::1\",\n    dstPort: \"443\",\n    protocol: \"tcp\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nrule = routeros.Ipv6FirewallFilter(\"rule\",\n    action=\"accept\",\n    chain=\"forward\",\n    src_address=\"2001:DB8:1000::1\",\n    dst_address=\"2001:DB8:2000::1\",\n    dst_port=\"443\",\n    protocol=\"tcp\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rule = new Routeros.Ipv6FirewallFilter(\"rule\", new()\n    {\n        Action = \"accept\",\n        Chain = \"forward\",\n        SrcAddress = \"2001:DB8:1000::1\",\n        DstAddress = \"2001:DB8:2000::1\",\n        DstPort = \"443\",\n        Protocol = \"tcp\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpv6FirewallFilter(ctx, \"rule\", \u0026routeros.Ipv6FirewallFilterArgs{\n\t\t\tAction:     pulumi.String(\"accept\"),\n\t\t\tChain:      pulumi.String(\"forward\"),\n\t\t\tSrcAddress: pulumi.String(\"2001:DB8:1000::1\"),\n\t\t\tDstAddress: pulumi.String(\"2001:DB8:2000::1\"),\n\t\t\tDstPort:    pulumi.String(\"443\"),\n\t\t\tProtocol:   pulumi.String(\"tcp\"),\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.routeros.Ipv6FirewallFilter;\nimport com.pulumi.routeros.Ipv6FirewallFilterArgs;\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 rule = new Ipv6FirewallFilter(\"rule\", Ipv6FirewallFilterArgs.builder()\n            .action(\"accept\")\n            .chain(\"forward\")\n            .srcAddress(\"2001:DB8:1000::1\")\n            .dstAddress(\"2001:DB8:2000::1\")\n            .dstPort(\"443\")\n            .protocol(\"tcp\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule:\n    type: routeros:Ipv6FirewallFilter\n    properties:\n      action: accept\n      chain: forward\n      srcAddress: 2001:DB8:1000::1\n      dstAddress: 2001:DB8:2000::1\n      dstPort: '443'\n      protocol: tcp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/firewall/filter get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6FirewallFilter:Ipv6FirewallFilter rule \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6FirewallFilter:Ipv6FirewallFilter rule \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"headers":{"type":"string","description":"Extension headers. Look at the Extras tab in the v6 filter rules."},"hopLimit":{"type":"string","description":"IPv6 TTL. Look at the Extras tab in the v6 filter rules."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv6FirewallFilterId":{"type":"string"},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"rejectWith":{"type":"string","description":"Specifies ICMP error to be sent back if the packet is rejected. Applicable if action=reject."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."}},"type":"object","required":["action","addressListTimeout","chain","dynamic","invalid","ipv6FirewallFilterId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"headers":{"type":"string","description":"Extension headers. Look at the Extras tab in the v6 filter rules."},"hopLimit":{"type":"string","description":"IPv6 TTL. Look at the Extras tab in the v6 filter rules."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv6FirewallFilterId":{"type":"string"},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"rejectWith":{"type":"string","description":"Specifies ICMP error to be sent back if the packet is rejected. Applicable if action=reject."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."}},"requiredInputs":["action","chain"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6FirewallFilter resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"headers":{"type":"string","description":"Extension headers. Look at the Extras tab in the v6 filter rules."},"hopLimit":{"type":"string","description":"IPv6 TTL. Look at the Extras tab in the v6 filter rules."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv6FirewallFilterId":{"type":"string"},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"rejectWith":{"type":"string","description":"Specifies ICMP error to be sent back if the packet is rejected. Applicable if action=reject."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."}},"type":"object"}},"routeros:index/ipv6FirewallMangle:Ipv6FirewallMangle":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst rule = new routeros.Ipv6FirewallMangle(\"rule\", {\n    action: \"change-mss\",\n    chain: \"forward\",\n    outInterface: \"pppoe-out\",\n    protocol: \"tcp\",\n    tcpFlags: \"syn\",\n    newMss: \"1130\",\n    tcpMss: \"1301-65535\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nrule = routeros.Ipv6FirewallMangle(\"rule\",\n    action=\"change-mss\",\n    chain=\"forward\",\n    out_interface=\"pppoe-out\",\n    protocol=\"tcp\",\n    tcp_flags=\"syn\",\n    new_mss=\"1130\",\n    tcp_mss=\"1301-65535\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rule = new Routeros.Ipv6FirewallMangle(\"rule\", new()\n    {\n        Action = \"change-mss\",\n        Chain = \"forward\",\n        OutInterface = \"pppoe-out\",\n        Protocol = \"tcp\",\n        TcpFlags = \"syn\",\n        NewMss = \"1130\",\n        TcpMss = \"1301-65535\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpv6FirewallMangle(ctx, \"rule\", \u0026routeros.Ipv6FirewallMangleArgs{\n\t\t\tAction:       pulumi.String(\"change-mss\"),\n\t\t\tChain:        pulumi.String(\"forward\"),\n\t\t\tOutInterface: pulumi.String(\"pppoe-out\"),\n\t\t\tProtocol:     pulumi.String(\"tcp\"),\n\t\t\tTcpFlags:     pulumi.String(\"syn\"),\n\t\t\tNewMss:       pulumi.String(\"1130\"),\n\t\t\tTcpMss:       pulumi.String(\"1301-65535\"),\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.routeros.Ipv6FirewallMangle;\nimport com.pulumi.routeros.Ipv6FirewallMangleArgs;\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 rule = new Ipv6FirewallMangle(\"rule\", Ipv6FirewallMangleArgs.builder()\n            .action(\"change-mss\")\n            .chain(\"forward\")\n            .outInterface(\"pppoe-out\")\n            .protocol(\"tcp\")\n            .tcpFlags(\"syn\")\n            .newMss(\"1130\")\n            .tcpMss(\"1301-65535\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule:\n    type: routeros:Ipv6FirewallMangle\n    properties:\n      action: change-mss\n      chain: forward\n      outInterface: pppoe-out\n      protocol: tcp\n      tcpFlags: syn\n      newMss: '1130'\n      tcpMss: 1301-65535\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/firewall/mangle get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6FirewallMangle:Ipv6FirewallMangle rule \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6FirewallMangle:Ipv6FirewallMangle rule \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule."},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv6FirewallMangleId":{"type":"string"},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"newConnectionMark":{"type":"string","description":"Sets a new connection-mark value."},"newDscp":{"type":"number","description":"Sets a new DSCP value for a packet."},"newMss":{"type":"string","description":"Sets a new MSS for a packet.  \n\t\u003e clamp-to-pmtu feature sets (DF) bit in the IP header to dynamically discover the PMTU of a path.  \n\t\u003e Host sends all datagrams on that path with the DF bit set until receives ICMP.  \n\t\u003e Destination Unreachable messages with a code meaning \"fragmentation needed and DF set\".    \n\t\u003e Upon receipt of such a message, the source host reduces its assumed PMTU for the path."},"newPacketMark":{"type":"string","description":"Sets a new packet-mark value."},"newPriority":{"type":"string","description":"Sets a new priority for a packet. This can be the VLAN, WMM, DSCP or MPLS EXP priority. This property can also be used to set an internal priority."},"newRoutingMark":{"type":"string","description":"Sets a new routing-mark value."},"newTtl":{"type":"string","description":"Sets a new TTL for a packet."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"passthrough":{"type":"boolean","description":"Whether to let the packet to pass further (like action passthrough) into the firewall or not (property only valid some actions)."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object","required":["action","addressListTimeout","chain","dynamic","invalid","ipv6FirewallMangleId","passthrough"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule."},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv6FirewallMangleId":{"type":"string"},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"newConnectionMark":{"type":"string","description":"Sets a new connection-mark value."},"newDscp":{"type":"number","description":"Sets a new DSCP value for a packet."},"newMss":{"type":"string","description":"Sets a new MSS for a packet.  \n\t\u003e clamp-to-pmtu feature sets (DF) bit in the IP header to dynamically discover the PMTU of a path.  \n\t\u003e Host sends all datagrams on that path with the DF bit set until receives ICMP.  \n\t\u003e Destination Unreachable messages with a code meaning \"fragmentation needed and DF set\".    \n\t\u003e Upon receipt of such a message, the source host reduces its assumed PMTU for the path."},"newPacketMark":{"type":"string","description":"Sets a new packet-mark value."},"newPriority":{"type":"string","description":"Sets a new priority for a packet. This can be the VLAN, WMM, DSCP or MPLS EXP priority. This property can also be used to set an internal priority."},"newRoutingMark":{"type":"string","description":"Sets a new routing-mark value."},"newTtl":{"type":"string","description":"Sets a new TTL for a packet."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"passthrough":{"type":"boolean","description":"Whether to let the packet to pass further (like action passthrough) into the firewall or not (property only valid some actions)."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"requiredInputs":["action","chain"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6FirewallMangle resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule."},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionNatState":{"type":"string","description":"Can match connections that are srcnatted, dstnatted or both."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionState":{"type":"string","description":"Interprets the connection tracking analysis data for a particular packet."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv6FirewallMangleId":{"type":"string"},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"newConnectionMark":{"type":"string","description":"Sets a new connection-mark value."},"newDscp":{"type":"number","description":"Sets a new DSCP value for a packet."},"newMss":{"type":"string","description":"Sets a new MSS for a packet.  \n\t\u003e clamp-to-pmtu feature sets (DF) bit in the IP header to dynamically discover the PMTU of a path.  \n\t\u003e Host sends all datagrams on that path with the DF bit set until receives ICMP.  \n\t\u003e Destination Unreachable messages with a code meaning \"fragmentation needed and DF set\".    \n\t\u003e Upon receipt of such a message, the source host reduces its assumed PMTU for the path."},"newPacketMark":{"type":"string","description":"Sets a new packet-mark value."},"newPriority":{"type":"string","description":"Sets a new priority for a packet. This can be the VLAN, WMM, DSCP or MPLS EXP priority. This property can also be used to set an internal priority."},"newRoutingMark":{"type":"string","description":"Sets a new routing-mark value."},"newTtl":{"type":"string","description":"Sets a new TTL for a packet."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"passthrough":{"type":"boolean","description":"Whether to let the packet to pass further (like action passthrough) into the firewall or not (property only valid some actions)."},"perConnectionClassifier":{"type":"string","description":"PCC matcher allows dividing traffic into equal streams with the ability to keep packets with a specific set of options in one particular stream."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpFlags":{"type":"string","description":"Matches specified TCP flags."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"tlsHost":{"type":"string","description":"Allows matching HTTPS traffic based on TLS SNI hostname."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object"}},"routeros:index/ipv6FirewallNat:Ipv6FirewallNat":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst rule = new routeros.Ipv6FirewallNat(\"rule\", {\n    action: \"masquerade\",\n    chain: \"srcnat\",\n    outInterface: \"ether16\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nrule = routeros.Ipv6FirewallNat(\"rule\",\n    action=\"masquerade\",\n    chain=\"srcnat\",\n    out_interface=\"ether16\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rule = new Routeros.Ipv6FirewallNat(\"rule\", new()\n    {\n        Action = \"masquerade\",\n        Chain = \"srcnat\",\n        OutInterface = \"ether16\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpv6FirewallNat(ctx, \"rule\", \u0026routeros.Ipv6FirewallNatArgs{\n\t\t\tAction:       pulumi.String(\"masquerade\"),\n\t\t\tChain:        pulumi.String(\"srcnat\"),\n\t\t\tOutInterface: pulumi.String(\"ether16\"),\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.routeros.Ipv6FirewallNat;\nimport com.pulumi.routeros.Ipv6FirewallNatArgs;\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 rule = new Ipv6FirewallNat(\"rule\", Ipv6FirewallNatArgs.builder()\n            .action(\"masquerade\")\n            .chain(\"srcnat\")\n            .outInterface(\"ether16\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rule:\n    type: routeros:Ipv6FirewallNat\n    properties:\n      action: masquerade\n      chain: srcnat\n      outInterface: ether16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/firewall/nat get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6FirewallNat:Ipv6FirewallNat rule \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6FirewallNat:Ipv6FirewallNat rule \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv6FirewallNatId":{"type":"string"},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"randomisePorts":{"type":"boolean","description":"Randomize to which public port connections will be mapped."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"toAddress":{"type":"string","description":"Replace original address with specified one. Applicable if action is dst-nat, netmap, same, src-nat."},"toPorts":{"type":"string","description":"Replace the original port with the specified one. Applicable if action is dst-nat, redirect, masquerade, netmap, same, src-nat."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object","required":["action","chain","dynamic","invalid","ipv6FirewallNatId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv6FirewallNatId":{"type":"string"},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"randomisePorts":{"type":"boolean","description":"Randomize to which public port connections will be mapped."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"toAddress":{"type":"string","description":"Replace original address with specified one. Applicable if action is dst-nat, netmap, same, src-nat."},"toPorts":{"type":"string","description":"Replace the original port with the specified one. Applicable if action is dst-nat, redirect, masquerade, netmap, same, src-nat."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"requiredInputs":["action","chain"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6FirewallNat resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Action to take if a packet is matched by the rule"},"addressList":{"type":"string","description":"Name of the address list to be used. Applicable if action is add-dst-to-address-list or add-src-to-address-list."},"addressListTimeout":{"type":"string","description":"Time interval after which the address will be removed from the address list specified by address-list parameter. Used in conjunction with add-dst-to-address-list or add-src-to-address-list actions."},"chain":{"type":"string","description":"Specifies to which chain rule will be added. If the input does not match the name of an already defined chain, a new chain will be created."},"comment":{"type":"string"},"connectionBytes":{"type":"string","description":"Matches packets only if a given amount of bytes has been transfered through the particular connection."},"connectionLimit":{"type":"string","description":"Matches connections per address or address block after given value is reached. Should be used together with connection-state=new and/or with tcp-flags=syn because matcher is very resource intensive."},"connectionMark":{"type":"string","description":"Matches packets marked via mangle facility with particular connection mark. If no-mark is set, rule will match any unmarked connection."},"connectionRate":{"type":"string","description":"Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection (0..4294967295)."},"connectionType":{"type":"string","description":"Matches packets from related connections based on information from their connection tracking helpers."},"content":{"type":"string","description":"Match packets that contain specified text."},"disabled":{"type":"boolean"},"dscp":{"type":"number","description":"Matches DSCP IP header field."},"dstAddress":{"type":"string","description":"Matches packets which destination is equal to specified IP or falls into specified IP range."},"dstAddressList":{"type":"string","description":"Matches destination address of a packet against user-defined address list."},"dstAddressType":{"type":"string","description":"Matches destination address type."},"dstLimit":{"type":"string","description":"Matches packets until a given rate is exceeded."},"dstPort":{"type":"string","description":"List of destination port numbers or port number ranges."},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"icmpOptions":{"type":"string","description":"Matches ICMP type: code fields."},"inBridgePort":{"type":"string","description":"Actual interface the packet has entered the router if the incoming interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"inBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-bridge-port."},"inInterface":{"type":"string","description":"Interface the packet has entered the router."},"inInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as in-interface."},"ingressPriority":{"type":"number","description":"Matches the priority of an ingress packet. Priority may be derived from VLAN, WMM, DSCP, or MPLS EXP bit."},"invalid":{"type":"boolean"},"ipsecPolicy":{"type":"string","description":"Matches the policy used by IPsec. Value is written in the following format: direction, policy."},"ipv6FirewallNatId":{"type":"string"},"jumpTarget":{"type":"string","description":"Name of the target chain to jump to. Applicable only if action=jump."},"limit":{"type":"string","description":"Matches packets up to a limited rate (packet rate or bit rate). A rule using this matcher will match until this limit is reached. Parameters are written in the following format: rate[/time],burst:mode."},"log":{"type":"boolean","description":"Add a message to the system log."},"logPrefix":{"type":"string","description":"Adds specified text at the beginning of every log message. Applicable if action=log or log=yes configured."},"nth":{"type":"string","description":"Matches every nth packet: nth=2,1 rule will match every first packet of 2, hence, 50% of all the traffic that is matched by the rule"},"outBridgePort":{"type":"string","description":"Actual interface the packet is leaving the router if the outgoing interface is a bridge. Works only if use-ip-firewall is enabled in bridge settings."},"outBridgePortList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-bridge-port."},"outInterface":{"type":"string","description":"Interface the packet is leaving the router."},"outInterfaceList":{"type":"string","description":"Set of interfaces defined in interface list. Works the same as out-interface."},"packetMark":{"type":"string","description":"Matches packets marked via mangle facility with particular packet mark. If no-mark is set, the rule will match any unmarked packet."},"packetSize":{"type":"string","description":"Matches packets of specified size or size range in bytes."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"port":{"type":"string","description":"Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP"},"priority":{"type":"number","description":"Matches the packet's priority after a new priority has been set. Priority may be derived from VLAN, WMM, DSCP, MPLS EXP bit, or from the priority that has been set using the set-priority action."},"protocol":{"type":"string","description":"Matches particular IP protocol specified by protocol name or number."},"random":{"type":"number","description":"Matches packets randomly with a given probability."},"randomisePorts":{"type":"boolean","description":"Randomize to which public port connections will be mapped."},"routingMark":{"type":"string","description":"Matches packets marked by mangle facility with particular routing mark."},"srcAddress":{"type":"string","description":"Matches packets which source is equal to specified IP or falls into a specified IP range."},"srcAddressList":{"type":"string","description":"Matches source address of a packet against user-defined address list."},"srcAddressType":{"type":"string","description":"Matches source address type."},"srcMacAddress":{"type":"string","description":"Matches source MAC address of the packet."},"srcPort":{"type":"string","description":"List of source ports and ranges of source ports. Applicable only if a protocol is TCP or UDP."},"tcpMss":{"type":"string","description":"Matches TCP MSS value of an IP packet."},"time":{"type":"string","description":"Allows to create a filter based on the packets' arrival time and date or, for locally generated packets, departure time and date."},"toAddress":{"type":"string","description":"Replace original address with specified one. Applicable if action is dst-nat, netmap, same, src-nat."},"toPorts":{"type":"string","description":"Replace the original port with the specified one. Applicable if action is dst-nat, redirect, masquerade, netmap, same, src-nat."},"ttl":{"type":"string","description":"Matches packets TTL value."}},"type":"object"}},"routeros:index/ipv6NdPrefix:Ipv6NdPrefix":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.Ipv6NdPrefix(\"test\", {\n    prefix: \"fd55::/64\",\n    \"interface\": \"ether1\",\n    preferredLifetime: \"6d24h\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.Ipv6NdPrefix(\"test\",\n    prefix=\"fd55::/64\",\n    interface=\"ether1\",\n    preferred_lifetime=\"6d24h\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.Ipv6NdPrefix(\"test\", new()\n    {\n        Prefix = \"fd55::/64\",\n        Interface = \"ether1\",\n        PreferredLifetime = \"6d24h\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpv6NdPrefix(ctx, \"test\", \u0026routeros.Ipv6NdPrefixArgs{\n\t\t\tPrefix:            pulumi.String(\"fd55::/64\"),\n\t\t\tInterface:         pulumi.String(\"ether1\"),\n\t\t\tPreferredLifetime: pulumi.String(\"6d24h\"),\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.routeros.Ipv6NdPrefix;\nimport com.pulumi.routeros.Ipv6NdPrefixArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Ipv6NdPrefix(\"test\", Ipv6NdPrefixArgs.builder()\n            .prefix(\"fd55::/64\")\n            .interface_(\"ether1\")\n            .preferredLifetime(\"6d24h\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:Ipv6NdPrefix\n    properties:\n      prefix: fd55::/64\n      interface: ether1\n      preferredLifetime: 6d24h\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/nd/prefix get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6NdPrefix:Ipv6NdPrefix test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6NdPrefix:Ipv6NdPrefix test \"prefix=xxx\"\n```\n\n","properties":{"6to4Interface":{"type":"string","description":"If this option is specified, this prefix will be combined with the IPv4 address of the interface name to produce a valid 6to4 prefix. The first 16 bits of this prefix will be replaced by 2002 and the next 32 bits of this prefix will be replaced by the IPv4 address assigned to the interface name at configuration time. The remaining 80 bits of the prefix (including the SLA ID) will be advertised as specified in the configuration file.\n"},"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autonomous":{"type":"boolean","description":"When set, indicates that this prefix can be used for autonomous address configuration. Otherwise, prefix information is silently ignored.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface name on which stateless auto-configuration will be running.\n"},"invalid":{"type":"boolean"},"ipv6NdPrefixId":{"type":"string","description":"The ID of this resource.\n"},"onLink":{"type":"boolean","description":"When set, indicates that this prefix can be used for on-link determination. When not set the advertisement makes no statement about the on-link or off-link properties of the prefix. For instance, the prefix might be used for address configuration with some of the addresses belonging to the prefix being on-link and others being off-link.\n"},"preferredLifetime":{"type":"string","description":"Timeframe (relative to the time the packet is sent) after which generated address becomes \u003cspan pulumi-lang-nodejs=\"`deprecated`\" pulumi-lang-dotnet=\"`Deprecated`\" pulumi-lang-go=\"`deprecated`\" pulumi-lang-python=\"`deprecated`\" pulumi-lang-yaml=\"`deprecated`\" pulumi-lang-java=\"`deprecated`\"\u003e`deprecated`\u003c/span\u003e. Deprecated is used only for already existing connections and is usable until valid lifetime expires.\n"},"prefix":{"type":"string","description":"A prefix from which stateless address autoconfiguration generates the valid address.\n"},"validLifetime":{"type":"string","description":"The length of time (relative to the time the packet is sent) an address remains in the valid state. The valid lifetime must be greater than or equal to the preferred lifetime.\n"}},"type":"object","required":["interface","invalid","ipv6NdPrefixId","prefix"],"inputProperties":{"6to4Interface":{"type":"string","description":"If this option is specified, this prefix will be combined with the IPv4 address of the interface name to produce a valid 6to4 prefix. The first 16 bits of this prefix will be replaced by 2002 and the next 32 bits of this prefix will be replaced by the IPv4 address assigned to the interface name at configuration time. The remaining 80 bits of the prefix (including the SLA ID) will be advertised as specified in the configuration file.\n"},"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autonomous":{"type":"boolean","description":"When set, indicates that this prefix can be used for autonomous address configuration. Otherwise, prefix information is silently ignored.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface name on which stateless auto-configuration will be running.\n"},"ipv6NdPrefixId":{"type":"string","description":"The ID of this resource.\n"},"onLink":{"type":"boolean","description":"When set, indicates that this prefix can be used for on-link determination. When not set the advertisement makes no statement about the on-link or off-link properties of the prefix. For instance, the prefix might be used for address configuration with some of the addresses belonging to the prefix being on-link and others being off-link.\n"},"preferredLifetime":{"type":"string","description":"Timeframe (relative to the time the packet is sent) after which generated address becomes \u003cspan pulumi-lang-nodejs=\"`deprecated`\" pulumi-lang-dotnet=\"`Deprecated`\" pulumi-lang-go=\"`deprecated`\" pulumi-lang-python=\"`deprecated`\" pulumi-lang-yaml=\"`deprecated`\" pulumi-lang-java=\"`deprecated`\"\u003e`deprecated`\u003c/span\u003e. Deprecated is used only for already existing connections and is usable until valid lifetime expires.\n"},"prefix":{"type":"string","description":"A prefix from which stateless address autoconfiguration generates the valid address.\n"},"validLifetime":{"type":"string","description":"The length of time (relative to the time the packet is sent) an address remains in the valid state. The valid lifetime must be greater than or equal to the preferred lifetime.\n"}},"requiredInputs":["interface","prefix"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6NdPrefix resources.\n","properties":{"6to4Interface":{"type":"string","description":"If this option is specified, this prefix will be combined with the IPv4 address of the interface name to produce a valid 6to4 prefix. The first 16 bits of this prefix will be replaced by 2002 and the next 32 bits of this prefix will be replaced by the IPv4 address assigned to the interface name at configuration time. The remaining 80 bits of the prefix (including the SLA ID) will be advertised as specified in the configuration file.\n"},"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autonomous":{"type":"boolean","description":"When set, indicates that this prefix can be used for autonomous address configuration. Otherwise, prefix information is silently ignored.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface name on which stateless auto-configuration will be running.\n"},"invalid":{"type":"boolean"},"ipv6NdPrefixId":{"type":"string","description":"The ID of this resource.\n"},"onLink":{"type":"boolean","description":"When set, indicates that this prefix can be used for on-link determination. When not set the advertisement makes no statement about the on-link or off-link properties of the prefix. For instance, the prefix might be used for address configuration with some of the addresses belonging to the prefix being on-link and others being off-link.\n"},"preferredLifetime":{"type":"string","description":"Timeframe (relative to the time the packet is sent) after which generated address becomes \u003cspan pulumi-lang-nodejs=\"`deprecated`\" pulumi-lang-dotnet=\"`Deprecated`\" pulumi-lang-go=\"`deprecated`\" pulumi-lang-python=\"`deprecated`\" pulumi-lang-yaml=\"`deprecated`\" pulumi-lang-java=\"`deprecated`\"\u003e`deprecated`\u003c/span\u003e. Deprecated is used only for already existing connections and is usable until valid lifetime expires.\n"},"prefix":{"type":"string","description":"A prefix from which stateless address autoconfiguration generates the valid address.\n"},"validLifetime":{"type":"string","description":"The length of time (relative to the time the packet is sent) an address remains in the valid state. The valid lifetime must be greater than or equal to the preferred lifetime.\n"}},"type":"object"}},"routeros:index/ipv6NeighborDiscovery:Ipv6NeighborDiscovery":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  test:\n    type: routeros:Ipv6NeighborDiscovery\n    properties:\n      interface: ether1\n      hopLimit: 33\n      advertiseDns: false\n      advertiseMacAddress: true\n      disabled: false\n      managedAddressConfiguration: true\n      mtu: 9000\n      otherConfiguration: true\n      pref64Prefixes: []\n      raDelay: 3s\n      raInterval: 3m20s-10m\n      raLifetime: 30m\n      raPreference: high\n      reachableTime: 10m\n      retransmitInterval: 12m\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/nd get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6NeighborDiscovery:Ipv6NeighborDiscovery ndether1 \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6NeighborDiscovery:Ipv6NeighborDiscovery ndether1 \"name=xxx\"\n```\n\n","properties":{"___dropVal_":{"type":"string","description":"\u003cem\u003eA list of values when generated by RouterOs will be dropped, useful to default values as 'unspecified' for null\u003c/em\u003e"},"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"advertiseDns":{"type":"boolean","description":"Option to redistribute DNS server information using RADVD. You will need a running client-side software with Router Advertisement DNS support to take advantage of the advertised DNS information.\n"},"advertiseMacAddress":{"type":"boolean","description":"When set, the link-layer address of the outgoing interface is included in the RA.\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"dns":{"type":"string","description":"Specify a single IPv6 address or comma separated list of addresses that will be provided to hosts for DNS server configuration.\n"},"dnsServers":{"type":"string","description":"Specify a single IPv6 address or list of addresses that will be provided to hosts for DNS server configuration.\n"},"hopLimit":{"type":"number","description":"The default value that should be placed in the Hop Count field of the IP header for outgoing (unicast) IP packets.\n"},"interface":{"type":"string","description":"The interface on which to run neighbor discovery.all - run ND on all running interfaces.\n"},"invalid":{"type":"boolean"},"ipv6NeighborDiscoveryId":{"type":"string","description":"The ID of this resource.\n"},"managedAddressConfiguration":{"type":"boolean","description":"Name of the IPv6 pool in which received IPv6 prefix will be added\n"},"mtu":{"type":"number","description":"The flag indicates whether hosts should use stateful autoconfiguration (DHCPv6) to obtain addresses\n"},"otherConfiguration":{"type":"boolean","description":"The flag indicates whether hosts should use stateful autoconfiguration to obtain additional information (excluding addresses).\n"},"pref64s":{"type":"array","items":{"type":"string"},"description":"Specify IPv6 prefix or list of prefixes within /32, /40. /48, /56, /64, or /96 subnet that will be provided to hosts as NAT64 prefixes.\n"},"raDelay":{"type":"string","description":"The minimum time allowed between sending multicast router advertisements from the interface.\n"},"raInterval":{"type":"string","description":"The min-max interval allowed between sending unsolicited multicast router advertisements from the interface.\n"},"raLifetime":{"type":"string","description":"Specify the router preference that is communicated to IPv6 hosts through router advertisements.The preference value in the router advertisements enables IPv6 hosts to select a default router to reach a remote destination\n"},"raPreference":{"type":"string","description":"Specify the router preference that is communicated to IPv6 hosts through router advertisements.The preference value in the router advertisements enables IPv6 hosts to select a default router to reach a remote destination\n"},"reachableTime":{"type":"string","description":"Specify the router preference that is communicated to IPv6 hosts through router advertisements.The preference value in the router advertisements enables IPv6 hosts to select a default router to reach a remote destination\n"},"retransmitInterval":{"type":"string","description":"The time between retransmitted Neighbor Solicitation messages.Used by address resolution and the Neighbor Unreachability Detection algorithm (see Sections 7.2 and 7.3 of RFC 2461)\n"}},"type":"object","required":["default","interface","invalid","ipv6NeighborDiscoveryId"],"inputProperties":{"___dropVal_":{"type":"string","description":"\u003cem\u003eA list of values when generated by RouterOs will be dropped, useful to default values as 'unspecified' for null\u003c/em\u003e"},"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"advertiseDns":{"type":"boolean","description":"Option to redistribute DNS server information using RADVD. You will need a running client-side software with Router Advertisement DNS support to take advantage of the advertised DNS information.\n"},"advertiseMacAddress":{"type":"boolean","description":"When set, the link-layer address of the outgoing interface is included in the RA.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dns":{"type":"string","description":"Specify a single IPv6 address or comma separated list of addresses that will be provided to hosts for DNS server configuration.\n"},"dnsServers":{"type":"string","description":"Specify a single IPv6 address or list of addresses that will be provided to hosts for DNS server configuration.\n"},"hopLimit":{"type":"number","description":"The default value that should be placed in the Hop Count field of the IP header for outgoing (unicast) IP packets.\n"},"interface":{"type":"string","description":"The interface on which to run neighbor discovery.all - run ND on all running interfaces.\n"},"ipv6NeighborDiscoveryId":{"type":"string","description":"The ID of this resource.\n"},"managedAddressConfiguration":{"type":"boolean","description":"Name of the IPv6 pool in which received IPv6 prefix will be added\n"},"mtu":{"type":"number","description":"The flag indicates whether hosts should use stateful autoconfiguration (DHCPv6) to obtain addresses\n"},"otherConfiguration":{"type":"boolean","description":"The flag indicates whether hosts should use stateful autoconfiguration to obtain additional information (excluding addresses).\n"},"pref64s":{"type":"array","items":{"type":"string"},"description":"Specify IPv6 prefix or list of prefixes within /32, /40. /48, /56, /64, or /96 subnet that will be provided to hosts as NAT64 prefixes.\n"},"raDelay":{"type":"string","description":"The minimum time allowed between sending multicast router advertisements from the interface.\n"},"raInterval":{"type":"string","description":"The min-max interval allowed between sending unsolicited multicast router advertisements from the interface.\n"},"raLifetime":{"type":"string","description":"Specify the router preference that is communicated to IPv6 hosts through router advertisements.The preference value in the router advertisements enables IPv6 hosts to select a default router to reach a remote destination\n"},"raPreference":{"type":"string","description":"Specify the router preference that is communicated to IPv6 hosts through router advertisements.The preference value in the router advertisements enables IPv6 hosts to select a default router to reach a remote destination\n"},"reachableTime":{"type":"string","description":"Specify the router preference that is communicated to IPv6 hosts through router advertisements.The preference value in the router advertisements enables IPv6 hosts to select a default router to reach a remote destination\n"},"retransmitInterval":{"type":"string","description":"The time between retransmitted Neighbor Solicitation messages.Used by address resolution and the Neighbor Unreachability Detection algorithm (see Sections 7.2 and 7.3 of RFC 2461)\n"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6NeighborDiscovery resources.\n","properties":{"___dropVal_":{"type":"string","description":"\u003cem\u003eA list of values when generated by RouterOs will be dropped, useful to default values as 'unspecified' for null\u003c/em\u003e"},"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"advertiseDns":{"type":"boolean","description":"Option to redistribute DNS server information using RADVD. You will need a running client-side software with Router Advertisement DNS support to take advantage of the advertised DNS information.\n"},"advertiseMacAddress":{"type":"boolean","description":"When set, the link-layer address of the outgoing interface is included in the RA.\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"dns":{"type":"string","description":"Specify a single IPv6 address or comma separated list of addresses that will be provided to hosts for DNS server configuration.\n"},"dnsServers":{"type":"string","description":"Specify a single IPv6 address or list of addresses that will be provided to hosts for DNS server configuration.\n"},"hopLimit":{"type":"number","description":"The default value that should be placed in the Hop Count field of the IP header for outgoing (unicast) IP packets.\n"},"interface":{"type":"string","description":"The interface on which to run neighbor discovery.all - run ND on all running interfaces.\n"},"invalid":{"type":"boolean"},"ipv6NeighborDiscoveryId":{"type":"string","description":"The ID of this resource.\n"},"managedAddressConfiguration":{"type":"boolean","description":"Name of the IPv6 pool in which received IPv6 prefix will be added\n"},"mtu":{"type":"number","description":"The flag indicates whether hosts should use stateful autoconfiguration (DHCPv6) to obtain addresses\n"},"otherConfiguration":{"type":"boolean","description":"The flag indicates whether hosts should use stateful autoconfiguration to obtain additional information (excluding addresses).\n"},"pref64s":{"type":"array","items":{"type":"string"},"description":"Specify IPv6 prefix or list of prefixes within /32, /40. /48, /56, /64, or /96 subnet that will be provided to hosts as NAT64 prefixes.\n"},"raDelay":{"type":"string","description":"The minimum time allowed between sending multicast router advertisements from the interface.\n"},"raInterval":{"type":"string","description":"The min-max interval allowed between sending unsolicited multicast router advertisements from the interface.\n"},"raLifetime":{"type":"string","description":"Specify the router preference that is communicated to IPv6 hosts through router advertisements.The preference value in the router advertisements enables IPv6 hosts to select a default router to reach a remote destination\n"},"raPreference":{"type":"string","description":"Specify the router preference that is communicated to IPv6 hosts through router advertisements.The preference value in the router advertisements enables IPv6 hosts to select a default router to reach a remote destination\n"},"reachableTime":{"type":"string","description":"Specify the router preference that is communicated to IPv6 hosts through router advertisements.The preference value in the router advertisements enables IPv6 hosts to select a default router to reach a remote destination\n"},"retransmitInterval":{"type":"string","description":"The time between retransmitted Neighbor Solicitation messages.Used by address resolution and the Neighbor Unreachability Detection algorithm (see Sections 7.2 and 7.3 of RFC 2461)\n"}},"type":"object"}},"routeros:index/ipv6Pool:Ipv6Pool":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.Ipv6Pool(\"test\", {\n    name: \"test-pool\",\n    prefix: \"2001:db8:12::/48\",\n    prefixLength: 64,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.Ipv6Pool(\"test\",\n    name=\"test-pool\",\n    prefix=\"2001:db8:12::/48\",\n    prefix_length=64)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.Ipv6Pool(\"test\", new()\n    {\n        Name = \"test-pool\",\n        Prefix = \"2001:db8:12::/48\",\n        PrefixLength = 64,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpv6Pool(ctx, \"test\", \u0026routeros.Ipv6PoolArgs{\n\t\t\tName:         pulumi.String(\"test-pool\"),\n\t\t\tPrefix:       pulumi.String(\"2001:db8:12::/48\"),\n\t\t\tPrefixLength: pulumi.Float64(64),\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.routeros.Ipv6Pool;\nimport com.pulumi.routeros.Ipv6PoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Ipv6Pool(\"test\", Ipv6PoolArgs.builder()\n            .name(\"test-pool\")\n            .prefix(\"2001:db8:12::/48\")\n            .prefixLength(64.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:Ipv6Pool\n    properties:\n      name: test-pool\n      prefix: 2001:db8:12::/48\n      prefixLength: 64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/pool get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6Pool:Ipv6Pool test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6Pool:Ipv6Pool test \"name=test-pool\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"ipv6PoolId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Descriptive name of the pool.\n"},"prefix":{"type":"string","description":"Ipv6 address prefix.\n"},"prefixLength":{"type":"number","description":"The option represents the prefix size that will be given out to the client.\n"}},"type":"object","required":["dynamic","ipv6PoolId","name","prefixLength"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"ipv6PoolId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Descriptive name of the pool.\n"},"prefix":{"type":"string","description":"Ipv6 address prefix.\n"},"prefixLength":{"type":"number","description":"The option represents the prefix size that will be given out to the client.\n"}},"requiredInputs":["prefixLength"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6Pool resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"ipv6PoolId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"Descriptive name of the pool.\n"},"prefix":{"type":"string","description":"Ipv6 address prefix.\n"},"prefixLength":{"type":"number","description":"The option represents the prefix size that will be given out to the client.\n"}},"type":"object"}},"routeros:index/ipv6Route:Ipv6Route":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst aRoute = new routeros.Ipv6Route(\"a_route\", {\n    dstAddress: \"::/0\",\n    gateway: \"2001:DB8:1000::1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\na_route = routeros.Ipv6Route(\"a_route\",\n    dst_address=\"::/0\",\n    gateway=\"2001:DB8:1000::1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var aRoute = new Routeros.Ipv6Route(\"a_route\", new()\n    {\n        DstAddress = \"::/0\",\n        Gateway = \"2001:DB8:1000::1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpv6Route(ctx, \"a_route\", \u0026routeros.Ipv6RouteArgs{\n\t\t\tDstAddress: pulumi.String(\"::/0\"),\n\t\t\tGateway:    pulumi.String(\"2001:DB8:1000::1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.routeros.Ipv6Route;\nimport com.pulumi.routeros.Ipv6RouteArgs;\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 aRoute = new Ipv6Route(\"aRoute\", Ipv6RouteArgs.builder()\n            .dstAddress(\"::/0\")\n            .gateway(\"2001:DB8:1000::1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  aRoute:\n    type: routeros:Ipv6Route\n    name: a_route\n    properties:\n      dstAddress: ::/0\n      gateway: 2001:DB8:1000::1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ipv6/route get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/ipv6Route:Ipv6Route a_route \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/ipv6Route:Ipv6Route a_route \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"active":{"type":"boolean","description":"A flag indicates whether the route is elected as Active and eligible to be added to the FIB.\n"},"blackhole":{"type":"boolean","description":"It's a blackhole route. If you need to cancel route marking, then simply delete the parameter from the configuration of the TF. The value of the parameter (true or false) has no effect on the MT processing logic.\n"},"checkGateway":{"type":"string","description":"Currently used check-gateway option.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"distance":{"type":"number","description":"Value used in route selection. Routes with smaller distance value are given preference.\n"},"dstAddress":{"type":"string","description":"IP prefix of route, specifies destination addresses that this route can be used for.\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"ecmp":{"type":"boolean","description":"A flag indicates whether the route is added as an Equal-Cost Multi-Path route in the FIB.\n"},"gateway":{"type":"string","description":"Array of IP addresses or interface names. Specifies which host or interface packets should be sent to (IP | interface | IP%interface | IP@table[, IP | string, [..]]).\n"},"hwOffloaded":{"type":"boolean","description":"Indicates whether the route is eligible to be hardware offloaded on supported hardware.\n"},"immediateGw":{"type":"string","description":"Shows actual (resolved) gateway and interface that will be used for packet forwarding.\n"},"inactive":{"type":"boolean"},"ipv6RouteId":{"type":"string","description":"The ID of this resource.\n"},"prefSrc":{"type":"string","description":"Which of the local IP addresses to use for locally originated packets that are sent via this route. Value of this property has no effect on forwarded packets. If value of this property is set to IP address that is not local address of this router then the route will be inactive (in ROS v6, ROS v7 allows IP spoofing).\n"},"routingTable":{"type":"string","description":"Routing table this route belongs to.\n"},"scope":{"type":"number","description":"Used in nexthop resolution. Route can resolve nexthop only through routes that have scope less than or equal to the target-scope of this route.\n"},"static":{"type":"boolean"},"suppressHwOffload":{"type":"boolean"},"targetScope":{"type":"number","description":"Used in nexthop resolution. This is the maximum value of scope for a route through which a nexthop of this route can be resolved.\n"},"vrfInterface":{"type":"string","description":"VRF interface name.\n"}},"type":"object","required":["active","dstAddress","dynamic","ecmp","gateway","hwOffloaded","immediateGw","inactive","ipv6RouteId","static","vrfInterface"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"blackhole":{"type":"boolean","description":"It's a blackhole route. If you need to cancel route marking, then simply delete the parameter from the configuration of the TF. The value of the parameter (true or false) has no effect on the MT processing logic.\n"},"checkGateway":{"type":"string","description":"Currently used check-gateway option.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"distance":{"type":"number","description":"Value used in route selection. Routes with smaller distance value are given preference.\n"},"dstAddress":{"type":"string","description":"IP prefix of route, specifies destination addresses that this route can be used for.\n"},"gateway":{"type":"string","description":"Array of IP addresses or interface names. Specifies which host or interface packets should be sent to (IP | interface | IP%interface | IP@table[, IP | string, [..]]).\n"},"ipv6RouteId":{"type":"string","description":"The ID of this resource.\n"},"prefSrc":{"type":"string","description":"Which of the local IP addresses to use for locally originated packets that are sent via this route. Value of this property has no effect on forwarded packets. If value of this property is set to IP address that is not local address of this router then the route will be inactive (in ROS v6, ROS v7 allows IP spoofing).\n"},"routingTable":{"type":"string","description":"Routing table this route belongs to.\n"},"scope":{"type":"number","description":"Used in nexthop resolution. Route can resolve nexthop only through routes that have scope less than or equal to the target-scope of this route.\n"},"suppressHwOffload":{"type":"boolean"},"targetScope":{"type":"number","description":"Used in nexthop resolution. This is the maximum value of scope for a route through which a nexthop of this route can be resolved.\n"},"vrfInterface":{"type":"string","description":"VRF interface name.\n"}},"requiredInputs":["dstAddress","gateway"],"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6Route resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"active":{"type":"boolean","description":"A flag indicates whether the route is elected as Active and eligible to be added to the FIB.\n"},"blackhole":{"type":"boolean","description":"It's a blackhole route. If you need to cancel route marking, then simply delete the parameter from the configuration of the TF. The value of the parameter (true or false) has no effect on the MT processing logic.\n"},"checkGateway":{"type":"string","description":"Currently used check-gateway option.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"distance":{"type":"number","description":"Value used in route selection. Routes with smaller distance value are given preference.\n"},"dstAddress":{"type":"string","description":"IP prefix of route, specifies destination addresses that this route can be used for.\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"ecmp":{"type":"boolean","description":"A flag indicates whether the route is added as an Equal-Cost Multi-Path route in the FIB.\n"},"gateway":{"type":"string","description":"Array of IP addresses or interface names. Specifies which host or interface packets should be sent to (IP | interface | IP%interface | IP@table[, IP | string, [..]]).\n"},"hwOffloaded":{"type":"boolean","description":"Indicates whether the route is eligible to be hardware offloaded on supported hardware.\n"},"immediateGw":{"type":"string","description":"Shows actual (resolved) gateway and interface that will be used for packet forwarding.\n"},"inactive":{"type":"boolean"},"ipv6RouteId":{"type":"string","description":"The ID of this resource.\n"},"prefSrc":{"type":"string","description":"Which of the local IP addresses to use for locally originated packets that are sent via this route. Value of this property has no effect on forwarded packets. If value of this property is set to IP address that is not local address of this router then the route will be inactive (in ROS v6, ROS v7 allows IP spoofing).\n"},"routingTable":{"type":"string","description":"Routing table this route belongs to.\n"},"scope":{"type":"number","description":"Used in nexthop resolution. Route can resolve nexthop only through routes that have scope less than or equal to the target-scope of this route.\n"},"static":{"type":"boolean"},"suppressHwOffload":{"type":"boolean"},"targetScope":{"type":"number","description":"Used in nexthop resolution. This is the maximum value of scope for a route through which a nexthop of this route can be resolved.\n"},"vrfInterface":{"type":"string","description":"VRF interface name.\n"}},"type":"object"}},"routeros:index/ipv6Settings:Ipv6Settings":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.Ipv6Settings(\"settings\", {acceptRedirects: \"no\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.Ipv6Settings(\"settings\", accept_redirects=\"no\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.Ipv6Settings(\"settings\", new()\n    {\n        AcceptRedirects = \"no\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpv6Settings(ctx, \"settings\", \u0026routeros.Ipv6SettingsArgs{\n\t\t\tAcceptRedirects: pulumi.String(\"no\"),\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.routeros.Ipv6Settings;\nimport com.pulumi.routeros.Ipv6SettingsArgs;\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 settings = new Ipv6Settings(\"settings\", Ipv6SettingsArgs.builder()\n            .acceptRedirects(\"no\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:Ipv6Settings\n    properties:\n      acceptRedirects: no\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ipv6Settings:Ipv6Settings settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acceptRedirects":{"type":"string","description":"Whether to accept ICMP redirect messages. Typically should be enabled on the host and disabled on routers."},"acceptRouterAdvertisements":{"type":"string","description":"Accept router advertisement (RA) messages. If enabled, the router will be able to get the address using stateless address configuration."},"acceptRouterAdvertisementsOn":{"type":"string","description":"Accept router advertisement (RA) messages. If enabled, the router will be able to get the address using stateless address configuration on specified or specific interfaces"},"allowFastPath":{"type":"boolean","description":"Allows Fast Path."},"disableIpv6":{"type":"boolean","description":"Enable/disable system wide IPv6 settings (prevents LL address generation)."},"disableLinkLocalAddress":{"type":"boolean","description":"Disable automatic link-local address generation for non-VPN interfaces. This can be used when manually configured link-local addresses are being used."},"forward":{"type":"boolean","description":"Enable/disable packet forwarding between interfaces."},"ipv6FastPathActive":{"type":"boolean","description":"Indicates whether fast-path is active."},"ipv6FasttrackActive":{"type":"boolean","description":"Indicates whether fasttrack is active."},"ipv6SettingsId":{"type":"string"},"maxNeighborEntries":{"type":"number","description":"A maximum number or IPv6 neighbors. Since RouterOS version 7.1, the default value depends on the installed amount of RAM. It is possible to set a higher value than the default, but it increases the risk of out-of-memory condition. The default values for certain RAM sizes:\n  * 1024 for 64 MB,\n  * 2048 for 128 MB,\n  * 4096 for 256 MB,\n  * 8192 for 512 MB,\n  * 16384 for 1024 MB or higher."},"minNeighborEntries":{"type":"number","description":"Minimal number of IPv6/Neighbor entries, for which device must allocate memory."},"multipathHashPolicy":{"type":"string","description":"IPv6 Hash policy used for ECMP routing in `/ipv6/settings` menu\n  * l3 -- layer-3 hashing of src IP, dst IP, flow label, IP protocol\n  * l3-inner -- layer-3 hashing or inner layer-3 hashing if available\n  * l4 -- layer-4 hashing of src IP, dst IP, IP protocol, src port, dst port."},"softMaxNeighborEntries":{"type":"number","description":"Expected maximum number of IPv6/Neighbor entries which system should handle."},"staleNeighborDetectInterval":{"type":"string"},"staleNeighborTimeout":{"type":"string","description":"Timeout after which stale IPv6/Neighbor entries should be purged."}},"type":"object","required":["ipv6FastPathActive","ipv6FasttrackActive","ipv6SettingsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acceptRedirects":{"type":"string","description":"Whether to accept ICMP redirect messages. Typically should be enabled on the host and disabled on routers."},"acceptRouterAdvertisements":{"type":"string","description":"Accept router advertisement (RA) messages. If enabled, the router will be able to get the address using stateless address configuration."},"acceptRouterAdvertisementsOn":{"type":"string","description":"Accept router advertisement (RA) messages. If enabled, the router will be able to get the address using stateless address configuration on specified or specific interfaces"},"allowFastPath":{"type":"boolean","description":"Allows Fast Path."},"disableIpv6":{"type":"boolean","description":"Enable/disable system wide IPv6 settings (prevents LL address generation)."},"disableLinkLocalAddress":{"type":"boolean","description":"Disable automatic link-local address generation for non-VPN interfaces. This can be used when manually configured link-local addresses are being used."},"forward":{"type":"boolean","description":"Enable/disable packet forwarding between interfaces."},"ipv6SettingsId":{"type":"string"},"maxNeighborEntries":{"type":"number","description":"A maximum number or IPv6 neighbors. Since RouterOS version 7.1, the default value depends on the installed amount of RAM. It is possible to set a higher value than the default, but it increases the risk of out-of-memory condition. The default values for certain RAM sizes:\n  * 1024 for 64 MB,\n  * 2048 for 128 MB,\n  * 4096 for 256 MB,\n  * 8192 for 512 MB,\n  * 16384 for 1024 MB or higher."},"minNeighborEntries":{"type":"number","description":"Minimal number of IPv6/Neighbor entries, for which device must allocate memory."},"multipathHashPolicy":{"type":"string","description":"IPv6 Hash policy used for ECMP routing in `/ipv6/settings` menu\n  * l3 -- layer-3 hashing of src IP, dst IP, flow label, IP protocol\n  * l3-inner -- layer-3 hashing or inner layer-3 hashing if available\n  * l4 -- layer-4 hashing of src IP, dst IP, IP protocol, src port, dst port."},"softMaxNeighborEntries":{"type":"number","description":"Expected maximum number of IPv6/Neighbor entries which system should handle."},"staleNeighborDetectInterval":{"type":"string"},"staleNeighborTimeout":{"type":"string","description":"Timeout after which stale IPv6/Neighbor entries should be purged."}},"stateInputs":{"description":"Input properties used for looking up and filtering Ipv6Settings resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acceptRedirects":{"type":"string","description":"Whether to accept ICMP redirect messages. Typically should be enabled on the host and disabled on routers."},"acceptRouterAdvertisements":{"type":"string","description":"Accept router advertisement (RA) messages. If enabled, the router will be able to get the address using stateless address configuration."},"acceptRouterAdvertisementsOn":{"type":"string","description":"Accept router advertisement (RA) messages. If enabled, the router will be able to get the address using stateless address configuration on specified or specific interfaces"},"allowFastPath":{"type":"boolean","description":"Allows Fast Path."},"disableIpv6":{"type":"boolean","description":"Enable/disable system wide IPv6 settings (prevents LL address generation)."},"disableLinkLocalAddress":{"type":"boolean","description":"Disable automatic link-local address generation for non-VPN interfaces. This can be used when manually configured link-local addresses are being used."},"forward":{"type":"boolean","description":"Enable/disable packet forwarding between interfaces."},"ipv6FastPathActive":{"type":"boolean","description":"Indicates whether fast-path is active."},"ipv6FasttrackActive":{"type":"boolean","description":"Indicates whether fasttrack is active."},"ipv6SettingsId":{"type":"string"},"maxNeighborEntries":{"type":"number","description":"A maximum number or IPv6 neighbors. Since RouterOS version 7.1, the default value depends on the installed amount of RAM. It is possible to set a higher value than the default, but it increases the risk of out-of-memory condition. The default values for certain RAM sizes:\n  * 1024 for 64 MB,\n  * 2048 for 128 MB,\n  * 4096 for 256 MB,\n  * 8192 for 512 MB,\n  * 16384 for 1024 MB or higher."},"minNeighborEntries":{"type":"number","description":"Minimal number of IPv6/Neighbor entries, for which device must allocate memory."},"multipathHashPolicy":{"type":"string","description":"IPv6 Hash policy used for ECMP routing in `/ipv6/settings` menu\n  * l3 -- layer-3 hashing of src IP, dst IP, flow label, IP protocol\n  * l3-inner -- layer-3 hashing or inner layer-3 hashing if available\n  * l4 -- layer-4 hashing of src IP, dst IP, IP protocol, src port, dst port."},"softMaxNeighborEntries":{"type":"number","description":"Expected maximum number of IPv6/Neighbor entries which system should handle."},"staleNeighborDetectInterval":{"type":"string"},"staleNeighborTimeout":{"type":"string","description":"Timeout after which stale IPv6/Neighbor entries should be purged."}},"type":"object"}},"routeros:index/moveItems:MoveItems":{"description":"## Example Usage\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"moveItemsId":{"type":"string","description":"The ID of this resource.\n"},"resourceName":{"type":"string","description":"Resource name in the notation \u003cspan pulumi-lang-nodejs=\"`routeros.IpFirewallFilter`\" pulumi-lang-dotnet=\"`routeros.IpFirewallFilter`\" pulumi-lang-go=\"`IpFirewallFilter`\" pulumi-lang-python=\"`IpFirewallFilter`\" pulumi-lang-yaml=\"`routeros.IpFirewallFilter`\" pulumi-lang-java=\"`routeros.IpFirewallFilter`\"\u003e`routeros.IpFirewallFilter`\u003c/span\u003e.\n"},"resourcePath":{"type":"string","description":"URL path of the resource in the notation `/ip/firewall/filter`.\n"},"sequences":{"type":"array","items":{"type":"string"},"description":"List identifiers in the required sequence. To locate the \u003cspan pulumi-lang-nodejs=\"`sequence`\" pulumi-lang-dotnet=\"`Sequence`\" pulumi-lang-go=\"`sequence`\" pulumi-lang-python=\"`sequence`\" pulumi-lang-yaml=\"`sequence`\" pulumi-lang-java=\"`sequence`\"\u003e`sequence`\u003c/span\u003e before an existing rule, add its \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 to the last element of the \u003cspan pulumi-lang-nodejs=\"`sequence`\" pulumi-lang-dotnet=\"`Sequence`\" pulumi-lang-go=\"`sequence`\" pulumi-lang-python=\"`sequence`\" pulumi-lang-yaml=\"`sequence`\" pulumi-lang-java=\"`sequence`\"\u003e`sequence`\u003c/span\u003e.\n"}},"type":"object","required":["moveItemsId","sequences"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"moveItemsId":{"type":"string","description":"The ID of this resource.\n"},"resourceName":{"type":"string","description":"Resource name in the notation \u003cspan pulumi-lang-nodejs=\"`routeros.IpFirewallFilter`\" pulumi-lang-dotnet=\"`routeros.IpFirewallFilter`\" pulumi-lang-go=\"`IpFirewallFilter`\" pulumi-lang-python=\"`IpFirewallFilter`\" pulumi-lang-yaml=\"`routeros.IpFirewallFilter`\" pulumi-lang-java=\"`routeros.IpFirewallFilter`\"\u003e`routeros.IpFirewallFilter`\u003c/span\u003e.\n"},"resourcePath":{"type":"string","description":"URL path of the resource in the notation `/ip/firewall/filter`.\n"},"sequences":{"type":"array","items":{"type":"string"},"description":"List identifiers in the required sequence. To locate the \u003cspan pulumi-lang-nodejs=\"`sequence`\" pulumi-lang-dotnet=\"`Sequence`\" pulumi-lang-go=\"`sequence`\" pulumi-lang-python=\"`sequence`\" pulumi-lang-yaml=\"`sequence`\" pulumi-lang-java=\"`sequence`\"\u003e`sequence`\u003c/span\u003e before an existing rule, add its \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 to the last element of the \u003cspan pulumi-lang-nodejs=\"`sequence`\" pulumi-lang-dotnet=\"`Sequence`\" pulumi-lang-go=\"`sequence`\" pulumi-lang-python=\"`sequence`\" pulumi-lang-yaml=\"`sequence`\" pulumi-lang-java=\"`sequence`\"\u003e`sequence`\u003c/span\u003e.\n"}},"requiredInputs":["sequences"],"stateInputs":{"description":"Input properties used for looking up and filtering MoveItems resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"moveItemsId":{"type":"string","description":"The ID of this resource.\n"},"resourceName":{"type":"string","description":"Resource name in the notation \u003cspan pulumi-lang-nodejs=\"`routeros.IpFirewallFilter`\" pulumi-lang-dotnet=\"`routeros.IpFirewallFilter`\" pulumi-lang-go=\"`IpFirewallFilter`\" pulumi-lang-python=\"`IpFirewallFilter`\" pulumi-lang-yaml=\"`routeros.IpFirewallFilter`\" pulumi-lang-java=\"`routeros.IpFirewallFilter`\"\u003e`routeros.IpFirewallFilter`\u003c/span\u003e.\n"},"resourcePath":{"type":"string","description":"URL path of the resource in the notation `/ip/firewall/filter`.\n"},"sequences":{"type":"array","items":{"type":"string"},"description":"List identifiers in the required sequence. To locate the \u003cspan pulumi-lang-nodejs=\"`sequence`\" pulumi-lang-dotnet=\"`Sequence`\" pulumi-lang-go=\"`sequence`\" pulumi-lang-python=\"`sequence`\" pulumi-lang-yaml=\"`sequence`\" pulumi-lang-java=\"`sequence`\"\u003e`sequence`\u003c/span\u003e before an existing rule, add its \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 to the last element of the \u003cspan pulumi-lang-nodejs=\"`sequence`\" pulumi-lang-dotnet=\"`Sequence`\" pulumi-lang-go=\"`sequence`\" pulumi-lang-python=\"`sequence`\" pulumi-lang-yaml=\"`sequence`\" pulumi-lang-java=\"`sequence`\"\u003e`sequence`\u003c/span\u003e.\n"}},"type":"object"}},"routeros:index/ovpnServer:OvpnServer":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.OvpnServer \" pulumi-lang-dotnet=\" routeros.OvpnServer \" pulumi-lang-go=\" OvpnServer \" pulumi-lang-python=\" OvpnServer \" pulumi-lang-yaml=\" routeros.OvpnServer \" pulumi-lang-java=\" routeros.OvpnServer \"\u003e routeros.OvpnServer \u003c/span\u003e(Resource)\n\n##### *\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.8!\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst ovpn_pool = new routeros.IpPool(\"ovpn-pool\", {\n    name: \"ovpn-pool\",\n    ranges: [\"192.168.77.2-192.168.77.254\"],\n});\nconst ovpnCa = new routeros.SystemCertificate(\"ovpn_ca\", {\n    signs: [{}],\n    name: \"OpenVPN-Root-CA\",\n    commonName: \"OpenVPN Root CA\",\n    keySize: \"prime256v1\",\n    keyUsages: [\n        \"key-cert-sign\",\n        \"crl-sign\",\n    ],\n    trusted: true,\n});\nconst ovpnServerCrt = new routeros.SystemCertificate(\"ovpn_server_crt\", {\n    name: \"OpenVPN-Server-Certificate\",\n    commonName: \"Mikrotik OpenVPN\",\n    keySize: \"prime256v1\",\n    keyUsages: [\n        \"digital-signature\",\n        \"key-encipherment\",\n        \"tls-server\",\n    ],\n    signs: [{\n        ca: ovpnCa.name,\n    }],\n});\nconst test = new routeros.PppProfile(\"test\", {\n    name: \"ovpn\",\n    localAddress: \"192.168.77.1\",\n    remoteAddress: \"ovpn-pool\",\n    useUpnp: \"no\",\n});\nconst testPppSecret = new routeros.PppSecret(\"test\", {\n    name: \"user-test\",\n    password: \"123\",\n    profile: test.name,\n});\nconst server = new routeros.OvpnServer(\"server\", {\n    enabled: true,\n    certificate: ovpnServerCrt.name,\n    auths: [\n        \"sha256\",\n        \"sha512\",\n    ],\n    tlsVersion: \"only-1.2\",\n    defaultProfile: test.name,\n});\n// The resource should be created only after the OpenVPN server is enabled!\nconst user1 = new routeros.InterfaceOvpnServer(\"user1\", {\n    name: \"ovpn-in1\",\n    user: \"user1\",\n}, {\n    dependsOn: [server],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\novpn_pool = routeros.IpPool(\"ovpn-pool\",\n    name=\"ovpn-pool\",\n    ranges=[\"192.168.77.2-192.168.77.254\"])\novpn_ca = routeros.SystemCertificate(\"ovpn_ca\",\n    signs=[{}],\n    name=\"OpenVPN-Root-CA\",\n    common_name=\"OpenVPN Root CA\",\n    key_size=\"prime256v1\",\n    key_usages=[\n        \"key-cert-sign\",\n        \"crl-sign\",\n    ],\n    trusted=True)\novpn_server_crt = routeros.SystemCertificate(\"ovpn_server_crt\",\n    name=\"OpenVPN-Server-Certificate\",\n    common_name=\"Mikrotik OpenVPN\",\n    key_size=\"prime256v1\",\n    key_usages=[\n        \"digital-signature\",\n        \"key-encipherment\",\n        \"tls-server\",\n    ],\n    signs=[{\n        \"ca\": ovpn_ca.name,\n    }])\ntest = routeros.PppProfile(\"test\",\n    name=\"ovpn\",\n    local_address=\"192.168.77.1\",\n    remote_address=\"ovpn-pool\",\n    use_upnp=\"no\")\ntest_ppp_secret = routeros.PppSecret(\"test\",\n    name=\"user-test\",\n    password=\"123\",\n    profile=test.name)\nserver = routeros.OvpnServer(\"server\",\n    enabled=True,\n    certificate=ovpn_server_crt.name,\n    auths=[\n        \"sha256\",\n        \"sha512\",\n    ],\n    tls_version=\"only-1.2\",\n    default_profile=test.name)\n# The resource should be created only after the OpenVPN server is enabled!\nuser1 = routeros.InterfaceOvpnServer(\"user1\",\n    name=\"ovpn-in1\",\n    user=\"user1\",\n    opts = pulumi.ResourceOptions(depends_on=[server]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ovpn_pool = new Routeros.IpPool(\"ovpn-pool\", new()\n    {\n        Name = \"ovpn-pool\",\n        Ranges = new[]\n        {\n            \"192.168.77.2-192.168.77.254\",\n        },\n    });\n\n    var ovpnCa = new Routeros.SystemCertificate(\"ovpn_ca\", new()\n    {\n        Signs = new[]\n        {\n            null,\n        },\n        Name = \"OpenVPN-Root-CA\",\n        CommonName = \"OpenVPN Root CA\",\n        KeySize = \"prime256v1\",\n        KeyUsages = new[]\n        {\n            \"key-cert-sign\",\n            \"crl-sign\",\n        },\n        Trusted = true,\n    });\n\n    var ovpnServerCrt = new Routeros.SystemCertificate(\"ovpn_server_crt\", new()\n    {\n        Name = \"OpenVPN-Server-Certificate\",\n        CommonName = \"Mikrotik OpenVPN\",\n        KeySize = \"prime256v1\",\n        KeyUsages = new[]\n        {\n            \"digital-signature\",\n            \"key-encipherment\",\n            \"tls-server\",\n        },\n        Signs = new[]\n        {\n            new Routeros.Inputs.SystemCertificateSignArgs\n            {\n                Ca = ovpnCa.Name,\n            },\n        },\n    });\n\n    var test = new Routeros.PppProfile(\"test\", new()\n    {\n        Name = \"ovpn\",\n        LocalAddress = \"192.168.77.1\",\n        RemoteAddress = \"ovpn-pool\",\n        UseUpnp = \"no\",\n    });\n\n    var testPppSecret = new Routeros.PppSecret(\"test\", new()\n    {\n        Name = \"user-test\",\n        Password = \"123\",\n        Profile = test.Name,\n    });\n\n    var server = new Routeros.OvpnServer(\"server\", new()\n    {\n        Enabled = true,\n        Certificate = ovpnServerCrt.Name,\n        Auths = new[]\n        {\n            \"sha256\",\n            \"sha512\",\n        },\n        TlsVersion = \"only-1.2\",\n        DefaultProfile = test.Name,\n    });\n\n    // The resource should be created only after the OpenVPN server is enabled!\n    var user1 = new Routeros.InterfaceOvpnServer(\"user1\", new()\n    {\n        Name = \"ovpn-in1\",\n        User = \"user1\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            server,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewIpPool(ctx, \"ovpn-pool\", \u0026routeros.IpPoolArgs{\n\t\t\tName: pulumi.String(\"ovpn-pool\"),\n\t\t\tRanges: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"192.168.77.2-192.168.77.254\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tovpnCa, err := routeros.NewSystemCertificate(ctx, \"ovpn_ca\", \u0026routeros.SystemCertificateArgs{\n\t\t\tSigns: routeros.SystemCertificateSignArray{\n\t\t\t\t\u0026routeros.SystemCertificateSignArgs{},\n\t\t\t},\n\t\t\tName:       pulumi.String(\"OpenVPN-Root-CA\"),\n\t\t\tCommonName: pulumi.String(\"OpenVPN Root CA\"),\n\t\t\tKeySize:    pulumi.String(\"prime256v1\"),\n\t\t\tKeyUsages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"key-cert-sign\"),\n\t\t\t\tpulumi.String(\"crl-sign\"),\n\t\t\t},\n\t\t\tTrusted: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tovpnServerCrt, err := routeros.NewSystemCertificate(ctx, \"ovpn_server_crt\", \u0026routeros.SystemCertificateArgs{\n\t\t\tName:       pulumi.String(\"OpenVPN-Server-Certificate\"),\n\t\t\tCommonName: pulumi.String(\"Mikrotik OpenVPN\"),\n\t\t\tKeySize:    pulumi.String(\"prime256v1\"),\n\t\t\tKeyUsages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"digital-signature\"),\n\t\t\t\tpulumi.String(\"key-encipherment\"),\n\t\t\t\tpulumi.String(\"tls-server\"),\n\t\t\t},\n\t\t\tSigns: routeros.SystemCertificateSignArray{\n\t\t\t\t\u0026routeros.SystemCertificateSignArgs{\n\t\t\t\t\tCa: ovpnCa.Name,\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\ttest, err := routeros.NewPppProfile(ctx, \"test\", \u0026routeros.PppProfileArgs{\n\t\t\tName:          pulumi.String(\"ovpn\"),\n\t\t\tLocalAddress:  pulumi.String(\"192.168.77.1\"),\n\t\t\tRemoteAddress: pulumi.String(\"ovpn-pool\"),\n\t\t\tUseUpnp:       pulumi.String(\"no\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewPppSecret(ctx, \"test\", \u0026routeros.PppSecretArgs{\n\t\t\tName:     pulumi.String(\"user-test\"),\n\t\t\tPassword: pulumi.String(\"123\"),\n\t\t\tProfile:  test.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserver, err := routeros.NewOvpnServer(ctx, \"server\", \u0026routeros.OvpnServerArgs{\n\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\tCertificate: ovpnServerCrt.Name,\n\t\t\tAuths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sha256\"),\n\t\t\t\tpulumi.String(\"sha512\"),\n\t\t\t},\n\t\t\tTlsVersion:     pulumi.String(\"only-1.2\"),\n\t\t\tDefaultProfile: test.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// The resource should be created only after the OpenVPN server is enabled!\n\t\t_, err = routeros.NewInterfaceOvpnServer(ctx, \"user1\", \u0026routeros.InterfaceOvpnServerArgs{\n\t\t\tName: pulumi.String(\"ovpn-in1\"),\n\t\t\tUser: pulumi.String(\"user1\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tserver,\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.routeros.IpPool;\nimport com.pulumi.routeros.IpPoolArgs;\nimport com.pulumi.routeros.SystemCertificate;\nimport com.pulumi.routeros.SystemCertificateArgs;\nimport com.pulumi.routeros.inputs.SystemCertificateSignArgs;\nimport com.pulumi.routeros.PppProfile;\nimport com.pulumi.routeros.PppProfileArgs;\nimport com.pulumi.routeros.PppSecret;\nimport com.pulumi.routeros.PppSecretArgs;\nimport com.pulumi.routeros.OvpnServer;\nimport com.pulumi.routeros.OvpnServerArgs;\nimport com.pulumi.routeros.InterfaceOvpnServer;\nimport com.pulumi.routeros.InterfaceOvpnServerArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ovpn_pool = new IpPool(\"ovpn-pool\", IpPoolArgs.builder()\n            .name(\"ovpn-pool\")\n            .ranges(\"192.168.77.2-192.168.77.254\")\n            .build());\n\n        var ovpnCa = new SystemCertificate(\"ovpnCa\", SystemCertificateArgs.builder()\n            .signs(SystemCertificateSignArgs.builder()\n                .build())\n            .name(\"OpenVPN-Root-CA\")\n            .commonName(\"OpenVPN Root CA\")\n            .keySize(\"prime256v1\")\n            .keyUsages(            \n                \"key-cert-sign\",\n                \"crl-sign\")\n            .trusted(true)\n            .build());\n\n        var ovpnServerCrt = new SystemCertificate(\"ovpnServerCrt\", SystemCertificateArgs.builder()\n            .name(\"OpenVPN-Server-Certificate\")\n            .commonName(\"Mikrotik OpenVPN\")\n            .keySize(\"prime256v1\")\n            .keyUsages(            \n                \"digital-signature\",\n                \"key-encipherment\",\n                \"tls-server\")\n            .signs(SystemCertificateSignArgs.builder()\n                .ca(ovpnCa.name())\n                .build())\n            .build());\n\n        var test = new PppProfile(\"test\", PppProfileArgs.builder()\n            .name(\"ovpn\")\n            .localAddress(\"192.168.77.1\")\n            .remoteAddress(\"ovpn-pool\")\n            .useUpnp(\"no\")\n            .build());\n\n        var testPppSecret = new PppSecret(\"testPppSecret\", PppSecretArgs.builder()\n            .name(\"user-test\")\n            .password(\"123\")\n            .profile(test.name())\n            .build());\n\n        var server = new OvpnServer(\"server\", OvpnServerArgs.builder()\n            .enabled(true)\n            .certificate(ovpnServerCrt.name())\n            .auths(            \n                \"sha256\",\n                \"sha512\")\n            .tlsVersion(\"only-1.2\")\n            .defaultProfile(test.name())\n            .build());\n\n        // The resource should be created only after the OpenVPN server is enabled!\n        var user1 = new InterfaceOvpnServer(\"user1\", InterfaceOvpnServerArgs.builder()\n            .name(\"ovpn-in1\")\n            .user(\"user1\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(server)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ovpn-pool:\n    type: routeros:IpPool\n    properties:\n      name: ovpn-pool\n      ranges:\n        - 192.168.77.2-192.168.77.254\n  ovpnCa:\n    type: routeros:SystemCertificate\n    name: ovpn_ca\n    properties:\n      signs:\n        - {}\n      name: OpenVPN-Root-CA\n      commonName: OpenVPN Root CA\n      keySize: prime256v1\n      keyUsages:\n        - key-cert-sign\n        - crl-sign\n      trusted: true\n  ovpnServerCrt:\n    type: routeros:SystemCertificate\n    name: ovpn_server_crt\n    properties:\n      name: OpenVPN-Server-Certificate\n      commonName: Mikrotik OpenVPN\n      keySize: prime256v1\n      keyUsages:\n        - digital-signature\n        - key-encipherment\n        - tls-server\n      signs:\n        - ca: ${ovpnCa.name}\n  test:\n    type: routeros:PppProfile\n    properties:\n      name: ovpn\n      localAddress: 192.168.77.1\n      remoteAddress: ovpn-pool\n      useUpnp: no\n  testPppSecret:\n    type: routeros:PppSecret\n    name: test\n    properties:\n      name: user-test\n      password: '123'\n      profile: ${test.name}\n  server:\n    type: routeros:OvpnServer\n    properties:\n      enabled: true\n      certificate: ${ovpnServerCrt.name}\n      auths:\n        - sha256\n        - sha512\n      tlsVersion: only-1.2\n      defaultProfile: ${test.name}\n  # The resource should be created only after the OpenVPN server is enabled!\n  user1:\n    type: routeros:InterfaceOvpnServer\n    properties:\n      name: ovpn-in1\n      user: user1\n    options:\n      dependsOn:\n        - ${server}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/ovpnServer:OvpnServer server .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"auths":{"type":"array","items":{"type":"string"},"description":"Authentication methods that the server will accept."},"certificate":{"type":"string","description":"Name of the certificate that the OVPN server will use."},"ciphers":{"type":"array","items":{"type":"string"},"description":"Allowed ciphers."},"defaultProfile":{"type":"string","description":"Default profile to use."},"enableTunIpv6":{"type":"boolean","description":"Specifies if IPv6 IP tunneling mode should be possible with this OVPN server."},"enabled":{"type":"boolean","description":"Defines whether the OVPN server is enabled or not."},"ipv6PrefixLen":{"type":"number","description":"Length of IPv6 prefix for IPv6 address which will be used when generating OVPN interface on the server side."},"keepaliveTimeout":{"type":"string","description":"Defines  the time period (in seconds) after which the router is starting to send  keepalive packets every second. If no traffic and no keepalive  responses have come for that period of time (i.e. 2 *  keepalive-timeout), not responding client is proclaimed disconnected"},"macAddress":{"type":"string","description":"Automatically generated MAC address of the server."},"maxMtu":{"type":"number","description":"Maximum Transmission Unit. Max packet size that the OVPN interface will be able to send without packet fragmentation."},"mode":{"type":"string","description":"Layer3 or layer2 tunnel mode (alternatively tun, tap)"},"netmask":{"type":"number","description":"Subnet mask to be applied to the client."},"ovpnServerId":{"type":"string"},"port":{"type":"number","description":"Port to run the server on."},"protocol":{"type":"string","description":"indicates the protocol to use when connecting with the remote endpoint."},"pushRoutes":{"type":"array","items":{"type":"string"},"description":"Push routes to the VPN client (available since RouterOS 7.14)."},"redirectGateways":{"type":"array","items":{"type":"string"},"description":"Specifies what kind of routes the OVPN client must add to the routing table.\n  * def1 – Use this flag to override the default gateway by using 0.0.0.0/1 and  128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of overriding  but not wiping out the original default gateway.\n  * disabled - Do not send redirect-gateway flags to the OVPN client.\n  * ipv6 - Redirect IPv6 routing into the tunnel on the client side. This works  similarly to the def1 flag, that is, more specific IPv6 routes are added  (2000::/4 and 3000::/4), covering the whole IPv6 unicast space."},"renegSec":{"type":"number","description":"Renegotiate data channel key after n seconds (default=3600)."},"requireClientCertificate":{"type":"boolean","description":"If set to yes, then the server checks whether the client's certificate belongs to the same certificate chain."},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow."},"tunServerIpv6":{"type":"string","description":"IPv6 prefix address which will be used when generating the OVPN interface on the server side."}},"type":"object","required":["macAddress","ovpnServerId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"auths":{"type":"array","items":{"type":"string"},"description":"Authentication methods that the server will accept."},"certificate":{"type":"string","description":"Name of the certificate that the OVPN server will use."},"ciphers":{"type":"array","items":{"type":"string"},"description":"Allowed ciphers."},"defaultProfile":{"type":"string","description":"Default profile to use."},"enableTunIpv6":{"type":"boolean","description":"Specifies if IPv6 IP tunneling mode should be possible with this OVPN server."},"enabled":{"type":"boolean","description":"Defines whether the OVPN server is enabled or not."},"ipv6PrefixLen":{"type":"number","description":"Length of IPv6 prefix for IPv6 address which will be used when generating OVPN interface on the server side."},"keepaliveTimeout":{"type":"string","description":"Defines  the time period (in seconds) after which the router is starting to send  keepalive packets every second. If no traffic and no keepalive  responses have come for that period of time (i.e. 2 *  keepalive-timeout), not responding client is proclaimed disconnected"},"macAddress":{"type":"string","description":"Automatically generated MAC address of the server."},"maxMtu":{"type":"number","description":"Maximum Transmission Unit. Max packet size that the OVPN interface will be able to send without packet fragmentation."},"mode":{"type":"string","description":"Layer3 or layer2 tunnel mode (alternatively tun, tap)"},"netmask":{"type":"number","description":"Subnet mask to be applied to the client."},"ovpnServerId":{"type":"string"},"port":{"type":"number","description":"Port to run the server on."},"protocol":{"type":"string","description":"indicates the protocol to use when connecting with the remote endpoint."},"pushRoutes":{"type":"array","items":{"type":"string"},"description":"Push routes to the VPN client (available since RouterOS 7.14)."},"redirectGateways":{"type":"array","items":{"type":"string"},"description":"Specifies what kind of routes the OVPN client must add to the routing table.\n  * def1 – Use this flag to override the default gateway by using 0.0.0.0/1 and  128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of overriding  but not wiping out the original default gateway.\n  * disabled - Do not send redirect-gateway flags to the OVPN client.\n  * ipv6 - Redirect IPv6 routing into the tunnel on the client side. This works  similarly to the def1 flag, that is, more specific IPv6 routes are added  (2000::/4 and 3000::/4), covering the whole IPv6 unicast space."},"renegSec":{"type":"number","description":"Renegotiate data channel key after n seconds (default=3600)."},"requireClientCertificate":{"type":"boolean","description":"If set to yes, then the server checks whether the client's certificate belongs to the same certificate chain."},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow."},"tunServerIpv6":{"type":"string","description":"IPv6 prefix address which will be used when generating the OVPN interface on the server side."}},"stateInputs":{"description":"Input properties used for looking up and filtering OvpnServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"auths":{"type":"array","items":{"type":"string"},"description":"Authentication methods that the server will accept."},"certificate":{"type":"string","description":"Name of the certificate that the OVPN server will use."},"ciphers":{"type":"array","items":{"type":"string"},"description":"Allowed ciphers."},"defaultProfile":{"type":"string","description":"Default profile to use."},"enableTunIpv6":{"type":"boolean","description":"Specifies if IPv6 IP tunneling mode should be possible with this OVPN server."},"enabled":{"type":"boolean","description":"Defines whether the OVPN server is enabled or not."},"ipv6PrefixLen":{"type":"number","description":"Length of IPv6 prefix for IPv6 address which will be used when generating OVPN interface on the server side."},"keepaliveTimeout":{"type":"string","description":"Defines  the time period (in seconds) after which the router is starting to send  keepalive packets every second. If no traffic and no keepalive  responses have come for that period of time (i.e. 2 *  keepalive-timeout), not responding client is proclaimed disconnected"},"macAddress":{"type":"string","description":"Automatically generated MAC address of the server."},"maxMtu":{"type":"number","description":"Maximum Transmission Unit. Max packet size that the OVPN interface will be able to send without packet fragmentation."},"mode":{"type":"string","description":"Layer3 or layer2 tunnel mode (alternatively tun, tap)"},"netmask":{"type":"number","description":"Subnet mask to be applied to the client."},"ovpnServerId":{"type":"string"},"port":{"type":"number","description":"Port to run the server on."},"protocol":{"type":"string","description":"indicates the protocol to use when connecting with the remote endpoint."},"pushRoutes":{"type":"array","items":{"type":"string"},"description":"Push routes to the VPN client (available since RouterOS 7.14)."},"redirectGateways":{"type":"array","items":{"type":"string"},"description":"Specifies what kind of routes the OVPN client must add to the routing table.\n  * def1 – Use this flag to override the default gateway by using 0.0.0.0/1 and  128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of overriding  but not wiping out the original default gateway.\n  * disabled - Do not send redirect-gateway flags to the OVPN client.\n  * ipv6 - Redirect IPv6 routing into the tunnel on the client side. This works  similarly to the def1 flag, that is, more specific IPv6 routes are added  (2000::/4 and 3000::/4), covering the whole IPv6 unicast space."},"renegSec":{"type":"number","description":"Renegotiate data channel key after n seconds (default=3600)."},"requireClientCertificate":{"type":"boolean","description":"If set to yes, then the server checks whether the client's certificate belongs to the same certificate chain."},"tlsVersion":{"type":"string","description":"Specifies which TLS versions to allow."},"tunServerIpv6":{"type":"string","description":"IPv6 prefix address which will be used when generating the OVPN interface on the server side."}},"type":"object"}},"routeros:index/pppAaa:PppAaa":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.PppAaa(\"settings\", {useRadius: true});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.PppAaa(\"settings\", use_radius=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.PppAaa(\"settings\", new()\n    {\n        UseRadius = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewPppAaa(ctx, \"settings\", \u0026routeros.PppAaaArgs{\n\t\t\tUseRadius: 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.routeros.PppAaa;\nimport com.pulumi.routeros.PppAaaArgs;\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 settings = new PppAaa(\"settings\", PppAaaArgs.builder()\n            .useRadius(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:PppAaa\n    properties:\n      useRadius: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/pppAaa:PppAaa settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"An option that enables accounting for users.\n"},"enableIpv6Accounting":{"type":"boolean","description":"An option that enables IPv6 separate accounting.\n"},"interimUpdate":{"type":"string","description":"Interval between scheduled RADIUS Interim-Update messages.\n"},"pppAaaId":{"type":"string","description":"The ID of this resource.\n"},"useCircuitIdInNasPortId":{"type":"boolean"},"useRadius":{"type":"boolean","description":"An option whether to use RADIUS server.\n"}},"type":"object","required":["pppAaaId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"An option that enables accounting for users.\n"},"enableIpv6Accounting":{"type":"boolean","description":"An option that enables IPv6 separate accounting.\n"},"interimUpdate":{"type":"string","description":"Interval between scheduled RADIUS Interim-Update messages.\n"},"pppAaaId":{"type":"string","description":"The ID of this resource.\n"},"useCircuitIdInNasPortId":{"type":"boolean"},"useRadius":{"type":"boolean","description":"An option whether to use RADIUS server.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering PppAaa resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"An option that enables accounting for users.\n"},"enableIpv6Accounting":{"type":"boolean","description":"An option that enables IPv6 separate accounting.\n"},"interimUpdate":{"type":"string","description":"Interval between scheduled RADIUS Interim-Update messages.\n"},"pppAaaId":{"type":"string","description":"The ID of this resource.\n"},"useCircuitIdInNasPortId":{"type":"boolean"},"useRadius":{"type":"boolean","description":"An option whether to use RADIUS server.\n"}},"type":"object"}},"routeros:index/pppProfile:PppProfile":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.PppProfile(\"test\", {\n    name: \"ovpn\",\n    localAddress: \"192.168.77.1\",\n    remoteAddress: \"ovpn-pool\",\n    useUpnp: \"no\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.PppProfile(\"test\",\n    name=\"ovpn\",\n    local_address=\"192.168.77.1\",\n    remote_address=\"ovpn-pool\",\n    use_upnp=\"no\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.PppProfile(\"test\", new()\n    {\n        Name = \"ovpn\",\n        LocalAddress = \"192.168.77.1\",\n        RemoteAddress = \"ovpn-pool\",\n        UseUpnp = \"no\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewPppProfile(ctx, \"test\", \u0026routeros.PppProfileArgs{\n\t\t\tName:          pulumi.String(\"ovpn\"),\n\t\t\tLocalAddress:  pulumi.String(\"192.168.77.1\"),\n\t\t\tRemoteAddress: pulumi.String(\"ovpn-pool\"),\n\t\t\tUseUpnp:       pulumi.String(\"no\"),\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.routeros.PppProfile;\nimport com.pulumi.routeros.PppProfileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new PppProfile(\"test\", PppProfileArgs.builder()\n            .name(\"ovpn\")\n            .localAddress(\"192.168.77.1\")\n            .remoteAddress(\"ovpn-pool\")\n            .useUpnp(\"no\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:PppProfile\n    properties:\n      name: ovpn\n      localAddress: 192.168.77.1\n      remoteAddress: ovpn-pool\n      useUpnp: no\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ppp/profile get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/pppProfile:PppProfile test *6\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/pppProfile:PppProfile test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressList":{"type":"string","description":"Address list name to which ppp assigned (on server) or received (on client) address will be added."},"bridge":{"type":"string","description":"Name of the bridge interface to which ppp interface will be added as a slave port. Both  tunnel endpoints (server and client) must be in bridge in order to make  this work, see more details on the BCP bridging manual."},"bridgeHorizon":{"type":"number","description":"Used  split-horizon value for the dynamically created bridge port. Can be  used to prevent bridging loops and isolate traffic. Set the same value  for a group of ports, to prevent them from sending data to ports with  the same horizon value."},"bridgeLearning":{"type":"string","description":"Changes MAC learning behavior on the dynamically created bridge port: yes - enables MAC learning no - disables MAC learning default - derive this value from the interface default profile; same as yes if this is the interface default profile."},"bridgePathCost":{"type":"number","description":"Used  path cost for the dynamically created bridge port, used by STP/RSTP to  determine the best path, used by MSTP to determine the best path between  regions. This property has no effect when a bridge protocol-mode is set to none."},"bridgePortPriority":{"type":"number","description":"Used  priority for the dynamically created bridge port, used by STP/RSTP to  determine the root port, used by MSTP to determine root port between  regions. This property has no effect when a bridge protocol-mode is set  to none."},"changeTcpMss":{"type":"string","description":"Modifies connection MSS settings (applies only for IPv4): yes - adjust connection MSS value no - do not adjust connection MSS value default - derive this value from the interface default profile; same as no if this is the interface default profile."},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item."},"dhcpv6LeaseTime":{"type":"string","description":"Lease time can be set starting from 7.20ab202, by default time is set to 1d."},"dhcpv6PdPool":{"type":"string","description":"Name of the IPv6 pool which will be used by dynamically created DHCPv6-PD server when client connects. [Read more \u003e\u003e](https://wiki.mikrotik.com/wiki/Manual:IPv6_PD_over_PPP)"},"dhcpv6UseRadius":{"type":"boolean","description":"pecifies value for `use-radius` option selected for dynamically generated DHCPv6 PD servers."},"dnsServers":{"type":"array","items":{"type":"string"},"description":"IP address of the DNS server that is supplied to ppp clients."},"idleTimeout":{"type":"string","description":"Specifies  the amount of time after which the link will be terminated if there are  no activity present. Timeout is not set by default."},"incomingFilter":{"type":"string","description":"Firewall  chain name for incoming packets. Specified chain gets control for each  packet coming from the client. The ppp chain should be manually added  and rules with action=jump jump-target=ppp should be added to other  relevant chains in order for this feature to work. For more information  look at the examples section."},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set."},"interfaceList":{"type":"string","description":"Interface list name."},"localAddress":{"type":"string","description":"Tunnel address or name of the pool from which address is assigned to ppp interface locally."},"name":{"type":"string","description":"PPP profile name."},"onDown":{"type":"string","description":"Execute script on user logging off. See on-up for more details."},"onUp":{"type":"string","description":"Execute script on user login-event. These are available variables that are accessible for the event script:\n  * user\n  * local-address\n  * remote-address\n  * caller-id\n  * called-id\n  * interface."},"onlyOne":{"type":"string","description":"Defines whether a user is allowed to have more than one ppp session at a time yes - a user is not allowed to have more than one ppp session at a time no - the user is allowed to have more than one ppp session at a time default - derive this value from the interface default profile; same as no if this is the interface default profile."},"outgoingFilter":{"type":"string","description":"Firewall  chain name for outgoing packets. The specified chain gets control for  each packet going to the client. The PPP chain should be manually added  and rules with action=jump jump-target=ppp should be added to other  relevant chains in order for this feature to work. For more information  look at the Examples section."},"parentQueue":{"type":"string","description":"Name of parent simple queue."},"pppProfileId":{"type":"string"},"queueType":{"type":"string","description":"Queue types."},"rateLimit":{"type":"string","description":"Rate limitation in form of rx-rate[/tx-rate]  [rx-burst-rate[/tx-burst-rate] [rx-burst-threshold[/tx-burst-threshold]  [rx-burst-time[/tx-burst-time] [priority] [rx-rate-min[/tx-rate-min]]]] from the point of view of the router (so 'rx' is client upload, and  'tx' is client download). All rates are measured in bits per second,  unless followed by optional 'k' suffix (kilobits per second) or 'M'  suffix (megabits per second). If tx-rate is not specified, rx-rate  serves as tx-rate too. The same applies for tx-burst-rate,  tx-burst-threshold and tx-burst-time. If both rx-burst-threshold and  tx-burst-threshold are not specified (but burst-rate is specified),  rx-rate and tx-rate are used as burst thresholds. If both rx-burst-time  and tx-burst-time are not specified, 1s is used as default. Priority  takes values 1..8, where 1 implies the highest priority, but 8 - the  lowest. If rx-rate-min and tx-rate-min are not specified rx-rate and  tx-rate values are used. The rx-rate-min and tx-rate-min values can not  exceed rx-rate and tx-rate values."},"remoteAddress":{"type":"string","description":"Tunnel address or name of the pool from which address is assigned to remote ppp interface."},"remoteIpv6PrefixPool":{"type":"string","description":"Assign prefix from IPv6 pool to the client and install corresponding IPv6 route."},"remoteIpv6PrefixReuse":{"type":"boolean","description":"If `remote-ipv6-prefix-pool` is specified and includes single `/64`prefix, then prefix can be used only for a single PPP client for RADVD configuration. When this option is set to value \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e, the same prefix can be reused between all the clients using this PPP profile."},"sessionTimeout":{"type":"string","description":"Maximum time the connection can stay up. By default no time limit is set."},"useCompression":{"type":"string","description":"Specifies whether to use data compression or not. yes - enable data compression no - disable data compression default - derive this value from the interface default profile; same as no if this is the interface default profile This setting does not affect OVPN tunnels."},"useEncryption":{"type":"string","description":"Specifies whether to use data encryption or not. yes - enable data encryption no - disable data encryption default - derive this value from the interface default profile; same as no if this is the interface default profile require - explicitly requires encryption This setting does not work on OVPN and SSTP tunnels."},"useIpv6":{"type":"string","description":"Specifies whether to allow IPv6. By default is enabled if IPv6 package is installed. yes - enable IPv6 support no - disable IPv6 support default - derive this value from the interface default profile; same as no if this is the interface default profile require - explicitly requires IPv6 support."},"useMpls":{"type":"string","description":"Specifies whether to allow MPLS over PPP. yes - enable MPLS support no - disable MPLS support default - derive this value from the interface default profile; same as no if this is the interface default profile require - explicitly requires MPLS support"},"useUpnp":{"type":"string","description":"Specifies whether to allow UPnP."},"winsServers":{"type":"array","items":{"type":"string"},"description":"IP address of the WINS server to supply to Windows clients."}},"type":"object","required":["default","name","pppProfileId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressList":{"type":"string","description":"Address list name to which ppp assigned (on server) or received (on client) address will be added."},"bridge":{"type":"string","description":"Name of the bridge interface to which ppp interface will be added as a slave port. Both  tunnel endpoints (server and client) must be in bridge in order to make  this work, see more details on the BCP bridging manual."},"bridgeHorizon":{"type":"number","description":"Used  split-horizon value for the dynamically created bridge port. Can be  used to prevent bridging loops and isolate traffic. Set the same value  for a group of ports, to prevent them from sending data to ports with  the same horizon value."},"bridgeLearning":{"type":"string","description":"Changes MAC learning behavior on the dynamically created bridge port: yes - enables MAC learning no - disables MAC learning default - derive this value from the interface default profile; same as yes if this is the interface default profile."},"bridgePathCost":{"type":"number","description":"Used  path cost for the dynamically created bridge port, used by STP/RSTP to  determine the best path, used by MSTP to determine the best path between  regions. This property has no effect when a bridge protocol-mode is set to none."},"bridgePortPriority":{"type":"number","description":"Used  priority for the dynamically created bridge port, used by STP/RSTP to  determine the root port, used by MSTP to determine root port between  regions. This property has no effect when a bridge protocol-mode is set  to none."},"changeTcpMss":{"type":"string","description":"Modifies connection MSS settings (applies only for IPv4): yes - adjust connection MSS value no - do not adjust connection MSS value default - derive this value from the interface default profile; same as no if this is the interface default profile."},"comment":{"type":"string"},"dhcpv6LeaseTime":{"type":"string","description":"Lease time can be set starting from 7.20ab202, by default time is set to 1d."},"dhcpv6PdPool":{"type":"string","description":"Name of the IPv6 pool which will be used by dynamically created DHCPv6-PD server when client connects. [Read more \u003e\u003e](https://wiki.mikrotik.com/wiki/Manual:IPv6_PD_over_PPP)"},"dhcpv6UseRadius":{"type":"boolean","description":"pecifies value for `use-radius` option selected for dynamically generated DHCPv6 PD servers."},"dnsServers":{"type":"array","items":{"type":"string"},"description":"IP address of the DNS server that is supplied to ppp clients."},"idleTimeout":{"type":"string","description":"Specifies  the amount of time after which the link will be terminated if there are  no activity present. Timeout is not set by default."},"incomingFilter":{"type":"string","description":"Firewall  chain name for incoming packets. Specified chain gets control for each  packet coming from the client. The ppp chain should be manually added  and rules with action=jump jump-target=ppp should be added to other  relevant chains in order for this feature to work. For more information  look at the examples section."},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set."},"interfaceList":{"type":"string","description":"Interface list name."},"localAddress":{"type":"string","description":"Tunnel address or name of the pool from which address is assigned to ppp interface locally."},"name":{"type":"string","description":"PPP profile name."},"onDown":{"type":"string","description":"Execute script on user logging off. See on-up for more details."},"onUp":{"type":"string","description":"Execute script on user login-event. These are available variables that are accessible for the event script:\n  * user\n  * local-address\n  * remote-address\n  * caller-id\n  * called-id\n  * interface."},"onlyOne":{"type":"string","description":"Defines whether a user is allowed to have more than one ppp session at a time yes - a user is not allowed to have more than one ppp session at a time no - the user is allowed to have more than one ppp session at a time default - derive this value from the interface default profile; same as no if this is the interface default profile."},"outgoingFilter":{"type":"string","description":"Firewall  chain name for outgoing packets. The specified chain gets control for  each packet going to the client. The PPP chain should be manually added  and rules with action=jump jump-target=ppp should be added to other  relevant chains in order for this feature to work. For more information  look at the Examples section."},"parentQueue":{"type":"string","description":"Name of parent simple queue."},"pppProfileId":{"type":"string"},"queueType":{"type":"string","description":"Queue types."},"rateLimit":{"type":"string","description":"Rate limitation in form of rx-rate[/tx-rate]  [rx-burst-rate[/tx-burst-rate] [rx-burst-threshold[/tx-burst-threshold]  [rx-burst-time[/tx-burst-time] [priority] [rx-rate-min[/tx-rate-min]]]] from the point of view of the router (so 'rx' is client upload, and  'tx' is client download). All rates are measured in bits per second,  unless followed by optional 'k' suffix (kilobits per second) or 'M'  suffix (megabits per second). If tx-rate is not specified, rx-rate  serves as tx-rate too. The same applies for tx-burst-rate,  tx-burst-threshold and tx-burst-time. If both rx-burst-threshold and  tx-burst-threshold are not specified (but burst-rate is specified),  rx-rate and tx-rate are used as burst thresholds. If both rx-burst-time  and tx-burst-time are not specified, 1s is used as default. Priority  takes values 1..8, where 1 implies the highest priority, but 8 - the  lowest. If rx-rate-min and tx-rate-min are not specified rx-rate and  tx-rate values are used. The rx-rate-min and tx-rate-min values can not  exceed rx-rate and tx-rate values."},"remoteAddress":{"type":"string","description":"Tunnel address or name of the pool from which address is assigned to remote ppp interface."},"remoteIpv6PrefixPool":{"type":"string","description":"Assign prefix from IPv6 pool to the client and install corresponding IPv6 route."},"remoteIpv6PrefixReuse":{"type":"boolean","description":"If `remote-ipv6-prefix-pool` is specified and includes single `/64`prefix, then prefix can be used only for a single PPP client for RADVD configuration. When this option is set to value \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e, the same prefix can be reused between all the clients using this PPP profile."},"sessionTimeout":{"type":"string","description":"Maximum time the connection can stay up. By default no time limit is set."},"useCompression":{"type":"string","description":"Specifies whether to use data compression or not. yes - enable data compression no - disable data compression default - derive this value from the interface default profile; same as no if this is the interface default profile This setting does not affect OVPN tunnels."},"useEncryption":{"type":"string","description":"Specifies whether to use data encryption or not. yes - enable data encryption no - disable data encryption default - derive this value from the interface default profile; same as no if this is the interface default profile require - explicitly requires encryption This setting does not work on OVPN and SSTP tunnels."},"useIpv6":{"type":"string","description":"Specifies whether to allow IPv6. By default is enabled if IPv6 package is installed. yes - enable IPv6 support no - disable IPv6 support default - derive this value from the interface default profile; same as no if this is the interface default profile require - explicitly requires IPv6 support."},"useMpls":{"type":"string","description":"Specifies whether to allow MPLS over PPP. yes - enable MPLS support no - disable MPLS support default - derive this value from the interface default profile; same as no if this is the interface default profile require - explicitly requires MPLS support"},"useUpnp":{"type":"string","description":"Specifies whether to allow UPnP."},"winsServers":{"type":"array","items":{"type":"string"},"description":"IP address of the WINS server to supply to Windows clients."}},"stateInputs":{"description":"Input properties used for looking up and filtering PppProfile resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressList":{"type":"string","description":"Address list name to which ppp assigned (on server) or received (on client) address will be added."},"bridge":{"type":"string","description":"Name of the bridge interface to which ppp interface will be added as a slave port. Both  tunnel endpoints (server and client) must be in bridge in order to make  this work, see more details on the BCP bridging manual."},"bridgeHorizon":{"type":"number","description":"Used  split-horizon value for the dynamically created bridge port. Can be  used to prevent bridging loops and isolate traffic. Set the same value  for a group of ports, to prevent them from sending data to ports with  the same horizon value."},"bridgeLearning":{"type":"string","description":"Changes MAC learning behavior on the dynamically created bridge port: yes - enables MAC learning no - disables MAC learning default - derive this value from the interface default profile; same as yes if this is the interface default profile."},"bridgePathCost":{"type":"number","description":"Used  path cost for the dynamically created bridge port, used by STP/RSTP to  determine the best path, used by MSTP to determine the best path between  regions. This property has no effect when a bridge protocol-mode is set to none."},"bridgePortPriority":{"type":"number","description":"Used  priority for the dynamically created bridge port, used by STP/RSTP to  determine the root port, used by MSTP to determine root port between  regions. This property has no effect when a bridge protocol-mode is set  to none."},"changeTcpMss":{"type":"string","description":"Modifies connection MSS settings (applies only for IPv4): yes - adjust connection MSS value no - do not adjust connection MSS value default - derive this value from the interface default profile; same as no if this is the interface default profile."},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item."},"dhcpv6LeaseTime":{"type":"string","description":"Lease time can be set starting from 7.20ab202, by default time is set to 1d."},"dhcpv6PdPool":{"type":"string","description":"Name of the IPv6 pool which will be used by dynamically created DHCPv6-PD server when client connects. [Read more \u003e\u003e](https://wiki.mikrotik.com/wiki/Manual:IPv6_PD_over_PPP)"},"dhcpv6UseRadius":{"type":"boolean","description":"pecifies value for `use-radius` option selected for dynamically generated DHCPv6 PD servers."},"dnsServers":{"type":"array","items":{"type":"string"},"description":"IP address of the DNS server that is supplied to ppp clients."},"idleTimeout":{"type":"string","description":"Specifies  the amount of time after which the link will be terminated if there are  no activity present. Timeout is not set by default."},"incomingFilter":{"type":"string","description":"Firewall  chain name for incoming packets. Specified chain gets control for each  packet coming from the client. The ppp chain should be manually added  and rules with action=jump jump-target=ppp should be added to other  relevant chains in order for this feature to work. For more information  look at the examples section."},"insertQueueBefore":{"type":"string","description":"Specify where to place dynamic simple queue entries for static DCHP leases with rate-limit parameter set."},"interfaceList":{"type":"string","description":"Interface list name."},"localAddress":{"type":"string","description":"Tunnel address or name of the pool from which address is assigned to ppp interface locally."},"name":{"type":"string","description":"PPP profile name."},"onDown":{"type":"string","description":"Execute script on user logging off. See on-up for more details."},"onUp":{"type":"string","description":"Execute script on user login-event. These are available variables that are accessible for the event script:\n  * user\n  * local-address\n  * remote-address\n  * caller-id\n  * called-id\n  * interface."},"onlyOne":{"type":"string","description":"Defines whether a user is allowed to have more than one ppp session at a time yes - a user is not allowed to have more than one ppp session at a time no - the user is allowed to have more than one ppp session at a time default - derive this value from the interface default profile; same as no if this is the interface default profile."},"outgoingFilter":{"type":"string","description":"Firewall  chain name for outgoing packets. The specified chain gets control for  each packet going to the client. The PPP chain should be manually added  and rules with action=jump jump-target=ppp should be added to other  relevant chains in order for this feature to work. For more information  look at the Examples section."},"parentQueue":{"type":"string","description":"Name of parent simple queue."},"pppProfileId":{"type":"string"},"queueType":{"type":"string","description":"Queue types."},"rateLimit":{"type":"string","description":"Rate limitation in form of rx-rate[/tx-rate]  [rx-burst-rate[/tx-burst-rate] [rx-burst-threshold[/tx-burst-threshold]  [rx-burst-time[/tx-burst-time] [priority] [rx-rate-min[/tx-rate-min]]]] from the point of view of the router (so 'rx' is client upload, and  'tx' is client download). All rates are measured in bits per second,  unless followed by optional 'k' suffix (kilobits per second) or 'M'  suffix (megabits per second). If tx-rate is not specified, rx-rate  serves as tx-rate too. The same applies for tx-burst-rate,  tx-burst-threshold and tx-burst-time. If both rx-burst-threshold and  tx-burst-threshold are not specified (but burst-rate is specified),  rx-rate and tx-rate are used as burst thresholds. If both rx-burst-time  and tx-burst-time are not specified, 1s is used as default. Priority  takes values 1..8, where 1 implies the highest priority, but 8 - the  lowest. If rx-rate-min and tx-rate-min are not specified rx-rate and  tx-rate values are used. The rx-rate-min and tx-rate-min values can not  exceed rx-rate and tx-rate values."},"remoteAddress":{"type":"string","description":"Tunnel address or name of the pool from which address is assigned to remote ppp interface."},"remoteIpv6PrefixPool":{"type":"string","description":"Assign prefix from IPv6 pool to the client and install corresponding IPv6 route."},"remoteIpv6PrefixReuse":{"type":"boolean","description":"If `remote-ipv6-prefix-pool` is specified and includes single `/64`prefix, then prefix can be used only for a single PPP client for RADVD configuration. When this option is set to value \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e, the same prefix can be reused between all the clients using this PPP profile."},"sessionTimeout":{"type":"string","description":"Maximum time the connection can stay up. By default no time limit is set."},"useCompression":{"type":"string","description":"Specifies whether to use data compression or not. yes - enable data compression no - disable data compression default - derive this value from the interface default profile; same as no if this is the interface default profile This setting does not affect OVPN tunnels."},"useEncryption":{"type":"string","description":"Specifies whether to use data encryption or not. yes - enable data encryption no - disable data encryption default - derive this value from the interface default profile; same as no if this is the interface default profile require - explicitly requires encryption This setting does not work on OVPN and SSTP tunnels."},"useIpv6":{"type":"string","description":"Specifies whether to allow IPv6. By default is enabled if IPv6 package is installed. yes - enable IPv6 support no - disable IPv6 support default - derive this value from the interface default profile; same as no if this is the interface default profile require - explicitly requires IPv6 support."},"useMpls":{"type":"string","description":"Specifies whether to allow MPLS over PPP. yes - enable MPLS support no - disable MPLS support default - derive this value from the interface default profile; same as no if this is the interface default profile require - explicitly requires MPLS support"},"useUpnp":{"type":"string","description":"Specifies whether to allow UPnP."},"winsServers":{"type":"array","items":{"type":"string"},"description":"IP address of the WINS server to supply to Windows clients."}},"type":"object"}},"routeros:index/pppSecret:PppSecret":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.PppSecret(\"test\", {\n    name: \"user-test\",\n    password: \"123\",\n    profile: \"default\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.PppSecret(\"test\",\n    name=\"user-test\",\n    password=\"123\",\n    profile=\"default\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.PppSecret(\"test\", new()\n    {\n        Name = \"user-test\",\n        Password = \"123\",\n        Profile = \"default\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewPppSecret(ctx, \"test\", \u0026routeros.PppSecretArgs{\n\t\t\tName:     pulumi.String(\"user-test\"),\n\t\t\tPassword: pulumi.String(\"123\"),\n\t\t\tProfile:  pulumi.String(\"default\"),\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.routeros.PppSecret;\nimport com.pulumi.routeros.PppSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new PppSecret(\"test\", PppSecretArgs.builder()\n            .name(\"user-test\")\n            .password(\"123\")\n            .profile(\"default\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:PppSecret\n    properties:\n      name: user-test\n      password: '123'\n      profile: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/ppp/secret get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/pppSecret:PppSecret test *6\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/pppSecret:PppSecret test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"callerId":{"type":"string","description":"For PPTP and L2TP it is the IP address a client must connect from. For PPPoE it is the MAC address (written in CAPITAL letters) a client must  connect from. For ISDN it is the caller's number (that may or may not be  provided by the operator) the client may dial-in from.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ipv6Routes":{"type":"array","items":{"type":"string"},"description":"IPv6 routes.\n"},"lastCallerId":{"type":"string"},"lastDisconnectReason":{"type":"string"},"lastLoggedOut":{"type":"string"},"limitBytesIn":{"type":"number","description":"Maximal amount of bytes for a session that client can upload.\n"},"limitBytesOut":{"type":"number","description":"Maximal amount of bytes for a session that client can download.\n"},"localAddress":{"type":"string","description":"IP address that will be set locally on ppp interface.\n"},"name":{"type":"string","description":"Name used for authentication.\n"},"password":{"type":"string","description":"Password used for authentication.\n","secret":true},"pppSecretId":{"type":"string","description":"The ID of this resource.\n"},"profile":{"type":"string","description":"Which user profile to use.\n"},"remoteAddress":{"type":"string","description":"IP address that will be assigned to remote ppp interface.\n"},"remoteIpv6Prefix":{"type":"string","description":"IPv6 prefix assigned to ppp client. Prefix is added to ND prefix list enabling stateless address auto-configuration on ppp interface.Available starting from v5.0.\n"},"routes":{"type":"array","items":{"type":"string"},"description":"Routes  that appear on the server when the client is connected. The route  format is: dst-address gateway metric (for example, 10.1.0.0/ 24  10.0.0.1 1). Other syntax is not acceptable since it can be represented  in incorrect way. Several routes may be specified separated with commas.  This parameter will be ignored for OpenVPN.\n"},"service":{"type":"string","description":"Specifies the services that particular user will be able to use.\n"}},"type":"object","required":["lastCallerId","lastDisconnectReason","lastLoggedOut","name","pppSecretId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"callerId":{"type":"string","description":"For PPTP and L2TP it is the IP address a client must connect from. For PPPoE it is the MAC address (written in CAPITAL letters) a client must  connect from. For ISDN it is the caller's number (that may or may not be  provided by the operator) the client may dial-in from.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ipv6Routes":{"type":"array","items":{"type":"string"},"description":"IPv6 routes.\n"},"limitBytesIn":{"type":"number","description":"Maximal amount of bytes for a session that client can upload.\n"},"limitBytesOut":{"type":"number","description":"Maximal amount of bytes for a session that client can download.\n"},"localAddress":{"type":"string","description":"IP address that will be set locally on ppp interface.\n"},"name":{"type":"string","description":"Name used for authentication.\n"},"password":{"type":"string","description":"Password used for authentication.\n","secret":true},"pppSecretId":{"type":"string","description":"The ID of this resource.\n"},"profile":{"type":"string","description":"Which user profile to use.\n"},"remoteAddress":{"type":"string","description":"IP address that will be assigned to remote ppp interface.\n"},"remoteIpv6Prefix":{"type":"string","description":"IPv6 prefix assigned to ppp client. Prefix is added to ND prefix list enabling stateless address auto-configuration on ppp interface.Available starting from v5.0.\n"},"routes":{"type":"array","items":{"type":"string"},"description":"Routes  that appear on the server when the client is connected. The route  format is: dst-address gateway metric (for example, 10.1.0.0/ 24  10.0.0.1 1). Other syntax is not acceptable since it can be represented  in incorrect way. Several routes may be specified separated with commas.  This parameter will be ignored for OpenVPN.\n"},"service":{"type":"string","description":"Specifies the services that particular user will be able to use.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering PppSecret resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"callerId":{"type":"string","description":"For PPTP and L2TP it is the IP address a client must connect from. For PPPoE it is the MAC address (written in CAPITAL letters) a client must  connect from. For ISDN it is the caller's number (that may or may not be  provided by the operator) the client may dial-in from.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ipv6Routes":{"type":"array","items":{"type":"string"},"description":"IPv6 routes.\n"},"lastCallerId":{"type":"string"},"lastDisconnectReason":{"type":"string"},"lastLoggedOut":{"type":"string"},"limitBytesIn":{"type":"number","description":"Maximal amount of bytes for a session that client can upload.\n"},"limitBytesOut":{"type":"number","description":"Maximal amount of bytes for a session that client can download.\n"},"localAddress":{"type":"string","description":"IP address that will be set locally on ppp interface.\n"},"name":{"type":"string","description":"Name used for authentication.\n"},"password":{"type":"string","description":"Password used for authentication.\n","secret":true},"pppSecretId":{"type":"string","description":"The ID of this resource.\n"},"profile":{"type":"string","description":"Which user profile to use.\n"},"remoteAddress":{"type":"string","description":"IP address that will be assigned to remote ppp interface.\n"},"remoteIpv6Prefix":{"type":"string","description":"IPv6 prefix assigned to ppp client. Prefix is added to ND prefix list enabling stateless address auto-configuration on ppp interface.Available starting from v5.0.\n"},"routes":{"type":"array","items":{"type":"string"},"description":"Routes  that appear on the server when the client is connected. The route  format is: dst-address gateway metric (for example, 10.1.0.0/ 24  10.0.0.1 1). Other syntax is not acceptable since it can be represented  in incorrect way. Several routes may be specified separated with commas.  This parameter will be ignored for OpenVPN.\n"},"service":{"type":"string","description":"Specifies the services that particular user will be able to use.\n"}},"type":"object"}},"routeros:index/queueSimple:QueueSimple":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.QueueSimple(\"test\", {\n    name: \"server\",\n    targets: [\"10.1.1.1/32\"],\n    maxLimit: \"0/0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.QueueSimple(\"test\",\n    name=\"server\",\n    targets=[\"10.1.1.1/32\"],\n    max_limit=\"0/0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.QueueSimple(\"test\", new()\n    {\n        Name = \"server\",\n        Targets = new[]\n        {\n            \"10.1.1.1/32\",\n        },\n        MaxLimit = \"0/0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewQueueSimple(ctx, \"test\", \u0026routeros.QueueSimpleArgs{\n\t\t\tName: pulumi.String(\"server\"),\n\t\t\tTargets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.1.1.1/32\"),\n\t\t\t},\n\t\t\tMaxLimit: pulumi.String(\"0/0\"),\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.routeros.QueueSimple;\nimport com.pulumi.routeros.QueueSimpleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new QueueSimple(\"test\", QueueSimpleArgs.builder()\n            .name(\"server\")\n            .targets(\"10.1.1.1/32\")\n            .maxLimit(\"0/0\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:QueueSimple\n    properties:\n      name: server\n      targets:\n        - 10.1.1.1/32\n      maxLimit: 0/0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/queue/simple get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/queueSimple:QueueSimple test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/queueSimple:QueueSimple test \"name=server\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bucketSize":{"type":"string"},"burstLimit":{"type":"string","description":"Maximal upload/download data rate which can be reached while the burst is active.\n"},"burstThreshold":{"type":"string","description":"When average data rate is below this value - burst is allowed, as soon as average data rate reach this value - burst is denied (basically this is burst on/off switch). For optimal burst behavior this value should above `limit-at` value and below `max-limit` value\n"},"burstTime":{"type":"string","description":"Period of time, in seconds, over which the average upload/download data rate is calculated. This is NOT the time of actual burst.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dst":{"type":"string","description":"Allows to select only specific stream (from target address to this destination address) for limitation explain what is target and what is dst and what is upload and what not.\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"invalid":{"type":"boolean"},"limitAt":{"type":"string","description":"Normal upload/download data rate that is guaranteed to a target.\n"},"maxLimit":{"type":"string","description":"Maximal upload/download data rate that is allowed for a target to reach to reach what.\n"},"name":{"type":"string","description":"Queue name.\n"},"packetMarks":{"type":"array","items":{"type":"string"},"description":"Allows to use marked packets from `/ip firewall mangle`. Take look at this packet flow diagram. You need to make sure that packets are marked before the simple queues (before global-in HTB queue).\n"},"parent":{"type":"string","description":"Assigns this queue as a child queue for selected target. Target queue can be HTB queue or any other previously created queue.\n"},"priority":{"type":"string","description":"Prioritize one child queue over other child queue. Does not work on parent queues (if queue has at least one child). One is the highest, eight is the lowest priority. Child queue with higher priority will have chance to reach its `max-limit` before child with lower priority. Priority have nothing to do with bursts.\n"},"queue":{"type":"string","description":"Choose the type of the queue.\n"},"queueSimpleId":{"type":"string","description":"The ID of this resource.\n"},"targets":{"type":"array","items":{"type":"string"},"description":"List of IP address ranges that will be limited by this queue.\n"},"time":{"type":"string","description":"Allow to specify time when particular queue will be active. Router must have correct time settings.\n"},"totalBucketSize":{"type":"number"},"totalBurstLimit":{"type":"number"},"totalBurstThreshold":{"type":"number"},"totalBurstTime":{"type":"number"},"totalLimitAt":{"type":"number"},"totalMaxLimit":{"type":"number"},"totalPriority":{"type":"number"},"totalQueue":{"type":"string"}},"type":"object","required":["dynamic","invalid","name","queueSimpleId","targets"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bucketSize":{"type":"string"},"burstLimit":{"type":"string","description":"Maximal upload/download data rate which can be reached while the burst is active.\n"},"burstThreshold":{"type":"string","description":"When average data rate is below this value - burst is allowed, as soon as average data rate reach this value - burst is denied (basically this is burst on/off switch). For optimal burst behavior this value should above `limit-at` value and below `max-limit` value\n"},"burstTime":{"type":"string","description":"Period of time, in seconds, over which the average upload/download data rate is calculated. This is NOT the time of actual burst.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dst":{"type":"string","description":"Allows to select only specific stream (from target address to this destination address) for limitation explain what is target and what is dst and what is upload and what not.\n"},"limitAt":{"type":"string","description":"Normal upload/download data rate that is guaranteed to a target.\n"},"maxLimit":{"type":"string","description":"Maximal upload/download data rate that is allowed for a target to reach to reach what.\n"},"name":{"type":"string","description":"Queue name.\n"},"packetMarks":{"type":"array","items":{"type":"string"},"description":"Allows to use marked packets from `/ip firewall mangle`. Take look at this packet flow diagram. You need to make sure that packets are marked before the simple queues (before global-in HTB queue).\n"},"parent":{"type":"string","description":"Assigns this queue as a child queue for selected target. Target queue can be HTB queue or any other previously created queue.\n"},"priority":{"type":"string","description":"Prioritize one child queue over other child queue. Does not work on parent queues (if queue has at least one child). One is the highest, eight is the lowest priority. Child queue with higher priority will have chance to reach its `max-limit` before child with lower priority. Priority have nothing to do with bursts.\n"},"queue":{"type":"string","description":"Choose the type of the queue.\n"},"queueSimpleId":{"type":"string","description":"The ID of this resource.\n"},"targets":{"type":"array","items":{"type":"string"},"description":"List of IP address ranges that will be limited by this queue.\n"},"time":{"type":"string","description":"Allow to specify time when particular queue will be active. Router must have correct time settings.\n"},"totalBucketSize":{"type":"number"},"totalBurstLimit":{"type":"number"},"totalBurstThreshold":{"type":"number"},"totalBurstTime":{"type":"number"},"totalLimitAt":{"type":"number"},"totalMaxLimit":{"type":"number"},"totalPriority":{"type":"number"},"totalQueue":{"type":"string"}},"requiredInputs":["targets"],"stateInputs":{"description":"Input properties used for looking up and filtering QueueSimple resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bucketSize":{"type":"string"},"burstLimit":{"type":"string","description":"Maximal upload/download data rate which can be reached while the burst is active.\n"},"burstThreshold":{"type":"string","description":"When average data rate is below this value - burst is allowed, as soon as average data rate reach this value - burst is denied (basically this is burst on/off switch). For optimal burst behavior this value should above `limit-at` value and below `max-limit` value\n"},"burstTime":{"type":"string","description":"Period of time, in seconds, over which the average upload/download data rate is calculated. This is NOT the time of actual burst.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dst":{"type":"string","description":"Allows to select only specific stream (from target address to this destination address) for limitation explain what is target and what is dst and what is upload and what not.\n"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"invalid":{"type":"boolean"},"limitAt":{"type":"string","description":"Normal upload/download data rate that is guaranteed to a target.\n"},"maxLimit":{"type":"string","description":"Maximal upload/download data rate that is allowed for a target to reach to reach what.\n"},"name":{"type":"string","description":"Queue name.\n"},"packetMarks":{"type":"array","items":{"type":"string"},"description":"Allows to use marked packets from `/ip firewall mangle`. Take look at this packet flow diagram. You need to make sure that packets are marked before the simple queues (before global-in HTB queue).\n"},"parent":{"type":"string","description":"Assigns this queue as a child queue for selected target. Target queue can be HTB queue or any other previously created queue.\n"},"priority":{"type":"string","description":"Prioritize one child queue over other child queue. Does not work on parent queues (if queue has at least one child). One is the highest, eight is the lowest priority. Child queue with higher priority will have chance to reach its `max-limit` before child with lower priority. Priority have nothing to do with bursts.\n"},"queue":{"type":"string","description":"Choose the type of the queue.\n"},"queueSimpleId":{"type":"string","description":"The ID of this resource.\n"},"targets":{"type":"array","items":{"type":"string"},"description":"List of IP address ranges that will be limited by this queue.\n"},"time":{"type":"string","description":"Allow to specify time when particular queue will be active. Router must have correct time settings.\n"},"totalBucketSize":{"type":"number"},"totalBurstLimit":{"type":"number"},"totalBurstThreshold":{"type":"number"},"totalBurstTime":{"type":"number"},"totalLimitAt":{"type":"number"},"totalMaxLimit":{"type":"number"},"totalPriority":{"type":"number"},"totalQueue":{"type":"string"}},"type":"object"}},"routeros:index/queueTree:QueueTree":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.QueueTree(\"test\", {\n    name: \"server\",\n    parent: \"global\",\n    maxLimit: \"10M\",\n    packetMarks: [\"pmark-server\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.QueueTree(\"test\",\n    name=\"server\",\n    parent=\"global\",\n    max_limit=\"10M\",\n    packet_marks=[\"pmark-server\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.QueueTree(\"test\", new()\n    {\n        Name = \"server\",\n        Parent = \"global\",\n        MaxLimit = \"10M\",\n        PacketMarks = new[]\n        {\n            \"pmark-server\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewQueueTree(ctx, \"test\", \u0026routeros.QueueTreeArgs{\n\t\t\tName:     pulumi.String(\"server\"),\n\t\t\tParent:   pulumi.String(\"global\"),\n\t\t\tMaxLimit: pulumi.String(\"10M\"),\n\t\t\tPacketMarks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"pmark-server\"),\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.routeros.QueueTree;\nimport com.pulumi.routeros.QueueTreeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new QueueTree(\"test\", QueueTreeArgs.builder()\n            .name(\"server\")\n            .parent(\"global\")\n            .maxLimit(\"10M\")\n            .packetMarks(\"pmark-server\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:QueueTree\n    properties:\n      name: server\n      parent: global\n      maxLimit: 10M\n      packetMarks:\n        - pmark-server\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/queue/tree get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/queueTree:QueueTree test *1000000\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/queueTree:QueueTree test \"name=server\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bucketSize":{"type":"string"},"burstLimit":{"type":"string","description":"Maximal data rate which can be reached while the burst is active.\n"},"burstThreshold":{"type":"string","description":"When average data rate is below this value - burst is allowed, as soon as average data rate reach this value - burst is denied (basically this is burst on/off switch). For optimal burst behavior this value should above `limit-at` value and below `max-limit` value.\n"},"burstTime":{"type":"string","description":"Period of time, in seconds, over which the average data rate is calculated. This is NOT the time of actual burst.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"invalid":{"type":"boolean"},"limitAt":{"type":"string","description":"Normal data rate that is guaranteed to a target.\n"},"maxLimit":{"type":"string","description":"Maximal data rate that is allowed for a target to reach.\n"},"name":{"type":"string","description":"Queue tree name.\n"},"packetMarks":{"type":"array","items":{"type":"string"},"description":"Allows to use marked packets from `/ip firewall mangle`. Take look at this packet flow diagram. You need to make sure that packets are marked before the simple queues (before global-in HTB queue).\n"},"parent":{"type":"string","description":"Assigns this queue as a child queue for selected target. Target queue can be HTB queue or any other previously created queue.\n"},"priority":{"type":"number","description":"Prioritize one child queue over other child queue. Does not work on parent queues (if queue has at least one child). One is the highest, eight is the lowest priority. Child queue with higher priority will have chance to reach its `max-limit` before child with lower priority. Priority have nothing to do with bursts.\n"},"queue":{"type":"string","description":"Choose the type of the queue.\n"},"queueTreeId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["dynamic","invalid","name","parent","queueTreeId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bucketSize":{"type":"string"},"burstLimit":{"type":"string","description":"Maximal data rate which can be reached while the burst is active.\n"},"burstThreshold":{"type":"string","description":"When average data rate is below this value - burst is allowed, as soon as average data rate reach this value - burst is denied (basically this is burst on/off switch). For optimal burst behavior this value should above `limit-at` value and below `max-limit` value.\n"},"burstTime":{"type":"string","description":"Period of time, in seconds, over which the average data rate is calculated. This is NOT the time of actual burst.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"limitAt":{"type":"string","description":"Normal data rate that is guaranteed to a target.\n"},"maxLimit":{"type":"string","description":"Maximal data rate that is allowed for a target to reach.\n"},"name":{"type":"string","description":"Queue tree name.\n"},"packetMarks":{"type":"array","items":{"type":"string"},"description":"Allows to use marked packets from `/ip firewall mangle`. Take look at this packet flow diagram. You need to make sure that packets are marked before the simple queues (before global-in HTB queue).\n"},"parent":{"type":"string","description":"Assigns this queue as a child queue for selected target. Target queue can be HTB queue or any other previously created queue.\n"},"priority":{"type":"number","description":"Prioritize one child queue over other child queue. Does not work on parent queues (if queue has at least one child). One is the highest, eight is the lowest priority. Child queue with higher priority will have chance to reach its `max-limit` before child with lower priority. Priority have nothing to do with bursts.\n"},"queue":{"type":"string","description":"Choose the type of the queue.\n"},"queueTreeId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["parent"],"stateInputs":{"description":"Input properties used for looking up and filtering QueueTree resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bucketSize":{"type":"string"},"burstLimit":{"type":"string","description":"Maximal data rate which can be reached while the burst is active.\n"},"burstThreshold":{"type":"string","description":"When average data rate is below this value - burst is allowed, as soon as average data rate reach this value - burst is denied (basically this is burst on/off switch). For optimal burst behavior this value should above `limit-at` value and below `max-limit` value.\n"},"burstTime":{"type":"string","description":"Period of time, in seconds, over which the average data rate is calculated. This is NOT the time of actual burst.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"invalid":{"type":"boolean"},"limitAt":{"type":"string","description":"Normal data rate that is guaranteed to a target.\n"},"maxLimit":{"type":"string","description":"Maximal data rate that is allowed for a target to reach.\n"},"name":{"type":"string","description":"Queue tree name.\n"},"packetMarks":{"type":"array","items":{"type":"string"},"description":"Allows to use marked packets from `/ip firewall mangle`. Take look at this packet flow diagram. You need to make sure that packets are marked before the simple queues (before global-in HTB queue).\n"},"parent":{"type":"string","description":"Assigns this queue as a child queue for selected target. Target queue can be HTB queue or any other previously created queue.\n"},"priority":{"type":"number","description":"Prioritize one child queue over other child queue. Does not work on parent queues (if queue has at least one child). One is the highest, eight is the lowest priority. Child queue with higher priority will have chance to reach its `max-limit` before child with lower priority. Priority have nothing to do with bursts.\n"},"queue":{"type":"string","description":"Choose the type of the queue.\n"},"queueTreeId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/queueType:QueueType":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.QueueType(\"test\", {\n    name: \"pcq-test\",\n    kind: \"pcq\",\n    pcqRate: 0,\n    pcqLimit: 50,\n    pcqClassifiers: [\"dst-address\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.QueueType(\"test\",\n    name=\"pcq-test\",\n    kind=\"pcq\",\n    pcq_rate=0,\n    pcq_limit=50,\n    pcq_classifiers=[\"dst-address\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.QueueType(\"test\", new()\n    {\n        Name = \"pcq-test\",\n        Kind = \"pcq\",\n        PcqRate = 0,\n        PcqLimit = 50,\n        PcqClassifiers = new[]\n        {\n            \"dst-address\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewQueueType(ctx, \"test\", \u0026routeros.QueueTypeArgs{\n\t\t\tName:     pulumi.String(\"pcq-test\"),\n\t\t\tKind:     pulumi.String(\"pcq\"),\n\t\t\tPcqRate:  pulumi.Float64(0),\n\t\t\tPcqLimit: pulumi.Float64(50),\n\t\t\tPcqClassifiers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"dst-address\"),\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.routeros.QueueType;\nimport com.pulumi.routeros.QueueTypeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new QueueType(\"test\", QueueTypeArgs.builder()\n            .name(\"pcq-test\")\n            .kind(\"pcq\")\n            .pcqRate(0.0)\n            .pcqLimit(50.0)\n            .pcqClassifiers(\"dst-address\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:QueueType\n    properties:\n      name: pcq-test\n      kind: pcq\n      pcqRate: 0\n      pcqLimit: 50\n      pcqClassifiers:\n        - dst-address\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/queue/type get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/queueType:QueueType test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/queueType:QueueType test \"name=pcq-test\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bfifoLimit":{"type":"number","description":"Maximum number of bytes that the BFIFO queue can hold. Applies if \u003cspan pulumi-lang-nodejs=\"`kind`\" pulumi-lang-dotnet=\"`Kind`\" pulumi-lang-go=\"`kind`\" pulumi-lang-python=\"`kind`\" pulumi-lang-yaml=\"`kind`\" pulumi-lang-java=\"`kind`\"\u003e`kind`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`bfifo`\" pulumi-lang-dotnet=\"`Bfifo`\" pulumi-lang-go=\"`bfifo`\" pulumi-lang-python=\"`bfifo`\" pulumi-lang-yaml=\"`bfifo`\" pulumi-lang-java=\"`bfifo`\"\u003e`bfifo`\u003c/span\u003e."},"cakeAckFilter":{"type":"string"},"cakeAtm":{"type":"string","description":"Compensates for ATM cell framing, which is normally found on ADSL links."},"cakeAutorateIngress":{"type":"boolean","description":"Automatic capacity estimation based on traffic arriving at this qdisc. This is most likely to be useful with cellular links, which tend to change quality randomly.  The Bandwidth Limit parameter can be used in conjunction to specify an initial estimate. The shaper will periodically be set to a bandwidth slightly below the estimated rate.  This estimator cannot estimate the bandwidth of links downstream of itself."},"cakeBandwidth":{"type":"number","description":"Sets the shaper bandwidth."},"cakeDiffserv":{"type":"string","description":"CAKE can divide traffic into \u003cspan pulumi-lang-nodejs=\"`tins`\" pulumi-lang-dotnet=\"`Tins`\" pulumi-lang-go=\"`tins`\" pulumi-lang-python=\"`tins`\" pulumi-lang-yaml=\"`tins`\" pulumi-lang-java=\"`tins`\"\u003e`tins`\u003c/span\u003e based on the Diffserv field:\n  * \u003cspan pulumi-lang-nodejs=\"`diffserv4`\" pulumi-lang-dotnet=\"`Diffserv4`\" pulumi-lang-go=\"`diffserv4`\" pulumi-lang-python=\"`diffserv4`\" pulumi-lang-yaml=\"`diffserv4`\" pulumi-lang-java=\"`diffserv4`\"\u003e`diffserv4`\u003c/span\u003e Provides a general-purpose Diffserv implementation with four tins: Bulk (CS1), 6.25% threshold, generally low priority. Best Effort (general), 100% threshold. Video (AF4x, AF3x, CS3, AF2x, CS2, TOS4, TOS1), 50% threshold. Voice (CS7, CS6, EF, VA, CS5, CS4), 25% threshold.\n  * \u003cspan pulumi-lang-nodejs=\"`diffserv3`\" pulumi-lang-dotnet=\"`Diffserv3`\" pulumi-lang-go=\"`diffserv3`\" pulumi-lang-python=\"`diffserv3`\" pulumi-lang-yaml=\"`diffserv3`\" pulumi-lang-java=\"`diffserv3`\"\u003e`diffserv3`\u003c/span\u003e (default) Provides a simple, general-purpose Diffserv implementation with three tins: Bulk (CS1), 6.25% threshold, generally low priority. Best Effort (general), 100% threshold. Voice (CS7, CS6, EF, VA, TOS4), 25% threshold, reduced Codel interval."},"cakeFlowmode":{"type":"string","description":"* \u003cspan pulumi-lang-nodejs=\"`flowblind`\" pulumi-lang-dotnet=\"`Flowblind`\" pulumi-lang-go=\"`flowblind`\" pulumi-lang-python=\"`flowblind`\" pulumi-lang-yaml=\"`flowblind`\" pulumi-lang-java=\"`flowblind`\"\u003e`flowblind`\u003c/span\u003e - Disables flow isolation; all traffic passes through a single queue for each tin.\n  * \u003cspan pulumi-lang-nodejs=\"`srchost`\" pulumi-lang-dotnet=\"`Srchost`\" pulumi-lang-go=\"`srchost`\" pulumi-lang-python=\"`srchost`\" pulumi-lang-yaml=\"`srchost`\" pulumi-lang-java=\"`srchost`\"\u003e`srchost`\u003c/span\u003e - Flows are defined only by source address.\n  * \u003cspan pulumi-lang-nodejs=\"`dsthost`\" pulumi-lang-dotnet=\"`Dsthost`\" pulumi-lang-go=\"`dsthost`\" pulumi-lang-python=\"`dsthost`\" pulumi-lang-yaml=\"`dsthost`\" pulumi-lang-java=\"`dsthost`\"\u003e`dsthost`\u003c/span\u003e Flows are defined only by destination address.\n  * \u003cspan pulumi-lang-nodejs=\"`hosts`\" pulumi-lang-dotnet=\"`Hosts`\" pulumi-lang-go=\"`hosts`\" pulumi-lang-python=\"`hosts`\" pulumi-lang-yaml=\"`hosts`\" pulumi-lang-java=\"`hosts`\"\u003e`hosts`\u003c/span\u003e - Flows are defined by source-destination host pairs. This is host isolation, rather than flow isolation.\n  * \u003cspan pulumi-lang-nodejs=\"`flows`\" pulumi-lang-dotnet=\"`Flows`\" pulumi-lang-go=\"`flows`\" pulumi-lang-python=\"`flows`\" pulumi-lang-yaml=\"`flows`\" pulumi-lang-java=\"`flows`\"\u003e`flows`\u003c/span\u003e - Flows are defined by the entire 5-tuple of source address, a destination address, transport protocol, source port, and destination port. This is the type of flow isolation performed by SFQ and fq_codel.\n  * `dual-srchost` Flows are defined by the 5-tuple, and fairness is applied first over source addresses, then over individual flows. Good for use on egress traffic from a LAN to the internet, where it'll prevent any LAN host from monopolizing the uplink, regardless of the number of flows they use.\n  * `dual-dsthost` Flows are defined by the 5-tuple, and fairness is applied first over destination addresses, then over individual flows. Good for use on ingress traffic to a LAN from the internet, where it'll prevent any LAN host from monopolizing the downlink, regardless of the number of flows they use.\n  * `triple-isolate` - Flows are defined by the 5-tuple, and fairness is applied over source *and* destination addresses intelligently (ie. not merely by host-pairs), and also over individual flows.\n  * \u003cspan pulumi-lang-nodejs=\"`nat`\" pulumi-lang-dotnet=\"`Nat`\" pulumi-lang-go=\"`nat`\" pulumi-lang-python=\"`nat`\" pulumi-lang-yaml=\"`nat`\" pulumi-lang-java=\"`nat`\"\u003e`nat`\u003c/span\u003e Instructs Cake to perform a NAT lookup before applying flow- isolation rules, to determine the true addresses and port numbers of the packet, to improve fairness between hosts \u003cspan pulumi-lang-nodejs=\"`inside`\" pulumi-lang-dotnet=\"`Inside`\" pulumi-lang-go=\"`inside`\" pulumi-lang-python=\"`inside`\" pulumi-lang-yaml=\"`inside`\" pulumi-lang-java=\"`inside`\"\u003e`inside`\u003c/span\u003e the NAT. This has no practical effect in \u003cspan pulumi-lang-nodejs=\"`flowblind`\" pulumi-lang-dotnet=\"`Flowblind`\" pulumi-lang-go=\"`flowblind`\" pulumi-lang-python=\"`flowblind`\" pulumi-lang-yaml=\"`flowblind`\" pulumi-lang-java=\"`flowblind`\"\u003e`flowblind`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`flows`\" pulumi-lang-dotnet=\"`Flows`\" pulumi-lang-go=\"`flows`\" pulumi-lang-python=\"`flows`\" pulumi-lang-yaml=\"`flows`\" pulumi-lang-java=\"`flows`\"\u003e`flows`\u003c/span\u003e modes, or if NAT is performed on a different host.\n  * \u003cspan pulumi-lang-nodejs=\"`nonat`\" pulumi-lang-dotnet=\"`Nonat`\" pulumi-lang-go=\"`nonat`\" pulumi-lang-python=\"`nonat`\" pulumi-lang-yaml=\"`nonat`\" pulumi-lang-java=\"`nonat`\"\u003e`nonat`\u003c/span\u003e (default) The cake will not perform a NAT lookup. Flow isolation will be performed using the addresses and port numbers directly visible to the interface Cake is attached to."},"cakeMemlimit":{"type":"number","description":"Limit the memory consumed by Cake to LIMIT bytes. By default, the limit is calculated based on the bandwidth and RTT settings."},"cakeMpu":{"type":"number","description":"Rounds each packet (including overhead) up to a minimum length BYTES."},"cakeNat":{"type":"boolean","description":"Instructs Cake to perform a NAT lookup before applying a flow-isolation rule."},"cakeOverhead":{"type":"number","description":"Adds BYTES to the size of each packet. BYTES may be negative."},"cakeOverheadScheme":{"type":"string"},"cakeRtt":{"type":"string","description":"Manually specify an RTT. Default 100ms is suitable for most Internet traffic."},"cakeRttScheme":{"type":"string","description":"* \u003cspan pulumi-lang-nodejs=\"`datacentre`\" pulumi-lang-dotnet=\"`Datacentre`\" pulumi-lang-go=\"`datacentre`\" pulumi-lang-python=\"`datacentre`\" pulumi-lang-yaml=\"`datacentre`\" pulumi-lang-java=\"`datacentre`\"\u003e`datacentre`\u003c/span\u003e - For extremely high-performance 10GigE+ networks only. Equivalent to `RTT 100us`.\n  * \u003cspan pulumi-lang-nodejs=\"`lan`\" pulumi-lang-dotnet=\"`Lan`\" pulumi-lang-go=\"`lan`\" pulumi-lang-python=\"`lan`\" pulumi-lang-yaml=\"`lan`\" pulumi-lang-java=\"`lan`\"\u003e`lan`\u003c/span\u003e - For pure Ethernet (not Wi-Fi) networks, at home or in the office. Don't use this when shaping for an Internet access link. Equivalent to `RTT 1ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`metro`\" pulumi-lang-dotnet=\"`Metro`\" pulumi-lang-go=\"`metro`\" pulumi-lang-python=\"`metro`\" pulumi-lang-yaml=\"`metro`\" pulumi-lang-java=\"`metro`\"\u003e`metro`\u003c/span\u003e - For traffic mostly within a single city. Equivalent to `RTT 10ms`. regional For traffic mostly within a European-sized country. Equivalent to `RTT 30ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e (default) This is suitable for most Internet traffic. Equivalent to `RTT 100ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`oceanic`\" pulumi-lang-dotnet=\"`Oceanic`\" pulumi-lang-go=\"`oceanic`\" pulumi-lang-python=\"`oceanic`\" pulumi-lang-yaml=\"`oceanic`\" pulumi-lang-java=\"`oceanic`\"\u003e`oceanic`\u003c/span\u003e - For Internet traffic with generally above-average latency, such as that suffered by Australasian residents. Equivalent to `RTT 300ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`satellite`\" pulumi-lang-dotnet=\"`Satellite`\" pulumi-lang-go=\"`satellite`\" pulumi-lang-python=\"`satellite`\" pulumi-lang-yaml=\"`satellite`\" pulumi-lang-java=\"`satellite`\"\u003e`satellite`\u003c/span\u003e - For traffic via geostationary satellites. Equivalent to `RTT 1000ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`interplanetary`\" pulumi-lang-dotnet=\"`Interplanetary`\" pulumi-lang-go=\"`interplanetary`\" pulumi-lang-python=\"`interplanetary`\" pulumi-lang-yaml=\"`interplanetary`\" pulumi-lang-java=\"`interplanetary`\"\u003e`interplanetary`\u003c/span\u003e - So named because Jupiter is about 1 light-hour from Earth. Use this to (almost) completely disable AQM actions. Equivalent to `RTT 3600s`."},"cakeWash":{"type":"boolean","description":"Apply the wash option to clear all extra DiffServ (but not ECN bits), after priority queuing has taken place."},"codelCeThreshold":{"type":"number","description":"Marks packets above a configured threshold with ECN."},"codelEcn":{"type":"boolean","description":"An option is used to mark packets instead of dropping them."},"codelInterval":{"type":"string","description":"Interval should be set on the order of the worst-case RTT through the bottleneck giving endpoints sufficient time to react."},"codelLimit":{"type":"number","description":"Queue limit, when the limit is reached, incoming packets are dropped."},"codelTarget":{"type":"string","description":"Represents an acceptable minimum persistent queue delay."},"default":{"type":"boolean","description":"It's the default item."},"fqCodelCeThreshold":{"type":"number","description":"Marks packets above a configured threshold with ECN."},"fqCodelEcn":{"type":"boolean","description":"An option is used to mark packets instead of dropping them."},"fqCodelFlows":{"type":"number","description":"A number of flows into which the incoming packets are classified."},"fqCodelInterval":{"type":"string","description":"Interval should be set on the order of the worst-case RTT through the bottleneck giving endpoints sufficient time to react."},"fqCodelLimit":{"type":"number","description":"Queue limit, when the limit is reached, incoming packets are dropped."},"fqCodelMemlimit":{"type":"number","description":"A total number of bytes that can be queued in this FQ-CoDel instance. Will be enforced from the fq-codel-limit parameter."},"fqCodelQuantum":{"type":"number","description":"A number of bytes used as 'deficit' in the fair queuing algorithm. Default (1514 bytes) corresponds to the Ethernet MTU plus the hardware header length of 14 bytes."},"fqCodelTarget":{"type":"string","description":"Represents an acceptable minimum persistent queue delay."},"kind":{"type":"string","description":"Queue kind."},"mqPfifoLimit":{"type":"number","description":"Multi-queue PFIFO limit."},"name":{"type":"string","description":"Type name."},"pcqBurstRate":{"type":"number","description":"Maximal upload/download data rate which can be reached while the burst for substream is allowed."},"pcqBurstThreshold":{"type":"number","description":"This is value of burst on/off switch."},"pcqBurstTime":{"type":"string","description":"Period of time, in seconds, over which the average data rate is calculated. (This is NOT the time of actual burst)."},"pcqClassifiers":{"type":"array","items":{"type":"string"},"description":"Selection of sub-stream identifiers."},"pcqDstAddress6Mask":{"type":"number","description":"Size of IPV6 network that will be used as dst-address sub-stream identifier."},"pcqDstAddressMask":{"type":"number","description":"Size of IPv4 network that will be used as dst-address sub-stream identifier."},"pcqLimit":{"type":"number","description":"Queue size of a single sub-stream (in kilobytes)."},"pcqRate":{"type":"number","description":"Maximal available data rate of each sub-steam."},"pcqSrcAddress6Mask":{"type":"number","description":"Size of IPV6 network that will be used as src-address sub-stream identifier."},"pcqSrcAddressMask":{"type":"number","description":"Size of IPv4 network that will be used as src-address sub-stream identifier."},"pcqTotalLimit":{"type":"number","description":"Max amount of bytes queued (in kilobytes) for all sub-streams per PCQ instance. Note that each queue tree entry has its own PCQ instance."},"pfifoLimit":{"type":"number","description":"Maximum number of packets that the PFIFO queue can hold. Applies if \u003cspan pulumi-lang-nodejs=\"`kind`\" pulumi-lang-dotnet=\"`Kind`\" pulumi-lang-go=\"`kind`\" pulumi-lang-python=\"`kind`\" pulumi-lang-yaml=\"`kind`\" pulumi-lang-java=\"`kind`\"\u003e`kind`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`pfifo`\" pulumi-lang-dotnet=\"`Pfifo`\" pulumi-lang-go=\"`pfifo`\" pulumi-lang-python=\"`pfifo`\" pulumi-lang-yaml=\"`pfifo`\" pulumi-lang-java=\"`pfifo`\"\u003e`pfifo`\u003c/span\u003e."},"queueTypeId":{"type":"string"},"redAvgPacket":{"type":"number","description":"Used by RED for average queue size calculations (for packet to byte translation)."},"redBurst":{"type":"number","description":"Number of packets allowed for bursts of packets when there are no packets in the queue."},"redLimit":{"type":"number","description":"RED queue limit in packets."},"redMaxThreshold":{"type":"number","description":"The average queue size at which packet marking probability is the highest."},"redMinThreshold":{"type":"number","description":"Average queue size in bytes."},"sfqAllot":{"type":"number","description":"Amount of data in bytes that can be sent in one round-robin round."},"sfqPerturb":{"type":"number","description":"How often hash function must be refreshed."}},"type":"object","required":["default","kind","name","queueTypeId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bfifoLimit":{"type":"number","description":"Maximum number of bytes that the BFIFO queue can hold. Applies if \u003cspan pulumi-lang-nodejs=\"`kind`\" pulumi-lang-dotnet=\"`Kind`\" pulumi-lang-go=\"`kind`\" pulumi-lang-python=\"`kind`\" pulumi-lang-yaml=\"`kind`\" pulumi-lang-java=\"`kind`\"\u003e`kind`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`bfifo`\" pulumi-lang-dotnet=\"`Bfifo`\" pulumi-lang-go=\"`bfifo`\" pulumi-lang-python=\"`bfifo`\" pulumi-lang-yaml=\"`bfifo`\" pulumi-lang-java=\"`bfifo`\"\u003e`bfifo`\u003c/span\u003e."},"cakeAckFilter":{"type":"string"},"cakeAtm":{"type":"string","description":"Compensates for ATM cell framing, which is normally found on ADSL links."},"cakeAutorateIngress":{"type":"boolean","description":"Automatic capacity estimation based on traffic arriving at this qdisc. This is most likely to be useful with cellular links, which tend to change quality randomly.  The Bandwidth Limit parameter can be used in conjunction to specify an initial estimate. The shaper will periodically be set to a bandwidth slightly below the estimated rate.  This estimator cannot estimate the bandwidth of links downstream of itself."},"cakeBandwidth":{"type":"number","description":"Sets the shaper bandwidth."},"cakeDiffserv":{"type":"string","description":"CAKE can divide traffic into \u003cspan pulumi-lang-nodejs=\"`tins`\" pulumi-lang-dotnet=\"`Tins`\" pulumi-lang-go=\"`tins`\" pulumi-lang-python=\"`tins`\" pulumi-lang-yaml=\"`tins`\" pulumi-lang-java=\"`tins`\"\u003e`tins`\u003c/span\u003e based on the Diffserv field:\n  * \u003cspan pulumi-lang-nodejs=\"`diffserv4`\" pulumi-lang-dotnet=\"`Diffserv4`\" pulumi-lang-go=\"`diffserv4`\" pulumi-lang-python=\"`diffserv4`\" pulumi-lang-yaml=\"`diffserv4`\" pulumi-lang-java=\"`diffserv4`\"\u003e`diffserv4`\u003c/span\u003e Provides a general-purpose Diffserv implementation with four tins: Bulk (CS1), 6.25% threshold, generally low priority. Best Effort (general), 100% threshold. Video (AF4x, AF3x, CS3, AF2x, CS2, TOS4, TOS1), 50% threshold. Voice (CS7, CS6, EF, VA, CS5, CS4), 25% threshold.\n  * \u003cspan pulumi-lang-nodejs=\"`diffserv3`\" pulumi-lang-dotnet=\"`Diffserv3`\" pulumi-lang-go=\"`diffserv3`\" pulumi-lang-python=\"`diffserv3`\" pulumi-lang-yaml=\"`diffserv3`\" pulumi-lang-java=\"`diffserv3`\"\u003e`diffserv3`\u003c/span\u003e (default) Provides a simple, general-purpose Diffserv implementation with three tins: Bulk (CS1), 6.25% threshold, generally low priority. Best Effort (general), 100% threshold. Voice (CS7, CS6, EF, VA, TOS4), 25% threshold, reduced Codel interval."},"cakeFlowmode":{"type":"string","description":"* \u003cspan pulumi-lang-nodejs=\"`flowblind`\" pulumi-lang-dotnet=\"`Flowblind`\" pulumi-lang-go=\"`flowblind`\" pulumi-lang-python=\"`flowblind`\" pulumi-lang-yaml=\"`flowblind`\" pulumi-lang-java=\"`flowblind`\"\u003e`flowblind`\u003c/span\u003e - Disables flow isolation; all traffic passes through a single queue for each tin.\n  * \u003cspan pulumi-lang-nodejs=\"`srchost`\" pulumi-lang-dotnet=\"`Srchost`\" pulumi-lang-go=\"`srchost`\" pulumi-lang-python=\"`srchost`\" pulumi-lang-yaml=\"`srchost`\" pulumi-lang-java=\"`srchost`\"\u003e`srchost`\u003c/span\u003e - Flows are defined only by source address.\n  * \u003cspan pulumi-lang-nodejs=\"`dsthost`\" pulumi-lang-dotnet=\"`Dsthost`\" pulumi-lang-go=\"`dsthost`\" pulumi-lang-python=\"`dsthost`\" pulumi-lang-yaml=\"`dsthost`\" pulumi-lang-java=\"`dsthost`\"\u003e`dsthost`\u003c/span\u003e Flows are defined only by destination address.\n  * \u003cspan pulumi-lang-nodejs=\"`hosts`\" pulumi-lang-dotnet=\"`Hosts`\" pulumi-lang-go=\"`hosts`\" pulumi-lang-python=\"`hosts`\" pulumi-lang-yaml=\"`hosts`\" pulumi-lang-java=\"`hosts`\"\u003e`hosts`\u003c/span\u003e - Flows are defined by source-destination host pairs. This is host isolation, rather than flow isolation.\n  * \u003cspan pulumi-lang-nodejs=\"`flows`\" pulumi-lang-dotnet=\"`Flows`\" pulumi-lang-go=\"`flows`\" pulumi-lang-python=\"`flows`\" pulumi-lang-yaml=\"`flows`\" pulumi-lang-java=\"`flows`\"\u003e`flows`\u003c/span\u003e - Flows are defined by the entire 5-tuple of source address, a destination address, transport protocol, source port, and destination port. This is the type of flow isolation performed by SFQ and fq_codel.\n  * `dual-srchost` Flows are defined by the 5-tuple, and fairness is applied first over source addresses, then over individual flows. Good for use on egress traffic from a LAN to the internet, where it'll prevent any LAN host from monopolizing the uplink, regardless of the number of flows they use.\n  * `dual-dsthost` Flows are defined by the 5-tuple, and fairness is applied first over destination addresses, then over individual flows. Good for use on ingress traffic to a LAN from the internet, where it'll prevent any LAN host from monopolizing the downlink, regardless of the number of flows they use.\n  * `triple-isolate` - Flows are defined by the 5-tuple, and fairness is applied over source *and* destination addresses intelligently (ie. not merely by host-pairs), and also over individual flows.\n  * \u003cspan pulumi-lang-nodejs=\"`nat`\" pulumi-lang-dotnet=\"`Nat`\" pulumi-lang-go=\"`nat`\" pulumi-lang-python=\"`nat`\" pulumi-lang-yaml=\"`nat`\" pulumi-lang-java=\"`nat`\"\u003e`nat`\u003c/span\u003e Instructs Cake to perform a NAT lookup before applying flow- isolation rules, to determine the true addresses and port numbers of the packet, to improve fairness between hosts \u003cspan pulumi-lang-nodejs=\"`inside`\" pulumi-lang-dotnet=\"`Inside`\" pulumi-lang-go=\"`inside`\" pulumi-lang-python=\"`inside`\" pulumi-lang-yaml=\"`inside`\" pulumi-lang-java=\"`inside`\"\u003e`inside`\u003c/span\u003e the NAT. This has no practical effect in \u003cspan pulumi-lang-nodejs=\"`flowblind`\" pulumi-lang-dotnet=\"`Flowblind`\" pulumi-lang-go=\"`flowblind`\" pulumi-lang-python=\"`flowblind`\" pulumi-lang-yaml=\"`flowblind`\" pulumi-lang-java=\"`flowblind`\"\u003e`flowblind`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`flows`\" pulumi-lang-dotnet=\"`Flows`\" pulumi-lang-go=\"`flows`\" pulumi-lang-python=\"`flows`\" pulumi-lang-yaml=\"`flows`\" pulumi-lang-java=\"`flows`\"\u003e`flows`\u003c/span\u003e modes, or if NAT is performed on a different host.\n  * \u003cspan pulumi-lang-nodejs=\"`nonat`\" pulumi-lang-dotnet=\"`Nonat`\" pulumi-lang-go=\"`nonat`\" pulumi-lang-python=\"`nonat`\" pulumi-lang-yaml=\"`nonat`\" pulumi-lang-java=\"`nonat`\"\u003e`nonat`\u003c/span\u003e (default) The cake will not perform a NAT lookup. Flow isolation will be performed using the addresses and port numbers directly visible to the interface Cake is attached to."},"cakeMemlimit":{"type":"number","description":"Limit the memory consumed by Cake to LIMIT bytes. By default, the limit is calculated based on the bandwidth and RTT settings."},"cakeMpu":{"type":"number","description":"Rounds each packet (including overhead) up to a minimum length BYTES."},"cakeNat":{"type":"boolean","description":"Instructs Cake to perform a NAT lookup before applying a flow-isolation rule."},"cakeOverhead":{"type":"number","description":"Adds BYTES to the size of each packet. BYTES may be negative."},"cakeOverheadScheme":{"type":"string"},"cakeRtt":{"type":"string","description":"Manually specify an RTT. Default 100ms is suitable for most Internet traffic."},"cakeRttScheme":{"type":"string","description":"* \u003cspan pulumi-lang-nodejs=\"`datacentre`\" pulumi-lang-dotnet=\"`Datacentre`\" pulumi-lang-go=\"`datacentre`\" pulumi-lang-python=\"`datacentre`\" pulumi-lang-yaml=\"`datacentre`\" pulumi-lang-java=\"`datacentre`\"\u003e`datacentre`\u003c/span\u003e - For extremely high-performance 10GigE+ networks only. Equivalent to `RTT 100us`.\n  * \u003cspan pulumi-lang-nodejs=\"`lan`\" pulumi-lang-dotnet=\"`Lan`\" pulumi-lang-go=\"`lan`\" pulumi-lang-python=\"`lan`\" pulumi-lang-yaml=\"`lan`\" pulumi-lang-java=\"`lan`\"\u003e`lan`\u003c/span\u003e - For pure Ethernet (not Wi-Fi) networks, at home or in the office. Don't use this when shaping for an Internet access link. Equivalent to `RTT 1ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`metro`\" pulumi-lang-dotnet=\"`Metro`\" pulumi-lang-go=\"`metro`\" pulumi-lang-python=\"`metro`\" pulumi-lang-yaml=\"`metro`\" pulumi-lang-java=\"`metro`\"\u003e`metro`\u003c/span\u003e - For traffic mostly within a single city. Equivalent to `RTT 10ms`. regional For traffic mostly within a European-sized country. Equivalent to `RTT 30ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e (default) This is suitable for most Internet traffic. Equivalent to `RTT 100ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`oceanic`\" pulumi-lang-dotnet=\"`Oceanic`\" pulumi-lang-go=\"`oceanic`\" pulumi-lang-python=\"`oceanic`\" pulumi-lang-yaml=\"`oceanic`\" pulumi-lang-java=\"`oceanic`\"\u003e`oceanic`\u003c/span\u003e - For Internet traffic with generally above-average latency, such as that suffered by Australasian residents. Equivalent to `RTT 300ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`satellite`\" pulumi-lang-dotnet=\"`Satellite`\" pulumi-lang-go=\"`satellite`\" pulumi-lang-python=\"`satellite`\" pulumi-lang-yaml=\"`satellite`\" pulumi-lang-java=\"`satellite`\"\u003e`satellite`\u003c/span\u003e - For traffic via geostationary satellites. Equivalent to `RTT 1000ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`interplanetary`\" pulumi-lang-dotnet=\"`Interplanetary`\" pulumi-lang-go=\"`interplanetary`\" pulumi-lang-python=\"`interplanetary`\" pulumi-lang-yaml=\"`interplanetary`\" pulumi-lang-java=\"`interplanetary`\"\u003e`interplanetary`\u003c/span\u003e - So named because Jupiter is about 1 light-hour from Earth. Use this to (almost) completely disable AQM actions. Equivalent to `RTT 3600s`."},"cakeWash":{"type":"boolean","description":"Apply the wash option to clear all extra DiffServ (but not ECN bits), after priority queuing has taken place."},"codelCeThreshold":{"type":"number","description":"Marks packets above a configured threshold with ECN."},"codelEcn":{"type":"boolean","description":"An option is used to mark packets instead of dropping them."},"codelInterval":{"type":"string","description":"Interval should be set on the order of the worst-case RTT through the bottleneck giving endpoints sufficient time to react."},"codelLimit":{"type":"number","description":"Queue limit, when the limit is reached, incoming packets are dropped."},"codelTarget":{"type":"string","description":"Represents an acceptable minimum persistent queue delay."},"fqCodelCeThreshold":{"type":"number","description":"Marks packets above a configured threshold with ECN."},"fqCodelEcn":{"type":"boolean","description":"An option is used to mark packets instead of dropping them."},"fqCodelFlows":{"type":"number","description":"A number of flows into which the incoming packets are classified."},"fqCodelInterval":{"type":"string","description":"Interval should be set on the order of the worst-case RTT through the bottleneck giving endpoints sufficient time to react."},"fqCodelLimit":{"type":"number","description":"Queue limit, when the limit is reached, incoming packets are dropped."},"fqCodelMemlimit":{"type":"number","description":"A total number of bytes that can be queued in this FQ-CoDel instance. Will be enforced from the fq-codel-limit parameter."},"fqCodelQuantum":{"type":"number","description":"A number of bytes used as 'deficit' in the fair queuing algorithm. Default (1514 bytes) corresponds to the Ethernet MTU plus the hardware header length of 14 bytes."},"fqCodelTarget":{"type":"string","description":"Represents an acceptable minimum persistent queue delay."},"kind":{"type":"string","description":"Queue kind."},"mqPfifoLimit":{"type":"number","description":"Multi-queue PFIFO limit."},"name":{"type":"string","description":"Type name."},"pcqBurstRate":{"type":"number","description":"Maximal upload/download data rate which can be reached while the burst for substream is allowed."},"pcqBurstThreshold":{"type":"number","description":"This is value of burst on/off switch."},"pcqBurstTime":{"type":"string","description":"Period of time, in seconds, over which the average data rate is calculated. (This is NOT the time of actual burst)."},"pcqClassifiers":{"type":"array","items":{"type":"string"},"description":"Selection of sub-stream identifiers."},"pcqDstAddress6Mask":{"type":"number","description":"Size of IPV6 network that will be used as dst-address sub-stream identifier."},"pcqDstAddressMask":{"type":"number","description":"Size of IPv4 network that will be used as dst-address sub-stream identifier."},"pcqLimit":{"type":"number","description":"Queue size of a single sub-stream (in kilobytes)."},"pcqRate":{"type":"number","description":"Maximal available data rate of each sub-steam."},"pcqSrcAddress6Mask":{"type":"number","description":"Size of IPV6 network that will be used as src-address sub-stream identifier."},"pcqSrcAddressMask":{"type":"number","description":"Size of IPv4 network that will be used as src-address sub-stream identifier."},"pcqTotalLimit":{"type":"number","description":"Max amount of bytes queued (in kilobytes) for all sub-streams per PCQ instance. Note that each queue tree entry has its own PCQ instance."},"pfifoLimit":{"type":"number","description":"Maximum number of packets that the PFIFO queue can hold. Applies if \u003cspan pulumi-lang-nodejs=\"`kind`\" pulumi-lang-dotnet=\"`Kind`\" pulumi-lang-go=\"`kind`\" pulumi-lang-python=\"`kind`\" pulumi-lang-yaml=\"`kind`\" pulumi-lang-java=\"`kind`\"\u003e`kind`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`pfifo`\" pulumi-lang-dotnet=\"`Pfifo`\" pulumi-lang-go=\"`pfifo`\" pulumi-lang-python=\"`pfifo`\" pulumi-lang-yaml=\"`pfifo`\" pulumi-lang-java=\"`pfifo`\"\u003e`pfifo`\u003c/span\u003e."},"queueTypeId":{"type":"string"},"redAvgPacket":{"type":"number","description":"Used by RED for average queue size calculations (for packet to byte translation)."},"redBurst":{"type":"number","description":"Number of packets allowed for bursts of packets when there are no packets in the queue."},"redLimit":{"type":"number","description":"RED queue limit in packets."},"redMaxThreshold":{"type":"number","description":"The average queue size at which packet marking probability is the highest."},"redMinThreshold":{"type":"number","description":"Average queue size in bytes."},"sfqAllot":{"type":"number","description":"Amount of data in bytes that can be sent in one round-robin round."},"sfqPerturb":{"type":"number","description":"How often hash function must be refreshed."}},"requiredInputs":["kind"],"stateInputs":{"description":"Input properties used for looking up and filtering QueueType resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bfifoLimit":{"type":"number","description":"Maximum number of bytes that the BFIFO queue can hold. Applies if \u003cspan pulumi-lang-nodejs=\"`kind`\" pulumi-lang-dotnet=\"`Kind`\" pulumi-lang-go=\"`kind`\" pulumi-lang-python=\"`kind`\" pulumi-lang-yaml=\"`kind`\" pulumi-lang-java=\"`kind`\"\u003e`kind`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`bfifo`\" pulumi-lang-dotnet=\"`Bfifo`\" pulumi-lang-go=\"`bfifo`\" pulumi-lang-python=\"`bfifo`\" pulumi-lang-yaml=\"`bfifo`\" pulumi-lang-java=\"`bfifo`\"\u003e`bfifo`\u003c/span\u003e."},"cakeAckFilter":{"type":"string"},"cakeAtm":{"type":"string","description":"Compensates for ATM cell framing, which is normally found on ADSL links."},"cakeAutorateIngress":{"type":"boolean","description":"Automatic capacity estimation based on traffic arriving at this qdisc. This is most likely to be useful with cellular links, which tend to change quality randomly.  The Bandwidth Limit parameter can be used in conjunction to specify an initial estimate. The shaper will periodically be set to a bandwidth slightly below the estimated rate.  This estimator cannot estimate the bandwidth of links downstream of itself."},"cakeBandwidth":{"type":"number","description":"Sets the shaper bandwidth."},"cakeDiffserv":{"type":"string","description":"CAKE can divide traffic into \u003cspan pulumi-lang-nodejs=\"`tins`\" pulumi-lang-dotnet=\"`Tins`\" pulumi-lang-go=\"`tins`\" pulumi-lang-python=\"`tins`\" pulumi-lang-yaml=\"`tins`\" pulumi-lang-java=\"`tins`\"\u003e`tins`\u003c/span\u003e based on the Diffserv field:\n  * \u003cspan pulumi-lang-nodejs=\"`diffserv4`\" pulumi-lang-dotnet=\"`Diffserv4`\" pulumi-lang-go=\"`diffserv4`\" pulumi-lang-python=\"`diffserv4`\" pulumi-lang-yaml=\"`diffserv4`\" pulumi-lang-java=\"`diffserv4`\"\u003e`diffserv4`\u003c/span\u003e Provides a general-purpose Diffserv implementation with four tins: Bulk (CS1), 6.25% threshold, generally low priority. Best Effort (general), 100% threshold. Video (AF4x, AF3x, CS3, AF2x, CS2, TOS4, TOS1), 50% threshold. Voice (CS7, CS6, EF, VA, CS5, CS4), 25% threshold.\n  * \u003cspan pulumi-lang-nodejs=\"`diffserv3`\" pulumi-lang-dotnet=\"`Diffserv3`\" pulumi-lang-go=\"`diffserv3`\" pulumi-lang-python=\"`diffserv3`\" pulumi-lang-yaml=\"`diffserv3`\" pulumi-lang-java=\"`diffserv3`\"\u003e`diffserv3`\u003c/span\u003e (default) Provides a simple, general-purpose Diffserv implementation with three tins: Bulk (CS1), 6.25% threshold, generally low priority. Best Effort (general), 100% threshold. Voice (CS7, CS6, EF, VA, TOS4), 25% threshold, reduced Codel interval."},"cakeFlowmode":{"type":"string","description":"* \u003cspan pulumi-lang-nodejs=\"`flowblind`\" pulumi-lang-dotnet=\"`Flowblind`\" pulumi-lang-go=\"`flowblind`\" pulumi-lang-python=\"`flowblind`\" pulumi-lang-yaml=\"`flowblind`\" pulumi-lang-java=\"`flowblind`\"\u003e`flowblind`\u003c/span\u003e - Disables flow isolation; all traffic passes through a single queue for each tin.\n  * \u003cspan pulumi-lang-nodejs=\"`srchost`\" pulumi-lang-dotnet=\"`Srchost`\" pulumi-lang-go=\"`srchost`\" pulumi-lang-python=\"`srchost`\" pulumi-lang-yaml=\"`srchost`\" pulumi-lang-java=\"`srchost`\"\u003e`srchost`\u003c/span\u003e - Flows are defined only by source address.\n  * \u003cspan pulumi-lang-nodejs=\"`dsthost`\" pulumi-lang-dotnet=\"`Dsthost`\" pulumi-lang-go=\"`dsthost`\" pulumi-lang-python=\"`dsthost`\" pulumi-lang-yaml=\"`dsthost`\" pulumi-lang-java=\"`dsthost`\"\u003e`dsthost`\u003c/span\u003e Flows are defined only by destination address.\n  * \u003cspan pulumi-lang-nodejs=\"`hosts`\" pulumi-lang-dotnet=\"`Hosts`\" pulumi-lang-go=\"`hosts`\" pulumi-lang-python=\"`hosts`\" pulumi-lang-yaml=\"`hosts`\" pulumi-lang-java=\"`hosts`\"\u003e`hosts`\u003c/span\u003e - Flows are defined by source-destination host pairs. This is host isolation, rather than flow isolation.\n  * \u003cspan pulumi-lang-nodejs=\"`flows`\" pulumi-lang-dotnet=\"`Flows`\" pulumi-lang-go=\"`flows`\" pulumi-lang-python=\"`flows`\" pulumi-lang-yaml=\"`flows`\" pulumi-lang-java=\"`flows`\"\u003e`flows`\u003c/span\u003e - Flows are defined by the entire 5-tuple of source address, a destination address, transport protocol, source port, and destination port. This is the type of flow isolation performed by SFQ and fq_codel.\n  * `dual-srchost` Flows are defined by the 5-tuple, and fairness is applied first over source addresses, then over individual flows. Good for use on egress traffic from a LAN to the internet, where it'll prevent any LAN host from monopolizing the uplink, regardless of the number of flows they use.\n  * `dual-dsthost` Flows are defined by the 5-tuple, and fairness is applied first over destination addresses, then over individual flows. Good for use on ingress traffic to a LAN from the internet, where it'll prevent any LAN host from monopolizing the downlink, regardless of the number of flows they use.\n  * `triple-isolate` - Flows are defined by the 5-tuple, and fairness is applied over source *and* destination addresses intelligently (ie. not merely by host-pairs), and also over individual flows.\n  * \u003cspan pulumi-lang-nodejs=\"`nat`\" pulumi-lang-dotnet=\"`Nat`\" pulumi-lang-go=\"`nat`\" pulumi-lang-python=\"`nat`\" pulumi-lang-yaml=\"`nat`\" pulumi-lang-java=\"`nat`\"\u003e`nat`\u003c/span\u003e Instructs Cake to perform a NAT lookup before applying flow- isolation rules, to determine the true addresses and port numbers of the packet, to improve fairness between hosts \u003cspan pulumi-lang-nodejs=\"`inside`\" pulumi-lang-dotnet=\"`Inside`\" pulumi-lang-go=\"`inside`\" pulumi-lang-python=\"`inside`\" pulumi-lang-yaml=\"`inside`\" pulumi-lang-java=\"`inside`\"\u003e`inside`\u003c/span\u003e the NAT. This has no practical effect in \u003cspan pulumi-lang-nodejs=\"`flowblind`\" pulumi-lang-dotnet=\"`Flowblind`\" pulumi-lang-go=\"`flowblind`\" pulumi-lang-python=\"`flowblind`\" pulumi-lang-yaml=\"`flowblind`\" pulumi-lang-java=\"`flowblind`\"\u003e`flowblind`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`flows`\" pulumi-lang-dotnet=\"`Flows`\" pulumi-lang-go=\"`flows`\" pulumi-lang-python=\"`flows`\" pulumi-lang-yaml=\"`flows`\" pulumi-lang-java=\"`flows`\"\u003e`flows`\u003c/span\u003e modes, or if NAT is performed on a different host.\n  * \u003cspan pulumi-lang-nodejs=\"`nonat`\" pulumi-lang-dotnet=\"`Nonat`\" pulumi-lang-go=\"`nonat`\" pulumi-lang-python=\"`nonat`\" pulumi-lang-yaml=\"`nonat`\" pulumi-lang-java=\"`nonat`\"\u003e`nonat`\u003c/span\u003e (default) The cake will not perform a NAT lookup. Flow isolation will be performed using the addresses and port numbers directly visible to the interface Cake is attached to."},"cakeMemlimit":{"type":"number","description":"Limit the memory consumed by Cake to LIMIT bytes. By default, the limit is calculated based on the bandwidth and RTT settings."},"cakeMpu":{"type":"number","description":"Rounds each packet (including overhead) up to a minimum length BYTES."},"cakeNat":{"type":"boolean","description":"Instructs Cake to perform a NAT lookup before applying a flow-isolation rule."},"cakeOverhead":{"type":"number","description":"Adds BYTES to the size of each packet. BYTES may be negative."},"cakeOverheadScheme":{"type":"string"},"cakeRtt":{"type":"string","description":"Manually specify an RTT. Default 100ms is suitable for most Internet traffic."},"cakeRttScheme":{"type":"string","description":"* \u003cspan pulumi-lang-nodejs=\"`datacentre`\" pulumi-lang-dotnet=\"`Datacentre`\" pulumi-lang-go=\"`datacentre`\" pulumi-lang-python=\"`datacentre`\" pulumi-lang-yaml=\"`datacentre`\" pulumi-lang-java=\"`datacentre`\"\u003e`datacentre`\u003c/span\u003e - For extremely high-performance 10GigE+ networks only. Equivalent to `RTT 100us`.\n  * \u003cspan pulumi-lang-nodejs=\"`lan`\" pulumi-lang-dotnet=\"`Lan`\" pulumi-lang-go=\"`lan`\" pulumi-lang-python=\"`lan`\" pulumi-lang-yaml=\"`lan`\" pulumi-lang-java=\"`lan`\"\u003e`lan`\u003c/span\u003e - For pure Ethernet (not Wi-Fi) networks, at home or in the office. Don't use this when shaping for an Internet access link. Equivalent to `RTT 1ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`metro`\" pulumi-lang-dotnet=\"`Metro`\" pulumi-lang-go=\"`metro`\" pulumi-lang-python=\"`metro`\" pulumi-lang-yaml=\"`metro`\" pulumi-lang-java=\"`metro`\"\u003e`metro`\u003c/span\u003e - For traffic mostly within a single city. Equivalent to `RTT 10ms`. regional For traffic mostly within a European-sized country. Equivalent to `RTT 30ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`internet`\" pulumi-lang-dotnet=\"`Internet`\" pulumi-lang-go=\"`internet`\" pulumi-lang-python=\"`internet`\" pulumi-lang-yaml=\"`internet`\" pulumi-lang-java=\"`internet`\"\u003e`internet`\u003c/span\u003e (default) This is suitable for most Internet traffic. Equivalent to `RTT 100ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`oceanic`\" pulumi-lang-dotnet=\"`Oceanic`\" pulumi-lang-go=\"`oceanic`\" pulumi-lang-python=\"`oceanic`\" pulumi-lang-yaml=\"`oceanic`\" pulumi-lang-java=\"`oceanic`\"\u003e`oceanic`\u003c/span\u003e - For Internet traffic with generally above-average latency, such as that suffered by Australasian residents. Equivalent to `RTT 300ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`satellite`\" pulumi-lang-dotnet=\"`Satellite`\" pulumi-lang-go=\"`satellite`\" pulumi-lang-python=\"`satellite`\" pulumi-lang-yaml=\"`satellite`\" pulumi-lang-java=\"`satellite`\"\u003e`satellite`\u003c/span\u003e - For traffic via geostationary satellites. Equivalent to `RTT 1000ms`.\n  * \u003cspan pulumi-lang-nodejs=\"`interplanetary`\" pulumi-lang-dotnet=\"`Interplanetary`\" pulumi-lang-go=\"`interplanetary`\" pulumi-lang-python=\"`interplanetary`\" pulumi-lang-yaml=\"`interplanetary`\" pulumi-lang-java=\"`interplanetary`\"\u003e`interplanetary`\u003c/span\u003e - So named because Jupiter is about 1 light-hour from Earth. Use this to (almost) completely disable AQM actions. Equivalent to `RTT 3600s`."},"cakeWash":{"type":"boolean","description":"Apply the wash option to clear all extra DiffServ (but not ECN bits), after priority queuing has taken place."},"codelCeThreshold":{"type":"number","description":"Marks packets above a configured threshold with ECN."},"codelEcn":{"type":"boolean","description":"An option is used to mark packets instead of dropping them."},"codelInterval":{"type":"string","description":"Interval should be set on the order of the worst-case RTT through the bottleneck giving endpoints sufficient time to react."},"codelLimit":{"type":"number","description":"Queue limit, when the limit is reached, incoming packets are dropped."},"codelTarget":{"type":"string","description":"Represents an acceptable minimum persistent queue delay."},"default":{"type":"boolean","description":"It's the default item."},"fqCodelCeThreshold":{"type":"number","description":"Marks packets above a configured threshold with ECN."},"fqCodelEcn":{"type":"boolean","description":"An option is used to mark packets instead of dropping them."},"fqCodelFlows":{"type":"number","description":"A number of flows into which the incoming packets are classified."},"fqCodelInterval":{"type":"string","description":"Interval should be set on the order of the worst-case RTT through the bottleneck giving endpoints sufficient time to react."},"fqCodelLimit":{"type":"number","description":"Queue limit, when the limit is reached, incoming packets are dropped."},"fqCodelMemlimit":{"type":"number","description":"A total number of bytes that can be queued in this FQ-CoDel instance. Will be enforced from the fq-codel-limit parameter."},"fqCodelQuantum":{"type":"number","description":"A number of bytes used as 'deficit' in the fair queuing algorithm. Default (1514 bytes) corresponds to the Ethernet MTU plus the hardware header length of 14 bytes."},"fqCodelTarget":{"type":"string","description":"Represents an acceptable minimum persistent queue delay."},"kind":{"type":"string","description":"Queue kind."},"mqPfifoLimit":{"type":"number","description":"Multi-queue PFIFO limit."},"name":{"type":"string","description":"Type name."},"pcqBurstRate":{"type":"number","description":"Maximal upload/download data rate which can be reached while the burst for substream is allowed."},"pcqBurstThreshold":{"type":"number","description":"This is value of burst on/off switch."},"pcqBurstTime":{"type":"string","description":"Period of time, in seconds, over which the average data rate is calculated. (This is NOT the time of actual burst)."},"pcqClassifiers":{"type":"array","items":{"type":"string"},"description":"Selection of sub-stream identifiers."},"pcqDstAddress6Mask":{"type":"number","description":"Size of IPV6 network that will be used as dst-address sub-stream identifier."},"pcqDstAddressMask":{"type":"number","description":"Size of IPv4 network that will be used as dst-address sub-stream identifier."},"pcqLimit":{"type":"number","description":"Queue size of a single sub-stream (in kilobytes)."},"pcqRate":{"type":"number","description":"Maximal available data rate of each sub-steam."},"pcqSrcAddress6Mask":{"type":"number","description":"Size of IPV6 network that will be used as src-address sub-stream identifier."},"pcqSrcAddressMask":{"type":"number","description":"Size of IPv4 network that will be used as src-address sub-stream identifier."},"pcqTotalLimit":{"type":"number","description":"Max amount of bytes queued (in kilobytes) for all sub-streams per PCQ instance. Note that each queue tree entry has its own PCQ instance."},"pfifoLimit":{"type":"number","description":"Maximum number of packets that the PFIFO queue can hold. Applies if \u003cspan pulumi-lang-nodejs=\"`kind`\" pulumi-lang-dotnet=\"`Kind`\" pulumi-lang-go=\"`kind`\" pulumi-lang-python=\"`kind`\" pulumi-lang-yaml=\"`kind`\" pulumi-lang-java=\"`kind`\"\u003e`kind`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`pfifo`\" pulumi-lang-dotnet=\"`Pfifo`\" pulumi-lang-go=\"`pfifo`\" pulumi-lang-python=\"`pfifo`\" pulumi-lang-yaml=\"`pfifo`\" pulumi-lang-java=\"`pfifo`\"\u003e`pfifo`\u003c/span\u003e."},"queueTypeId":{"type":"string"},"redAvgPacket":{"type":"number","description":"Used by RED for average queue size calculations (for packet to byte translation)."},"redBurst":{"type":"number","description":"Number of packets allowed for bursts of packets when there are no packets in the queue."},"redLimit":{"type":"number","description":"RED queue limit in packets."},"redMaxThreshold":{"type":"number","description":"The average queue size at which packet marking probability is the highest."},"redMinThreshold":{"type":"number","description":"Average queue size in bytes."},"sfqAllot":{"type":"number","description":"Amount of data in bytes that can be sent in one round-robin round."},"sfqPerturb":{"type":"number","description":"How often hash function must be refreshed."}},"type":"object"}},"routeros:index/radius:Radius":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst userManager = new routeros.Radius(\"user_manager\", {\n    address: \"127.0.0.1\",\n    services: [\n        \"ppp\",\n        \"login\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nuser_manager = routeros.Radius(\"user_manager\",\n    address=\"127.0.0.1\",\n    services=[\n        \"ppp\",\n        \"login\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var userManager = new Routeros.Radius(\"user_manager\", new()\n    {\n        Address = \"127.0.0.1\",\n        Services = new[]\n        {\n            \"ppp\",\n            \"login\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRadius(ctx, \"user_manager\", \u0026routeros.RadiusArgs{\n\t\t\tAddress: pulumi.String(\"127.0.0.1\"),\n\t\t\tServices: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ppp\"),\n\t\t\t\tpulumi.String(\"login\"),\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.routeros.Radius;\nimport com.pulumi.routeros.RadiusArgs;\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 userManager = new Radius(\"userManager\", RadiusArgs.builder()\n            .address(\"127.0.0.1\")\n            .services(            \n                \"ppp\",\n                \"login\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  userManager:\n    type: routeros:Radius\n    name: user_manager\n    properties:\n      address: 127.0.0.1\n      services:\n        - ppp\n        - login\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/radius get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/radius:Radius user_manager *1\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/radius:Radius user_manager \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accountingBackup":{"type":"boolean","description":"An option whether the configuration is for the backup RADIUS server.\n"},"accountingPort":{"type":"number","description":"RADIUS server port used for accounting.\n"},"address":{"type":"string","description":"IPv4 or IPv6 address of RADIUS server.\n"},"authenticationPort":{"type":"number","description":"RADIUS server port used for authentication.\n"},"calledId":{"type":"string","description":"RADIUS calling station identifier.\n"},"certificate":{"type":"string","description":"Certificate to use for communication with RADIUS Server with RadSec enabled.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"domain":{"type":"string","description":"Microsoft Windows domain of client passed to RADIUS servers that require domain validation.\n"},"protocol":{"type":"string","description":"An option specifies the protocol to use when communicating with the RADIUS Server.\n"},"radiusId":{"type":"string","description":"The ID of this resource.\n"},"radsecTimeout":{"type":"string","description":"Timeout after which the request should be resent over RadSec protocol.\n"},"realm":{"type":"string","description":"Explicitly stated realm (user domain), so the users do not have to provide proper ISP domain name in the user name.\n"},"requireMessageAuth":{"type":"string","description":"An option whether to require `Message-Authenticator` in received Access-Accept/Challenge/Reject messages.\n"},"secret":{"type":"string","description":"The shared secret to access the RADIUS server.\n","secret":true},"services":{"type":"array","items":{"type":"string"},"description":"A set of router services that will use the RADIUS server. Possible values: \u003cspan pulumi-lang-nodejs=\"`hotspot`\" pulumi-lang-dotnet=\"`Hotspot`\" pulumi-lang-go=\"`hotspot`\" pulumi-lang-python=\"`hotspot`\" pulumi-lang-yaml=\"`hotspot`\" pulumi-lang-java=\"`hotspot`\"\u003e`hotspot`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`login`\" pulumi-lang-dotnet=\"`Login`\" pulumi-lang-go=\"`login`\" pulumi-lang-python=\"`login`\" pulumi-lang-yaml=\"`login`\" pulumi-lang-java=\"`login`\"\u003e`login`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ppp`\" pulumi-lang-dotnet=\"`Ppp`\" pulumi-lang-go=\"`ppp`\" pulumi-lang-python=\"`ppp`\" pulumi-lang-yaml=\"`ppp`\" pulumi-lang-java=\"`ppp`\"\u003e`ppp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`wireless`\" pulumi-lang-dotnet=\"`Wireless`\" pulumi-lang-go=\"`wireless`\" pulumi-lang-python=\"`wireless`\" pulumi-lang-yaml=\"`wireless`\" pulumi-lang-java=\"`wireless`\"\u003e`wireless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dhcp`\" pulumi-lang-dotnet=\"`Dhcp`\" pulumi-lang-go=\"`dhcp`\" pulumi-lang-python=\"`dhcp`\" pulumi-lang-yaml=\"`dhcp`\" pulumi-lang-java=\"`dhcp`\"\u003e`dhcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipsec`\" pulumi-lang-dotnet=\"`Ipsec`\" pulumi-lang-go=\"`ipsec`\" pulumi-lang-python=\"`ipsec`\" pulumi-lang-yaml=\"`ipsec`\" pulumi-lang-java=\"`ipsec`\"\u003e`ipsec`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dot1x`\" pulumi-lang-dotnet=\"`Dot1x`\" pulumi-lang-go=\"`dot1x`\" pulumi-lang-python=\"`dot1x`\" pulumi-lang-yaml=\"`dot1x`\" pulumi-lang-java=\"`dot1x`\"\u003e`dot1x`\u003c/span\u003e.\n"},"srcAddress":{"type":"string","description":"Source IPv4/IPv6 address of the packets sent to the RADIUS server.\n"},"status":{"type":"string"},"timeout":{"type":"string","description":"A timeout, after which the request should be resent.\n"}},"type":"object","required":["address","radiusId","status"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accountingBackup":{"type":"boolean","description":"An option whether the configuration is for the backup RADIUS server.\n"},"accountingPort":{"type":"number","description":"RADIUS server port used for accounting.\n"},"address":{"type":"string","description":"IPv4 or IPv6 address of RADIUS server.\n"},"authenticationPort":{"type":"number","description":"RADIUS server port used for authentication.\n"},"calledId":{"type":"string","description":"RADIUS calling station identifier.\n"},"certificate":{"type":"string","description":"Certificate to use for communication with RADIUS Server with RadSec enabled.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"domain":{"type":"string","description":"Microsoft Windows domain of client passed to RADIUS servers that require domain validation.\n"},"protocol":{"type":"string","description":"An option specifies the protocol to use when communicating with the RADIUS Server.\n"},"radiusId":{"type":"string","description":"The ID of this resource.\n"},"radsecTimeout":{"type":"string","description":"Timeout after which the request should be resent over RadSec protocol.\n"},"realm":{"type":"string","description":"Explicitly stated realm (user domain), so the users do not have to provide proper ISP domain name in the user name.\n"},"requireMessageAuth":{"type":"string","description":"An option whether to require `Message-Authenticator` in received Access-Accept/Challenge/Reject messages.\n"},"secret":{"type":"string","description":"The shared secret to access the RADIUS server.\n","secret":true},"services":{"type":"array","items":{"type":"string"},"description":"A set of router services that will use the RADIUS server. Possible values: \u003cspan pulumi-lang-nodejs=\"`hotspot`\" pulumi-lang-dotnet=\"`Hotspot`\" pulumi-lang-go=\"`hotspot`\" pulumi-lang-python=\"`hotspot`\" pulumi-lang-yaml=\"`hotspot`\" pulumi-lang-java=\"`hotspot`\"\u003e`hotspot`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`login`\" pulumi-lang-dotnet=\"`Login`\" pulumi-lang-go=\"`login`\" pulumi-lang-python=\"`login`\" pulumi-lang-yaml=\"`login`\" pulumi-lang-java=\"`login`\"\u003e`login`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ppp`\" pulumi-lang-dotnet=\"`Ppp`\" pulumi-lang-go=\"`ppp`\" pulumi-lang-python=\"`ppp`\" pulumi-lang-yaml=\"`ppp`\" pulumi-lang-java=\"`ppp`\"\u003e`ppp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`wireless`\" pulumi-lang-dotnet=\"`Wireless`\" pulumi-lang-go=\"`wireless`\" pulumi-lang-python=\"`wireless`\" pulumi-lang-yaml=\"`wireless`\" pulumi-lang-java=\"`wireless`\"\u003e`wireless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dhcp`\" pulumi-lang-dotnet=\"`Dhcp`\" pulumi-lang-go=\"`dhcp`\" pulumi-lang-python=\"`dhcp`\" pulumi-lang-yaml=\"`dhcp`\" pulumi-lang-java=\"`dhcp`\"\u003e`dhcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipsec`\" pulumi-lang-dotnet=\"`Ipsec`\" pulumi-lang-go=\"`ipsec`\" pulumi-lang-python=\"`ipsec`\" pulumi-lang-yaml=\"`ipsec`\" pulumi-lang-java=\"`ipsec`\"\u003e`ipsec`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dot1x`\" pulumi-lang-dotnet=\"`Dot1x`\" pulumi-lang-go=\"`dot1x`\" pulumi-lang-python=\"`dot1x`\" pulumi-lang-yaml=\"`dot1x`\" pulumi-lang-java=\"`dot1x`\"\u003e`dot1x`\u003c/span\u003e.\n"},"srcAddress":{"type":"string","description":"Source IPv4/IPv6 address of the packets sent to the RADIUS server.\n"},"timeout":{"type":"string","description":"A timeout, after which the request should be resent.\n"}},"requiredInputs":["address"],"stateInputs":{"description":"Input properties used for looking up and filtering Radius resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accountingBackup":{"type":"boolean","description":"An option whether the configuration is for the backup RADIUS server.\n"},"accountingPort":{"type":"number","description":"RADIUS server port used for accounting.\n"},"address":{"type":"string","description":"IPv4 or IPv6 address of RADIUS server.\n"},"authenticationPort":{"type":"number","description":"RADIUS server port used for authentication.\n"},"calledId":{"type":"string","description":"RADIUS calling station identifier.\n"},"certificate":{"type":"string","description":"Certificate to use for communication with RADIUS Server with RadSec enabled.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"domain":{"type":"string","description":"Microsoft Windows domain of client passed to RADIUS servers that require domain validation.\n"},"protocol":{"type":"string","description":"An option specifies the protocol to use when communicating with the RADIUS Server.\n"},"radiusId":{"type":"string","description":"The ID of this resource.\n"},"radsecTimeout":{"type":"string","description":"Timeout after which the request should be resent over RadSec protocol.\n"},"realm":{"type":"string","description":"Explicitly stated realm (user domain), so the users do not have to provide proper ISP domain name in the user name.\n"},"requireMessageAuth":{"type":"string","description":"An option whether to require `Message-Authenticator` in received Access-Accept/Challenge/Reject messages.\n"},"secret":{"type":"string","description":"The shared secret to access the RADIUS server.\n","secret":true},"services":{"type":"array","items":{"type":"string"},"description":"A set of router services that will use the RADIUS server. Possible values: \u003cspan pulumi-lang-nodejs=\"`hotspot`\" pulumi-lang-dotnet=\"`Hotspot`\" pulumi-lang-go=\"`hotspot`\" pulumi-lang-python=\"`hotspot`\" pulumi-lang-yaml=\"`hotspot`\" pulumi-lang-java=\"`hotspot`\"\u003e`hotspot`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`login`\" pulumi-lang-dotnet=\"`Login`\" pulumi-lang-go=\"`login`\" pulumi-lang-python=\"`login`\" pulumi-lang-yaml=\"`login`\" pulumi-lang-java=\"`login`\"\u003e`login`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ppp`\" pulumi-lang-dotnet=\"`Ppp`\" pulumi-lang-go=\"`ppp`\" pulumi-lang-python=\"`ppp`\" pulumi-lang-yaml=\"`ppp`\" pulumi-lang-java=\"`ppp`\"\u003e`ppp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`wireless`\" pulumi-lang-dotnet=\"`Wireless`\" pulumi-lang-go=\"`wireless`\" pulumi-lang-python=\"`wireless`\" pulumi-lang-yaml=\"`wireless`\" pulumi-lang-java=\"`wireless`\"\u003e`wireless`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dhcp`\" pulumi-lang-dotnet=\"`Dhcp`\" pulumi-lang-go=\"`dhcp`\" pulumi-lang-python=\"`dhcp`\" pulumi-lang-yaml=\"`dhcp`\" pulumi-lang-java=\"`dhcp`\"\u003e`dhcp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipsec`\" pulumi-lang-dotnet=\"`Ipsec`\" pulumi-lang-go=\"`ipsec`\" pulumi-lang-python=\"`ipsec`\" pulumi-lang-yaml=\"`ipsec`\" pulumi-lang-java=\"`ipsec`\"\u003e`ipsec`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dot1x`\" pulumi-lang-dotnet=\"`Dot1x`\" pulumi-lang-go=\"`dot1x`\" pulumi-lang-python=\"`dot1x`\" pulumi-lang-yaml=\"`dot1x`\" pulumi-lang-java=\"`dot1x`\"\u003e`dot1x`\u003c/span\u003e.\n"},"srcAddress":{"type":"string","description":"Source IPv4/IPv6 address of the packets sent to the RADIUS server.\n"},"status":{"type":"string"},"timeout":{"type":"string","description":"A timeout, after which the request should be resent.\n"}},"type":"object"}},"routeros:index/radiusIncoming:RadiusIncoming":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.RadiusIncoming(\"settings\", {accept: true});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.RadiusIncoming(\"settings\", accept=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.RadiusIncoming(\"settings\", new()\n    {\n        Accept = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRadiusIncoming(ctx, \"settings\", \u0026routeros.RadiusIncomingArgs{\n\t\t\tAccept: 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.routeros.RadiusIncoming;\nimport com.pulumi.routeros.RadiusIncomingArgs;\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 settings = new RadiusIncoming(\"settings\", RadiusIncomingArgs.builder()\n            .accept(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:RadiusIncoming\n    properties:\n      accept: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/radiusIncoming:RadiusIncoming settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accept":{"type":"boolean","description":"An option whether to accept the unsolicited messages.\n"},"port":{"type":"number","description":"The port number to listen for the requests on.\n"},"radiusIncomingId":{"type":"string","description":"The ID of this resource.\n"},"vrf":{"type":"string","description":"VRF on which service is listening for incoming connections. This option is available in RouterOS starting from version 7.4.\n"}},"type":"object","required":["radiusIncomingId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accept":{"type":"boolean","description":"An option whether to accept the unsolicited messages.\n"},"port":{"type":"number","description":"The port number to listen for the requests on.\n"},"radiusIncomingId":{"type":"string","description":"The ID of this resource.\n"},"vrf":{"type":"string","description":"VRF on which service is listening for incoming connections. This option is available in RouterOS starting from version 7.4.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering RadiusIncoming resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accept":{"type":"boolean","description":"An option whether to accept the unsolicited messages.\n"},"port":{"type":"number","description":"The port number to listen for the requests on.\n"},"radiusIncomingId":{"type":"string","description":"The ID of this resource.\n"},"vrf":{"type":"string","description":"VRF on which service is listening for incoming connections. This option is available in RouterOS starting from version 7.4.\n"}},"type":"object"}},"routeros:index/routingBfdConfiguration:RoutingBfdConfiguration":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.RoutingBfdConfiguration(\"test\", {\n    interfaces: [\n        \"lo\",\n        \"ether2\",\n    ],\n    vrf: \"main\",\n    forbidBfd: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.RoutingBfdConfiguration(\"test\",\n    interfaces=[\n        \"lo\",\n        \"ether2\",\n    ],\n    vrf=\"main\",\n    forbid_bfd=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.RoutingBfdConfiguration(\"test\", new()\n    {\n        Interfaces = new[]\n        {\n            \"lo\",\n            \"ether2\",\n        },\n        Vrf = \"main\",\n        ForbidBfd = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRoutingBfdConfiguration(ctx, \"test\", \u0026routeros.RoutingBfdConfigurationArgs{\n\t\t\tInterfaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"lo\"),\n\t\t\t\tpulumi.String(\"ether2\"),\n\t\t\t},\n\t\t\tVrf:       pulumi.String(\"main\"),\n\t\t\tForbidBfd: 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.routeros.RoutingBfdConfiguration;\nimport com.pulumi.routeros.RoutingBfdConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new RoutingBfdConfiguration(\"test\", RoutingBfdConfigurationArgs.builder()\n            .interfaces(            \n                \"lo\",\n                \"ether2\")\n            .vrf(\"main\")\n            .forbidBfd(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:RoutingBfdConfiguration\n    properties:\n      interfaces:\n        - lo\n        - ether2\n      vrf: main\n      forbidBfd: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/routing/bfd/configuration get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/routingBfdConfiguration:RoutingBfdConfiguration test *3\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressList":{"type":"string","description":"Name of the address list in which users IP address will be added.\n"},"addresses":{"type":"array","items":{"type":"string"},"description":"Set of IP (v4 or v6) addresses or CIDR networks.\n"},"disabled":{"type":"boolean"},"forbidBfd":{"type":"boolean"},"inactive":{"type":"boolean"},"interfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces.\n"},"minRx":{"type":"string"},"minTx":{"type":"string"},"multiplier":{"type":"number"},"routingBfdConfigurationId":{"type":"string","description":"The ID of this resource.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object","required":["inactive","routingBfdConfigurationId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressList":{"type":"string","description":"Name of the address list in which users IP address will be added.\n"},"addresses":{"type":"array","items":{"type":"string"},"description":"Set of IP (v4 or v6) addresses or CIDR networks.\n"},"disabled":{"type":"boolean"},"forbidBfd":{"type":"boolean"},"interfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces.\n"},"minRx":{"type":"string"},"minTx":{"type":"string"},"multiplier":{"type":"number"},"routingBfdConfigurationId":{"type":"string","description":"The ID of this resource.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering RoutingBfdConfiguration resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addressList":{"type":"string","description":"Name of the address list in which users IP address will be added.\n"},"addresses":{"type":"array","items":{"type":"string"},"description":"Set of IP (v4 or v6) addresses or CIDR networks.\n"},"disabled":{"type":"boolean"},"forbidBfd":{"type":"boolean"},"inactive":{"type":"boolean"},"interfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces.\n"},"minRx":{"type":"string"},"minTx":{"type":"string"},"multiplier":{"type":"number"},"routingBfdConfigurationId":{"type":"string","description":"The ID of this resource.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object"}},"routeros:index/routingBgpConnection:RoutingBgpConnection":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.RoutingBgpConnection \" pulumi-lang-dotnet=\" routeros.RoutingBgpConnection \" pulumi-lang-go=\" RoutingBgpConnection \" pulumi-lang-python=\" RoutingBgpConnection \" pulumi-lang-yaml=\" routeros.RoutingBgpConnection \" pulumi-lang-java=\" routeros.RoutingBgpConnection \"\u003e routeros.RoutingBgpConnection \u003c/span\u003e(Resource)\n\n\u003e [!WARNING] Using this resource you may happen unexpected behavior, for example, some of the attributes may not be removable after adding them to the TF configuration. Please report this to GitHub and it may be possible to fix it. Use the resource at your own risk as it is!\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  test:\n    type: routeros:RoutingBgpConnection\n    properties:\n      name: neighbor-test\n      as: 65550/5\n      asOverride: true\n      addPathOut: none\n      remote:\n        address: 172.17.0.1\n        as: 12345/5\n      local:\n        role: ebgp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/routing/bgp/connection get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/routingBgpConnection:RoutingBgpConnection test *3\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addPathOut":{"type":"string"},"addressFamilies":{"type":"string","description":"List of address families about which this peer will exchange routing information. The remote peer must support (they usually do) BGP capabilities optional parameter to negotiate any other families than IP.\n"},"as":{"type":"string","description":"32-bit BGP autonomous system number. Value can be entered in AS-Plain and AS-Dot formats. The parameter is also used to set up the BGP confederation, in the following format: confederation_as/as . For example, if your AS is 34 and your confederation AS is 43, then as configuration should be as =43/34.\n"},"ciscoVplsNlriLenFmt":{"type":"string","description":"VPLS NLRI length format type. Used for compatibility with Cisco VPLS.\n"},"clusterId":{"type":"string","description":"In case this instance is a route reflector: the cluster ID of the router reflector cluster to this instance belongs. This attribute helps to recognize routing updates that come from another route reflector in this cluster and avoid routing information looping. Note that normally there is only one route reflector in a cluster; in this case, 'cluster-id' does not need to be configured and BGP router ID is used instead.\n","deprecationMessage":"Deprecated"},"comment":{"type":"string"},"connect":{"type":"boolean","description":"Whether to allow the router to initiate the connection.\n"},"disabled":{"type":"boolean"},"holdTime":{"type":"string","description":"Specifies the BGP Hold Time value to use when negotiating with peers. According to the BGP specification, if the router does not receive successive KEEPALIVE and/or UPDATE and/or NOTIFICATION messages within the period specified in the Hold Time field of the OPEN message, then the BGP connection to the peer will be closed. The minimal hold-time value of both peers will be actually used (note that the special value 0 or 'infinity' is lower than any other value) infinity - never expire the connection and never send keepalive messages.\n"},"inactive":{"type":"boolean"},"input":{"$ref":"#/types/routeros:index%2FRoutingBgpConnectionInput:RoutingBgpConnectionInput","description":"A group of parameters associated with BGP input.\n"},"instance":{"type":"string","description":"Name of the instance this VPN is assigned to.\n"},"keepaliveTime":{"type":"string","description":"How long to keep the BGP session open after the last received 'keepalive' message.\n"},"listen":{"type":"boolean","description":"Whether to listen for incoming connections.\n"},"local":{"$ref":"#/types/routeros:index%2FRoutingBgpConnectionLocal:RoutingBgpConnectionLocal","description":"A group of parameters associated with BGP input.\n"},"multihop":{"type":"boolean","description":"Specifies whether the remote peer is more than one hop away. This option affects outgoing next-hop selection as described in RFC 4271 (for EBGP only, excluding EBGP peers local to the confederation). It also affects: whether to accept connections from peers that are not in the same network (the remote address of the connection is used for this check); whether to accept incoming routes with NEXT_HOP attribute that is not in the same network as the address used to establish the connection; the target-scope of the routes installed from this peer; routes from multi-hop or IBGP peers resolve their next-hops through IGP routes by default.\n"},"name":{"type":"string","description":"Name of the BGP connection.\n"},"nexthopChoice":{"type":"string","description":"Affects the outgoing NEXT*HOP attribute selection. Note that next-hops set in filters always take precedence. Also note that the next-hop is not changed on route reflection, except when it's set in the filter. default - select the next-hop as described in RFC 4271 force-self - always use a local address of the interface that is used to connect to the peer as the next-hop; propagate - try to propagate further the next-hop received; i.e. if the route has BGP NEXT*HOP attribute, then use it as the next-hop, otherwise, fall back to the default case.\n"},"output":{"$ref":"#/types/routeros:index%2FRoutingBgpConnectionOutput:RoutingBgpConnectionOutput","description":"A group of parameters associated with BGP output.\n"},"remote":{"$ref":"#/types/routeros:index%2FRoutingBgpConnectionRemote:RoutingBgpConnectionRemote","description":"A group of parameters associated with BGP input.\n"},"routerId":{"type":"string","description":"BGP Router ID to be used. Use the ID from the /routing/router-id configuration by specifying the reference name, or set the ID directly by specifying IP. Equal router-ids are also used to group peers into one instance.\n","deprecationMessage":"Deprecated"},"routingBgpConnectionId":{"type":"string","description":"The ID of this resource.\n"},"routingTable":{"type":"string","description":"Name of the routing table, to install routes in.\n"},"saveTo":{"type":"string","description":"Filename to be used to save BGP protocol-specific packet content (Exported PDU) into pcap file. This method allows much simpler peer-specific packet capturing for debugging purposes. Pcap files in this format can also be loaded to create virtual BGP peers to recreate conditions that happened at the time when packet capture was running.\n"},"tcpMd5Key":{"type":"string","description":"The key used to authenticate the connection with TCP MD5 signature as described in RFC 2385. If not specified, authentication is not used.\n","secret":true},"templates":{"type":"array","items":{"type":"string"},"description":"List of the template names, to inherit parameters from. Useful for dynamic BGP peers.\n"},"useBfd":{"type":"boolean","description":"Whether to use the BFD protocol for faster connection state detection.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object","required":["as","holdTime","inactive","name","routingBgpConnectionId","routingTable"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addPathOut":{"type":"string"},"addressFamilies":{"type":"string","description":"List of address families about which this peer will exchange routing information. The remote peer must support (they usually do) BGP capabilities optional parameter to negotiate any other families than IP.\n"},"as":{"type":"string","description":"32-bit BGP autonomous system number. Value can be entered in AS-Plain and AS-Dot formats. The parameter is also used to set up the BGP confederation, in the following format: confederation_as/as . For example, if your AS is 34 and your confederation AS is 43, then as configuration should be as =43/34.\n"},"ciscoVplsNlriLenFmt":{"type":"string","description":"VPLS NLRI length format type. Used for compatibility with Cisco VPLS.\n"},"clusterId":{"type":"string","description":"In case this instance is a route reflector: the cluster ID of the router reflector cluster to this instance belongs. This attribute helps to recognize routing updates that come from another route reflector in this cluster and avoid routing information looping. Note that normally there is only one route reflector in a cluster; in this case, 'cluster-id' does not need to be configured and BGP router ID is used instead.\n","deprecationMessage":"Deprecated"},"comment":{"type":"string"},"connect":{"type":"boolean","description":"Whether to allow the router to initiate the connection.\n"},"disabled":{"type":"boolean"},"holdTime":{"type":"string","description":"Specifies the BGP Hold Time value to use when negotiating with peers. According to the BGP specification, if the router does not receive successive KEEPALIVE and/or UPDATE and/or NOTIFICATION messages within the period specified in the Hold Time field of the OPEN message, then the BGP connection to the peer will be closed. The minimal hold-time value of both peers will be actually used (note that the special value 0 or 'infinity' is lower than any other value) infinity - never expire the connection and never send keepalive messages.\n"},"input":{"$ref":"#/types/routeros:index%2FRoutingBgpConnectionInput:RoutingBgpConnectionInput","description":"A group of parameters associated with BGP input.\n"},"instance":{"type":"string","description":"Name of the instance this VPN is assigned to.\n"},"keepaliveTime":{"type":"string","description":"How long to keep the BGP session open after the last received 'keepalive' message.\n"},"listen":{"type":"boolean","description":"Whether to listen for incoming connections.\n"},"local":{"$ref":"#/types/routeros:index%2FRoutingBgpConnectionLocal:RoutingBgpConnectionLocal","description":"A group of parameters associated with BGP input.\n"},"multihop":{"type":"boolean","description":"Specifies whether the remote peer is more than one hop away. This option affects outgoing next-hop selection as described in RFC 4271 (for EBGP only, excluding EBGP peers local to the confederation). It also affects: whether to accept connections from peers that are not in the same network (the remote address of the connection is used for this check); whether to accept incoming routes with NEXT_HOP attribute that is not in the same network as the address used to establish the connection; the target-scope of the routes installed from this peer; routes from multi-hop or IBGP peers resolve their next-hops through IGP routes by default.\n"},"name":{"type":"string","description":"Name of the BGP connection.\n"},"nexthopChoice":{"type":"string","description":"Affects the outgoing NEXT*HOP attribute selection. Note that next-hops set in filters always take precedence. Also note that the next-hop is not changed on route reflection, except when it's set in the filter. default - select the next-hop as described in RFC 4271 force-self - always use a local address of the interface that is used to connect to the peer as the next-hop; propagate - try to propagate further the next-hop received; i.e. if the route has BGP NEXT*HOP attribute, then use it as the next-hop, otherwise, fall back to the default case.\n"},"output":{"$ref":"#/types/routeros:index%2FRoutingBgpConnectionOutput:RoutingBgpConnectionOutput","description":"A group of parameters associated with BGP output.\n"},"remote":{"$ref":"#/types/routeros:index%2FRoutingBgpConnectionRemote:RoutingBgpConnectionRemote","description":"A group of parameters associated with BGP input.\n"},"routerId":{"type":"string","description":"BGP Router ID to be used. Use the ID from the /routing/router-id configuration by specifying the reference name, or set the ID directly by specifying IP. Equal router-ids are also used to group peers into one instance.\n","deprecationMessage":"Deprecated"},"routingBgpConnectionId":{"type":"string","description":"The ID of this resource.\n"},"routingTable":{"type":"string","description":"Name of the routing table, to install routes in.\n"},"saveTo":{"type":"string","description":"Filename to be used to save BGP protocol-specific packet content (Exported PDU) into pcap file. This method allows much simpler peer-specific packet capturing for debugging purposes. Pcap files in this format can also be loaded to create virtual BGP peers to recreate conditions that happened at the time when packet capture was running.\n"},"tcpMd5Key":{"type":"string","description":"The key used to authenticate the connection with TCP MD5 signature as described in RFC 2385. If not specified, authentication is not used.\n","secret":true},"templates":{"type":"array","items":{"type":"string"},"description":"List of the template names, to inherit parameters from. Useful for dynamic BGP peers.\n"},"useBfd":{"type":"boolean","description":"Whether to use the BFD protocol for faster connection state detection.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"requiredInputs":["as"],"stateInputs":{"description":"Input properties used for looking up and filtering RoutingBgpConnection resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addPathOut":{"type":"string"},"addressFamilies":{"type":"string","description":"List of address families about which this peer will exchange routing information. The remote peer must support (they usually do) BGP capabilities optional parameter to negotiate any other families than IP.\n"},"as":{"type":"string","description":"32-bit BGP autonomous system number. Value can be entered in AS-Plain and AS-Dot formats. The parameter is also used to set up the BGP confederation, in the following format: confederation_as/as . For example, if your AS is 34 and your confederation AS is 43, then as configuration should be as =43/34.\n"},"ciscoVplsNlriLenFmt":{"type":"string","description":"VPLS NLRI length format type. Used for compatibility with Cisco VPLS.\n"},"clusterId":{"type":"string","description":"In case this instance is a route reflector: the cluster ID of the router reflector cluster to this instance belongs. This attribute helps to recognize routing updates that come from another route reflector in this cluster and avoid routing information looping. Note that normally there is only one route reflector in a cluster; in this case, 'cluster-id' does not need to be configured and BGP router ID is used instead.\n","deprecationMessage":"Deprecated"},"comment":{"type":"string"},"connect":{"type":"boolean","description":"Whether to allow the router to initiate the connection.\n"},"disabled":{"type":"boolean"},"holdTime":{"type":"string","description":"Specifies the BGP Hold Time value to use when negotiating with peers. According to the BGP specification, if the router does not receive successive KEEPALIVE and/or UPDATE and/or NOTIFICATION messages within the period specified in the Hold Time field of the OPEN message, then the BGP connection to the peer will be closed. The minimal hold-time value of both peers will be actually used (note that the special value 0 or 'infinity' is lower than any other value) infinity - never expire the connection and never send keepalive messages.\n"},"inactive":{"type":"boolean"},"input":{"$ref":"#/types/routeros:index%2FRoutingBgpConnectionInput:RoutingBgpConnectionInput","description":"A group of parameters associated with BGP input.\n"},"instance":{"type":"string","description":"Name of the instance this VPN is assigned to.\n"},"keepaliveTime":{"type":"string","description":"How long to keep the BGP session open after the last received 'keepalive' message.\n"},"listen":{"type":"boolean","description":"Whether to listen for incoming connections.\n"},"local":{"$ref":"#/types/routeros:index%2FRoutingBgpConnectionLocal:RoutingBgpConnectionLocal","description":"A group of parameters associated with BGP input.\n"},"multihop":{"type":"boolean","description":"Specifies whether the remote peer is more than one hop away. This option affects outgoing next-hop selection as described in RFC 4271 (for EBGP only, excluding EBGP peers local to the confederation). It also affects: whether to accept connections from peers that are not in the same network (the remote address of the connection is used for this check); whether to accept incoming routes with NEXT_HOP attribute that is not in the same network as the address used to establish the connection; the target-scope of the routes installed from this peer; routes from multi-hop or IBGP peers resolve their next-hops through IGP routes by default.\n"},"name":{"type":"string","description":"Name of the BGP connection.\n"},"nexthopChoice":{"type":"string","description":"Affects the outgoing NEXT*HOP attribute selection. Note that next-hops set in filters always take precedence. Also note that the next-hop is not changed on route reflection, except when it's set in the filter. default - select the next-hop as described in RFC 4271 force-self - always use a local address of the interface that is used to connect to the peer as the next-hop; propagate - try to propagate further the next-hop received; i.e. if the route has BGP NEXT*HOP attribute, then use it as the next-hop, otherwise, fall back to the default case.\n"},"output":{"$ref":"#/types/routeros:index%2FRoutingBgpConnectionOutput:RoutingBgpConnectionOutput","description":"A group of parameters associated with BGP output.\n"},"remote":{"$ref":"#/types/routeros:index%2FRoutingBgpConnectionRemote:RoutingBgpConnectionRemote","description":"A group of parameters associated with BGP input.\n"},"routerId":{"type":"string","description":"BGP Router ID to be used. Use the ID from the /routing/router-id configuration by specifying the reference name, or set the ID directly by specifying IP. Equal router-ids are also used to group peers into one instance.\n","deprecationMessage":"Deprecated"},"routingBgpConnectionId":{"type":"string","description":"The ID of this resource.\n"},"routingTable":{"type":"string","description":"Name of the routing table, to install routes in.\n"},"saveTo":{"type":"string","description":"Filename to be used to save BGP protocol-specific packet content (Exported PDU) into pcap file. This method allows much simpler peer-specific packet capturing for debugging purposes. Pcap files in this format can also be loaded to create virtual BGP peers to recreate conditions that happened at the time when packet capture was running.\n"},"tcpMd5Key":{"type":"string","description":"The key used to authenticate the connection with TCP MD5 signature as described in RFC 2385. If not specified, authentication is not used.\n","secret":true},"templates":{"type":"array","items":{"type":"string"},"description":"List of the template names, to inherit parameters from. Useful for dynamic BGP peers.\n"},"useBfd":{"type":"boolean","description":"Whether to use the BFD protocol for faster connection state detection.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object"}},"routeros:index/routingBgpEvpn:RoutingBgpEvpn":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.RoutingBgpInstance(\"test\", {\n    as: \"65000\",\n    name: \"bgp-instance-1\",\n});\nconst testRoutingBgpEvpn = new routeros.RoutingBgpEvpn(\"test\", {\n    disabled: false,\n    \"export\": {\n        routeTargets: [\"1010:1010\"],\n    },\n    \"import\": {\n        routeTargets: [\"1010:1010\"],\n    },\n    instance: routerosRoutingBgpInstance.test.name,\n    name: \"bgp-evpn-1\",\n    vni: 1010,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.RoutingBgpInstance(\"test\",\n    as_=\"65000\",\n    name=\"bgp-instance-1\")\ntest_routing_bgp_evpn = routeros.RoutingBgpEvpn(\"test\",\n    disabled=False,\n    export={\n        \"route_targets\": [\"1010:1010\"],\n    },\n    import_={\n        \"route_targets\": [\"1010:1010\"],\n    },\n    instance=routeros_routing_bgp_instance[\"test\"][\"name\"],\n    name=\"bgp-evpn-1\",\n    vni=1010)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.RoutingBgpInstance(\"test\", new()\n    {\n        As = \"65000\",\n        Name = \"bgp-instance-1\",\n    });\n\n    var testRoutingBgpEvpn = new Routeros.RoutingBgpEvpn(\"test\", new()\n    {\n        Disabled = false,\n        Export = new Routeros.Inputs.RoutingBgpEvpnExportArgs\n        {\n            RouteTargets = new[]\n            {\n                \"1010:1010\",\n            },\n        },\n        Import = new Routeros.Inputs.RoutingBgpEvpnImportArgs\n        {\n            RouteTargets = new[]\n            {\n                \"1010:1010\",\n            },\n        },\n        Instance = routerosRoutingBgpInstance.Test.Name,\n        Name = \"bgp-evpn-1\",\n        Vni = 1010,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRoutingBgpInstance(ctx, \"test\", \u0026routeros.RoutingBgpInstanceArgs{\n\t\t\tAs:   pulumi.String(\"65000\"),\n\t\t\tName: pulumi.String(\"bgp-instance-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewRoutingBgpEvpn(ctx, \"test\", \u0026routeros.RoutingBgpEvpnArgs{\n\t\t\tDisabled: pulumi.Bool(false),\n\t\t\tExport: \u0026routeros.RoutingBgpEvpnExportArgs{\n\t\t\t\tRouteTargets: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"1010:1010\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tImport: \u0026routeros.RoutingBgpEvpnImportArgs{\n\t\t\t\tRouteTargets: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"1010:1010\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInstance: pulumi.Any(routerosRoutingBgpInstance.Test.Name),\n\t\t\tName:     pulumi.String(\"bgp-evpn-1\"),\n\t\t\tVni:      pulumi.Float64(1010),\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.routeros.RoutingBgpInstance;\nimport com.pulumi.routeros.RoutingBgpInstanceArgs;\nimport com.pulumi.routeros.RoutingBgpEvpn;\nimport com.pulumi.routeros.RoutingBgpEvpnArgs;\nimport com.pulumi.routeros.inputs.RoutingBgpEvpnExportArgs;\nimport com.pulumi.routeros.inputs.RoutingBgpEvpnImportArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new RoutingBgpInstance(\"test\", RoutingBgpInstanceArgs.builder()\n            .as(\"65000\")\n            .name(\"bgp-instance-1\")\n            .build());\n\n        var testRoutingBgpEvpn = new RoutingBgpEvpn(\"testRoutingBgpEvpn\", RoutingBgpEvpnArgs.builder()\n            .disabled(false)\n            .export(RoutingBgpEvpnExportArgs.builder()\n                .routeTargets(\"1010:1010\")\n                .build())\n            .import_(RoutingBgpEvpnImportArgs.builder()\n                .routeTargets(\"1010:1010\")\n                .build())\n            .instance(routerosRoutingBgpInstance.test().name())\n            .name(\"bgp-evpn-1\")\n            .vni(1010.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:RoutingBgpInstance\n    properties:\n      as: '65000'\n      name: bgp-instance-1\n  testRoutingBgpEvpn:\n    type: routeros:RoutingBgpEvpn\n    name: test\n    properties:\n      disabled: false\n      export:\n        routeTargets:\n          - 1010:1010\n      import:\n        routeTargets:\n          - 1010:1010\n      instance: ${routerosRoutingBgpInstance.test.name}\n      name: bgp-evpn-1\n      vni: 1010\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/routing/bgp/evpn get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/routingBgpEvpn:RoutingBgpEvpn test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/routingBgpEvpn:RoutingBgpEvpn test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"export":{"$ref":"#/types/routeros:index%2FRoutingBgpEvpnExport:RoutingBgpEvpnExport","description":"A group of parameters associated with the route export.\n"},"import":{"$ref":"#/types/routeros:index%2FRoutingBgpEvpnImport:RoutingBgpEvpnImport","description":"A group of parameters associated with the route import.\n"},"instance":{"type":"string","description":"BGP instance this EVPN is assigned to.\n"},"name":{"type":"string","description":"Name of the entry.\n"},"rd":{"type":"string","description":"Specifies the value that gets attached to route so that receiving routers can distinguish advertisements that may otherwise look the same. Used to distinguish between tenants using overlapping IP ranges. Also can be used to simplify convergence and redundancy within Virtual Network. RDs form MLAG pairs should be unique, too.\n"},"routingBgpEvpnId":{"type":"string","description":"The ID of this resource.\n"},"vni":{"type":"number","description":"Range of Virtual Network Identifiers.\n"},"vrf":{"type":"string","description":"VRF name.\n"}},"type":"object","required":["instance","name","routingBgpEvpnId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"export":{"$ref":"#/types/routeros:index%2FRoutingBgpEvpnExport:RoutingBgpEvpnExport","description":"A group of parameters associated with the route export.\n"},"import":{"$ref":"#/types/routeros:index%2FRoutingBgpEvpnImport:RoutingBgpEvpnImport","description":"A group of parameters associated with the route import.\n"},"instance":{"type":"string","description":"BGP instance this EVPN is assigned to.\n"},"name":{"type":"string","description":"Name of the entry.\n"},"rd":{"type":"string","description":"Specifies the value that gets attached to route so that receiving routers can distinguish advertisements that may otherwise look the same. Used to distinguish between tenants using overlapping IP ranges. Also can be used to simplify convergence and redundancy within Virtual Network. RDs form MLAG pairs should be unique, too.\n"},"routingBgpEvpnId":{"type":"string","description":"The ID of this resource.\n"},"vni":{"type":"number","description":"Range of Virtual Network Identifiers.\n"},"vrf":{"type":"string","description":"VRF name.\n"}},"requiredInputs":["instance"],"stateInputs":{"description":"Input properties used for looking up and filtering RoutingBgpEvpn resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"export":{"$ref":"#/types/routeros:index%2FRoutingBgpEvpnExport:RoutingBgpEvpnExport","description":"A group of parameters associated with the route export.\n"},"import":{"$ref":"#/types/routeros:index%2FRoutingBgpEvpnImport:RoutingBgpEvpnImport","description":"A group of parameters associated with the route import.\n"},"instance":{"type":"string","description":"BGP instance this EVPN is assigned to.\n"},"name":{"type":"string","description":"Name of the entry.\n"},"rd":{"type":"string","description":"Specifies the value that gets attached to route so that receiving routers can distinguish advertisements that may otherwise look the same. Used to distinguish between tenants using overlapping IP ranges. Also can be used to simplify convergence and redundancy within Virtual Network. RDs form MLAG pairs should be unique, too.\n"},"routingBgpEvpnId":{"type":"string","description":"The ID of this resource.\n"},"vni":{"type":"number","description":"Range of Virtual Network Identifiers.\n"},"vrf":{"type":"string","description":"VRF name.\n"}},"type":"object"}},"routeros:index/routingBgpInstance:RoutingBgpInstance":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.RoutingBgpInstance(\"test\", {});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.RoutingBgpInstance(\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.RoutingBgpInstance(\"test\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRoutingBgpInstance(ctx, \"test\", 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.routeros.RoutingBgpInstance;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new RoutingBgpInstance(\"test\");\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:RoutingBgpInstance\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/routing/bgp/instance get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/routingBgpInstance:RoutingBgpInstance test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/routingBgpInstance:RoutingBgpInstance test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"as":{"type":"string","description":"32-bit BGP autonomous system number. Value can be entered in AS-Plain and AS-Dot formats. The parameter is also used to set up the BGP confederation, in the following format: confederation_as/as. For example, if your AS is 34 and your confederation AS is 43, then as configuration should be as=43/34.\n"},"clusterId":{"type":"string","description":"In case this instance is a route reflector: the cluster ID of the router reflector cluster to this instance belongs. This attribute helps to recognize routing updates that come from another route reflector in this cluster and avoid routing information looping. Note that normally there is only one route reflector in a cluster; in this case, `cluster-id` does not need to be configured and BGP router ID is used instead.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ignoreAsPathLen":{"type":"boolean","description":"Whether to ignore the `AS_PATH` attribute in the BGP route selection algorithm. Works on input.\n"},"inactive":{"type":"boolean"},"name":{"type":"string","description":"Instance name.\n"},"routerId":{"type":"string","description":"BGP Router ID to be used. Use the ID from the `/routing/router-id` configuration by specifying the reference name, or set the ID directly by specifying IP.Equal router-ids are also used to group peers into one instance.\n"},"routingBgpInstanceId":{"type":"string","description":"The ID of this resource.\n"},"routingTable":{"type":"string","description":"Name of the routing table, to install routes in.\n"},"vrf":{"type":"string","description":"Name of the VRF BGP connections operates on. By default always use the \u003cspan pulumi-lang-nodejs=\"`main`\" pulumi-lang-dotnet=\"`Main`\" pulumi-lang-go=\"`main`\" pulumi-lang-python=\"`main`\" pulumi-lang-yaml=\"`main`\" pulumi-lang-java=\"`main`\"\u003e`main`\u003c/span\u003e routing table.\n"}},"type":"object","required":["inactive","name","routingBgpInstanceId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"as":{"type":"string","description":"32-bit BGP autonomous system number. Value can be entered in AS-Plain and AS-Dot formats. The parameter is also used to set up the BGP confederation, in the following format: confederation_as/as. For example, if your AS is 34 and your confederation AS is 43, then as configuration should be as=43/34.\n"},"clusterId":{"type":"string","description":"In case this instance is a route reflector: the cluster ID of the router reflector cluster to this instance belongs. This attribute helps to recognize routing updates that come from another route reflector in this cluster and avoid routing information looping. Note that normally there is only one route reflector in a cluster; in this case, `cluster-id` does not need to be configured and BGP router ID is used instead.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ignoreAsPathLen":{"type":"boolean","description":"Whether to ignore the `AS_PATH` attribute in the BGP route selection algorithm. Works on input.\n"},"name":{"type":"string","description":"Instance name.\n"},"routerId":{"type":"string","description":"BGP Router ID to be used. Use the ID from the `/routing/router-id` configuration by specifying the reference name, or set the ID directly by specifying IP.Equal router-ids are also used to group peers into one instance.\n"},"routingBgpInstanceId":{"type":"string","description":"The ID of this resource.\n"},"routingTable":{"type":"string","description":"Name of the routing table, to install routes in.\n"},"vrf":{"type":"string","description":"Name of the VRF BGP connections operates on. By default always use the \u003cspan pulumi-lang-nodejs=\"`main`\" pulumi-lang-dotnet=\"`Main`\" pulumi-lang-go=\"`main`\" pulumi-lang-python=\"`main`\" pulumi-lang-yaml=\"`main`\" pulumi-lang-java=\"`main`\"\u003e`main`\u003c/span\u003e routing table.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering RoutingBgpInstance resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"as":{"type":"string","description":"32-bit BGP autonomous system number. Value can be entered in AS-Plain and AS-Dot formats. The parameter is also used to set up the BGP confederation, in the following format: confederation_as/as. For example, if your AS is 34 and your confederation AS is 43, then as configuration should be as=43/34.\n"},"clusterId":{"type":"string","description":"In case this instance is a route reflector: the cluster ID of the router reflector cluster to this instance belongs. This attribute helps to recognize routing updates that come from another route reflector in this cluster and avoid routing information looping. Note that normally there is only one route reflector in a cluster; in this case, `cluster-id` does not need to be configured and BGP router ID is used instead.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"ignoreAsPathLen":{"type":"boolean","description":"Whether to ignore the `AS_PATH` attribute in the BGP route selection algorithm. Works on input.\n"},"inactive":{"type":"boolean"},"name":{"type":"string","description":"Instance name.\n"},"routerId":{"type":"string","description":"BGP Router ID to be used. Use the ID from the `/routing/router-id` configuration by specifying the reference name, or set the ID directly by specifying IP.Equal router-ids are also used to group peers into one instance.\n"},"routingBgpInstanceId":{"type":"string","description":"The ID of this resource.\n"},"routingTable":{"type":"string","description":"Name of the routing table, to install routes in.\n"},"vrf":{"type":"string","description":"Name of the VRF BGP connections operates on. By default always use the \u003cspan pulumi-lang-nodejs=\"`main`\" pulumi-lang-dotnet=\"`Main`\" pulumi-lang-go=\"`main`\" pulumi-lang-python=\"`main`\" pulumi-lang-yaml=\"`main`\" pulumi-lang-java=\"`main`\"\u003e`main`\u003c/span\u003e routing table.\n"}},"type":"object"}},"routeros:index/routingBgpTemplate:RoutingBgpTemplate":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.RoutingBgpTemplate \" pulumi-lang-dotnet=\" routeros.RoutingBgpTemplate \" pulumi-lang-go=\" RoutingBgpTemplate \" pulumi-lang-python=\" RoutingBgpTemplate \" pulumi-lang-yaml=\" routeros.RoutingBgpTemplate \" pulumi-lang-java=\" routeros.RoutingBgpTemplate \"\u003e routeros.RoutingBgpTemplate \u003c/span\u003e(Resource)\n\n\u003e [!WARNING] Using this resource you may happen unexpected behavior, for example, some of the attributes may not be removable after adding them to the TF configuration. Please report this to GitHub and it may be possible to fix it. Use the resource at your own risk as it is!\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.RoutingBgpTemplate(\"test\", {\n    name: \"test-template\",\n    as: \"65521\",\n    input: {\n        limitProcessRoutesIpv4: 5,\n        limitProcessRoutesIpv6: 5,\n    },\n    output: {\n        affinity: \"alone\",\n        keepSentAttributes: true,\n        defaultOriginate: \"never\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.RoutingBgpTemplate(\"test\",\n    name=\"test-template\",\n    as_=\"65521\",\n    input={\n        \"limit_process_routes_ipv4\": 5,\n        \"limit_process_routes_ipv6\": 5,\n    },\n    output={\n        \"affinity\": \"alone\",\n        \"keep_sent_attributes\": True,\n        \"default_originate\": \"never\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.RoutingBgpTemplate(\"test\", new()\n    {\n        Name = \"test-template\",\n        As = \"65521\",\n        Input = new Routeros.Inputs.RoutingBgpTemplateInputArgs\n        {\n            LimitProcessRoutesIpv4 = 5,\n            LimitProcessRoutesIpv6 = 5,\n        },\n        Output = new Routeros.Inputs.RoutingBgpTemplateOutputArgs\n        {\n            Affinity = \"alone\",\n            KeepSentAttributes = true,\n            DefaultOriginate = \"never\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRoutingBgpTemplate(ctx, \"test\", \u0026routeros.RoutingBgpTemplateArgs{\n\t\t\tName: pulumi.String(\"test-template\"),\n\t\t\tAs:   pulumi.String(\"65521\"),\n\t\t\tInput: \u0026routeros.RoutingBgpTemplateInputTypeArgs{\n\t\t\t\tLimitProcessRoutesIpv4: pulumi.Float64(5),\n\t\t\t\tLimitProcessRoutesIpv6: pulumi.Float64(5),\n\t\t\t},\n\t\t\tOutput: \u0026routeros.RoutingBgpTemplateOutputTypeArgs{\n\t\t\t\tAffinity:           pulumi.String(\"alone\"),\n\t\t\t\tKeepSentAttributes: pulumi.Bool(true),\n\t\t\t\tDefaultOriginate:   pulumi.String(\"never\"),\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.routeros.RoutingBgpTemplate;\nimport com.pulumi.routeros.RoutingBgpTemplateArgs;\nimport com.pulumi.routeros.inputs.RoutingBgpTemplateInputArgs;\nimport com.pulumi.routeros.inputs.RoutingBgpTemplateOutputArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new RoutingBgpTemplate(\"test\", RoutingBgpTemplateArgs.builder()\n            .name(\"test-template\")\n            .as(\"65521\")\n            .input(RoutingBgpTemplateInputArgs.builder()\n                .limitProcessRoutesIpv4(5.0)\n                .limitProcessRoutesIpv6(5.0)\n                .build())\n            .output(RoutingBgpTemplateOutputArgs.builder()\n                .affinity(\"alone\")\n                .keepSentAttributes(true)\n                .defaultOriginate(\"never\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:RoutingBgpTemplate\n    properties:\n      name: test-template\n      as: 65521\n      input:\n        limitProcessRoutesIpv4: 5\n        limitProcessRoutesIpv6: 5\n      output:\n        affinity: alone\n        keepSentAttributes: true\n        defaultOriginate: never\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/routing/bgp/template get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/routingBgpTemplate:RoutingBgpTemplate test *3\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addPathOut":{"type":"string"},"addressFamilies":{"type":"string","description":"List of address families about which this peer will exchange routing information. The remote peer must support (they usually do) BGP capabilities optional parameter to negotiate any other families than IP.\n"},"as":{"type":"string","description":"32-bit BGP autonomous system number. Value can be entered in AS-Plain and AS-Dot formats. The parameter is also used to set up the BGP confederation, in the following format: confederation_as/as . For example, if your AS is 34 and your confederation AS is 43, then as configuration should be as =43/34.\n"},"asOverride":{"type":"boolean","description":"If set, then all instances of the remote peer's AS number in the BGP AS-PATH attribute are replaced with the local AS number before sending a route update to that peer. Happens before routing filters and prepending.\n"},"ciscoVplsNlriLenFmt":{"type":"string","description":"VPLS NLRI length format type. Used for compatibility with Cisco VPLS.\n"},"clusterId":{"type":"string","description":"In case this instance is a route reflector: the cluster ID of the router reflector cluster to this instance belongs. This attribute helps to recognize routing updates that come from another route reflector in this cluster and avoid routing information looping. Note that normally there is only one route reflector in a cluster; in this case, 'cluster-id' does not need to be configured and BGP router ID is used instead.\n","deprecationMessage":"Deprecated"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"holdTime":{"type":"string","description":"Specifies the BGP Hold Time value to use when negotiating with peers. According to the BGP specification, if the router does not receive successive KEEPALIVE and/or UPDATE and/or NOTIFICATION messages within the period specified in the Hold Time field of the OPEN message, then the BGP connection to the peer will be closed. The minimal hold-time value of both peers will be actually used (note that the special value 0 or 'infinity' is lower than any other value) infinity - never expire the connection and never send keepalive messages.\n"},"input":{"$ref":"#/types/routeros:index%2FRoutingBgpTemplateInput:RoutingBgpTemplateInput","description":"A group of parameters associated with BGP input.\n"},"keepaliveTime":{"type":"string","description":"How long to keep the BGP session open after the last received 'keepalive' message.\n"},"multihop":{"type":"boolean","description":"Specifies whether the remote peer is more than one hop away. This option affects outgoing next-hop selection as described in RFC 4271 (for EBGP only, excluding EBGP peers local to the confederation). It also affects: whether to accept connections from peers that are not in the same network (the remote address of the connection is used for this check); whether to accept incoming routes with NEXT_HOP attribute that is not in the same network as the address used to establish the connection; the target-scope of the routes installed from this peer; routes from multi-hop or IBGP peers resolve their next-hops through IGP routes by default.\n"},"name":{"type":"string","description":"Name of the BGP template.\n"},"nexthopChoice":{"type":"string","description":"Affects the outgoing NEXT*HOP attribute selection. Note that next-hops set in filters always take precedence. Also note that the next-hop is not changed on route reflection, except when it's set in the filter. default - select the next-hop as described in RFC 4271 force-self - always use a local address of the interface that is used to connect to the peer as the next-hop; propagate - try to propagate further the next-hop received; i.e. if the route has BGP NEXT*HOP attribute, then use it as the next-hop, otherwise, fall back to the default case.\n"},"output":{"$ref":"#/types/routeros:index%2FRoutingBgpTemplateOutput:RoutingBgpTemplateOutput","description":"A group of parameters associated with BGP output.\n"},"removePrivateAs":{"type":"boolean","description":"If set, then the BGP AS-PATH attribute is removed before sending out route updates if the attribute contains only private AS numbers. The removal process happens before routing filters are applied and before the local, AS number is prepended to the AS path.\n"},"routerId":{"type":"string","description":"BGP Router ID to be used. Use the ID from the /routing/router-id configuration by specifying the reference name, or set the ID directly by specifying IP. Equal router-ids are also used to group peers into one instance.\n","deprecationMessage":"Deprecated"},"routingBgpTemplateId":{"type":"string","description":"The ID of this resource.\n"},"routingTable":{"type":"string","description":"Name of the routing table, to install routes in.\n"},"saveTo":{"type":"string","description":"Filename to be used to save BGP protocol-specific packet content (Exported PDU) into pcap file. This method allows much simpler peer-specific packet capturing for debugging purposes. Pcap files in this format can also be loaded to create virtual BGP peers to recreate conditions that happened at the time when packet capture was running.\n"},"templates":{"type":"array","items":{"type":"string"},"description":"List of template names from which to inherit parameters. Useful feature, to easily configure groups with overlapping configuration options.\n"},"useBfd":{"type":"boolean","description":"Whether to use the BFD protocol for faster connection state detection.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object","required":["as","default","holdTime","name","routingBgpTemplateId","routingTable"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addPathOut":{"type":"string"},"addressFamilies":{"type":"string","description":"List of address families about which this peer will exchange routing information. The remote peer must support (they usually do) BGP capabilities optional parameter to negotiate any other families than IP.\n"},"as":{"type":"string","description":"32-bit BGP autonomous system number. Value can be entered in AS-Plain and AS-Dot formats. The parameter is also used to set up the BGP confederation, in the following format: confederation_as/as . For example, if your AS is 34 and your confederation AS is 43, then as configuration should be as =43/34.\n"},"asOverride":{"type":"boolean","description":"If set, then all instances of the remote peer's AS number in the BGP AS-PATH attribute are replaced with the local AS number before sending a route update to that peer. Happens before routing filters and prepending.\n"},"ciscoVplsNlriLenFmt":{"type":"string","description":"VPLS NLRI length format type. Used for compatibility with Cisco VPLS.\n"},"clusterId":{"type":"string","description":"In case this instance is a route reflector: the cluster ID of the router reflector cluster to this instance belongs. This attribute helps to recognize routing updates that come from another route reflector in this cluster and avoid routing information looping. Note that normally there is only one route reflector in a cluster; in this case, 'cluster-id' does not need to be configured and BGP router ID is used instead.\n","deprecationMessage":"Deprecated"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"holdTime":{"type":"string","description":"Specifies the BGP Hold Time value to use when negotiating with peers. According to the BGP specification, if the router does not receive successive KEEPALIVE and/or UPDATE and/or NOTIFICATION messages within the period specified in the Hold Time field of the OPEN message, then the BGP connection to the peer will be closed. The minimal hold-time value of both peers will be actually used (note that the special value 0 or 'infinity' is lower than any other value) infinity - never expire the connection and never send keepalive messages.\n"},"input":{"$ref":"#/types/routeros:index%2FRoutingBgpTemplateInput:RoutingBgpTemplateInput","description":"A group of parameters associated with BGP input.\n"},"keepaliveTime":{"type":"string","description":"How long to keep the BGP session open after the last received 'keepalive' message.\n"},"multihop":{"type":"boolean","description":"Specifies whether the remote peer is more than one hop away. This option affects outgoing next-hop selection as described in RFC 4271 (for EBGP only, excluding EBGP peers local to the confederation). It also affects: whether to accept connections from peers that are not in the same network (the remote address of the connection is used for this check); whether to accept incoming routes with NEXT_HOP attribute that is not in the same network as the address used to establish the connection; the target-scope of the routes installed from this peer; routes from multi-hop or IBGP peers resolve their next-hops through IGP routes by default.\n"},"name":{"type":"string","description":"Name of the BGP template.\n"},"nexthopChoice":{"type":"string","description":"Affects the outgoing NEXT*HOP attribute selection. Note that next-hops set in filters always take precedence. Also note that the next-hop is not changed on route reflection, except when it's set in the filter. default - select the next-hop as described in RFC 4271 force-self - always use a local address of the interface that is used to connect to the peer as the next-hop; propagate - try to propagate further the next-hop received; i.e. if the route has BGP NEXT*HOP attribute, then use it as the next-hop, otherwise, fall back to the default case.\n"},"output":{"$ref":"#/types/routeros:index%2FRoutingBgpTemplateOutput:RoutingBgpTemplateOutput","description":"A group of parameters associated with BGP output.\n"},"removePrivateAs":{"type":"boolean","description":"If set, then the BGP AS-PATH attribute is removed before sending out route updates if the attribute contains only private AS numbers. The removal process happens before routing filters are applied and before the local, AS number is prepended to the AS path.\n"},"routerId":{"type":"string","description":"BGP Router ID to be used. Use the ID from the /routing/router-id configuration by specifying the reference name, or set the ID directly by specifying IP. Equal router-ids are also used to group peers into one instance.\n","deprecationMessage":"Deprecated"},"routingBgpTemplateId":{"type":"string","description":"The ID of this resource.\n"},"routingTable":{"type":"string","description":"Name of the routing table, to install routes in.\n"},"saveTo":{"type":"string","description":"Filename to be used to save BGP protocol-specific packet content (Exported PDU) into pcap file. This method allows much simpler peer-specific packet capturing for debugging purposes. Pcap files in this format can also be loaded to create virtual BGP peers to recreate conditions that happened at the time when packet capture was running.\n"},"templates":{"type":"array","items":{"type":"string"},"description":"List of template names from which to inherit parameters. Useful feature, to easily configure groups with overlapping configuration options.\n"},"useBfd":{"type":"boolean","description":"Whether to use the BFD protocol for faster connection state detection.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"requiredInputs":["as"],"stateInputs":{"description":"Input properties used for looking up and filtering RoutingBgpTemplate resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addPathOut":{"type":"string"},"addressFamilies":{"type":"string","description":"List of address families about which this peer will exchange routing information. The remote peer must support (they usually do) BGP capabilities optional parameter to negotiate any other families than IP.\n"},"as":{"type":"string","description":"32-bit BGP autonomous system number. Value can be entered in AS-Plain and AS-Dot formats. The parameter is also used to set up the BGP confederation, in the following format: confederation_as/as . For example, if your AS is 34 and your confederation AS is 43, then as configuration should be as =43/34.\n"},"asOverride":{"type":"boolean","description":"If set, then all instances of the remote peer's AS number in the BGP AS-PATH attribute are replaced with the local AS number before sending a route update to that peer. Happens before routing filters and prepending.\n"},"ciscoVplsNlriLenFmt":{"type":"string","description":"VPLS NLRI length format type. Used for compatibility with Cisco VPLS.\n"},"clusterId":{"type":"string","description":"In case this instance is a route reflector: the cluster ID of the router reflector cluster to this instance belongs. This attribute helps to recognize routing updates that come from another route reflector in this cluster and avoid routing information looping. Note that normally there is only one route reflector in a cluster; in this case, 'cluster-id' does not need to be configured and BGP router ID is used instead.\n","deprecationMessage":"Deprecated"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"holdTime":{"type":"string","description":"Specifies the BGP Hold Time value to use when negotiating with peers. According to the BGP specification, if the router does not receive successive KEEPALIVE and/or UPDATE and/or NOTIFICATION messages within the period specified in the Hold Time field of the OPEN message, then the BGP connection to the peer will be closed. The minimal hold-time value of both peers will be actually used (note that the special value 0 or 'infinity' is lower than any other value) infinity - never expire the connection and never send keepalive messages.\n"},"input":{"$ref":"#/types/routeros:index%2FRoutingBgpTemplateInput:RoutingBgpTemplateInput","description":"A group of parameters associated with BGP input.\n"},"keepaliveTime":{"type":"string","description":"How long to keep the BGP session open after the last received 'keepalive' message.\n"},"multihop":{"type":"boolean","description":"Specifies whether the remote peer is more than one hop away. This option affects outgoing next-hop selection as described in RFC 4271 (for EBGP only, excluding EBGP peers local to the confederation). It also affects: whether to accept connections from peers that are not in the same network (the remote address of the connection is used for this check); whether to accept incoming routes with NEXT_HOP attribute that is not in the same network as the address used to establish the connection; the target-scope of the routes installed from this peer; routes from multi-hop or IBGP peers resolve their next-hops through IGP routes by default.\n"},"name":{"type":"string","description":"Name of the BGP template.\n"},"nexthopChoice":{"type":"string","description":"Affects the outgoing NEXT*HOP attribute selection. Note that next-hops set in filters always take precedence. Also note that the next-hop is not changed on route reflection, except when it's set in the filter. default - select the next-hop as described in RFC 4271 force-self - always use a local address of the interface that is used to connect to the peer as the next-hop; propagate - try to propagate further the next-hop received; i.e. if the route has BGP NEXT*HOP attribute, then use it as the next-hop, otherwise, fall back to the default case.\n"},"output":{"$ref":"#/types/routeros:index%2FRoutingBgpTemplateOutput:RoutingBgpTemplateOutput","description":"A group of parameters associated with BGP output.\n"},"removePrivateAs":{"type":"boolean","description":"If set, then the BGP AS-PATH attribute is removed before sending out route updates if the attribute contains only private AS numbers. The removal process happens before routing filters are applied and before the local, AS number is prepended to the AS path.\n"},"routerId":{"type":"string","description":"BGP Router ID to be used. Use the ID from the /routing/router-id configuration by specifying the reference name, or set the ID directly by specifying IP. Equal router-ids are also used to group peers into one instance.\n","deprecationMessage":"Deprecated"},"routingBgpTemplateId":{"type":"string","description":"The ID of this resource.\n"},"routingTable":{"type":"string","description":"Name of the routing table, to install routes in.\n"},"saveTo":{"type":"string","description":"Filename to be used to save BGP protocol-specific packet content (Exported PDU) into pcap file. This method allows much simpler peer-specific packet capturing for debugging purposes. Pcap files in this format can also be loaded to create virtual BGP peers to recreate conditions that happened at the time when packet capture was running.\n"},"templates":{"type":"array","items":{"type":"string"},"description":"List of template names from which to inherit parameters. Useful feature, to easily configure groups with overlapping configuration options.\n"},"useBfd":{"type":"boolean","description":"Whether to use the BFD protocol for faster connection state detection.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object"}},"routeros:index/routingBgpVpn:RoutingBgpVpn":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.RoutingBgpVpn(\"test\", {\n    disabled: false,\n    \"export\": {\n        redistribute: \"connected\",\n        routeTargets: [\"1:1\"],\n    },\n    \"import\": {\n        routeTargets: [\"1:2\"],\n    },\n    labelAllocationPolicy: \"per-vrf\",\n    name: \"bgp-mpls-vpn-test\",\n    routeDistinguisher: \"1.2.3.4:1\",\n    vrf: \"vrfTest1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.RoutingBgpVpn(\"test\",\n    disabled=False,\n    export={\n        \"redistribute\": \"connected\",\n        \"route_targets\": [\"1:1\"],\n    },\n    import_={\n        \"route_targets\": [\"1:2\"],\n    },\n    label_allocation_policy=\"per-vrf\",\n    name=\"bgp-mpls-vpn-test\",\n    route_distinguisher=\"1.2.3.4:1\",\n    vrf=\"vrfTest1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.RoutingBgpVpn(\"test\", new()\n    {\n        Disabled = false,\n        Export = new Routeros.Inputs.RoutingBgpVpnExportArgs\n        {\n            Redistribute = \"connected\",\n            RouteTargets = new[]\n            {\n                \"1:1\",\n            },\n        },\n        Import = new Routeros.Inputs.RoutingBgpVpnImportArgs\n        {\n            RouteTargets = new[]\n            {\n                \"1:2\",\n            },\n        },\n        LabelAllocationPolicy = \"per-vrf\",\n        Name = \"bgp-mpls-vpn-test\",\n        RouteDistinguisher = \"1.2.3.4:1\",\n        Vrf = \"vrfTest1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRoutingBgpVpn(ctx, \"test\", \u0026routeros.RoutingBgpVpnArgs{\n\t\t\tDisabled: pulumi.Bool(false),\n\t\t\tExport: \u0026routeros.RoutingBgpVpnExportArgs{\n\t\t\t\tRedistribute: pulumi.String(\"connected\"),\n\t\t\t\tRouteTargets: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"1:1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tImport: \u0026routeros.RoutingBgpVpnImportArgs{\n\t\t\t\tRouteTargets: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"1:2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabelAllocationPolicy: pulumi.String(\"per-vrf\"),\n\t\t\tName:                  pulumi.String(\"bgp-mpls-vpn-test\"),\n\t\t\tRouteDistinguisher:    pulumi.String(\"1.2.3.4:1\"),\n\t\t\tVrf:                   pulumi.String(\"vrfTest1\"),\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.routeros.RoutingBgpVpn;\nimport com.pulumi.routeros.RoutingBgpVpnArgs;\nimport com.pulumi.routeros.inputs.RoutingBgpVpnExportArgs;\nimport com.pulumi.routeros.inputs.RoutingBgpVpnImportArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new RoutingBgpVpn(\"test\", RoutingBgpVpnArgs.builder()\n            .disabled(false)\n            .export(RoutingBgpVpnExportArgs.builder()\n                .redistribute(\"connected\")\n                .routeTargets(\"1:1\")\n                .build())\n            .import_(RoutingBgpVpnImportArgs.builder()\n                .routeTargets(\"1:2\")\n                .build())\n            .labelAllocationPolicy(\"per-vrf\")\n            .name(\"bgp-mpls-vpn-test\")\n            .routeDistinguisher(\"1.2.3.4:1\")\n            .vrf(\"vrfTest1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:RoutingBgpVpn\n    properties:\n      disabled: false\n      export:\n        redistribute: connected\n        routeTargets:\n          - 1:1\n      import:\n        routeTargets:\n          - 1:2\n      labelAllocationPolicy: per-vrf\n      name: bgp-mpls-vpn-test\n      routeDistinguisher: 1.2.3.4:1\n      vrf: vrfTest1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/routing/bgp/vpn get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/routingBgpVpn:RoutingBgpVpn test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/routingBgpVpn:RoutingBgpVpn test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"export":{"$ref":"#/types/routeros:index%2FRoutingBgpVpnExport:RoutingBgpVpnExport","description":"A group of parameters associated with the route export.\n"},"import":{"$ref":"#/types/routeros:index%2FRoutingBgpVpnImport:RoutingBgpVpnImport","description":"A group of parameters associated with the route import.\n"},"inactive":{"type":"boolean"},"instance":{"type":"string","description":"Name of the instance this VPN is assigned to.\n"},"labelAllocationPolicy":{"type":"string","description":"Label allocationpolicy.\n"},"name":{"type":"string","description":"VPN instance name.\n"},"routeDistinguisher":{"type":"string","description":"Helps to distinguish between overlapping routes from multiple VRFs. Should be unique per VRF. Accepts 3 types of formats.\n"},"routingBgpVpnId":{"type":"string","description":"The ID of this resource.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object","required":["inactive","name","routeDistinguisher","routingBgpVpnId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"export":{"$ref":"#/types/routeros:index%2FRoutingBgpVpnExport:RoutingBgpVpnExport","description":"A group of parameters associated with the route export.\n"},"import":{"$ref":"#/types/routeros:index%2FRoutingBgpVpnImport:RoutingBgpVpnImport","description":"A group of parameters associated with the route import.\n"},"instance":{"type":"string","description":"Name of the instance this VPN is assigned to.\n"},"labelAllocationPolicy":{"type":"string","description":"Label allocationpolicy.\n"},"name":{"type":"string","description":"VPN instance name.\n"},"routeDistinguisher":{"type":"string","description":"Helps to distinguish between overlapping routes from multiple VRFs. Should be unique per VRF. Accepts 3 types of formats.\n"},"routingBgpVpnId":{"type":"string","description":"The ID of this resource.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"requiredInputs":["routeDistinguisher"],"stateInputs":{"description":"Input properties used for looking up and filtering RoutingBgpVpn resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"export":{"$ref":"#/types/routeros:index%2FRoutingBgpVpnExport:RoutingBgpVpnExport","description":"A group of parameters associated with the route export.\n"},"import":{"$ref":"#/types/routeros:index%2FRoutingBgpVpnImport:RoutingBgpVpnImport","description":"A group of parameters associated with the route import.\n"},"inactive":{"type":"boolean"},"instance":{"type":"string","description":"Name of the instance this VPN is assigned to.\n"},"labelAllocationPolicy":{"type":"string","description":"Label allocationpolicy.\n"},"name":{"type":"string","description":"VPN instance name.\n"},"routeDistinguisher":{"type":"string","description":"Helps to distinguish between overlapping routes from multiple VRFs. Should be unique per VRF. Accepts 3 types of formats.\n"},"routingBgpVpnId":{"type":"string","description":"The ID of this resource.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object"}},"routeros:index/routingFilterRule:RoutingFilterRule":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.RoutingFilterRule(\"test\", {\n    chain: \"testChain\",\n    rule: \"if (dst in 192.168.1.0/24 \u0026\u0026 dst-len\u003e24) {set distance +1; accept} else {set distance -1; accept}\",\n    comment: \"comment\",\n    disabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.RoutingFilterRule(\"test\",\n    chain=\"testChain\",\n    rule=\"if (dst in 192.168.1.0/24 \u0026\u0026 dst-len\u003e24) {set distance +1; accept} else {set distance -1; accept}\",\n    comment=\"comment\",\n    disabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.RoutingFilterRule(\"test\", new()\n    {\n        Chain = \"testChain\",\n        Rule = \"if (dst in 192.168.1.0/24 \u0026\u0026 dst-len\u003e24) {set distance +1; accept} else {set distance -1; accept}\",\n        Comment = \"comment\",\n        Disabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRoutingFilterRule(ctx, \"test\", \u0026routeros.RoutingFilterRuleArgs{\n\t\t\tChain:    pulumi.String(\"testChain\"),\n\t\t\tRule:     pulumi.String(\"if (dst in 192.168.1.0/24 \u0026\u0026 dst-len\u003e24) {set distance +1; accept} else {set distance -1; accept}\"),\n\t\t\tComment:  pulumi.String(\"comment\"),\n\t\t\tDisabled: 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.routeros.RoutingFilterRule;\nimport com.pulumi.routeros.RoutingFilterRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new RoutingFilterRule(\"test\", RoutingFilterRuleArgs.builder()\n            .chain(\"testChain\")\n            .rule(\"if (dst in 192.168.1.0/24 \u0026\u0026 dst-len\u003e24) {set distance +1; accept} else {set distance -1; accept}\")\n            .comment(\"comment\")\n            .disabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:RoutingFilterRule\n    properties:\n      chain: testChain\n      rule: if (dst in 192.168.1.0/24 \u0026\u0026 dst-len\u003e24) {set distance +1; accept} else {set distance -1; accept}\n      comment: comment\n      disabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e /routing/filter/rule/print show-ids\n\n```sh\n$ pulumi import routeros:index/routingFilterRule:RoutingFilterRule test \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/routingFilterRule:RoutingFilterRule test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"chain":{"type":"string","description":"Chain name.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"inactive":{"type":"boolean"},"routingFilterRuleId":{"type":"string","description":"The ID of this resource.\n"},"rule":{"type":"string","description":"Filter rule.\n"}},"type":"object","required":["chain","inactive","routingFilterRuleId","rule"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"chain":{"type":"string","description":"Chain name.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"routingFilterRuleId":{"type":"string","description":"The ID of this resource.\n"},"rule":{"type":"string","description":"Filter rule.\n"}},"requiredInputs":["chain","rule"],"stateInputs":{"description":"Input properties used for looking up and filtering RoutingFilterRule resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"chain":{"type":"string","description":"Chain name.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"inactive":{"type":"boolean"},"routingFilterRuleId":{"type":"string","description":"The ID of this resource.\n"},"rule":{"type":"string","description":"Filter rule.\n"}},"type":"object"}},"routeros:index/routingIgmpProxyInterface:RoutingIgmpProxyInterface":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.RoutingIgmpProxyInterface(\"test\", {\n    alternativeSubnets: [\n        \"0.0.0.1/32\",\n        \"0.0.0.2/32\",\n    ],\n    disabled: true,\n    \"interface\": \"lo\",\n    threshold: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.RoutingIgmpProxyInterface(\"test\",\n    alternative_subnets=[\n        \"0.0.0.1/32\",\n        \"0.0.0.2/32\",\n    ],\n    disabled=True,\n    interface=\"lo\",\n    threshold=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.RoutingIgmpProxyInterface(\"test\", new()\n    {\n        AlternativeSubnets = new[]\n        {\n            \"0.0.0.1/32\",\n            \"0.0.0.2/32\",\n        },\n        Disabled = true,\n        Interface = \"lo\",\n        Threshold = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRoutingIgmpProxyInterface(ctx, \"test\", \u0026routeros.RoutingIgmpProxyInterfaceArgs{\n\t\t\tAlternativeSubnets: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"0.0.0.1/32\"),\n\t\t\t\tpulumi.String(\"0.0.0.2/32\"),\n\t\t\t},\n\t\t\tDisabled:  pulumi.Bool(true),\n\t\t\tInterface: pulumi.String(\"lo\"),\n\t\t\tThreshold: pulumi.Float64(5),\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.routeros.RoutingIgmpProxyInterface;\nimport com.pulumi.routeros.RoutingIgmpProxyInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new RoutingIgmpProxyInterface(\"test\", RoutingIgmpProxyInterfaceArgs.builder()\n            .alternativeSubnets(            \n                \"0.0.0.1/32\",\n                \"0.0.0.2/32\")\n            .disabled(true)\n            .interface_(\"lo\")\n            .threshold(5.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:RoutingIgmpProxyInterface\n    properties:\n      alternativeSubnets:\n        - 0.0.0.1/32\n        - 0.0.0.2/32\n      disabled: true\n      interface: lo\n      threshold: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/routing/igmp/proxy/interface get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/routingIgmpProxyInterface:RoutingIgmpProxyInterface test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/routingIgmpProxyInterface:RoutingIgmpProxyInterface test \"interface=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"alternativeSubnets":{"type":"array","items":{"type":"string"},"description":"By default, only packets from directly attached subnets are accepted. This parameter can be used to specify a list of alternative valid packet source subnets, both for data or IGMP packets. Has an effect only on the upstream interface. Should be used when the source of multicast data often is in a different IP network.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"inactive":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface.\n"},"routingIgmpProxyInterfaceId":{"type":"string","description":"The ID of this resource.\n"},"threshold":{"type":"number","description":"Minimal TTL. Packets received with a lower TTL value are ignored.\n"},"upstream":{"type":"boolean","description":"The interface is called \u003cspan pulumi-lang-nodejs=\"`upstream`\" pulumi-lang-dotnet=\"`Upstream`\" pulumi-lang-go=\"`upstream`\" pulumi-lang-python=\"`upstream`\" pulumi-lang-yaml=\"`upstream`\" pulumi-lang-java=\"`upstream`\"\u003e`upstream`\u003c/span\u003e if it's in the direction of the root of the multicast tree. An IGMP forwarding router must have exactly one upstream interface configured. The upstream interface is used to send out IGMP membership requests.\n"}},"type":"object","required":["inactive","interface","routingIgmpProxyInterfaceId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"alternativeSubnets":{"type":"array","items":{"type":"string"},"description":"By default, only packets from directly attached subnets are accepted. This parameter can be used to specify a list of alternative valid packet source subnets, both for data or IGMP packets. Has an effect only on the upstream interface. Should be used when the source of multicast data often is in a different IP network.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface.\n"},"routingIgmpProxyInterfaceId":{"type":"string","description":"The ID of this resource.\n"},"threshold":{"type":"number","description":"Minimal TTL. Packets received with a lower TTL value are ignored.\n"},"upstream":{"type":"boolean","description":"The interface is called \u003cspan pulumi-lang-nodejs=\"`upstream`\" pulumi-lang-dotnet=\"`Upstream`\" pulumi-lang-go=\"`upstream`\" pulumi-lang-python=\"`upstream`\" pulumi-lang-yaml=\"`upstream`\" pulumi-lang-java=\"`upstream`\"\u003e`upstream`\u003c/span\u003e if it's in the direction of the root of the multicast tree. An IGMP forwarding router must have exactly one upstream interface configured. The upstream interface is used to send out IGMP membership requests.\n"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering RoutingIgmpProxyInterface resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"alternativeSubnets":{"type":"array","items":{"type":"string"},"description":"By default, only packets from directly attached subnets are accepted. This parameter can be used to specify a list of alternative valid packet source subnets, both for data or IGMP packets. Has an effect only on the upstream interface. Should be used when the source of multicast data often is in a different IP network.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"inactive":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface.\n"},"routingIgmpProxyInterfaceId":{"type":"string","description":"The ID of this resource.\n"},"threshold":{"type":"number","description":"Minimal TTL. Packets received with a lower TTL value are ignored.\n"},"upstream":{"type":"boolean","description":"The interface is called \u003cspan pulumi-lang-nodejs=\"`upstream`\" pulumi-lang-dotnet=\"`Upstream`\" pulumi-lang-go=\"`upstream`\" pulumi-lang-python=\"`upstream`\" pulumi-lang-yaml=\"`upstream`\" pulumi-lang-java=\"`upstream`\"\u003e`upstream`\u003c/span\u003e if it's in the direction of the root of the multicast tree. An IGMP forwarding router must have exactly one upstream interface configured. The upstream interface is used to send out IGMP membership requests.\n"}},"type":"object"}},"routeros:index/routingOspfArea:RoutingOspfArea":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testRoutingOspfInstance = new routeros.RoutingOspfInstance(\"test_routing_ospf_instance\", {name: \"test_routing_ospf_instance\"});\nconst testRoutingOspfArea = new routeros.RoutingOspfArea(\"test_routing_ospf_area\", {\n    name: \"test_routing_ospf_area\",\n    instance: testRoutingOspfInstance.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_routing_ospf_instance = routeros.RoutingOspfInstance(\"test_routing_ospf_instance\", name=\"test_routing_ospf_instance\")\ntest_routing_ospf_area = routeros.RoutingOspfArea(\"test_routing_ospf_area\",\n    name=\"test_routing_ospf_area\",\n    instance=test_routing_ospf_instance.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRoutingOspfInstance = new Routeros.RoutingOspfInstance(\"test_routing_ospf_instance\", new()\n    {\n        Name = \"test_routing_ospf_instance\",\n    });\n\n    var testRoutingOspfArea = new Routeros.RoutingOspfArea(\"test_routing_ospf_area\", new()\n    {\n        Name = \"test_routing_ospf_area\",\n        Instance = testRoutingOspfInstance.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestRoutingOspfInstance, err := routeros.NewRoutingOspfInstance(ctx, \"test_routing_ospf_instance\", \u0026routeros.RoutingOspfInstanceArgs{\n\t\t\tName: pulumi.String(\"test_routing_ospf_instance\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewRoutingOspfArea(ctx, \"test_routing_ospf_area\", \u0026routeros.RoutingOspfAreaArgs{\n\t\t\tName:     pulumi.String(\"test_routing_ospf_area\"),\n\t\t\tInstance: testRoutingOspfInstance.Name,\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.routeros.RoutingOspfInstance;\nimport com.pulumi.routeros.RoutingOspfInstanceArgs;\nimport com.pulumi.routeros.RoutingOspfArea;\nimport com.pulumi.routeros.RoutingOspfAreaArgs;\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 testRoutingOspfInstance = new RoutingOspfInstance(\"testRoutingOspfInstance\", RoutingOspfInstanceArgs.builder()\n            .name(\"test_routing_ospf_instance\")\n            .build());\n\n        var testRoutingOspfArea = new RoutingOspfArea(\"testRoutingOspfArea\", RoutingOspfAreaArgs.builder()\n            .name(\"test_routing_ospf_area\")\n            .instance(testRoutingOspfInstance.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRoutingOspfInstance:\n    type: routeros:RoutingOspfInstance\n    name: test_routing_ospf_instance\n    properties:\n      name: test_routing_ospf_instance\n  testRoutingOspfArea:\n    type: routeros:RoutingOspfArea\n    name: test_routing_ospf_area\n    properties:\n      name: test_routing_ospf_area\n      instance: ${testRoutingOspfInstance.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e /routing/ospf/area/print show-ids\n\n```sh\n$ pulumi import routeros:index/routingOspfArea:RoutingOspfArea test_routing_ospf_area \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/routingOspfArea:RoutingOspfArea test_routing_ospf_area \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"areaId":{"type":"string","description":"OSPF area identifier.\n"},"comment":{"type":"string"},"defaultCost":{"type":"number","description":"Default cost of injected LSAs into the area.\n"},"disabled":{"type":"boolean"},"inactive":{"type":"boolean"},"instance":{"type":"string","description":"Name of the OSPF instance this area belongs to.\n"},"name":{"type":"string"},"noSummaries":{"type":"boolean","description":"If set then the area will not flood summary LSAs in the stub area. \\n\\nThe correct value of this attribute may not be displayed in Winbox. Please check the parameters in the console!\\n\\n\n"},"nssaTranslate":{"type":"string","description":"The parameter indicates which ABR will be used as a translator from type7 to type5 LSA.\n"},"routingOspfAreaId":{"type":"string","description":"The ID of this resource.\n"},"type":{"type":"string","description":"The area type.\n"}},"type":"object","required":["inactive","instance","name","routingOspfAreaId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"areaId":{"type":"string","description":"OSPF area identifier.\n"},"comment":{"type":"string"},"defaultCost":{"type":"number","description":"Default cost of injected LSAs into the area.\n"},"disabled":{"type":"boolean"},"instance":{"type":"string","description":"Name of the OSPF instance this area belongs to.\n"},"name":{"type":"string"},"noSummaries":{"type":"boolean","description":"If set then the area will not flood summary LSAs in the stub area. \\n\\nThe correct value of this attribute may not be displayed in Winbox. Please check the parameters in the console!\\n\\n\n"},"nssaTranslate":{"type":"string","description":"The parameter indicates which ABR will be used as a translator from type7 to type5 LSA.\n"},"routingOspfAreaId":{"type":"string","description":"The ID of this resource.\n"},"type":{"type":"string","description":"The area type.\n"}},"requiredInputs":["instance"],"stateInputs":{"description":"Input properties used for looking up and filtering RoutingOspfArea resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"areaId":{"type":"string","description":"OSPF area identifier.\n"},"comment":{"type":"string"},"defaultCost":{"type":"number","description":"Default cost of injected LSAs into the area.\n"},"disabled":{"type":"boolean"},"inactive":{"type":"boolean"},"instance":{"type":"string","description":"Name of the OSPF instance this area belongs to.\n"},"name":{"type":"string"},"noSummaries":{"type":"boolean","description":"If set then the area will not flood summary LSAs in the stub area. \\n\\nThe correct value of this attribute may not be displayed in Winbox. Please check the parameters in the console!\\n\\n\n"},"nssaTranslate":{"type":"string","description":"The parameter indicates which ABR will be used as a translator from type7 to type5 LSA.\n"},"routingOspfAreaId":{"type":"string","description":"The ID of this resource.\n"},"type":{"type":"string","description":"The area type.\n"}},"type":"object"}},"routeros:index/routingOspfAreaRange:RoutingOspfAreaRange":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.RoutingOspfAreaRange(\"test\", {\n    area: ospf_area_1.name,\n    advertise: true,\n    prefix: \"::/64\",\n    disabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.RoutingOspfAreaRange(\"test\",\n    area=ospf_area_1[\"name\"],\n    advertise=True,\n    prefix=\"::/64\",\n    disabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.RoutingOspfAreaRange(\"test\", new()\n    {\n        Area = ospf_area_1.Name,\n        Advertise = true,\n        Prefix = \"::/64\",\n        Disabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRoutingOspfAreaRange(ctx, \"test\", \u0026routeros.RoutingOspfAreaRangeArgs{\n\t\t\tArea:      pulumi.Any(ospf_area_1.Name),\n\t\t\tAdvertise: pulumi.Bool(true),\n\t\t\tPrefix:    pulumi.String(\"::/64\"),\n\t\t\tDisabled:  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.routeros.RoutingOspfAreaRange;\nimport com.pulumi.routeros.RoutingOspfAreaRangeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new RoutingOspfAreaRange(\"test\", RoutingOspfAreaRangeArgs.builder()\n            .area(ospf_area_1.name())\n            .advertise(true)\n            .prefix(\"::/64\")\n            .disabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:RoutingOspfAreaRange\n    properties:\n      area: ${[\"ospf-area-1\"].name}\n      advertise: true\n      prefix: ::/64\n      disabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/routing/ospf/area/range get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/routingOspfAreaRange:RoutingOspfAreaRange test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/routingOspfAreaRange:RoutingOspfAreaRange test \"comment=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"advertise":{"type":"boolean","description":"Whether to create a summary LSA and advertise it to the adjacent areas.\n"},"area":{"type":"string","description":"The OSPF area associated with this range.\n"},"comment":{"type":"string"},"cost":{"type":"number","description":"The cost of the summary LSA this range will createdefault - use the largest cost of all routes used (i.e. routes that fall within this range).\n"},"disabled":{"type":"boolean"},"prefix":{"type":"string","description":"The network prefix of this range.\n"},"routingOspfAreaRangeId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["area","routingOspfAreaRangeId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"advertise":{"type":"boolean","description":"Whether to create a summary LSA and advertise it to the adjacent areas.\n"},"area":{"type":"string","description":"The OSPF area associated with this range.\n"},"comment":{"type":"string"},"cost":{"type":"number","description":"The cost of the summary LSA this range will createdefault - use the largest cost of all routes used (i.e. routes that fall within this range).\n"},"disabled":{"type":"boolean"},"prefix":{"type":"string","description":"The network prefix of this range.\n"},"routingOspfAreaRangeId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["area"],"stateInputs":{"description":"Input properties used for looking up and filtering RoutingOspfAreaRange resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"advertise":{"type":"boolean","description":"Whether to create a summary LSA and advertise it to the adjacent areas.\n"},"area":{"type":"string","description":"The OSPF area associated with this range.\n"},"comment":{"type":"string"},"cost":{"type":"number","description":"The cost of the summary LSA this range will createdefault - use the largest cost of all routes used (i.e. routes that fall within this range).\n"},"disabled":{"type":"boolean"},"prefix":{"type":"string","description":"The network prefix of this range.\n"},"routingOspfAreaRangeId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/routingOspfInstance:RoutingOspfInstance":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testRoutingOspfInstance = new routeros.RoutingOspfInstance(\"test_routing_ospf_instance\", {name: \"test_routing_ospf_instance\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_routing_ospf_instance = routeros.RoutingOspfInstance(\"test_routing_ospf_instance\", name=\"test_routing_ospf_instance\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRoutingOspfInstance = new Routeros.RoutingOspfInstance(\"test_routing_ospf_instance\", new()\n    {\n        Name = \"test_routing_ospf_instance\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRoutingOspfInstance(ctx, \"test_routing_ospf_instance\", \u0026routeros.RoutingOspfInstanceArgs{\n\t\t\tName: pulumi.String(\"test_routing_ospf_instance\"),\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.routeros.RoutingOspfInstance;\nimport com.pulumi.routeros.RoutingOspfInstanceArgs;\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 testRoutingOspfInstance = new RoutingOspfInstance(\"testRoutingOspfInstance\", RoutingOspfInstanceArgs.builder()\n            .name(\"test_routing_ospf_instance\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRoutingOspfInstance:\n    type: routeros:RoutingOspfInstance\n    name: test_routing_ospf_instance\n    properties:\n      name: test_routing_ospf_instance\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e /routing/ospf/instance/print show-ids\n\n```sh\n$ pulumi import routeros:index/routingOspfInstance:RoutingOspfInstance test_routing_ospf_instance \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/routingOspfInstance:RoutingOspfInstance test_routing_ospf_instance \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"domainId":{"type":"string","description":"MPLS-related parameter.\n"},"domainTag":{"type":"number","description":"if set, then used in route redistribution (as route-tag in all external LSAs generated by this router), and in route calculation (all external LSAs having this route tag are ignored). Needed for interoperability with older Cisco systems. By default not set.\n"},"inFilterChain":{"type":"string","description":"name of the routing filter chain used for incoming prefixes\n"},"inactive":{"type":"boolean"},"mplsTeAddress":{"type":"string","description":"the area used for MPLS traffic engineering.\n"},"mplsTeArea":{"type":"string","description":"the area used for MPLS traffic engineering.\n"},"name":{"type":"string"},"originateDefault":{"type":"string","description":"Specifies default route (0.0.0.0/0) distribution method.\n"},"outFilterChain":{"type":"string","description":"name of the routing filter chain used for outgoing prefixes filtering.\n"},"outFilterSelect":{"type":"string","description":"name of the routing filter select chain, used for output selection.\n"},"redistributes":{"type":"array","items":{"type":"string"},"description":"Enable redistribution of specific route types.\n"},"routerId":{"type":"string","description":"OSPF Router ID. Can be set explicitly as an IP address, or as the name of the router-id instance.\n"},"routingOspfInstanceId":{"type":"string","description":"The ID of this resource.\n"},"routingTable":{"type":"string","description":"Name of the routing table in use.\n"},"version":{"type":"number","description":"OSPF version this instance will be running (v2 for IPv4, v3 for IPv6).\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object","required":["inactive","name","routingOspfInstanceId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"domainId":{"type":"string","description":"MPLS-related parameter.\n"},"domainTag":{"type":"number","description":"if set, then used in route redistribution (as route-tag in all external LSAs generated by this router), and in route calculation (all external LSAs having this route tag are ignored). Needed for interoperability with older Cisco systems. By default not set.\n"},"inFilterChain":{"type":"string","description":"name of the routing filter chain used for incoming prefixes\n"},"mplsTeAddress":{"type":"string","description":"the area used for MPLS traffic engineering.\n"},"mplsTeArea":{"type":"string","description":"the area used for MPLS traffic engineering.\n"},"name":{"type":"string"},"originateDefault":{"type":"string","description":"Specifies default route (0.0.0.0/0) distribution method.\n"},"outFilterChain":{"type":"string","description":"name of the routing filter chain used for outgoing prefixes filtering.\n"},"outFilterSelect":{"type":"string","description":"name of the routing filter select chain, used for output selection.\n"},"redistributes":{"type":"array","items":{"type":"string"},"description":"Enable redistribution of specific route types.\n"},"routerId":{"type":"string","description":"OSPF Router ID. Can be set explicitly as an IP address, or as the name of the router-id instance.\n"},"routingOspfInstanceId":{"type":"string","description":"The ID of this resource.\n"},"routingTable":{"type":"string","description":"Name of the routing table in use.\n"},"version":{"type":"number","description":"OSPF version this instance will be running (v2 for IPv4, v3 for IPv6).\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering RoutingOspfInstance resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"domainId":{"type":"string","description":"MPLS-related parameter.\n"},"domainTag":{"type":"number","description":"if set, then used in route redistribution (as route-tag in all external LSAs generated by this router), and in route calculation (all external LSAs having this route tag are ignored). Needed for interoperability with older Cisco systems. By default not set.\n"},"inFilterChain":{"type":"string","description":"name of the routing filter chain used for incoming prefixes\n"},"inactive":{"type":"boolean"},"mplsTeAddress":{"type":"string","description":"the area used for MPLS traffic engineering.\n"},"mplsTeArea":{"type":"string","description":"the area used for MPLS traffic engineering.\n"},"name":{"type":"string"},"originateDefault":{"type":"string","description":"Specifies default route (0.0.0.0/0) distribution method.\n"},"outFilterChain":{"type":"string","description":"name of the routing filter chain used for outgoing prefixes filtering.\n"},"outFilterSelect":{"type":"string","description":"name of the routing filter select chain, used for output selection.\n"},"redistributes":{"type":"array","items":{"type":"string"},"description":"Enable redistribution of specific route types.\n"},"routerId":{"type":"string","description":"OSPF Router ID. Can be set explicitly as an IP address, or as the name of the router-id instance.\n"},"routingOspfInstanceId":{"type":"string","description":"The ID of this resource.\n"},"routingTable":{"type":"string","description":"Name of the routing table in use.\n"},"version":{"type":"number","description":"OSPF version this instance will be running (v2 for IPv4, v3 for IPv6).\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object"}},"routeros:index/routingOspfInterfaceTemplate:RoutingOspfInterfaceTemplate":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testRoutingOspfInstance = new routeros.RoutingOspfInstance(\"test_routing_ospf_instance\", {name: \"test_routing_ospf_instance\"});\nconst testRoutingOspfArea = new routeros.RoutingOspfArea(\"test_routing_ospf_area\", {\n    name: \"test_routing_ospf_area\",\n    instance: testRoutingOspfInstance.name,\n});\nconst testRoutingOspfInterfaceTemplate = new routeros.RoutingOspfInterfaceTemplate(\"test_routing_ospf_interface_template\", {area: testRoutingOspfArea.name});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_routing_ospf_instance = routeros.RoutingOspfInstance(\"test_routing_ospf_instance\", name=\"test_routing_ospf_instance\")\ntest_routing_ospf_area = routeros.RoutingOspfArea(\"test_routing_ospf_area\",\n    name=\"test_routing_ospf_area\",\n    instance=test_routing_ospf_instance.name)\ntest_routing_ospf_interface_template = routeros.RoutingOspfInterfaceTemplate(\"test_routing_ospf_interface_template\", area=test_routing_ospf_area.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRoutingOspfInstance = new Routeros.RoutingOspfInstance(\"test_routing_ospf_instance\", new()\n    {\n        Name = \"test_routing_ospf_instance\",\n    });\n\n    var testRoutingOspfArea = new Routeros.RoutingOspfArea(\"test_routing_ospf_area\", new()\n    {\n        Name = \"test_routing_ospf_area\",\n        Instance = testRoutingOspfInstance.Name,\n    });\n\n    var testRoutingOspfInterfaceTemplate = new Routeros.RoutingOspfInterfaceTemplate(\"test_routing_ospf_interface_template\", new()\n    {\n        Area = testRoutingOspfArea.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestRoutingOspfInstance, err := routeros.NewRoutingOspfInstance(ctx, \"test_routing_ospf_instance\", \u0026routeros.RoutingOspfInstanceArgs{\n\t\t\tName: pulumi.String(\"test_routing_ospf_instance\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestRoutingOspfArea, err := routeros.NewRoutingOspfArea(ctx, \"test_routing_ospf_area\", \u0026routeros.RoutingOspfAreaArgs{\n\t\t\tName:     pulumi.String(\"test_routing_ospf_area\"),\n\t\t\tInstance: testRoutingOspfInstance.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewRoutingOspfInterfaceTemplate(ctx, \"test_routing_ospf_interface_template\", \u0026routeros.RoutingOspfInterfaceTemplateArgs{\n\t\t\tArea: testRoutingOspfArea.Name,\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.routeros.RoutingOspfInstance;\nimport com.pulumi.routeros.RoutingOspfInstanceArgs;\nimport com.pulumi.routeros.RoutingOspfArea;\nimport com.pulumi.routeros.RoutingOspfAreaArgs;\nimport com.pulumi.routeros.RoutingOspfInterfaceTemplate;\nimport com.pulumi.routeros.RoutingOspfInterfaceTemplateArgs;\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 testRoutingOspfInstance = new RoutingOspfInstance(\"testRoutingOspfInstance\", RoutingOspfInstanceArgs.builder()\n            .name(\"test_routing_ospf_instance\")\n            .build());\n\n        var testRoutingOspfArea = new RoutingOspfArea(\"testRoutingOspfArea\", RoutingOspfAreaArgs.builder()\n            .name(\"test_routing_ospf_area\")\n            .instance(testRoutingOspfInstance.name())\n            .build());\n\n        var testRoutingOspfInterfaceTemplate = new RoutingOspfInterfaceTemplate(\"testRoutingOspfInterfaceTemplate\", RoutingOspfInterfaceTemplateArgs.builder()\n            .area(testRoutingOspfArea.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRoutingOspfInstance:\n    type: routeros:RoutingOspfInstance\n    name: test_routing_ospf_instance\n    properties:\n      name: test_routing_ospf_instance\n  testRoutingOspfArea:\n    type: routeros:RoutingOspfArea\n    name: test_routing_ospf_area\n    properties:\n      name: test_routing_ospf_area\n      instance: ${testRoutingOspfInstance.name}\n  testRoutingOspfInterfaceTemplate:\n    type: routeros:RoutingOspfInterfaceTemplate\n    name: test_routing_ospf_interface_template\n    properties:\n      area: ${testRoutingOspfArea.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e /routing/ospf/interface-template/print show-ids\n\n```sh\n$ pulumi import routeros:index/routingOspfInterfaceTemplate:RoutingOspfInterfaceTemplate test_routing_ospf_interface_template \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/routingOspfInterfaceTemplate:RoutingOspfInterfaceTemplate test_routing_ospf_interface_template \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"area":{"type":"string","description":"The OSPF area to which the matching interface will be associated.\n"},"auth":{"type":"string","description":"Specifies authentication method for OSPF protocol messages.\n"},"authId":{"type":"number","description":"The key id is used to calculate message digest (used when MD5 or SHA authentication is enabled).\n"},"authKey":{"type":"string","description":"The authentication key to be used, should match on all the neighbors of the network segment (available since RouterOS 7.x).\n","secret":true},"authenticationKey":{"type":"string","description":"The authentication key to be used, should match on all the neighbors of the network segment (for versions before RouterOS 7.x).\n","secret":true},"comment":{"type":"string"},"cost":{"type":"number","description":"Interface cost expressed as link state metric.\n"},"deadInterval":{"type":"string","description":"Specifies the interval after which a neighbor is declared dead.\n"},"disabled":{"type":"boolean"},"helloInterval":{"type":"string","description":"The interval between HELLO packets that the router sends out this interface.\n"},"inactive":{"type":"boolean"},"instanceId":{"type":"number","description":"Interface cost expressed as link state metric.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"Interfaces to match.\n"},"networks":{"type":"array","items":{"type":"string"},"description":"The network prefixes associated with the area.\n"},"passive":{"type":"boolean","description":"If enabled, then do not send or receive OSPF traffic on the matching interfaces. \\n\\nThe correct value of this attribute may not be displayed in Winbox. Please check the parameters in the console!\\n\\n\n"},"prefixList":{"type":"string","description":"Name of the address list containing networks that should be advertised to the v3 interface.\n"},"priority":{"type":"number","description":"Router's priority. Used to determine the designated router in a broadcast network.\n"},"retransmitInterval":{"type":"string","description":"Time interval the lost link state advertisement will be resent.\n"},"routingOspfInterfaceTemplateId":{"type":"string","description":"The ID of this resource.\n"},"transmitDelay":{"type":"string","description":"Link-state transmit delay is the estimated time it takes to transmit a link-state update packet on the interface.\n"},"type":{"type":"string","description":"The OSPF network type on this interface.\n"},"useBfd":{"type":"boolean","description":"Whether to use the BFD protocol for faster connection state detection.\n"},"vlinkNeighborId":{"type":"string","description":"Specifies the router-id of the neighbor which should be connected over the virtual link.\n"},"vlinkTransitArea":{"type":"string","description":"A non-backbone area the two routers have in common over which the virtual link will be established.\n"}},"type":"object","required":["area","inactive","routingOspfInterfaceTemplateId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"area":{"type":"string","description":"The OSPF area to which the matching interface will be associated.\n"},"auth":{"type":"string","description":"Specifies authentication method for OSPF protocol messages.\n"},"authId":{"type":"number","description":"The key id is used to calculate message digest (used when MD5 or SHA authentication is enabled).\n"},"authKey":{"type":"string","description":"The authentication key to be used, should match on all the neighbors of the network segment (available since RouterOS 7.x).\n","secret":true},"authenticationKey":{"type":"string","description":"The authentication key to be used, should match on all the neighbors of the network segment (for versions before RouterOS 7.x).\n","secret":true},"comment":{"type":"string"},"cost":{"type":"number","description":"Interface cost expressed as link state metric.\n"},"deadInterval":{"type":"string","description":"Specifies the interval after which a neighbor is declared dead.\n"},"disabled":{"type":"boolean"},"helloInterval":{"type":"string","description":"The interval between HELLO packets that the router sends out this interface.\n"},"instanceId":{"type":"number","description":"Interface cost expressed as link state metric.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"Interfaces to match.\n"},"networks":{"type":"array","items":{"type":"string"},"description":"The network prefixes associated with the area.\n"},"passive":{"type":"boolean","description":"If enabled, then do not send or receive OSPF traffic on the matching interfaces. \\n\\nThe correct value of this attribute may not be displayed in Winbox. Please check the parameters in the console!\\n\\n\n"},"prefixList":{"type":"string","description":"Name of the address list containing networks that should be advertised to the v3 interface.\n"},"priority":{"type":"number","description":"Router's priority. Used to determine the designated router in a broadcast network.\n"},"retransmitInterval":{"type":"string","description":"Time interval the lost link state advertisement will be resent.\n"},"routingOspfInterfaceTemplateId":{"type":"string","description":"The ID of this resource.\n"},"transmitDelay":{"type":"string","description":"Link-state transmit delay is the estimated time it takes to transmit a link-state update packet on the interface.\n"},"type":{"type":"string","description":"The OSPF network type on this interface.\n"},"useBfd":{"type":"boolean","description":"Whether to use the BFD protocol for faster connection state detection.\n"},"vlinkNeighborId":{"type":"string","description":"Specifies the router-id of the neighbor which should be connected over the virtual link.\n"},"vlinkTransitArea":{"type":"string","description":"A non-backbone area the two routers have in common over which the virtual link will be established.\n"}},"requiredInputs":["area"],"stateInputs":{"description":"Input properties used for looking up and filtering RoutingOspfInterfaceTemplate resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"area":{"type":"string","description":"The OSPF area to which the matching interface will be associated.\n"},"auth":{"type":"string","description":"Specifies authentication method for OSPF protocol messages.\n"},"authId":{"type":"number","description":"The key id is used to calculate message digest (used when MD5 or SHA authentication is enabled).\n"},"authKey":{"type":"string","description":"The authentication key to be used, should match on all the neighbors of the network segment (available since RouterOS 7.x).\n","secret":true},"authenticationKey":{"type":"string","description":"The authentication key to be used, should match on all the neighbors of the network segment (for versions before RouterOS 7.x).\n","secret":true},"comment":{"type":"string"},"cost":{"type":"number","description":"Interface cost expressed as link state metric.\n"},"deadInterval":{"type":"string","description":"Specifies the interval after which a neighbor is declared dead.\n"},"disabled":{"type":"boolean"},"helloInterval":{"type":"string","description":"The interval between HELLO packets that the router sends out this interface.\n"},"inactive":{"type":"boolean"},"instanceId":{"type":"number","description":"Interface cost expressed as link state metric.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"Interfaces to match.\n"},"networks":{"type":"array","items":{"type":"string"},"description":"The network prefixes associated with the area.\n"},"passive":{"type":"boolean","description":"If enabled, then do not send or receive OSPF traffic on the matching interfaces. \\n\\nThe correct value of this attribute may not be displayed in Winbox. Please check the parameters in the console!\\n\\n\n"},"prefixList":{"type":"string","description":"Name of the address list containing networks that should be advertised to the v3 interface.\n"},"priority":{"type":"number","description":"Router's priority. Used to determine the designated router in a broadcast network.\n"},"retransmitInterval":{"type":"string","description":"Time interval the lost link state advertisement will be resent.\n"},"routingOspfInterfaceTemplateId":{"type":"string","description":"The ID of this resource.\n"},"transmitDelay":{"type":"string","description":"Link-state transmit delay is the estimated time it takes to transmit a link-state update packet on the interface.\n"},"type":{"type":"string","description":"The OSPF network type on this interface.\n"},"useBfd":{"type":"boolean","description":"Whether to use the BFD protocol for faster connection state detection.\n"},"vlinkNeighborId":{"type":"string","description":"Specifies the router-id of the neighbor which should be connected over the virtual link.\n"},"vlinkTransitArea":{"type":"string","description":"A non-backbone area the two routers have in common over which the virtual link will be established.\n"}},"type":"object"}},"routeros:index/routingRule:RoutingRule":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.RoutingRule(\"test\", {\n    dstAddress: \"192.168.1.0/24\",\n    action: \"lookup-only-in-table\",\n    \"interface\": \"ether1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.RoutingRule(\"test\",\n    dst_address=\"192.168.1.0/24\",\n    action=\"lookup-only-in-table\",\n    interface=\"ether1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.RoutingRule(\"test\", new()\n    {\n        DstAddress = \"192.168.1.0/24\",\n        Action = \"lookup-only-in-table\",\n        Interface = \"ether1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRoutingRule(ctx, \"test\", \u0026routeros.RoutingRuleArgs{\n\t\t\tDstAddress: pulumi.String(\"192.168.1.0/24\"),\n\t\t\tAction:     pulumi.String(\"lookup-only-in-table\"),\n\t\t\tInterface:  pulumi.String(\"ether1\"),\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.routeros.RoutingRule;\nimport com.pulumi.routeros.RoutingRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new RoutingRule(\"test\", RoutingRuleArgs.builder()\n            .dstAddress(\"192.168.1.0/24\")\n            .action(\"lookup-only-in-table\")\n            .interface_(\"ether1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:RoutingRule\n    properties:\n      dstAddress: 192.168.1.0/24\n      action: lookup-only-in-table\n      interface: ether1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/routing/rule get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/routingRule:RoutingRule test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/routingRule:RoutingRule test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"An action to take on the matching packet:\n  * drop - silently drop the packet.\n  * lookup - perform a lookup in routing tables.\n  * lookup-only-in-table - perform lookup only in the specified routing table (see table parameter).\n  * unreachable - generate ICMP unreachable message and send it back to the source."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"The destination address of the packet to match."},"inactive":{"type":"boolean"},"interface":{"type":"string","description":"Incoming interface to match."},"minPrefix":{"type":"number","description":"Equivalent to Linux IP rule \u003cspan pulumi-lang-nodejs=\"`suppressPrefixlength`\" pulumi-lang-dotnet=\"`SuppressPrefixlength`\" pulumi-lang-go=\"`suppressPrefixlength`\" pulumi-lang-python=\"`suppress_prefixlength`\" pulumi-lang-yaml=\"`suppressPrefixlength`\" pulumi-lang-java=\"`suppressPrefixlength`\"\u003e`suppress_prefixlength`\u003c/span\u003e. For example to suppress the default route in the routing decision set the value to 0."},"routingMark":{"type":"string","description":"Match specific routing mark."},"routingRuleId":{"type":"string"},"srcAddress":{"type":"string","description":"The source address of the packet to match."},"table":{"type":"string","description":"Name of the routing table to use for lookup."}},"type":"object","required":["inactive","routingRuleId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"An action to take on the matching packet:\n  * drop - silently drop the packet.\n  * lookup - perform a lookup in routing tables.\n  * lookup-only-in-table - perform lookup only in the specified routing table (see table parameter).\n  * unreachable - generate ICMP unreachable message and send it back to the source."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"The destination address of the packet to match."},"interface":{"type":"string","description":"Incoming interface to match."},"minPrefix":{"type":"number","description":"Equivalent to Linux IP rule \u003cspan pulumi-lang-nodejs=\"`suppressPrefixlength`\" pulumi-lang-dotnet=\"`SuppressPrefixlength`\" pulumi-lang-go=\"`suppressPrefixlength`\" pulumi-lang-python=\"`suppress_prefixlength`\" pulumi-lang-yaml=\"`suppressPrefixlength`\" pulumi-lang-java=\"`suppressPrefixlength`\"\u003e`suppress_prefixlength`\u003c/span\u003e. For example to suppress the default route in the routing decision set the value to 0."},"routingMark":{"type":"string","description":"Match specific routing mark."},"routingRuleId":{"type":"string"},"srcAddress":{"type":"string","description":"The source address of the packet to match."},"table":{"type":"string","description":"Name of the routing table to use for lookup."}},"stateInputs":{"description":"Input properties used for looking up and filtering RoutingRule resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"An action to take on the matching packet:\n  * drop - silently drop the packet.\n  * lookup - perform a lookup in routing tables.\n  * lookup-only-in-table - perform lookup only in the specified routing table (see table parameter).\n  * unreachable - generate ICMP unreachable message and send it back to the source."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dstAddress":{"type":"string","description":"The destination address of the packet to match."},"inactive":{"type":"boolean"},"interface":{"type":"string","description":"Incoming interface to match."},"minPrefix":{"type":"number","description":"Equivalent to Linux IP rule \u003cspan pulumi-lang-nodejs=\"`suppressPrefixlength`\" pulumi-lang-dotnet=\"`SuppressPrefixlength`\" pulumi-lang-go=\"`suppressPrefixlength`\" pulumi-lang-python=\"`suppress_prefixlength`\" pulumi-lang-yaml=\"`suppressPrefixlength`\" pulumi-lang-java=\"`suppressPrefixlength`\"\u003e`suppress_prefixlength`\u003c/span\u003e. For example to suppress the default route in the routing decision set the value to 0."},"routingMark":{"type":"string","description":"Match specific routing mark."},"routingRuleId":{"type":"string"},"srcAddress":{"type":"string","description":"The source address of the packet to match."},"table":{"type":"string","description":"Name of the routing table to use for lookup."}},"type":"object"}},"routeros:index/routingTable:RoutingTable":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst testTable = new routeros.RoutingTable(\"test_table\", {\n    name: \"to_ISP1\",\n    fib: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest_table = routeros.RoutingTable(\"test_table\",\n    name=\"to_ISP1\",\n    fib=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testTable = new Routeros.RoutingTable(\"test_table\", new()\n    {\n        Name = \"to_ISP1\",\n        Fib = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewRoutingTable(ctx, \"test_table\", \u0026routeros.RoutingTableArgs{\n\t\t\tName: pulumi.String(\"to_ISP1\"),\n\t\t\tFib:  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.routeros.RoutingTable;\nimport com.pulumi.routeros.RoutingTableArgs;\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 testTable = new RoutingTable(\"testTable\", RoutingTableArgs.builder()\n            .name(\"to_ISP1\")\n            .fib(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testTable:\n    type: routeros:RoutingTable\n    name: test_table\n    properties:\n      name: to_ISP1\n      fib: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/routing/table get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/routingTable:RoutingTable test_table \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/routingTable:RoutingTable test_table \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"fib":{"type":"boolean","description":"fib parameter should be specified if the routing table is intended to push routes to the FIB.\n"},"invalid":{"type":"boolean"},"name":{"type":"string","description":"Routing table name.\n"},"routingTableId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["dynamic","invalid","name","routingTableId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"fib":{"type":"boolean","description":"fib parameter should be specified if the routing table is intended to push routes to the FIB.\n"},"name":{"type":"string","description":"Routing table name.\n"},"routingTableId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering RoutingTable resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified.\n"},"fib":{"type":"boolean","description":"fib parameter should be specified if the routing table is intended to push routes to the FIB.\n"},"invalid":{"type":"boolean"},"name":{"type":"string","description":"Routing table name.\n"},"routingTableId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/scheduler:Scheduler":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.Scheduler \" pulumi-lang-dotnet=\" routeros.Scheduler \" pulumi-lang-go=\" Scheduler \" pulumi-lang-python=\" Scheduler \" pulumi-lang-yaml=\" routeros.Scheduler \" pulumi-lang-java=\" routeros.Scheduler \"\u003e routeros.Scheduler \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.SystemScheduler\n\" pulumi-lang-dotnet=\" routeros.SystemScheduler\n\" pulumi-lang-go=\" SystemScheduler\n\" pulumi-lang-python=\" SystemScheduler\n\" pulumi-lang-yaml=\" routeros.SystemScheduler\n\" pulumi-lang-java=\" routeros.SystemScheduler\n\"\u003e routeros.SystemScheduler\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interval":{"type":"string","description":"Interval between two script executions, if time interval is set to zero, the script is only executed at its start time, otherwise it is executed repeatedly at the time interval is specified."},"name":{"type":"string"},"nextRun":{"type":"string"},"onEvent":{"type":"string","description":"Name of the script to execute. It must be presented at /system script."},"owner":{"type":"string"},"policies":{"type":"array","items":{"type":"string"},"description":"List of applicable policies:\n    * dude - Policy that grants rights to log in to dude server.  \n    * ftp - Policy that grants full rights to log in remotely via FTP, to read/write/erase files and to transfer files from/to the router. Should be used together with read/write policies.  \n    * password - Policy that grants rights to change the password.  \n    * policy - Policy that grants user management rights. Should be used together with the write policy. Allows also to see global variables created by other users (requires also 'test' policy).  \n    * read - Policy that grants read access to the router's configuration. All console commands that do not alter router's configuration are allowed. Doesn't affect FTP.  \n    * reboot - Policy that allows rebooting the router.  \n    * romon - Policy that grants rights to connect to RoMon server.  \n    * sensitive - Policy that grants rights to change \"hide sensitive\" option, if this policy is disabled sensitive information is not displayed.  \n    * sniff - Policy that grants rights to use packet sniffer tool.  \n    * test - Policy that grants rights to run ping, traceroute, bandwidth-test, wireless scan, snooper, and other test commands.  \n    * write - Policy that grants write access to the router's configuration, except for user management. This policy does not allow to read the configuration, so make sure to enable read policy as well.  \npolicy = [\"ftp\", \"read\", \"write\"]"},"runCount":{"type":"string","description":"This counter is incremented each time the script is executed."},"schedulerId":{"type":"string"},"startDate":{"type":"string","description":"Date of the first script execution."},"startTime":{"type":"string","description":"Time of the first script execution. If scheduler item has start-time set to startup, it behaves as if start-time and start-date were set to time 3 seconds after console starts up. It means that all scripts having start-time is startup and interval is 0 will be executed once each time router boots. If the interval is set to value other than 0 scheduler will not run at startup."}},"type":"object","required":["interval","name","nextRun","onEvent","owner","policies","runCount","schedulerId","startDate","startTime"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interval":{"type":"string","description":"Interval between two script executions, if time interval is set to zero, the script is only executed at its start time, otherwise it is executed repeatedly at the time interval is specified."},"name":{"type":"string"},"onEvent":{"type":"string","description":"Name of the script to execute. It must be presented at /system script."},"policies":{"type":"array","items":{"type":"string"},"description":"List of applicable policies:\n    * dude - Policy that grants rights to log in to dude server.  \n    * ftp - Policy that grants full rights to log in remotely via FTP, to read/write/erase files and to transfer files from/to the router. Should be used together with read/write policies.  \n    * password - Policy that grants rights to change the password.  \n    * policy - Policy that grants user management rights. Should be used together with the write policy. Allows also to see global variables created by other users (requires also 'test' policy).  \n    * read - Policy that grants read access to the router's configuration. All console commands that do not alter router's configuration are allowed. Doesn't affect FTP.  \n    * reboot - Policy that allows rebooting the router.  \n    * romon - Policy that grants rights to connect to RoMon server.  \n    * sensitive - Policy that grants rights to change \"hide sensitive\" option, if this policy is disabled sensitive information is not displayed.  \n    * sniff - Policy that grants rights to use packet sniffer tool.  \n    * test - Policy that grants rights to run ping, traceroute, bandwidth-test, wireless scan, snooper, and other test commands.  \n    * write - Policy that grants write access to the router's configuration, except for user management. This policy does not allow to read the configuration, so make sure to enable read policy as well.  \npolicy = [\"ftp\", \"read\", \"write\"]"},"schedulerId":{"type":"string"},"startDate":{"type":"string","description":"Date of the first script execution."},"startTime":{"type":"string","description":"Time of the first script execution. If scheduler item has start-time set to startup, it behaves as if start-time and start-date were set to time 3 seconds after console starts up. It means that all scripts having start-time is startup and interval is 0 will be executed once each time router boots. If the interval is set to value other than 0 scheduler will not run at startup."}},"requiredInputs":["onEvent"],"stateInputs":{"description":"Input properties used for looking up and filtering Scheduler resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interval":{"type":"string","description":"Interval between two script executions, if time interval is set to zero, the script is only executed at its start time, otherwise it is executed repeatedly at the time interval is specified."},"name":{"type":"string"},"nextRun":{"type":"string"},"onEvent":{"type":"string","description":"Name of the script to execute. It must be presented at /system script."},"owner":{"type":"string"},"policies":{"type":"array","items":{"type":"string"},"description":"List of applicable policies:\n    * dude - Policy that grants rights to log in to dude server.  \n    * ftp - Policy that grants full rights to log in remotely via FTP, to read/write/erase files and to transfer files from/to the router. Should be used together with read/write policies.  \n    * password - Policy that grants rights to change the password.  \n    * policy - Policy that grants user management rights. Should be used together with the write policy. Allows also to see global variables created by other users (requires also 'test' policy).  \n    * read - Policy that grants read access to the router's configuration. All console commands that do not alter router's configuration are allowed. Doesn't affect FTP.  \n    * reboot - Policy that allows rebooting the router.  \n    * romon - Policy that grants rights to connect to RoMon server.  \n    * sensitive - Policy that grants rights to change \"hide sensitive\" option, if this policy is disabled sensitive information is not displayed.  \n    * sniff - Policy that grants rights to use packet sniffer tool.  \n    * test - Policy that grants rights to run ping, traceroute, bandwidth-test, wireless scan, snooper, and other test commands.  \n    * write - Policy that grants write access to the router's configuration, except for user management. This policy does not allow to read the configuration, so make sure to enable read policy as well.  \npolicy = [\"ftp\", \"read\", \"write\"]"},"runCount":{"type":"string","description":"This counter is incremented each time the script is executed."},"schedulerId":{"type":"string"},"startDate":{"type":"string","description":"Date of the first script execution."},"startTime":{"type":"string","description":"Time of the first script execution. If scheduler item has start-time set to startup, it behaves as if start-time and start-date were set to time 3 seconds after console starts up. It means that all scripts having start-time is startup and interval is 0 will be executed once each time router boots. If the interval is set to value other than 0 scheduler will not run at startup."}},"type":"object"}},"routeros:index/snmp:Snmp":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.Snmp(\"test\", {\n    contact: \"John D.\",\n    enabled: true,\n    engineIdSuffix: \"8a3c\",\n    location: \"Backyard\",\n    trapCommunity: \"private\",\n    trapGenerators: \"start-trap\",\n    trapVersion: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.Snmp(\"test\",\n    contact=\"John D.\",\n    enabled=True,\n    engine_id_suffix=\"8a3c\",\n    location=\"Backyard\",\n    trap_community=\"private\",\n    trap_generators=\"start-trap\",\n    trap_version=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.Snmp(\"test\", new()\n    {\n        Contact = \"John D.\",\n        Enabled = true,\n        EngineIdSuffix = \"8a3c\",\n        Location = \"Backyard\",\n        TrapCommunity = \"private\",\n        TrapGenerators = \"start-trap\",\n        TrapVersion = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSnmp(ctx, \"test\", \u0026routeros.SnmpArgs{\n\t\t\tContact:        pulumi.String(\"John D.\"),\n\t\t\tEnabled:        pulumi.Bool(true),\n\t\t\tEngineIdSuffix: pulumi.String(\"8a3c\"),\n\t\t\tLocation:       pulumi.String(\"Backyard\"),\n\t\t\tTrapCommunity:  pulumi.String(\"private\"),\n\t\t\tTrapGenerators: pulumi.String(\"start-trap\"),\n\t\t\tTrapVersion:    pulumi.Float64(3),\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.routeros.Snmp;\nimport com.pulumi.routeros.SnmpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Snmp(\"test\", SnmpArgs.builder()\n            .contact(\"John D.\")\n            .enabled(true)\n            .engineIdSuffix(\"8a3c\")\n            .location(\"Backyard\")\n            .trapCommunity(\"private\")\n            .trapGenerators(\"start-trap\")\n            .trapVersion(3.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:Snmp\n    properties:\n      contact: John D.\n      enabled: true\n      engineIdSuffix: 8a3c\n      location: Backyard\n      trapCommunity: private\n      trapGenerators: start-trap\n      trapVersion: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/snmp:Snmp test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"contact":{"type":"string","description":"Contact information."},"enabled":{"type":"boolean","description":"Used to disable/enable SNMP service"},"engineId":{"type":"string","description":"For SNMP v3, used as part of identifier. You can configure suffix part of engine id using this argument. If SNMP client is not  capable to detect set engine-id value then this prefix hex have to be  used 0x80003a8c04"},"engineIdSuffix":{"type":"string","description":"Unique identifier for an SNMPv3 engine by configuring the suffix of the engine ID."},"location":{"type":"string","description":"Location information."},"snmpId":{"type":"string"},"srcAddress":{"type":"string","description":"Force the router to always use the same IP source address for all of the SNMP messages."},"trapCommunity":{"type":"string","description":"Which communities configured in community menu to use when sending out the trap. This name must be present in the community list.","secret":true},"trapGenerators":{"type":"string","description":"What action will generate traps:\n  * interfaces - interface changes;\n  * start-trap - snmp server starting on the router."},"trapInterfaces":{"type":"string","description":"List of interfaces that traps are going to be sent out."},"trapTargets":{"type":"array","items":{"type":"string"},"description":"IP (IPv4 or IPv6) addresses of SNMP data collectors that have to receive the trap."},"trapVersion":{"type":"number","description":"Version of SNMP protocol to use for trap."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"type":"object","required":["engineId","snmpId","trapCommunity","trapGenerators","trapVersion"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"contact":{"type":"string","description":"Contact information."},"enabled":{"type":"boolean","description":"Used to disable/enable SNMP service"},"engineIdSuffix":{"type":"string","description":"Unique identifier for an SNMPv3 engine by configuring the suffix of the engine ID."},"location":{"type":"string","description":"Location information."},"snmpId":{"type":"string"},"srcAddress":{"type":"string","description":"Force the router to always use the same IP source address for all of the SNMP messages."},"trapCommunity":{"type":"string","description":"Which communities configured in community menu to use when sending out the trap. This name must be present in the community list.","secret":true},"trapGenerators":{"type":"string","description":"What action will generate traps:\n  * interfaces - interface changes;\n  * start-trap - snmp server starting on the router."},"trapInterfaces":{"type":"string","description":"List of interfaces that traps are going to be sent out."},"trapTargets":{"type":"array","items":{"type":"string"},"description":"IP (IPv4 or IPv6) addresses of SNMP data collectors that have to receive the trap."},"trapVersion":{"type":"number","description":"Version of SNMP protocol to use for trap."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"stateInputs":{"description":"Input properties used for looking up and filtering Snmp resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"contact":{"type":"string","description":"Contact information."},"enabled":{"type":"boolean","description":"Used to disable/enable SNMP service"},"engineId":{"type":"string","description":"For SNMP v3, used as part of identifier. You can configure suffix part of engine id using this argument. If SNMP client is not  capable to detect set engine-id value then this prefix hex have to be  used 0x80003a8c04"},"engineIdSuffix":{"type":"string","description":"Unique identifier for an SNMPv3 engine by configuring the suffix of the engine ID."},"location":{"type":"string","description":"Location information."},"snmpId":{"type":"string"},"srcAddress":{"type":"string","description":"Force the router to always use the same IP source address for all of the SNMP messages."},"trapCommunity":{"type":"string","description":"Which communities configured in community menu to use when sending out the trap. This name must be present in the community list.","secret":true},"trapGenerators":{"type":"string","description":"What action will generate traps:\n  * interfaces - interface changes;\n  * start-trap - snmp server starting on the router."},"trapInterfaces":{"type":"string","description":"List of interfaces that traps are going to be sent out."},"trapTargets":{"type":"array","items":{"type":"string"},"description":"IP (IPv4 or IPv6) addresses of SNMP data collectors that have to receive the trap."},"trapVersion":{"type":"number","description":"Version of SNMP protocol to use for trap."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"type":"object"}},"routeros:index/snmpCommunity:SnmpCommunity":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.SnmpCommunity(\"test\", {\n    authenticationPassword: \"authpasswd\",\n    authenticationProtocol: \"MD5\",\n    comment: \"Comment\",\n    disabled: true,\n    encryptionPassword: \"encpassword\",\n    encryptionProtocol: \"DES\",\n    name: \"private\",\n    readAccess: true,\n    security: \"private\",\n    writeAccess: true,\n});\nconst mything = new routeros.SnmpCommunity(\"mything\", {\n    addresses: [\n        \"10.0.1.12\",\n        \"10.10.0.129\",\n    ],\n    name: \"mything\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.SnmpCommunity(\"test\",\n    authentication_password=\"authpasswd\",\n    authentication_protocol=\"MD5\",\n    comment=\"Comment\",\n    disabled=True,\n    encryption_password=\"encpassword\",\n    encryption_protocol=\"DES\",\n    name=\"private\",\n    read_access=True,\n    security=\"private\",\n    write_access=True)\nmything = routeros.SnmpCommunity(\"mything\",\n    addresses=[\n        \"10.0.1.12\",\n        \"10.10.0.129\",\n    ],\n    name=\"mything\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.SnmpCommunity(\"test\", new()\n    {\n        AuthenticationPassword = \"authpasswd\",\n        AuthenticationProtocol = \"MD5\",\n        Comment = \"Comment\",\n        Disabled = true,\n        EncryptionPassword = \"encpassword\",\n        EncryptionProtocol = \"DES\",\n        Name = \"private\",\n        ReadAccess = true,\n        Security = \"private\",\n        WriteAccess = true,\n    });\n\n    var mything = new Routeros.SnmpCommunity(\"mything\", new()\n    {\n        Addresses = new[]\n        {\n            \"10.0.1.12\",\n            \"10.10.0.129\",\n        },\n        Name = \"mything\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSnmpCommunity(ctx, \"test\", \u0026routeros.SnmpCommunityArgs{\n\t\t\tAuthenticationPassword: pulumi.String(\"authpasswd\"),\n\t\t\tAuthenticationProtocol: pulumi.String(\"MD5\"),\n\t\t\tComment:                pulumi.String(\"Comment\"),\n\t\t\tDisabled:               pulumi.Bool(true),\n\t\t\tEncryptionPassword:     pulumi.String(\"encpassword\"),\n\t\t\tEncryptionProtocol:     pulumi.String(\"DES\"),\n\t\t\tName:                   pulumi.String(\"private\"),\n\t\t\tReadAccess:             pulumi.Bool(true),\n\t\t\tSecurity:               pulumi.String(\"private\"),\n\t\t\tWriteAccess:            pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewSnmpCommunity(ctx, \"mything\", \u0026routeros.SnmpCommunityArgs{\n\t\t\tAddresses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.12\"),\n\t\t\t\tpulumi.String(\"10.10.0.129\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"mything\"),\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.routeros.SnmpCommunity;\nimport com.pulumi.routeros.SnmpCommunityArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new SnmpCommunity(\"test\", SnmpCommunityArgs.builder()\n            .authenticationPassword(\"authpasswd\")\n            .authenticationProtocol(\"MD5\")\n            .comment(\"Comment\")\n            .disabled(true)\n            .encryptionPassword(\"encpassword\")\n            .encryptionProtocol(\"DES\")\n            .name(\"private\")\n            .readAccess(true)\n            .security(\"private\")\n            .writeAccess(true)\n            .build());\n\n        var mything = new SnmpCommunity(\"mything\", SnmpCommunityArgs.builder()\n            .addresses(            \n                \"10.0.1.12\",\n                \"10.10.0.129\")\n            .name(\"mything\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:SnmpCommunity\n    properties:\n      authenticationPassword: authpasswd\n      authenticationProtocol: MD5\n      comment: Comment\n      disabled: true\n      encryptionPassword: encpassword\n      encryptionProtocol: DES\n      name: private\n      readAccess: true\n      security: private\n      writeAccess: true\n  mything:\n    type: routeros:SnmpCommunity\n    properties:\n      addresses:\n        - 10.0.1.12\n        - 10.10.0.129\n      name: mything\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/snmp/community get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/snmpCommunity:SnmpCommunity test \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/snmpCommunity:SnmpCommunity test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addresses":{"type":"array","items":{"type":"string"},"description":"Set of IP (v4 or v6) addresses or CIDR networks from which connections to SNMP server are allowed.\n"},"authenticationPassword":{"type":"string","description":"Password used to authenticate the connection to the server (SNMPv3).\n","secret":true},"authenticationProtocol":{"type":"string","description":"The protocol used for authentication (SNMPv3).\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"encryptionPassword":{"type":"string","description":"The password used for encryption (SNMPv3).\n","secret":true},"encryptionProtocol":{"type":"string","description":"encryption protocol to be used to encrypt the communication (SNMPv3). AES (see rfc3826) available since v6.16.\n"},"name":{"type":"string","description":"Community Name.\n"},"readAccess":{"type":"boolean","description":"Whether read access is enabled for this community.\n"},"security":{"type":"string","description":"Security features.\n"},"snmpCommunityId":{"type":"string","description":"The ID of this resource.\n"},"writeAccess":{"type":"boolean","description":"Whether write access is enabled for this community.\n"}},"type":"object","required":["default","name","snmpCommunityId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addresses":{"type":"array","items":{"type":"string"},"description":"Set of IP (v4 or v6) addresses or CIDR networks from which connections to SNMP server are allowed.\n"},"authenticationPassword":{"type":"string","description":"Password used to authenticate the connection to the server (SNMPv3).\n","secret":true},"authenticationProtocol":{"type":"string","description":"The protocol used for authentication (SNMPv3).\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"encryptionPassword":{"type":"string","description":"The password used for encryption (SNMPv3).\n","secret":true},"encryptionProtocol":{"type":"string","description":"encryption protocol to be used to encrypt the communication (SNMPv3). AES (see rfc3826) available since v6.16.\n"},"name":{"type":"string","description":"Community Name.\n"},"readAccess":{"type":"boolean","description":"Whether read access is enabled for this community.\n"},"security":{"type":"string","description":"Security features.\n"},"snmpCommunityId":{"type":"string","description":"The ID of this resource.\n"},"writeAccess":{"type":"boolean","description":"Whether write access is enabled for this community.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SnmpCommunity resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"addresses":{"type":"array","items":{"type":"string"},"description":"Set of IP (v4 or v6) addresses or CIDR networks from which connections to SNMP server are allowed.\n"},"authenticationPassword":{"type":"string","description":"Password used to authenticate the connection to the server (SNMPv3).\n","secret":true},"authenticationProtocol":{"type":"string","description":"The protocol used for authentication (SNMPv3).\n"},"comment":{"type":"string"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"encryptionPassword":{"type":"string","description":"The password used for encryption (SNMPv3).\n","secret":true},"encryptionProtocol":{"type":"string","description":"encryption protocol to be used to encrypt the communication (SNMPv3). AES (see rfc3826) available since v6.16.\n"},"name":{"type":"string","description":"Community Name.\n"},"readAccess":{"type":"boolean","description":"Whether read access is enabled for this community.\n"},"security":{"type":"string","description":"Security features.\n"},"snmpCommunityId":{"type":"string","description":"The ID of this resource.\n"},"writeAccess":{"type":"boolean","description":"Whether write access is enabled for this community.\n"}},"type":"object"}},"routeros:index/systemCertificate:SystemCertificate":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.SystemCertificate \" pulumi-lang-dotnet=\" routeros.SystemCertificate \" pulumi-lang-go=\" SystemCertificate \" pulumi-lang-python=\" SystemCertificate \" pulumi-lang-yaml=\" routeros.SystemCertificate \" pulumi-lang-java=\" routeros.SystemCertificate \"\u003e routeros.SystemCertificate \u003c/span\u003e(Resource)\n\n\nCertificate resource management consists of two independent processes:\n* key creation and certificate signing request (\u003cspan pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\"\u003e`key`\u003c/span\u003e + \u003cspan pulumi-lang-nodejs=\"`csr`\" pulumi-lang-dotnet=\"`Csr`\" pulumi-lang-go=\"`csr`\" pulumi-lang-python=\"`csr`\" pulumi-lang-yaml=\"`csr`\" pulumi-lang-java=\"`csr`\"\u003e`csr`\u003c/span\u003e)\n* certificate signing by the issuer (\u003cspan pulumi-lang-nodejs=\"`crt`\" pulumi-lang-dotnet=\"`Crt`\" pulumi-lang-go=\"`crt`\" pulumi-lang-python=\"`crt`\" pulumi-lang-yaml=\"`crt`\" pulumi-lang-java=\"`crt`\"\u003e`crt`\u003c/span\u003e)\n\nFor a complete certificate creation cycle, both of the above steps must be performed. In this case the `sign {}` block must be specified in the configuration.\n\nIf you need to import the current state of the certificate resource, then do not specify the `sign{}` block.\n\nImporting an external certificate is also done without specifying the `sign{}` block, because the certificate should have already been signed by the issuer at this step.\n\n---\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst rootCa = new routeros.SystemCertificate(\"root_ca\", {\n    signs: [{}],\n    name: \"Test-Root-CA\",\n    commonName: \"RootCA\",\n    keyUsages: [\n        \"key-cert-sign\",\n        \"crl-sign\",\n    ],\n    trusted: true,\n});\n// digitalSignature: Used for entity and data origin authentication with integrity.\n// keyEncipherment:  Used to encrypt symmetric key, which is then transferred to target.\n// keyAgreement:     Enables use of key agreement to establish symmetric key with target. \nconst serverCrt = new routeros.SystemCertificate(\"server_crt\", {\n    name: \"Server-Certificate\",\n    commonName: \"server.crt\",\n    keyUsages: [\n        \"digital-signature\",\n        \"key-encipherment\",\n        \"tls-server\",\n    ],\n    signs: [{\n        ca: rootCa.name,\n    }],\n});\nconst clientCrt = new routeros.SystemCertificate(\"client_crt\", {\n    name: \"Client-Certificate\",\n    commonName: \"client.crt\",\n    keySize: \"prime256v1\",\n    keyUsages: [\n        \"digital-signature\",\n        \"key-agreement\",\n        \"tls-client\",\n    ],\n    signs: [{\n        ca: rootCa.name,\n    }],\n});\nconst unsignedCrt = new routeros.SystemCertificate(\"unsigned_crt\", {\n    name: \"Unsigned-Certificate\",\n    commonName: \"unsigned.crt\",\n    keySize: \"1024\",\n    subjectAltName: \"DNS:router.lan,DNS:myrouter.lan,IP:192.168.88.1\",\n});\nconst scepClient = new routeros.SystemCertificate(\"scep_client\", {\n    name: \"SCEP-Client\",\n    commonName: \"scep-client.crt\",\n    keyUsages: [\n        \"digital-signature\",\n        \"key-agreement\",\n        \"tls-client\",\n    ],\n    signViaSceps: [{\n        scepUrl: \"http://scep.server/scep/test\",\n    }],\n});\n//  Import certificate\nconst cert = routeros.getX509({\n    data: `\\\\t-----BEGIN CERTIFICATE-----\n\\\\tMIIBlTCCATugAwIBAgIINLsws71B5zIwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU\n\\\\tRXh0ZXJuYWwgQ2VydGlmaWNhdGUwHhcNMjQwNTE3MjEyOTUzWhcNMjUwNTE3MjEy\n\\\\tOTUzWjAfMR0wGwYDVQQDDBRFeHRlcm5hbCBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49\n\\\\tAgEGCCqGSM49AwEHA0IABKE1g0Qj4ujIold9tklu2z4BUu/K7xDFF5YmedtOfJyM\n\\\\t1/80APNboqn71y4m4XNE1JNtQuR2bSZPHVrzODkR16ujYTBfMA8GA1UdEwEB/wQF\n\\\\tMAMBAf8wDgYDVR0PAQH/BAQDAgG2MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n\\\\tBQcDAjAdBgNVHQ4EFgQUNXd5bvluIV9YAhGc5yMHc6OzXpMwCgYIKoZIzj0EAwID\n\\\\tSAAwRQIhAODte/qS6CE30cvnQpxP/ObWBPIPZnHtkFHIIC1AOSXwAiBGCGQE+aJY\n\\\\tW72Rw0Y1ckvlt6sU0urkzGuj5wxVF/gSYA==\n\\\\t-----END CERTIFICATE-----\n`,\n});\nconst external = new routeros.SystemCertificate(\"external\", {\n    name: \"external.crt\",\n    commonName: cert.then(cert =\u003e cert.commonName),\n    \"import\": {\n        certFileContent: cert.then(cert =\u003e cert.pem),\n        keyFileContent: `-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIHeMEkGCSqGSIb3DQEFDTA8MBsGCSqGSIb3DQEFDDAOBAiy/wEW6/MglgICCAAw\nHQYJYIZIAWUDBAEqBBD6v8dLA2FjPn62Xz57pcu9BIGQhclivPw1eC2b14ea58Tw\nnzDdbYN6/yUiMqapW2xZaT7ZFnbEai4n9/utgtEDnfKHlZvZj2kRhvYoWrvTkt/W\n1mkd5d/runsn+B5GO+CMHFHh4t41WMpZysmg+iP8FiiehOQEsWyEZFaedxfYYtSL\nSk+abxJ+NMQoh+S5d73niu1CO8uqQjOd8BoSOurURsOh\n-----END ENCRYPTED PRIVATE KEY-----\n`,\n        passphrase: \"11111111\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nroot_ca = routeros.SystemCertificate(\"root_ca\",\n    signs=[{}],\n    name=\"Test-Root-CA\",\n    common_name=\"RootCA\",\n    key_usages=[\n        \"key-cert-sign\",\n        \"crl-sign\",\n    ],\n    trusted=True)\n# digitalSignature: Used for entity and data origin authentication with integrity.\n# keyEncipherment:  Used to encrypt symmetric key, which is then transferred to target.\n# keyAgreement:     Enables use of key agreement to establish symmetric key with target. \nserver_crt = routeros.SystemCertificate(\"server_crt\",\n    name=\"Server-Certificate\",\n    common_name=\"server.crt\",\n    key_usages=[\n        \"digital-signature\",\n        \"key-encipherment\",\n        \"tls-server\",\n    ],\n    signs=[{\n        \"ca\": root_ca.name,\n    }])\nclient_crt = routeros.SystemCertificate(\"client_crt\",\n    name=\"Client-Certificate\",\n    common_name=\"client.crt\",\n    key_size=\"prime256v1\",\n    key_usages=[\n        \"digital-signature\",\n        \"key-agreement\",\n        \"tls-client\",\n    ],\n    signs=[{\n        \"ca\": root_ca.name,\n    }])\nunsigned_crt = routeros.SystemCertificate(\"unsigned_crt\",\n    name=\"Unsigned-Certificate\",\n    common_name=\"unsigned.crt\",\n    key_size=\"1024\",\n    subject_alt_name=\"DNS:router.lan,DNS:myrouter.lan,IP:192.168.88.1\")\nscep_client = routeros.SystemCertificate(\"scep_client\",\n    name=\"SCEP-Client\",\n    common_name=\"scep-client.crt\",\n    key_usages=[\n        \"digital-signature\",\n        \"key-agreement\",\n        \"tls-client\",\n    ],\n    sign_via_sceps=[{\n        \"scep_url\": \"http://scep.server/scep/test\",\n    }])\n#  Import certificate\ncert = routeros.get_x509(data=\"\"\"\\t-----BEGIN CERTIFICATE-----\n\\tMIIBlTCCATugAwIBAgIINLsws71B5zIwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU\n\\tRXh0ZXJuYWwgQ2VydGlmaWNhdGUwHhcNMjQwNTE3MjEyOTUzWhcNMjUwNTE3MjEy\n\\tOTUzWjAfMR0wGwYDVQQDDBRFeHRlcm5hbCBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49\n\\tAgEGCCqGSM49AwEHA0IABKE1g0Qj4ujIold9tklu2z4BUu/K7xDFF5YmedtOfJyM\n\\t1/80APNboqn71y4m4XNE1JNtQuR2bSZPHVrzODkR16ujYTBfMA8GA1UdEwEB/wQF\n\\tMAMBAf8wDgYDVR0PAQH/BAQDAgG2MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n\\tBQcDAjAdBgNVHQ4EFgQUNXd5bvluIV9YAhGc5yMHc6OzXpMwCgYIKoZIzj0EAwID\n\\tSAAwRQIhAODte/qS6CE30cvnQpxP/ObWBPIPZnHtkFHIIC1AOSXwAiBGCGQE+aJY\n\\tW72Rw0Y1ckvlt6sU0urkzGuj5wxVF/gSYA==\n\\t-----END CERTIFICATE-----\n\"\"\")\nexternal = routeros.SystemCertificate(\"external\",\n    name=\"external.crt\",\n    common_name=cert.common_name,\n    import_={\n        \"cert_file_content\": cert.pem,\n        \"key_file_content\": \"\"\"-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIHeMEkGCSqGSIb3DQEFDTA8MBsGCSqGSIb3DQEFDDAOBAiy/wEW6/MglgICCAAw\nHQYJYIZIAWUDBAEqBBD6v8dLA2FjPn62Xz57pcu9BIGQhclivPw1eC2b14ea58Tw\nnzDdbYN6/yUiMqapW2xZaT7ZFnbEai4n9/utgtEDnfKHlZvZj2kRhvYoWrvTkt/W\n1mkd5d/runsn+B5GO+CMHFHh4t41WMpZysmg+iP8FiiehOQEsWyEZFaedxfYYtSL\nSk+abxJ+NMQoh+S5d73niu1CO8uqQjOd8BoSOurURsOh\n-----END ENCRYPTED PRIVATE KEY-----\n\"\"\",\n        \"passphrase\": \"11111111\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rootCa = new Routeros.SystemCertificate(\"root_ca\", new()\n    {\n        Signs = new[]\n        {\n            null,\n        },\n        Name = \"Test-Root-CA\",\n        CommonName = \"RootCA\",\n        KeyUsages = new[]\n        {\n            \"key-cert-sign\",\n            \"crl-sign\",\n        },\n        Trusted = true,\n    });\n\n    // digitalSignature: Used for entity and data origin authentication with integrity.\n    // keyEncipherment:  Used to encrypt symmetric key, which is then transferred to target.\n    // keyAgreement:     Enables use of key agreement to establish symmetric key with target. \n    var serverCrt = new Routeros.SystemCertificate(\"server_crt\", new()\n    {\n        Name = \"Server-Certificate\",\n        CommonName = \"server.crt\",\n        KeyUsages = new[]\n        {\n            \"digital-signature\",\n            \"key-encipherment\",\n            \"tls-server\",\n        },\n        Signs = new[]\n        {\n            new Routeros.Inputs.SystemCertificateSignArgs\n            {\n                Ca = rootCa.Name,\n            },\n        },\n    });\n\n    var clientCrt = new Routeros.SystemCertificate(\"client_crt\", new()\n    {\n        Name = \"Client-Certificate\",\n        CommonName = \"client.crt\",\n        KeySize = \"prime256v1\",\n        KeyUsages = new[]\n        {\n            \"digital-signature\",\n            \"key-agreement\",\n            \"tls-client\",\n        },\n        Signs = new[]\n        {\n            new Routeros.Inputs.SystemCertificateSignArgs\n            {\n                Ca = rootCa.Name,\n            },\n        },\n    });\n\n    var unsignedCrt = new Routeros.SystemCertificate(\"unsigned_crt\", new()\n    {\n        Name = \"Unsigned-Certificate\",\n        CommonName = \"unsigned.crt\",\n        KeySize = \"1024\",\n        SubjectAltName = \"DNS:router.lan,DNS:myrouter.lan,IP:192.168.88.1\",\n    });\n\n    var scepClient = new Routeros.SystemCertificate(\"scep_client\", new()\n    {\n        Name = \"SCEP-Client\",\n        CommonName = \"scep-client.crt\",\n        KeyUsages = new[]\n        {\n            \"digital-signature\",\n            \"key-agreement\",\n            \"tls-client\",\n        },\n        SignViaSceps = new[]\n        {\n            new Routeros.Inputs.SystemCertificateSignViaScepArgs\n            {\n                ScepUrl = \"http://scep.server/scep/test\",\n            },\n        },\n    });\n\n    //  Import certificate\n    var cert = Routeros.GetX509.Invoke(new()\n    {\n        Data = @\"\\t-----BEGIN CERTIFICATE-----\n\\tMIIBlTCCATugAwIBAgIINLsws71B5zIwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU\n\\tRXh0ZXJuYWwgQ2VydGlmaWNhdGUwHhcNMjQwNTE3MjEyOTUzWhcNMjUwNTE3MjEy\n\\tOTUzWjAfMR0wGwYDVQQDDBRFeHRlcm5hbCBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49\n\\tAgEGCCqGSM49AwEHA0IABKE1g0Qj4ujIold9tklu2z4BUu/K7xDFF5YmedtOfJyM\n\\t1/80APNboqn71y4m4XNE1JNtQuR2bSZPHVrzODkR16ujYTBfMA8GA1UdEwEB/wQF\n\\tMAMBAf8wDgYDVR0PAQH/BAQDAgG2MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n\\tBQcDAjAdBgNVHQ4EFgQUNXd5bvluIV9YAhGc5yMHc6OzXpMwCgYIKoZIzj0EAwID\n\\tSAAwRQIhAODte/qS6CE30cvnQpxP/ObWBPIPZnHtkFHIIC1AOSXwAiBGCGQE+aJY\n\\tW72Rw0Y1ckvlt6sU0urkzGuj5wxVF/gSYA==\n\\t-----END CERTIFICATE-----\n\",\n    });\n\n    var external = new Routeros.SystemCertificate(\"external\", new()\n    {\n        Name = \"external.crt\",\n        CommonName = cert.Apply(getX509Result =\u003e getX509Result.CommonName),\n        Import = new Routeros.Inputs.SystemCertificateImportArgs\n        {\n            CertFileContent = cert.Apply(getX509Result =\u003e getX509Result.Pem),\n            KeyFileContent = @\"-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIHeMEkGCSqGSIb3DQEFDTA8MBsGCSqGSIb3DQEFDDAOBAiy/wEW6/MglgICCAAw\nHQYJYIZIAWUDBAEqBBD6v8dLA2FjPn62Xz57pcu9BIGQhclivPw1eC2b14ea58Tw\nnzDdbYN6/yUiMqapW2xZaT7ZFnbEai4n9/utgtEDnfKHlZvZj2kRhvYoWrvTkt/W\n1mkd5d/runsn+B5GO+CMHFHh4t41WMpZysmg+iP8FiiehOQEsWyEZFaedxfYYtSL\nSk+abxJ+NMQoh+S5d73niu1CO8uqQjOd8BoSOurURsOh\n-----END ENCRYPTED PRIVATE KEY-----\n\",\n            Passphrase = \"11111111\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trootCa, err := routeros.NewSystemCertificate(ctx, \"root_ca\", \u0026routeros.SystemCertificateArgs{\n\t\t\tSigns: routeros.SystemCertificateSignArray{\n\t\t\t\t\u0026routeros.SystemCertificateSignArgs{},\n\t\t\t},\n\t\t\tName:       pulumi.String(\"Test-Root-CA\"),\n\t\t\tCommonName: pulumi.String(\"RootCA\"),\n\t\t\tKeyUsages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"key-cert-sign\"),\n\t\t\t\tpulumi.String(\"crl-sign\"),\n\t\t\t},\n\t\t\tTrusted: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// digitalSignature: Used for entity and data origin authentication with integrity.\n\t\t// keyEncipherment:  Used to encrypt symmetric key, which is then transferred to target.\n\t\t// keyAgreement:     Enables use of key agreement to establish symmetric key with target.\n\t\t_, err = routeros.NewSystemCertificate(ctx, \"server_crt\", \u0026routeros.SystemCertificateArgs{\n\t\t\tName:       pulumi.String(\"Server-Certificate\"),\n\t\t\tCommonName: pulumi.String(\"server.crt\"),\n\t\t\tKeyUsages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"digital-signature\"),\n\t\t\t\tpulumi.String(\"key-encipherment\"),\n\t\t\t\tpulumi.String(\"tls-server\"),\n\t\t\t},\n\t\t\tSigns: routeros.SystemCertificateSignArray{\n\t\t\t\t\u0026routeros.SystemCertificateSignArgs{\n\t\t\t\t\tCa: rootCa.Name,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewSystemCertificate(ctx, \"client_crt\", \u0026routeros.SystemCertificateArgs{\n\t\t\tName:       pulumi.String(\"Client-Certificate\"),\n\t\t\tCommonName: pulumi.String(\"client.crt\"),\n\t\t\tKeySize:    pulumi.String(\"prime256v1\"),\n\t\t\tKeyUsages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"digital-signature\"),\n\t\t\t\tpulumi.String(\"key-agreement\"),\n\t\t\t\tpulumi.String(\"tls-client\"),\n\t\t\t},\n\t\t\tSigns: routeros.SystemCertificateSignArray{\n\t\t\t\t\u0026routeros.SystemCertificateSignArgs{\n\t\t\t\t\tCa: rootCa.Name,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewSystemCertificate(ctx, \"unsigned_crt\", \u0026routeros.SystemCertificateArgs{\n\t\t\tName:           pulumi.String(\"Unsigned-Certificate\"),\n\t\t\tCommonName:     pulumi.String(\"unsigned.crt\"),\n\t\t\tKeySize:        pulumi.String(\"1024\"),\n\t\t\tSubjectAltName: pulumi.String(\"DNS:router.lan,DNS:myrouter.lan,IP:192.168.88.1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewSystemCertificate(ctx, \"scep_client\", \u0026routeros.SystemCertificateArgs{\n\t\t\tName:       pulumi.String(\"SCEP-Client\"),\n\t\t\tCommonName: pulumi.String(\"scep-client.crt\"),\n\t\t\tKeyUsages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"digital-signature\"),\n\t\t\t\tpulumi.String(\"key-agreement\"),\n\t\t\t\tpulumi.String(\"tls-client\"),\n\t\t\t},\n\t\t\tSignViaSceps: routeros.SystemCertificateSignViaScepArray{\n\t\t\t\t\u0026routeros.SystemCertificateSignViaScepArgs{\n\t\t\t\t\tScepUrl: pulumi.String(\"http://scep.server/scep/test\"),\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// Import certificate\n\t\tcert, err := routeros.GetX509(ctx, \u0026routeros.GetX509Args{\n\t\t\tData: `\\t-----BEGIN CERTIFICATE-----\n\\tMIIBlTCCATugAwIBAgIINLsws71B5zIwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU\n\\tRXh0ZXJuYWwgQ2VydGlmaWNhdGUwHhcNMjQwNTE3MjEyOTUzWhcNMjUwNTE3MjEy\n\\tOTUzWjAfMR0wGwYDVQQDDBRFeHRlcm5hbCBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49\n\\tAgEGCCqGSM49AwEHA0IABKE1g0Qj4ujIold9tklu2z4BUu/K7xDFF5YmedtOfJyM\n\\t1/80APNboqn71y4m4XNE1JNtQuR2bSZPHVrzODkR16ujYTBfMA8GA1UdEwEB/wQF\n\\tMAMBAf8wDgYDVR0PAQH/BAQDAgG2MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n\\tBQcDAjAdBgNVHQ4EFgQUNXd5bvluIV9YAhGc5yMHc6OzXpMwCgYIKoZIzj0EAwID\n\\tSAAwRQIhAODte/qS6CE30cvnQpxP/ObWBPIPZnHtkFHIIC1AOSXwAiBGCGQE+aJY\n\\tW72Rw0Y1ckvlt6sU0urkzGuj5wxVF/gSYA==\n\\t-----END CERTIFICATE-----\n`,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewSystemCertificate(ctx, \"external\", \u0026routeros.SystemCertificateArgs{\n\t\t\tName:       pulumi.String(\"external.crt\"),\n\t\t\tCommonName: pulumi.String(cert.CommonName),\n\t\t\tImport: \u0026routeros.SystemCertificateImportArgs{\n\t\t\t\tCertFileContent: pulumi.String(cert.Pem),\n\t\t\t\tKeyFileContent: pulumi.String(`-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIHeMEkGCSqGSIb3DQEFDTA8MBsGCSqGSIb3DQEFDDAOBAiy/wEW6/MglgICCAAw\nHQYJYIZIAWUDBAEqBBD6v8dLA2FjPn62Xz57pcu9BIGQhclivPw1eC2b14ea58Tw\nnzDdbYN6/yUiMqapW2xZaT7ZFnbEai4n9/utgtEDnfKHlZvZj2kRhvYoWrvTkt/W\n1mkd5d/runsn+B5GO+CMHFHh4t41WMpZysmg+iP8FiiehOQEsWyEZFaedxfYYtSL\nSk+abxJ+NMQoh+S5d73niu1CO8uqQjOd8BoSOurURsOh\n-----END ENCRYPTED PRIVATE KEY-----\n`),\n\t\t\t\tPassphrase: pulumi.String(\"11111111\"),\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.routeros.SystemCertificate;\nimport com.pulumi.routeros.SystemCertificateArgs;\nimport com.pulumi.routeros.inputs.SystemCertificateSignArgs;\nimport com.pulumi.routeros.inputs.SystemCertificateSignViaScepArgs;\nimport com.pulumi.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetX509Args;\nimport com.pulumi.routeros.inputs.SystemCertificateImportArgs;\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 rootCa = new SystemCertificate(\"rootCa\", SystemCertificateArgs.builder()\n            .signs(SystemCertificateSignArgs.builder()\n                .build())\n            .name(\"Test-Root-CA\")\n            .commonName(\"RootCA\")\n            .keyUsages(            \n                \"key-cert-sign\",\n                \"crl-sign\")\n            .trusted(true)\n            .build());\n\n        // digitalSignature: Used for entity and data origin authentication with integrity.\n        // keyEncipherment:  Used to encrypt symmetric key, which is then transferred to target.\n        // keyAgreement:     Enables use of key agreement to establish symmetric key with target. \n        var serverCrt = new SystemCertificate(\"serverCrt\", SystemCertificateArgs.builder()\n            .name(\"Server-Certificate\")\n            .commonName(\"server.crt\")\n            .keyUsages(            \n                \"digital-signature\",\n                \"key-encipherment\",\n                \"tls-server\")\n            .signs(SystemCertificateSignArgs.builder()\n                .ca(rootCa.name())\n                .build())\n            .build());\n\n        var clientCrt = new SystemCertificate(\"clientCrt\", SystemCertificateArgs.builder()\n            .name(\"Client-Certificate\")\n            .commonName(\"client.crt\")\n            .keySize(\"prime256v1\")\n            .keyUsages(            \n                \"digital-signature\",\n                \"key-agreement\",\n                \"tls-client\")\n            .signs(SystemCertificateSignArgs.builder()\n                .ca(rootCa.name())\n                .build())\n            .build());\n\n        var unsignedCrt = new SystemCertificate(\"unsignedCrt\", SystemCertificateArgs.builder()\n            .name(\"Unsigned-Certificate\")\n            .commonName(\"unsigned.crt\")\n            .keySize(\"1024\")\n            .subjectAltName(\"DNS:router.lan,DNS:myrouter.lan,IP:192.168.88.1\")\n            .build());\n\n        var scepClient = new SystemCertificate(\"scepClient\", SystemCertificateArgs.builder()\n            .name(\"SCEP-Client\")\n            .commonName(\"scep-client.crt\")\n            .keyUsages(            \n                \"digital-signature\",\n                \"key-agreement\",\n                \"tls-client\")\n            .signViaSceps(SystemCertificateSignViaScepArgs.builder()\n                .scepUrl(\"http://scep.server/scep/test\")\n                .build())\n            .build());\n\n        //  Import certificate\n        final var cert = RouterosFunctions.getX509(GetX509Args.builder()\n            .data(\"\"\"\n\\t-----BEGIN CERTIFICATE-----\n\\tMIIBlTCCATugAwIBAgIINLsws71B5zIwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU\n\\tRXh0ZXJuYWwgQ2VydGlmaWNhdGUwHhcNMjQwNTE3MjEyOTUzWhcNMjUwNTE3MjEy\n\\tOTUzWjAfMR0wGwYDVQQDDBRFeHRlcm5hbCBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49\n\\tAgEGCCqGSM49AwEHA0IABKE1g0Qj4ujIold9tklu2z4BUu/K7xDFF5YmedtOfJyM\n\\t1/80APNboqn71y4m4XNE1JNtQuR2bSZPHVrzODkR16ujYTBfMA8GA1UdEwEB/wQF\n\\tMAMBAf8wDgYDVR0PAQH/BAQDAgG2MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n\\tBQcDAjAdBgNVHQ4EFgQUNXd5bvluIV9YAhGc5yMHc6OzXpMwCgYIKoZIzj0EAwID\n\\tSAAwRQIhAODte/qS6CE30cvnQpxP/ObWBPIPZnHtkFHIIC1AOSXwAiBGCGQE+aJY\n\\tW72Rw0Y1ckvlt6sU0urkzGuj5wxVF/gSYA==\n\\t-----END CERTIFICATE-----\n            \"\"\")\n            .build());\n\n        var external = new SystemCertificate(\"external\", SystemCertificateArgs.builder()\n            .name(\"external.crt\")\n            .commonName(cert.commonName())\n            .import_(SystemCertificateImportArgs.builder()\n                .certFileContent(cert.pem())\n                .keyFileContent(\"\"\"\n-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIHeMEkGCSqGSIb3DQEFDTA8MBsGCSqGSIb3DQEFDDAOBAiy/wEW6/MglgICCAAw\nHQYJYIZIAWUDBAEqBBD6v8dLA2FjPn62Xz57pcu9BIGQhclivPw1eC2b14ea58Tw\nnzDdbYN6/yUiMqapW2xZaT7ZFnbEai4n9/utgtEDnfKHlZvZj2kRhvYoWrvTkt/W\n1mkd5d/runsn+B5GO+CMHFHh4t41WMpZysmg+iP8FiiehOQEsWyEZFaedxfYYtSL\nSk+abxJ+NMQoh+S5d73niu1CO8uqQjOd8BoSOurURsOh\n-----END ENCRYPTED PRIVATE KEY-----\n                \"\"\")\n                .passphrase(\"11111111\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rootCa:\n    type: routeros:SystemCertificate\n    name: root_ca\n    properties:\n      signs:\n        - {}\n      name: Test-Root-CA\n      commonName: RootCA\n      keyUsages:\n        - key-cert-sign\n        - crl-sign\n      trusted: true # Sign Root CA.\n  # digitalSignature: Used for entity and data origin authentication with integrity.\n  # keyEncipherment:  Used to encrypt symmetric key, which is then transferred to target.\n  # keyAgreement:     Enables use of key agreement to establish symmetric key with target.\n  serverCrt:\n    type: routeros:SystemCertificate\n    name: server_crt\n    properties:\n      name: Server-Certificate\n      commonName: server.crt\n      keyUsages:\n        - digital-signature\n        - key-encipherment\n        - tls-server\n      signs:\n        - ca: ${rootCa.name}\n  clientCrt:\n    type: routeros:SystemCertificate\n    name: client_crt\n    properties:\n      name: Client-Certificate\n      commonName: client.crt\n      keySize: prime256v1\n      keyUsages:\n        - digital-signature\n        - key-agreement\n        - tls-client\n      signs:\n        - ca: ${rootCa.name}\n  unsignedCrt:\n    type: routeros:SystemCertificate\n    name: unsigned_crt\n    properties:\n      name: Unsigned-Certificate\n      commonName: unsigned.crt\n      keySize: '1024'\n      subjectAltName: DNS:router.lan,DNS:myrouter.lan,IP:192.168.88.1\n  scepClient:\n    type: routeros:SystemCertificate\n    name: scep_client\n    properties:\n      name: SCEP-Client\n      commonName: scep-client.crt\n      keyUsages:\n        - digital-signature\n        - key-agreement\n        - tls-client\n      signViaSceps:\n        - scepUrl: http://scep.server/scep/test\n  external:\n    type: routeros:SystemCertificate\n    properties:\n      name: external.crt\n      commonName: ${cert.commonName}\n      import:\n        certFileContent: ${cert.pem}\n        keyFileContent: |\n          -----BEGIN ENCRYPTED PRIVATE KEY-----\n          MIHeMEkGCSqGSIb3DQEFDTA8MBsGCSqGSIb3DQEFDDAOBAiy/wEW6/MglgICCAAw\n          HQYJYIZIAWUDBAEqBBD6v8dLA2FjPn62Xz57pcu9BIGQhclivPw1eC2b14ea58Tw\n          nzDdbYN6/yUiMqapW2xZaT7ZFnbEai4n9/utgtEDnfKHlZvZj2kRhvYoWrvTkt/W\n          1mkd5d/runsn+B5GO+CMHFHh4t41WMpZysmg+iP8FiiehOQEsWyEZFaedxfYYtSL\n          Sk+abxJ+NMQoh+S5d73niu1CO8uqQjOd8BoSOurURsOh\n          -----END ENCRYPTED PRIVATE KEY-----\n        passphrase: '11111111'\nvariables:\n  #  Import certificate\n  cert:\n    fn::invoke:\n      function: routeros:getX509\n      arguments:\n        data: |\n          \\t-----BEGIN CERTIFICATE-----\n          \\tMIIBlTCCATugAwIBAgIINLsws71B5zIwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU\n          \\tRXh0ZXJuYWwgQ2VydGlmaWNhdGUwHhcNMjQwNTE3MjEyOTUzWhcNMjUwNTE3MjEy\n          \\tOTUzWjAfMR0wGwYDVQQDDBRFeHRlcm5hbCBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49\n          \\tAgEGCCqGSM49AwEHA0IABKE1g0Qj4ujIold9tklu2z4BUu/K7xDFF5YmedtOfJyM\n          \\t1/80APNboqn71y4m4XNE1JNtQuR2bSZPHVrzODkR16ujYTBfMA8GA1UdEwEB/wQF\n          \\tMAMBAf8wDgYDVR0PAQH/BAQDAgG2MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n          \\tBQcDAjAdBgNVHQ4EFgQUNXd5bvluIV9YAhGc5yMHc6OzXpMwCgYIKoZIzj0EAwID\n          \\tSAAwRQIhAODte/qS6CE30cvnQpxP/ObWBPIPZnHtkFHIIC1AOSXwAiBGCGQE+aJY\n          \\tW72Rw0Y1ckvlt6sU0urkzGuj5wxVF/gSYA==\n          \\t-----END CERTIFICATE-----\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/certificate get [print show-ids]]\n\n#If you plan to manipulate the certificate requiring signing, you need to correctly fill in the sign{} section.\n\n#Changes in the sign{} section will not cause changes in the certificate. It's not a bug, it's a feature!\n\n```sh\n$ pulumi import routeros:index/systemCertificate:SystemCertificate client *9D\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/systemCertificate:SystemCertificate client \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"akid":{"type":"string","description":"Authority Key Identifier.\n"},"authority":{"type":"string"},"ca":{"type":"string"},"caCrlHost":{"type":"string"},"caFingerprint":{"type":"string"},"challengePassword":{"type":"string","description":"A challenge password for scep client.\n","secret":true},"commonName":{"type":"string","description":"Common Name (e.g. server FQDN or YOUR name).\n"},"copyFrom":{"type":"string"},"country":{"type":"string","description":"Country Name (2 letter code).\n"},"crl":{"type":"string"},"daysValid":{"type":"number","description":"Certificate lifetime.\n"},"digestAlgorithm":{"type":"boolean"},"dsa":{"type":"boolean"},"expired":{"type":"boolean","description":"Set to true if certificate is expired.\n"},"expiresAfter":{"type":"string"},"fingerprint":{"type":"string"},"import":{"$ref":"#/types/routeros:index%2FSystemCertificateImport:SystemCertificateImport"},"invalidAfter":{"type":"string","description":"The date after which certificate wil be invalid.\n"},"invalidBefore":{"type":"string","description":"The date before which certificate is invalid.\n"},"issued":{"type":"string"},"issuer":{"type":"string"},"keySize":{"type":"string"},"keyType":{"type":"string"},"keyUsages":{"type":"array","items":{"type":"string"},"description":"Detailed key usage descriptions can be found in RFC 5280.\n"},"locality":{"type":"string","description":"Locality Name (eg, city).\n"},"name":{"type":"string","description":"Name of the certificate. Name can be edited.\n"},"organization":{"type":"string","description":"Organizational Unit Name (eg, section)\n"},"privateKey":{"type":"boolean"},"reqFingerprint":{"type":"string"},"revoked":{"type":"string"},"scepUrl":{"type":"string"},"serialNumber":{"type":"string"},"signViaSceps":{"type":"array","items":{"$ref":"#/types/routeros:index%2FSystemCertificateSignViaScep:SystemCertificateSignViaScep"}},"signs":{"type":"array","items":{"$ref":"#/types/routeros:index%2FSystemCertificateSign:SystemCertificateSign"}},"skid":{"type":"string","description":"Subject Key Identifier.\n"},"smartCardKey":{"type":"string"},"state":{"type":"string","description":"State or Province Name (full name).\n"},"status":{"type":"string","description":"Shows current status of scep client.\n"},"subjectAltName":{"type":"string","description":"SANs (subject alternative names).\n"},"systemCertificateId":{"type":"string","description":"The ID of this resource.\n"},"trusted":{"type":"boolean","description":"If set to yes certificate is included 'in trusted certificate chain'.\n"},"unit":{"type":"string","description":"Organizational Unit Name (eg, section).\n"}},"type":"object","required":["akid","authority","ca","caCrlHost","caFingerprint","challengePassword","commonName","crl","digestAlgorithm","dsa","expired","expiresAfter","fingerprint","invalidAfter","invalidBefore","issued","issuer","keySize","keyType","name","privateKey","reqFingerprint","revoked","scepUrl","serialNumber","skid","smartCardKey","status","systemCertificateId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"commonName":{"type":"string","description":"Common Name (e.g. server FQDN or YOUR name).\n"},"copyFrom":{"type":"string"},"country":{"type":"string","description":"Country Name (2 letter code).\n"},"daysValid":{"type":"number","description":"Certificate lifetime.\n"},"import":{"$ref":"#/types/routeros:index%2FSystemCertificateImport:SystemCertificateImport"},"keySize":{"type":"string"},"keyUsages":{"type":"array","items":{"type":"string"},"description":"Detailed key usage descriptions can be found in RFC 5280.\n"},"locality":{"type":"string","description":"Locality Name (eg, city).\n"},"name":{"type":"string","description":"Name of the certificate. Name can be edited.\n"},"organization":{"type":"string","description":"Organizational Unit Name (eg, section)\n"},"signViaSceps":{"type":"array","items":{"$ref":"#/types/routeros:index%2FSystemCertificateSignViaScep:SystemCertificateSignViaScep"}},"signs":{"type":"array","items":{"$ref":"#/types/routeros:index%2FSystemCertificateSign:SystemCertificateSign"}},"state":{"type":"string","description":"State or Province Name (full name).\n"},"subjectAltName":{"type":"string","description":"SANs (subject alternative names).\n"},"systemCertificateId":{"type":"string","description":"The ID of this resource.\n"},"trusted":{"type":"boolean","description":"If set to yes certificate is included 'in trusted certificate chain'.\n"},"unit":{"type":"string","description":"Organizational Unit Name (eg, section).\n"}},"requiredInputs":["commonName"],"stateInputs":{"description":"Input properties used for looking up and filtering SystemCertificate resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"akid":{"type":"string","description":"Authority Key Identifier.\n"},"authority":{"type":"string"},"ca":{"type":"string"},"caCrlHost":{"type":"string"},"caFingerprint":{"type":"string"},"challengePassword":{"type":"string","description":"A challenge password for scep client.\n","secret":true},"commonName":{"type":"string","description":"Common Name (e.g. server FQDN or YOUR name).\n"},"copyFrom":{"type":"string"},"country":{"type":"string","description":"Country Name (2 letter code).\n"},"crl":{"type":"string"},"daysValid":{"type":"number","description":"Certificate lifetime.\n"},"digestAlgorithm":{"type":"boolean"},"dsa":{"type":"boolean"},"expired":{"type":"boolean","description":"Set to true if certificate is expired.\n"},"expiresAfter":{"type":"string"},"fingerprint":{"type":"string"},"import":{"$ref":"#/types/routeros:index%2FSystemCertificateImport:SystemCertificateImport"},"invalidAfter":{"type":"string","description":"The date after which certificate wil be invalid.\n"},"invalidBefore":{"type":"string","description":"The date before which certificate is invalid.\n"},"issued":{"type":"string"},"issuer":{"type":"string"},"keySize":{"type":"string"},"keyType":{"type":"string"},"keyUsages":{"type":"array","items":{"type":"string"},"description":"Detailed key usage descriptions can be found in RFC 5280.\n"},"locality":{"type":"string","description":"Locality Name (eg, city).\n"},"name":{"type":"string","description":"Name of the certificate. Name can be edited.\n"},"organization":{"type":"string","description":"Organizational Unit Name (eg, section)\n"},"privateKey":{"type":"boolean"},"reqFingerprint":{"type":"string"},"revoked":{"type":"string"},"scepUrl":{"type":"string"},"serialNumber":{"type":"string"},"signViaSceps":{"type":"array","items":{"$ref":"#/types/routeros:index%2FSystemCertificateSignViaScep:SystemCertificateSignViaScep"}},"signs":{"type":"array","items":{"$ref":"#/types/routeros:index%2FSystemCertificateSign:SystemCertificateSign"}},"skid":{"type":"string","description":"Subject Key Identifier.\n"},"smartCardKey":{"type":"string"},"state":{"type":"string","description":"State or Province Name (full name).\n"},"status":{"type":"string","description":"Shows current status of scep client.\n"},"subjectAltName":{"type":"string","description":"SANs (subject alternative names).\n"},"systemCertificateId":{"type":"string","description":"The ID of this resource.\n"},"trusted":{"type":"boolean","description":"If set to yes certificate is included 'in trusted certificate chain'.\n"},"unit":{"type":"string","description":"Organizational Unit Name (eg, section).\n"}},"type":"object"}},"routeros:index/systemCertificateScepServer:SystemCertificateScepServer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst exampleRootCa = new routeros.SystemCertificate(\"example_root_ca\", {\n    signs: [{}],\n    name: \"example_root_ca\",\n    commonName: \"Example Root CA\",\n    keyUsages: [\n        \"key-cert-sign\",\n        \"crl-sign\",\n    ],\n    trusted: true,\n});\n// You can also use the alias \"routeros_certificate_scep_server\"\nconst exampleScepServer = new routeros.SystemCertificateScepServer(\"example_scep_server\", {\n    caCert: exampleRootCa.name,\n    path: \"/scep/example_scep_server\",\n    daysValid: 30,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nexample_root_ca = routeros.SystemCertificate(\"example_root_ca\",\n    signs=[{}],\n    name=\"example_root_ca\",\n    common_name=\"Example Root CA\",\n    key_usages=[\n        \"key-cert-sign\",\n        \"crl-sign\",\n    ],\n    trusted=True)\n# You can also use the alias \"routeros_certificate_scep_server\"\nexample_scep_server = routeros.SystemCertificateScepServer(\"example_scep_server\",\n    ca_cert=example_root_ca.name,\n    path=\"/scep/example_scep_server\",\n    days_valid=30)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleRootCa = new Routeros.SystemCertificate(\"example_root_ca\", new()\n    {\n        Signs = new[]\n        {\n            null,\n        },\n        Name = \"example_root_ca\",\n        CommonName = \"Example Root CA\",\n        KeyUsages = new[]\n        {\n            \"key-cert-sign\",\n            \"crl-sign\",\n        },\n        Trusted = true,\n    });\n\n    // You can also use the alias \"routeros_certificate_scep_server\"\n    var exampleScepServer = new Routeros.SystemCertificateScepServer(\"example_scep_server\", new()\n    {\n        CaCert = exampleRootCa.Name,\n        Path = \"/scep/example_scep_server\",\n        DaysValid = 30,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleRootCa, err := routeros.NewSystemCertificate(ctx, \"example_root_ca\", \u0026routeros.SystemCertificateArgs{\n\t\t\tSigns: routeros.SystemCertificateSignArray{\n\t\t\t\t\u0026routeros.SystemCertificateSignArgs{},\n\t\t\t},\n\t\t\tName:       pulumi.String(\"example_root_ca\"),\n\t\t\tCommonName: pulumi.String(\"Example Root CA\"),\n\t\t\tKeyUsages: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"key-cert-sign\"),\n\t\t\t\tpulumi.String(\"crl-sign\"),\n\t\t\t},\n\t\t\tTrusted: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// You can also use the alias \"routeros_certificate_scep_server\"\n\t\t_, err = routeros.NewSystemCertificateScepServer(ctx, \"example_scep_server\", \u0026routeros.SystemCertificateScepServerArgs{\n\t\t\tCaCert:    exampleRootCa.Name,\n\t\t\tPath:      pulumi.String(\"/scep/example_scep_server\"),\n\t\t\tDaysValid: pulumi.Float64(30),\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.routeros.SystemCertificate;\nimport com.pulumi.routeros.SystemCertificateArgs;\nimport com.pulumi.routeros.inputs.SystemCertificateSignArgs;\nimport com.pulumi.routeros.SystemCertificateScepServer;\nimport com.pulumi.routeros.SystemCertificateScepServerArgs;\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 exampleRootCa = new SystemCertificate(\"exampleRootCa\", SystemCertificateArgs.builder()\n            .signs(SystemCertificateSignArgs.builder()\n                .build())\n            .name(\"example_root_ca\")\n            .commonName(\"Example Root CA\")\n            .keyUsages(            \n                \"key-cert-sign\",\n                \"crl-sign\")\n            .trusted(true)\n            .build());\n\n        // You can also use the alias \"routeros_certificate_scep_server\"\n        var exampleScepServer = new SystemCertificateScepServer(\"exampleScepServer\", SystemCertificateScepServerArgs.builder()\n            .caCert(exampleRootCa.name())\n            .path(\"/scep/example_scep_server\")\n            .daysValid(30.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleRootCa:\n    type: routeros:SystemCertificate\n    name: example_root_ca\n    properties:\n      signs:\n        - {}\n      name: example_root_ca\n      commonName: Example Root CA\n      keyUsages:\n        - key-cert-sign\n        - crl-sign\n      trusted: true\n  # You can also use the alias \"routeros_certificate_scep_server\"\n  exampleScepServer:\n    type: routeros:SystemCertificateScepServer\n    name: example_scep_server\n    properties:\n      caCert: ${exampleRootCa.name}\n      path: /scep/example_scep_server\n      daysValid: 30\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe ID can be found via API or the terminal\n\nThe command for the terminal is -\u003e /certificate/scep-server/print show-ids\n\n```sh\n$ pulumi import routeros:index/systemCertificateScepServer:SystemCertificateScepServer example_scep_server \"*1\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/systemCertificateScepServer:SystemCertificateScepServer example_scep_server \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"caCert":{"type":"string","description":"Name of the CA certificate to use.\n"},"daysValid":{"type":"number","description":"The number of days to sign certificates for.\n"},"disabled":{"type":"boolean"},"nextCaCert":{"type":"string","description":"Name of the next CA certificate or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"path":{"type":"string","description":"HTTP path starting with `/scep/`.\n"},"requestLifetime":{"type":"string","description":"Request lifetime (5m minimum).\n"},"systemCertificateScepServerId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["caCert","path","systemCertificateScepServerId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"caCert":{"type":"string","description":"Name of the CA certificate to use.\n"},"daysValid":{"type":"number","description":"The number of days to sign certificates for.\n"},"disabled":{"type":"boolean"},"nextCaCert":{"type":"string","description":"Name of the next CA certificate or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"path":{"type":"string","description":"HTTP path starting with `/scep/`.\n"},"requestLifetime":{"type":"string","description":"Request lifetime (5m minimum).\n"},"systemCertificateScepServerId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["caCert","path"],"stateInputs":{"description":"Input properties used for looking up and filtering SystemCertificateScepServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"caCert":{"type":"string","description":"Name of the CA certificate to use.\n"},"daysValid":{"type":"number","description":"The number of days to sign certificates for.\n"},"disabled":{"type":"boolean"},"nextCaCert":{"type":"string","description":"Name of the next CA certificate or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"path":{"type":"string","description":"HTTP path starting with `/scep/`.\n"},"requestLifetime":{"type":"string","description":"Request lifetime (5m minimum).\n"},"systemCertificateScepServerId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/systemClock:SystemClock":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst set = new routeros.SystemClock(\"set\", {\n    date: \"2024-05-15\",\n    time: \"17:58:11\",\n    timeZoneName: \"EST\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nset = routeros.SystemClock(\"set\",\n    date=\"2024-05-15\",\n    time=\"17:58:11\",\n    time_zone_name=\"EST\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @set = new Routeros.SystemClock(\"set\", new()\n    {\n        Date = \"2024-05-15\",\n        Time = \"17:58:11\",\n        TimeZoneName = \"EST\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemClock(ctx, \"set\", \u0026routeros.SystemClockArgs{\n\t\t\tDate:         pulumi.String(\"2024-05-15\"),\n\t\t\tTime:         pulumi.String(\"17:58:11\"),\n\t\t\tTimeZoneName: pulumi.String(\"EST\"),\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.routeros.SystemClock;\nimport com.pulumi.routeros.SystemClockArgs;\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 set = new SystemClock(\"set\", SystemClockArgs.builder()\n            .date(\"2024-05-15\")\n            .time(\"17:58:11\")\n            .timeZoneName(\"EST\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  set:\n    type: routeros:SystemClock\n    properties:\n      date: 2024-05-15\n      time: 17:58:11\n      timeZoneName: EST\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemClock:SystemClock set .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"date":{"type":"string","description":"Date.\n"},"dstActive":{"type":"boolean","description":"This property has the value yes while daylight saving time of the current time zone is active.\n"},"gmtOffset":{"type":"string","description":"This is the current value of GMT offset used by the system, after applying base time zone offset and active daylight saving time offset.\n"},"systemClockId":{"type":"string","description":"The ID of this resource.\n"},"time":{"type":"string","description":"Time.\n"},"timeZoneAutodetect":{"type":"boolean","description":"Feature available from v6.27. If enabled, the time zone will be set automatically.\n"},"timeZoneName":{"type":"string","description":"Name of the time zone. As most of the text values in RouterOS, this value is case sensitive. Special value manual applies [manually configured GMT offset](https://wiki.mikrotik.com/wiki/Manual:System/Time#Manual_time_zone_configuration), which by default is 00:00 with no daylight saving time.\n"}},"type":"object","required":["dstActive","gmtOffset","systemClockId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"date":{"type":"string","description":"Date.\n"},"systemClockId":{"type":"string","description":"The ID of this resource.\n"},"time":{"type":"string","description":"Time.\n"},"timeZoneAutodetect":{"type":"boolean","description":"Feature available from v6.27. If enabled, the time zone will be set automatically.\n"},"timeZoneName":{"type":"string","description":"Name of the time zone. As most of the text values in RouterOS, this value is case sensitive. Special value manual applies [manually configured GMT offset](https://wiki.mikrotik.com/wiki/Manual:System/Time#Manual_time_zone_configuration), which by default is 00:00 with no daylight saving time.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemClock resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"date":{"type":"string","description":"Date.\n"},"dstActive":{"type":"boolean","description":"This property has the value yes while daylight saving time of the current time zone is active.\n"},"gmtOffset":{"type":"string","description":"This is the current value of GMT offset used by the system, after applying base time zone offset and active daylight saving time offset.\n"},"systemClockId":{"type":"string","description":"The ID of this resource.\n"},"time":{"type":"string","description":"Time.\n"},"timeZoneAutodetect":{"type":"boolean","description":"Feature available from v6.27. If enabled, the time zone will be set automatically.\n"},"timeZoneName":{"type":"string","description":"Name of the time zone. As most of the text values in RouterOS, this value is case sensitive. Special value manual applies [manually configured GMT offset](https://wiki.mikrotik.com/wiki/Manual:System/Time#Manual_time_zone_configuration), which by default is 00:00 with no daylight saving time.\n"}},"type":"object"}},"routeros:index/systemIdentity:SystemIdentity":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst identity = new routeros.SystemIdentity(\"identity\", {name: \"My Router\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nidentity = routeros.SystemIdentity(\"identity\", name=\"My Router\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var identity = new Routeros.SystemIdentity(\"identity\", new()\n    {\n        Name = \"My Router\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemIdentity(ctx, \"identity\", \u0026routeros.SystemIdentityArgs{\n\t\t\tName: pulumi.String(\"My Router\"),\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.routeros.SystemIdentity;\nimport com.pulumi.routeros.SystemIdentityArgs;\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 identity = new SystemIdentity(\"identity\", SystemIdentityArgs.builder()\n            .name(\"My Router\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  identity:\n    type: routeros:SystemIdentity\n    properties:\n      name: My Router\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemIdentity:SystemIdentity identity .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"name":{"type":"string","description":"Device name.\n"},"systemIdentityId":{"type":"string"}},"type":"object","required":["name","systemIdentityId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"name":{"type":"string","description":"Device name.\n"},"systemIdentityId":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemIdentity resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"name":{"type":"string","description":"Device name.\n"},"systemIdentityId":{"type":"string"}},"type":"object"}},"routeros:index/systemLed:SystemLed":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst sfp1 = new routeros.SystemLed(\"sfp1\", {\n    \"interface\": \"sfp1\",\n    leds: [\"sfp-led\"],\n    type: \"interface-activity\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsfp1 = routeros.SystemLed(\"sfp1\",\n    interface=\"sfp1\",\n    leds=[\"sfp-led\"],\n    type=\"interface-activity\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sfp1 = new Routeros.SystemLed(\"sfp1\", new()\n    {\n        Interface = \"sfp1\",\n        Leds = new[]\n        {\n            \"sfp-led\",\n        },\n        Type = \"interface-activity\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemLed(ctx, \"sfp1\", \u0026routeros.SystemLedArgs{\n\t\t\tInterface: pulumi.String(\"sfp1\"),\n\t\t\tLeds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sfp-led\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"interface-activity\"),\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.routeros.SystemLed;\nimport com.pulumi.routeros.SystemLedArgs;\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 sfp1 = new SystemLed(\"sfp1\", SystemLedArgs.builder()\n            .interface_(\"sfp1\")\n            .leds(\"sfp-led\")\n            .type(\"interface-activity\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sfp1:\n    type: routeros:SystemLed\n    properties:\n      interface: sfp1\n      leds:\n        - sfp-led\n      type: interface-activity\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/system/leds get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/systemLed:SystemLed sfp1 '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/systemLed:SystemLed sfp1 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"An option to set the interface to which the LED is connected.\n"},"leds":{"type":"array","items":{"type":"string"},"description":"An option to set the LED name.\n"},"modemSignalTreshold":{"type":"number","description":"An option to set the signal strength threshold for the modem LED.\n"},"systemLedId":{"type":"string","description":"The ID of this resource.\n"},"type":{"type":"string","description":"An option to set the LED type.\n"}},"type":"object","required":["default","systemLedId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"An option to set the interface to which the LED is connected.\n"},"leds":{"type":"array","items":{"type":"string"},"description":"An option to set the LED name.\n"},"modemSignalTreshold":{"type":"number","description":"An option to set the signal strength threshold for the modem LED.\n"},"systemLedId":{"type":"string","description":"The ID of this resource.\n"},"type":{"type":"string","description":"An option to set the LED type.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemLed resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"An option to set the interface to which the LED is connected.\n"},"leds":{"type":"array","items":{"type":"string"},"description":"An option to set the LED name.\n"},"modemSignalTreshold":{"type":"number","description":"An option to set the signal strength threshold for the modem LED.\n"},"systemLedId":{"type":"string","description":"The ID of this resource.\n"},"type":{"type":"string","description":"An option to set the LED type.\n"}},"type":"object"}},"routeros:index/systemLedSettings:SystemLedSettings":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.SystemLedSettings(\"settings\", {allLedsOff: \"immediate\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.SystemLedSettings(\"settings\", all_leds_off=\"immediate\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.SystemLedSettings(\"settings\", new()\n    {\n        AllLedsOff = \"immediate\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemLedSettings(ctx, \"settings\", \u0026routeros.SystemLedSettingsArgs{\n\t\t\tAllLedsOff: pulumi.String(\"immediate\"),\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.routeros.SystemLedSettings;\nimport com.pulumi.routeros.SystemLedSettingsArgs;\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 settings = new SystemLedSettings(\"settings\", SystemLedSettingsArgs.builder()\n            .allLedsOff(\"immediate\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:SystemLedSettings\n    properties:\n      allLedsOff: immediate\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemLedSettings:SystemLedSettings settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allLedsOff":{"type":"string","description":"An option to set when all LEDs should be turned off. Possible values: `after-1h`, `after-1min`, \u003cspan pulumi-lang-nodejs=\"`immediate`\" pulumi-lang-dotnet=\"`Immediate`\" pulumi-lang-go=\"`immediate`\" pulumi-lang-python=\"`immediate`\" pulumi-lang-yaml=\"`immediate`\" pulumi-lang-java=\"`immediate`\"\u003e`immediate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`never`\" pulumi-lang-dotnet=\"`Never`\" pulumi-lang-go=\"`never`\" pulumi-lang-python=\"`never`\" pulumi-lang-yaml=\"`never`\" pulumi-lang-java=\"`never`\"\u003e`never`\u003c/span\u003e.\n"},"systemLedSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["systemLedSettingsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allLedsOff":{"type":"string","description":"An option to set when all LEDs should be turned off. Possible values: `after-1h`, `after-1min`, \u003cspan pulumi-lang-nodejs=\"`immediate`\" pulumi-lang-dotnet=\"`Immediate`\" pulumi-lang-go=\"`immediate`\" pulumi-lang-python=\"`immediate`\" pulumi-lang-yaml=\"`immediate`\" pulumi-lang-java=\"`immediate`\"\u003e`immediate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`never`\" pulumi-lang-dotnet=\"`Never`\" pulumi-lang-go=\"`never`\" pulumi-lang-python=\"`never`\" pulumi-lang-yaml=\"`never`\" pulumi-lang-java=\"`never`\"\u003e`never`\u003c/span\u003e.\n"},"systemLedSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemLedSettings resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allLedsOff":{"type":"string","description":"An option to set when all LEDs should be turned off. Possible values: `after-1h`, `after-1min`, \u003cspan pulumi-lang-nodejs=\"`immediate`\" pulumi-lang-dotnet=\"`Immediate`\" pulumi-lang-go=\"`immediate`\" pulumi-lang-python=\"`immediate`\" pulumi-lang-yaml=\"`immediate`\" pulumi-lang-java=\"`immediate`\"\u003e`immediate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`never`\" pulumi-lang-dotnet=\"`Never`\" pulumi-lang-go=\"`never`\" pulumi-lang-python=\"`never`\" pulumi-lang-yaml=\"`never`\" pulumi-lang-java=\"`never`\"\u003e`never`\u003c/span\u003e.\n"},"systemLedSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/systemLogging:SystemLogging":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst logSnmpDisk = new routeros.SystemLogging(\"log_snmp_disk\", {\n    action: \"disk\",\n    topics: [\"snmp\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nlog_snmp_disk = routeros.SystemLogging(\"log_snmp_disk\",\n    action=\"disk\",\n    topics=[\"snmp\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var logSnmpDisk = new Routeros.SystemLogging(\"log_snmp_disk\", new()\n    {\n        Action = \"disk\",\n        Topics = new[]\n        {\n            \"snmp\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemLogging(ctx, \"log_snmp_disk\", \u0026routeros.SystemLoggingArgs{\n\t\t\tAction: pulumi.String(\"disk\"),\n\t\t\tTopics: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"snmp\"),\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.routeros.SystemLogging;\nimport com.pulumi.routeros.SystemLoggingArgs;\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 logSnmpDisk = new SystemLogging(\"logSnmpDisk\", SystemLoggingArgs.builder()\n            .action(\"disk\")\n            .topics(\"snmp\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  logSnmpDisk:\n    type: routeros:SystemLogging\n    name: log_snmp_disk\n    properties:\n      action: disk\n      topics:\n        - snmp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe ID can be found via API or the terminal\n\nThe command for the terminal is -\u003e :put [/system/logging/print  get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/systemLogging:SystemLogging log_snmp_disk \"*4\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"specifies one of the system default actions or user specified action listed in actions menu\n"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"invalid":{"type":"boolean"},"prefix":{"type":"string","description":"prefix added at the beginning of log messages\n"},"regex":{"type":"string","description":"Regex which will be used in order to match or not match message. If the regex is not matched, then even if topic is configured to be logged, but log message does not match regex, action will not be performed.\n"},"systemLoggingId":{"type":"string","description":"The ID of this resource.\n"},"topics":{"type":"array","items":{"type":"string"},"description":"log all messages that falls into specified topic or list of topics.\n\t\t\t\t\t  '!' character can be used before topic to exclude messages falling under this topic. For example, we want to log NTP debug info without too much details:\n\t\t\t\t\t  /system logging add topics=ntp,debug,!packet\n"}},"type":"object","required":["action","default","invalid","systemLoggingId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"specifies one of the system default actions or user specified action listed in actions menu\n"},"disabled":{"type":"boolean"},"prefix":{"type":"string","description":"prefix added at the beginning of log messages\n"},"regex":{"type":"string","description":"Regex which will be used in order to match or not match message. If the regex is not matched, then even if topic is configured to be logged, but log message does not match regex, action will not be performed.\n"},"systemLoggingId":{"type":"string","description":"The ID of this resource.\n"},"topics":{"type":"array","items":{"type":"string"},"description":"log all messages that falls into specified topic or list of topics.\n\t\t\t\t\t  '!' character can be used before topic to exclude messages falling under this topic. For example, we want to log NTP debug info without too much details:\n\t\t\t\t\t  /system logging add topics=ntp,debug,!packet\n"}},"requiredInputs":["action"],"stateInputs":{"description":"Input properties used for looking up and filtering SystemLogging resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"specifies one of the system default actions or user specified action listed in actions menu\n"},"default":{"type":"boolean","description":"It's the default item.\n"},"disabled":{"type":"boolean"},"invalid":{"type":"boolean"},"prefix":{"type":"string","description":"prefix added at the beginning of log messages\n"},"regex":{"type":"string","description":"Regex which will be used in order to match or not match message. If the regex is not matched, then even if topic is configured to be logged, but log message does not match regex, action will not be performed.\n"},"systemLoggingId":{"type":"string","description":"The ID of this resource.\n"},"topics":{"type":"array","items":{"type":"string"},"description":"log all messages that falls into specified topic or list of topics.\n\t\t\t\t\t  '!' character can be used before topic to exclude messages falling under this topic. For example, we want to log NTP debug info without too much details:\n\t\t\t\t\t  /system logging add topics=ntp,debug,!packet\n"}},"type":"object"}},"routeros:index/systemLoggingAction:SystemLoggingAction":{"properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bsdSyslog":{"type":"boolean","description":"Whether to use bsd-syslog as defined in RFC 3164.","deprecationMessage":"Deprecated"},"cefEventDelimiter":{"type":"string","description":"Option helps remote syslog to distinguish between individual events within sent batch"},"default":{"type":"boolean","description":"It's the default item."},"diskFileCount":{"type":"number","description":"Specifies number of files used to store log messages, applicable only if `action=disk`."},"diskFileName":{"type":"string","description":"Name of the file used to store log messages, applicable only if `action=disk`."},"diskLinesPerFile":{"type":"number","description":"Specifies maximum size of file in lines, applicable only if `action=disk`."},"diskStopOnFull":{"type":"boolean","description":"Whether to stop to save log messages to disk after the specified disk-lines-per-file and disk-file-count number is reached, applicable only if `action=disk`."},"emailStartTls":{"type":"boolean","description":"Whether to use tls when sending email, applicable only if `action=email`."},"emailTo":{"type":"string","description":"Email address where logs are sent, applicable only if `action=email`."},"memoryLines":{"type":"number","description":"Number of records in local memory buffer, applicable only if `action=memory`."},"memoryStopOnFull":{"type":"boolean","description":"Whether to stop to save log messages in local buffer after the specified memory-lines number is reached."},"name":{"type":"string","description":"Name of an action."},"remember":{"type":"boolean","description":"Whether to keep log messages, which have not yet been displayed in console, applicable if `action=echo`."},"remote":{"type":"string","description":"Remote logging server's IP/IPv6 address, applicable if `action=remote`."},"remoteLogFormat":{"type":"string","description":"Format for logs to be sent to remote instance:\n\n    - **cef** - logs are sent in CEF format;\n    - **default** - logs are sent as it is;\n    - **syslog** - logs are sent in BSD-syslog format."},"remotePort":{"type":"number","description":"Remote logging server's UDP port, applicable if `action=remote`."},"remoteProtocol":{"type":"string","description":"Protocol for remote logging messages."},"srcAddress":{"type":"string","description":"Source address used when sending packets to remote server, applicable if `action=remote`."},"syslogFacility":{"type":"string","description":"SYSLOG facility, applicable if `action=remote`."},"syslogSeverity":{"type":"string","description":"Severity level indicator defined in RFC 3164, applicable if `action=remote`."},"syslogTimeFormat":{"type":"string","description":"SYSLOG time format (`bsd-syslog` or \u003cspan pulumi-lang-nodejs=\"`iso8601`\" pulumi-lang-dotnet=\"`Iso8601`\" pulumi-lang-go=\"`iso8601`\" pulumi-lang-python=\"`iso8601`\" pulumi-lang-yaml=\"`iso8601`\" pulumi-lang-java=\"`iso8601`\"\u003e`iso8601`\u003c/span\u003e)."},"systemLoggingActionId":{"type":"string"},"target":{"type":"string","description":"Storage facility or target of log messages."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"type":"object","required":["default","name","systemLoggingActionId","target"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bsdSyslog":{"type":"boolean","description":"Whether to use bsd-syslog as defined in RFC 3164.","deprecationMessage":"Deprecated"},"cefEventDelimiter":{"type":"string","description":"Option helps remote syslog to distinguish between individual events within sent batch"},"diskFileCount":{"type":"number","description":"Specifies number of files used to store log messages, applicable only if `action=disk`."},"diskFileName":{"type":"string","description":"Name of the file used to store log messages, applicable only if `action=disk`."},"diskLinesPerFile":{"type":"number","description":"Specifies maximum size of file in lines, applicable only if `action=disk`."},"diskStopOnFull":{"type":"boolean","description":"Whether to stop to save log messages to disk after the specified disk-lines-per-file and disk-file-count number is reached, applicable only if `action=disk`."},"emailStartTls":{"type":"boolean","description":"Whether to use tls when sending email, applicable only if `action=email`."},"emailTo":{"type":"string","description":"Email address where logs are sent, applicable only if `action=email`."},"memoryLines":{"type":"number","description":"Number of records in local memory buffer, applicable only if `action=memory`."},"memoryStopOnFull":{"type":"boolean","description":"Whether to stop to save log messages in local buffer after the specified memory-lines number is reached."},"name":{"type":"string","description":"Name of an action."},"remember":{"type":"boolean","description":"Whether to keep log messages, which have not yet been displayed in console, applicable if `action=echo`."},"remote":{"type":"string","description":"Remote logging server's IP/IPv6 address, applicable if `action=remote`."},"remoteLogFormat":{"type":"string","description":"Format for logs to be sent to remote instance:\n\n    - **cef** - logs are sent in CEF format;\n    - **default** - logs are sent as it is;\n    - **syslog** - logs are sent in BSD-syslog format."},"remotePort":{"type":"number","description":"Remote logging server's UDP port, applicable if `action=remote`."},"remoteProtocol":{"type":"string","description":"Protocol for remote logging messages."},"srcAddress":{"type":"string","description":"Source address used when sending packets to remote server, applicable if `action=remote`."},"syslogFacility":{"type":"string","description":"SYSLOG facility, applicable if `action=remote`."},"syslogSeverity":{"type":"string","description":"Severity level indicator defined in RFC 3164, applicable if `action=remote`."},"syslogTimeFormat":{"type":"string","description":"SYSLOG time format (`bsd-syslog` or \u003cspan pulumi-lang-nodejs=\"`iso8601`\" pulumi-lang-dotnet=\"`Iso8601`\" pulumi-lang-go=\"`iso8601`\" pulumi-lang-python=\"`iso8601`\" pulumi-lang-yaml=\"`iso8601`\" pulumi-lang-java=\"`iso8601`\"\u003e`iso8601`\u003c/span\u003e)."},"systemLoggingActionId":{"type":"string"},"target":{"type":"string","description":"Storage facility or target of log messages."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"requiredInputs":["target"],"stateInputs":{"description":"Input properties used for looking up and filtering SystemLoggingAction resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bsdSyslog":{"type":"boolean","description":"Whether to use bsd-syslog as defined in RFC 3164.","deprecationMessage":"Deprecated"},"cefEventDelimiter":{"type":"string","description":"Option helps remote syslog to distinguish between individual events within sent batch"},"default":{"type":"boolean","description":"It's the default item."},"diskFileCount":{"type":"number","description":"Specifies number of files used to store log messages, applicable only if `action=disk`."},"diskFileName":{"type":"string","description":"Name of the file used to store log messages, applicable only if `action=disk`."},"diskLinesPerFile":{"type":"number","description":"Specifies maximum size of file in lines, applicable only if `action=disk`."},"diskStopOnFull":{"type":"boolean","description":"Whether to stop to save log messages to disk after the specified disk-lines-per-file and disk-file-count number is reached, applicable only if `action=disk`."},"emailStartTls":{"type":"boolean","description":"Whether to use tls when sending email, applicable only if `action=email`."},"emailTo":{"type":"string","description":"Email address where logs are sent, applicable only if `action=email`."},"memoryLines":{"type":"number","description":"Number of records in local memory buffer, applicable only if `action=memory`."},"memoryStopOnFull":{"type":"boolean","description":"Whether to stop to save log messages in local buffer after the specified memory-lines number is reached."},"name":{"type":"string","description":"Name of an action."},"remember":{"type":"boolean","description":"Whether to keep log messages, which have not yet been displayed in console, applicable if `action=echo`."},"remote":{"type":"string","description":"Remote logging server's IP/IPv6 address, applicable if `action=remote`."},"remoteLogFormat":{"type":"string","description":"Format for logs to be sent to remote instance:\n\n    - **cef** - logs are sent in CEF format;\n    - **default** - logs are sent as it is;\n    - **syslog** - logs are sent in BSD-syslog format."},"remotePort":{"type":"number","description":"Remote logging server's UDP port, applicable if `action=remote`."},"remoteProtocol":{"type":"string","description":"Protocol for remote logging messages."},"srcAddress":{"type":"string","description":"Source address used when sending packets to remote server, applicable if `action=remote`."},"syslogFacility":{"type":"string","description":"SYSLOG facility, applicable if `action=remote`."},"syslogSeverity":{"type":"string","description":"Severity level indicator defined in RFC 3164, applicable if `action=remote`."},"syslogTimeFormat":{"type":"string","description":"SYSLOG time format (`bsd-syslog` or \u003cspan pulumi-lang-nodejs=\"`iso8601`\" pulumi-lang-dotnet=\"`Iso8601`\" pulumi-lang-go=\"`iso8601`\" pulumi-lang-python=\"`iso8601`\" pulumi-lang-yaml=\"`iso8601`\" pulumi-lang-java=\"`iso8601`\"\u003e`iso8601`\u003c/span\u003e)."},"systemLoggingActionId":{"type":"string"},"target":{"type":"string","description":"Storage facility or target of log messages."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"type":"object"}},"routeros:index/systemNote:SystemNote":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.SystemNote(\"test\", {\n    note: \"For authorized use only.\",\n    showAtLogin: true,\n    showAtCliLogin: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.SystemNote(\"test\",\n    note=\"For authorized use only.\",\n    show_at_login=True,\n    show_at_cli_login=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.SystemNote(\"test\", new()\n    {\n        Note = \"For authorized use only.\",\n        ShowAtLogin = true,\n        ShowAtCliLogin = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemNote(ctx, \"test\", \u0026routeros.SystemNoteArgs{\n\t\t\tNote:           pulumi.String(\"For authorized use only.\"),\n\t\t\tShowAtLogin:    pulumi.Bool(true),\n\t\t\tShowAtCliLogin: 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.routeros.SystemNote;\nimport com.pulumi.routeros.SystemNoteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new SystemNote(\"test\", SystemNoteArgs.builder()\n            .note(\"For authorized use only.\")\n            .showAtLogin(true)\n            .showAtCliLogin(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:SystemNote\n    properties:\n      note: For authorized use only.\n      showAtLogin: true\n      showAtCliLogin: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemNote:SystemNote test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"note":{"type":"string","description":"Note that will be displayed.\n"},"showAtCliLogin":{"type":"boolean","description":"Whether to show system note before telnet login prompt.\n"},"showAtLogin":{"type":"boolean","description":"Whether to show system note on each login.\n"},"systemNoteId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["note","systemNoteId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"note":{"type":"string","description":"Note that will be displayed.\n"},"showAtCliLogin":{"type":"boolean","description":"Whether to show system note before telnet login prompt.\n"},"showAtLogin":{"type":"boolean","description":"Whether to show system note on each login.\n"},"systemNoteId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["note"],"stateInputs":{"description":"Input properties used for looking up and filtering SystemNote resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"note":{"type":"string","description":"Note that will be displayed.\n"},"showAtCliLogin":{"type":"boolean","description":"Whether to show system note before telnet login prompt.\n"},"showAtLogin":{"type":"boolean","description":"Whether to show system note on each login.\n"},"systemNoteId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/systemNtpClient:SystemNtpClient":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.SystemNtpClient(\"test\", {\n    enabled: true,\n    mode: \"unicast\",\n    servers: [\n        \"146.59.35.38\",\n        \"167.235.201.139\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.SystemNtpClient(\"test\",\n    enabled=True,\n    mode=\"unicast\",\n    servers=[\n        \"146.59.35.38\",\n        \"167.235.201.139\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.SystemNtpClient(\"test\", new()\n    {\n        Enabled = true,\n        Mode = \"unicast\",\n        Servers = new[]\n        {\n            \"146.59.35.38\",\n            \"167.235.201.139\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemNtpClient(ctx, \"test\", \u0026routeros.SystemNtpClientArgs{\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tMode:    pulumi.String(\"unicast\"),\n\t\t\tServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"146.59.35.38\"),\n\t\t\t\tpulumi.String(\"167.235.201.139\"),\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.routeros.SystemNtpClient;\nimport com.pulumi.routeros.SystemNtpClientArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new SystemNtpClient(\"test\", SystemNtpClientArgs.builder()\n            .enabled(true)\n            .mode(\"unicast\")\n            .servers(            \n                \"146.59.35.38\",\n                \"167.235.201.139\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:SystemNtpClient\n    properties:\n      enabled: true\n      mode: unicast\n      servers:\n        - 146.59.35.38\n        - 167.235.201.139\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemNtpClient:SystemNtpClient test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"Enable NTP client."},"freqDrift":{"type":"string","description":"The fractional frequency drift per unit time."},"mode":{"type":"string","description":"Mode that the NTP client will operate in"},"servers":{"type":"array","items":{"type":"string"},"description":"The list of NTP servers. It is possible to add static entries.The following formats are accepted:\n  * FQDN (\"Resolved Address\" will appear in the \"Servers\"- window in an appropriate column if the address is resolved) or IP address can be used. If DHCP-Client property `use-peer-ntp=yes` - the dynamic entries advertised by DHCP\n  * ipv4\n  * ipv4@vrf\n  * ipv6\n  * ipv6@vrf\n  * ipv6-linklocal%interface"},"status":{"type":"string","description":"Current status of the NTP client."},"syncedServer":{"type":"string","description":"The IP address of the NTP Server."},"syncedStratum":{"type":"string","description":"The accuracy of each server is defined by a number called the stratum, with the topmost level (primary servers) assigned as one and each level downwards (secondary servers) in the hierarchy assigned as one greater than the preceding level."},"systemNtpClientId":{"type":"string"},"systemOffset":{"type":"string","description":"This is a signed, fixed-point number indicating the offset of the NTP server's clock relative to the local clock, in seconds."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"type":"object","required":["freqDrift","status","syncedServer","syncedStratum","systemNtpClientId","systemOffset"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"Enable NTP client."},"mode":{"type":"string","description":"Mode that the NTP client will operate in"},"servers":{"type":"array","items":{"type":"string"},"description":"The list of NTP servers. It is possible to add static entries.The following formats are accepted:\n  * FQDN (\"Resolved Address\" will appear in the \"Servers\"- window in an appropriate column if the address is resolved) or IP address can be used. If DHCP-Client property `use-peer-ntp=yes` - the dynamic entries advertised by DHCP\n  * ipv4\n  * ipv4@vrf\n  * ipv6\n  * ipv6@vrf\n  * ipv6-linklocal%interface"},"systemNtpClientId":{"type":"string"},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemNtpClient resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"Enable NTP client."},"freqDrift":{"type":"string","description":"The fractional frequency drift per unit time."},"mode":{"type":"string","description":"Mode that the NTP client will operate in"},"servers":{"type":"array","items":{"type":"string"},"description":"The list of NTP servers. It is possible to add static entries.The following formats are accepted:\n  * FQDN (\"Resolved Address\" will appear in the \"Servers\"- window in an appropriate column if the address is resolved) or IP address can be used. If DHCP-Client property `use-peer-ntp=yes` - the dynamic entries advertised by DHCP\n  * ipv4\n  * ipv4@vrf\n  * ipv6\n  * ipv6@vrf\n  * ipv6-linklocal%interface"},"status":{"type":"string","description":"Current status of the NTP client."},"syncedServer":{"type":"string","description":"The IP address of the NTP Server."},"syncedStratum":{"type":"string","description":"The accuracy of each server is defined by a number called the stratum, with the topmost level (primary servers) assigned as one and each level downwards (secondary servers) in the hierarchy assigned as one greater than the preceding level."},"systemNtpClientId":{"type":"string"},"systemOffset":{"type":"string","description":"This is a signed, fixed-point number indicating the offset of the NTP server's clock relative to the local clock, in seconds."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"type":"object"}},"routeros:index/systemNtpServer:SystemNtpServer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.SystemNtpServer(\"test\", {\n    enabled: true,\n    broadcast: true,\n    multicast: true,\n    manycast: true,\n    useLocalClock: true,\n    localClockStratum: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.SystemNtpServer(\"test\",\n    enabled=True,\n    broadcast=True,\n    multicast=True,\n    manycast=True,\n    use_local_clock=True,\n    local_clock_stratum=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.SystemNtpServer(\"test\", new()\n    {\n        Enabled = true,\n        Broadcast = true,\n        Multicast = true,\n        Manycast = true,\n        UseLocalClock = true,\n        LocalClockStratum = 3,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemNtpServer(ctx, \"test\", \u0026routeros.SystemNtpServerArgs{\n\t\t\tEnabled:           pulumi.Bool(true),\n\t\t\tBroadcast:         pulumi.Bool(true),\n\t\t\tMulticast:         pulumi.Bool(true),\n\t\t\tManycast:          pulumi.Bool(true),\n\t\t\tUseLocalClock:     pulumi.Bool(true),\n\t\t\tLocalClockStratum: pulumi.Float64(3),\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.routeros.SystemNtpServer;\nimport com.pulumi.routeros.SystemNtpServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new SystemNtpServer(\"test\", SystemNtpServerArgs.builder()\n            .enabled(true)\n            .broadcast(true)\n            .multicast(true)\n            .manycast(true)\n            .useLocalClock(true)\n            .localClockStratum(3.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:SystemNtpServer\n    properties:\n      enabled: true\n      broadcast: true\n      multicast: true\n      manycast: true\n      useLocalClock: true\n      localClockStratum: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemNtpServer:SystemNtpServer test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authKey":{"type":"string","description":"NTP symmetric key, used for authentication between the NTP client and server. Key Identifier (Key ID) - an integer identifying the cryptographic key used to generate the message-authentication code.\n"},"broadcast":{"type":"boolean","description":"Enable certain NTP server mode, for this mode to work you have to set up broadcast-addresses field.\n"},"broadcastAddresses":{"type":"string","description":"Set broadcast address to use for NTP server broadcast mode.\n"},"enabled":{"type":"boolean","description":"Enable NTP server.\n"},"localClockStratum":{"type":"number","description":"Manually set stratum if \u003cspan pulumi-lang-nodejs=\"`useLocalClock \" pulumi-lang-dotnet=\"`UseLocalClock \" pulumi-lang-go=\"`useLocalClock \" pulumi-lang-python=\"`use_local_clock \" pulumi-lang-yaml=\"`useLocalClock \" pulumi-lang-java=\"`useLocalClock \"\u003e`use_local_clock \u003c/span\u003e= true`.\n"},"manycast":{"type":"boolean","description":"Enable certain NTP server mode.\n"},"multicast":{"type":"boolean","description":"Enable certain NTP server mode.\n"},"systemNtpServerId":{"type":"string","description":"The ID of this resource.\n"},"useLocalClock":{"type":"boolean","description":"The server will supply its local system time as valid if others are not available.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object","required":["systemNtpServerId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authKey":{"type":"string","description":"NTP symmetric key, used for authentication between the NTP client and server. Key Identifier (Key ID) - an integer identifying the cryptographic key used to generate the message-authentication code.\n"},"broadcast":{"type":"boolean","description":"Enable certain NTP server mode, for this mode to work you have to set up broadcast-addresses field.\n"},"broadcastAddresses":{"type":"string","description":"Set broadcast address to use for NTP server broadcast mode.\n"},"enabled":{"type":"boolean","description":"Enable NTP server.\n"},"localClockStratum":{"type":"number","description":"Manually set stratum if \u003cspan pulumi-lang-nodejs=\"`useLocalClock \" pulumi-lang-dotnet=\"`UseLocalClock \" pulumi-lang-go=\"`useLocalClock \" pulumi-lang-python=\"`use_local_clock \" pulumi-lang-yaml=\"`useLocalClock \" pulumi-lang-java=\"`useLocalClock \"\u003e`use_local_clock \u003c/span\u003e= true`.\n"},"manycast":{"type":"boolean","description":"Enable certain NTP server mode.\n"},"multicast":{"type":"boolean","description":"Enable certain NTP server mode.\n"},"systemNtpServerId":{"type":"string","description":"The ID of this resource.\n"},"useLocalClock":{"type":"boolean","description":"The server will supply its local system time as valid if others are not available.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemNtpServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authKey":{"type":"string","description":"NTP symmetric key, used for authentication between the NTP client and server. Key Identifier (Key ID) - an integer identifying the cryptographic key used to generate the message-authentication code.\n"},"broadcast":{"type":"boolean","description":"Enable certain NTP server mode, for this mode to work you have to set up broadcast-addresses field.\n"},"broadcastAddresses":{"type":"string","description":"Set broadcast address to use for NTP server broadcast mode.\n"},"enabled":{"type":"boolean","description":"Enable NTP server.\n"},"localClockStratum":{"type":"number","description":"Manually set stratum if \u003cspan pulumi-lang-nodejs=\"`useLocalClock \" pulumi-lang-dotnet=\"`UseLocalClock \" pulumi-lang-go=\"`useLocalClock \" pulumi-lang-python=\"`use_local_clock \" pulumi-lang-yaml=\"`useLocalClock \" pulumi-lang-java=\"`useLocalClock \"\u003e`use_local_clock \u003c/span\u003e= true`.\n"},"manycast":{"type":"boolean","description":"Enable certain NTP server mode.\n"},"multicast":{"type":"boolean","description":"Enable certain NTP server mode.\n"},"systemNtpServerId":{"type":"string","description":"The ID of this resource.\n"},"useLocalClock":{"type":"boolean","description":"The server will supply its local system time as valid if others are not available.\n"},"vrf":{"type":"string","description":"The VRF table this resource operates on.\n"}},"type":"object"}},"routeros:index/systemRouterboardButtonMode:SystemRouterboardButtonMode":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst modeButton = new routeros.SystemScript(\"mode_button\", {\n    name: \"mode-button\",\n    source: \"    :log info message=(\\\\\\\"mode button pressed\\\\\\\")\\n\",\n});\nconst settings = new routeros.SystemRouterboardButtonMode(\"settings\", {\n    enabled: true,\n    holdTime: \"0s..1m\",\n    onEvent: modeButton.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nmode_button = routeros.SystemScript(\"mode_button\",\n    name=\"mode-button\",\n    source=\"    :log info message=(\\\\\\\"mode button pressed\\\\\\\")\\n\")\nsettings = routeros.SystemRouterboardButtonMode(\"settings\",\n    enabled=True,\n    hold_time=\"0s..1m\",\n    on_event=mode_button.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var modeButton = new Routeros.SystemScript(\"mode_button\", new()\n    {\n        Name = \"mode-button\",\n        Source = @\"    :log info message=(\\\"\"mode button pressed\\\"\")\n\",\n    });\n\n    var settings = new Routeros.SystemRouterboardButtonMode(\"settings\", new()\n    {\n        Enabled = true,\n        HoldTime = \"0s..1m\",\n        OnEvent = modeButton.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmodeButton, err := routeros.NewSystemScript(ctx, \"mode_button\", \u0026routeros.SystemScriptArgs{\n\t\t\tName:   pulumi.String(\"mode-button\"),\n\t\t\tSource: pulumi.String(\"    :log info message=(\\\\\\\"mode button pressed\\\\\\\")\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewSystemRouterboardButtonMode(ctx, \"settings\", \u0026routeros.SystemRouterboardButtonModeArgs{\n\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\tHoldTime: pulumi.String(\"0s..1m\"),\n\t\t\tOnEvent:  modeButton.Name,\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.routeros.SystemScript;\nimport com.pulumi.routeros.SystemScriptArgs;\nimport com.pulumi.routeros.SystemRouterboardButtonMode;\nimport com.pulumi.routeros.SystemRouterboardButtonModeArgs;\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 modeButton = new SystemScript(\"modeButton\", SystemScriptArgs.builder()\n            .name(\"mode-button\")\n            .source(\"\"\"\n    :log info message=(\\\"mode button pressed\\\")\n            \"\"\")\n            .build());\n\n        var settings = new SystemRouterboardButtonMode(\"settings\", SystemRouterboardButtonModeArgs.builder()\n            .enabled(true)\n            .holdTime(\"0s..1m\")\n            .onEvent(modeButton.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  modeButton:\n    type: routeros:SystemScript\n    name: mode_button\n    properties:\n      name: mode-button\n      source: |2\n            :log info message=(\\\"mode button pressed\\\")\n  settings:\n    type: routeros:SystemRouterboardButtonMode\n    properties:\n      enabled: true\n      holdTime: 0s..1m\n      onEvent: ${modeButton.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemRouterboardButtonMode:SystemRouterboardButtonMode settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"An option to enable the operation of the button.\n"},"holdTime":{"type":"string","description":"An option to define the period within which the button should be pressed.\n"},"onEvent":{"type":"string","description":"An option to set the script that will be run upon pressing the button.\n"},"systemRouterboardButtonModeId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["systemRouterboardButtonModeId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"An option to enable the operation of the button.\n"},"holdTime":{"type":"string","description":"An option to define the period within which the button should be pressed.\n"},"onEvent":{"type":"string","description":"An option to set the script that will be run upon pressing the button.\n"},"systemRouterboardButtonModeId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemRouterboardButtonMode resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"An option to enable the operation of the button.\n"},"holdTime":{"type":"string","description":"An option to define the period within which the button should be pressed.\n"},"onEvent":{"type":"string","description":"An option to set the script that will be run upon pressing the button.\n"},"systemRouterboardButtonModeId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/systemRouterboardButtonReset:SystemRouterboardButtonReset":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst resetButton = new routeros.SystemScript(\"reset_button\", {\n    name: \"reset-button\",\n    source: \"    :log info message=(\\\\\\\"reset button pressed\\\\\\\")\\n\",\n});\nconst settings = new routeros.SystemRouterboardButtonReset(\"settings\", {\n    enabled: true,\n    holdTime: \"0s..1m\",\n    onEvent: resetButton.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nreset_button = routeros.SystemScript(\"reset_button\",\n    name=\"reset-button\",\n    source=\"    :log info message=(\\\\\\\"reset button pressed\\\\\\\")\\n\")\nsettings = routeros.SystemRouterboardButtonReset(\"settings\",\n    enabled=True,\n    hold_time=\"0s..1m\",\n    on_event=reset_button.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var resetButton = new Routeros.SystemScript(\"reset_button\", new()\n    {\n        Name = \"reset-button\",\n        Source = @\"    :log info message=(\\\"\"reset button pressed\\\"\")\n\",\n    });\n\n    var settings = new Routeros.SystemRouterboardButtonReset(\"settings\", new()\n    {\n        Enabled = true,\n        HoldTime = \"0s..1m\",\n        OnEvent = resetButton.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tresetButton, err := routeros.NewSystemScript(ctx, \"reset_button\", \u0026routeros.SystemScriptArgs{\n\t\t\tName:   pulumi.String(\"reset-button\"),\n\t\t\tSource: pulumi.String(\"    :log info message=(\\\\\\\"reset button pressed\\\\\\\")\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewSystemRouterboardButtonReset(ctx, \"settings\", \u0026routeros.SystemRouterboardButtonResetArgs{\n\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\tHoldTime: pulumi.String(\"0s..1m\"),\n\t\t\tOnEvent:  resetButton.Name,\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.routeros.SystemScript;\nimport com.pulumi.routeros.SystemScriptArgs;\nimport com.pulumi.routeros.SystemRouterboardButtonReset;\nimport com.pulumi.routeros.SystemRouterboardButtonResetArgs;\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 resetButton = new SystemScript(\"resetButton\", SystemScriptArgs.builder()\n            .name(\"reset-button\")\n            .source(\"\"\"\n    :log info message=(\\\"reset button pressed\\\")\n            \"\"\")\n            .build());\n\n        var settings = new SystemRouterboardButtonReset(\"settings\", SystemRouterboardButtonResetArgs.builder()\n            .enabled(true)\n            .holdTime(\"0s..1m\")\n            .onEvent(resetButton.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  resetButton:\n    type: routeros:SystemScript\n    name: reset_button\n    properties:\n      name: reset-button\n      source: |2\n            :log info message=(\\\"reset button pressed\\\")\n  settings:\n    type: routeros:SystemRouterboardButtonReset\n    properties:\n      enabled: true\n      holdTime: 0s..1m\n      onEvent: ${resetButton.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemRouterboardButtonReset:SystemRouterboardButtonReset settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"An option to enable the operation of the button.\n"},"holdTime":{"type":"string","description":"An option to define the period within which the button should be pressed.\n"},"onEvent":{"type":"string","description":"An option to set the script that will be run upon pressing the button.\n"},"systemRouterboardButtonResetId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["systemRouterboardButtonResetId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"An option to enable the operation of the button.\n"},"holdTime":{"type":"string","description":"An option to define the period within which the button should be pressed.\n"},"onEvent":{"type":"string","description":"An option to set the script that will be run upon pressing the button.\n"},"systemRouterboardButtonResetId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemRouterboardButtonReset resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"An option to enable the operation of the button.\n"},"holdTime":{"type":"string","description":"An option to define the period within which the button should be pressed.\n"},"onEvent":{"type":"string","description":"An option to set the script that will be run upon pressing the button.\n"},"systemRouterboardButtonResetId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/systemRouterboardButtonWps:SystemRouterboardButtonWps":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst wpsButton = new routeros.SystemScript(\"wps_button\", {\n    name: \"wps-button\",\n    source: `    :foreach iface in=[/interface/wifi find where configuration.mode=\\\\\"ap\\\\\"] do={\n      /interface/wifi wps-push-button iface\n    }\n`,\n});\nconst settings = new routeros.SystemRouterboardButtonWps(\"settings\", {\n    enabled: true,\n    holdTime: \"0s..1m\",\n    onEvent: wpsButton.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nwps_button = routeros.SystemScript(\"wps_button\",\n    name=\"wps-button\",\n    source=\"\"\"    :foreach iface in=[/interface/wifi find where configuration.mode=\\\"ap\\\"] do={\n      /interface/wifi wps-push-button $iface\n    }\n\"\"\")\nsettings = routeros.SystemRouterboardButtonWps(\"settings\",\n    enabled=True,\n    hold_time=\"0s..1m\",\n    on_event=wps_button.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var wpsButton = new Routeros.SystemScript(\"wps_button\", new()\n    {\n        Name = \"wps-button\",\n        Source = @\"    :foreach iface in=[/interface/wifi find where configuration.mode=\\\"\"ap\\\"\"] do={\n      /interface/wifi wps-push-button $iface\n    }\n\",\n    });\n\n    var settings = new Routeros.SystemRouterboardButtonWps(\"settings\", new()\n    {\n        Enabled = true,\n        HoldTime = \"0s..1m\",\n        OnEvent = wpsButton.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\twpsButton, err := routeros.NewSystemScript(ctx, \"wps_button\", \u0026routeros.SystemScriptArgs{\n\t\t\tName:   pulumi.String(\"wps-button\"),\n\t\t\tSource: pulumi.String(\"    :foreach iface in=[/interface/wifi find where configuration.mode=\\\\\\\"ap\\\\\\\"] do={\\n      /interface/wifi wps-push-button $iface\\n    }\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewSystemRouterboardButtonWps(ctx, \"settings\", \u0026routeros.SystemRouterboardButtonWpsArgs{\n\t\t\tEnabled:  pulumi.Bool(true),\n\t\t\tHoldTime: pulumi.String(\"0s..1m\"),\n\t\t\tOnEvent:  wpsButton.Name,\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.routeros.SystemScript;\nimport com.pulumi.routeros.SystemScriptArgs;\nimport com.pulumi.routeros.SystemRouterboardButtonWps;\nimport com.pulumi.routeros.SystemRouterboardButtonWpsArgs;\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 wpsButton = new SystemScript(\"wpsButton\", SystemScriptArgs.builder()\n            .name(\"wps-button\")\n            .source(\"\"\"\n    :foreach iface in=[/interface/wifi find where configuration.mode=\\\"ap\\\"] do={\n      /interface/wifi wps-push-button $iface\n    }\n            \"\"\")\n            .build());\n\n        var settings = new SystemRouterboardButtonWps(\"settings\", SystemRouterboardButtonWpsArgs.builder()\n            .enabled(true)\n            .holdTime(\"0s..1m\")\n            .onEvent(wpsButton.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  wpsButton:\n    type: routeros:SystemScript\n    name: wps_button\n    properties:\n      name: wps-button\n      source: |2\n            :foreach iface in=[/interface/wifi find where configuration.mode=\\\"ap\\\"] do={\n              /interface/wifi wps-push-button $iface\n            }\n  settings:\n    type: routeros:SystemRouterboardButtonWps\n    properties:\n      enabled: true\n      holdTime: 0s..1m\n      onEvent: ${wpsButton.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemRouterboardButtonWps:SystemRouterboardButtonWps settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"An option to enable the operation of the button.\n"},"holdTime":{"type":"string","description":"An option to define the period within which the button should be pressed.\n"},"onEvent":{"type":"string","description":"An option to set the script that will be run upon pressing the button.\n"},"systemRouterboardButtonWpsId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["systemRouterboardButtonWpsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"An option to enable the operation of the button.\n"},"holdTime":{"type":"string","description":"An option to define the period within which the button should be pressed.\n"},"onEvent":{"type":"string","description":"An option to set the script that will be run upon pressing the button.\n"},"systemRouterboardButtonWpsId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemRouterboardButtonWps resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"An option to enable the operation of the button.\n"},"holdTime":{"type":"string","description":"An option to define the period within which the button should be pressed.\n"},"onEvent":{"type":"string","description":"An option to set the script that will be run upon pressing the button.\n"},"systemRouterboardButtonWpsId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/systemRouterboardSettings:SystemRouterboardSettings":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.SystemRouterboardSettings(\"settings\", {\n    autoUpgrade: false,\n    silentBoot: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.SystemRouterboardSettings(\"settings\",\n    auto_upgrade=False,\n    silent_boot=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.SystemRouterboardSettings(\"settings\", new()\n    {\n        AutoUpgrade = false,\n        SilentBoot = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemRouterboardSettings(ctx, \"settings\", \u0026routeros.SystemRouterboardSettingsArgs{\n\t\t\tAutoUpgrade: pulumi.Bool(false),\n\t\t\tSilentBoot:  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.routeros.SystemRouterboardSettings;\nimport com.pulumi.routeros.SystemRouterboardSettingsArgs;\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 settings = new SystemRouterboardSettings(\"settings\", SystemRouterboardSettingsArgs.builder()\n            .autoUpgrade(false)\n            .silentBoot(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:SystemRouterboardSettings\n    properties:\n      autoUpgrade: false\n      silentBoot: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemRouterboardSettings:SystemRouterboardSettings settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoUpgrade":{"type":"boolean","description":"An option to enable firmware upgrade automatically after the RouterOS upgrade.\n"},"baudRate":{"type":"number","description":"An option to choose the onboard RS232 speed in bits per second.\n"},"bootDelay":{"type":"string","description":"A delay for a keystroke while booting.\n"},"bootDevice":{"type":"string","description":"An option to choose the way RouterBOOT loads the operating system. Possible values: \u003cspan pulumi-lang-nodejs=\"`ethernet`\" pulumi-lang-dotnet=\"`Ethernet`\" pulumi-lang-go=\"`ethernet`\" pulumi-lang-python=\"`ethernet`\" pulumi-lang-yaml=\"`ethernet`\" pulumi-lang-java=\"`ethernet`\"\u003e`ethernet`\u003c/span\u003e, `flash-boot`, `flash-boot-once-then-nand`, `nand-if-fail-then-ethernet`, `nand-only`, `try-ethernet-once-then-nand`.\n"},"bootOs":{"type":"string","description":"An option to choose the booting operating system for CRS3xx series switches. Possible values: `router-os`, \u003cspan pulumi-lang-nodejs=\"`swos`\" pulumi-lang-dotnet=\"`Swos`\" pulumi-lang-go=\"`swos`\" pulumi-lang-python=\"`swos`\" pulumi-lang-yaml=\"`swos`\" pulumi-lang-java=\"`swos`\"\u003e`swos`\u003c/span\u003e.\n"},"bootProtocol":{"type":"string","description":"Boot protocol to use. Possible values: \u003cspan pulumi-lang-nodejs=\"`bootp`\" pulumi-lang-dotnet=\"`Bootp`\" pulumi-lang-go=\"`bootp`\" pulumi-lang-python=\"`bootp`\" pulumi-lang-yaml=\"`bootp`\" pulumi-lang-java=\"`bootp`\"\u003e`bootp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dhcp`\" pulumi-lang-dotnet=\"`Dhcp`\" pulumi-lang-go=\"`dhcp`\" pulumi-lang-python=\"`dhcp`\" pulumi-lang-yaml=\"`dhcp`\" pulumi-lang-java=\"`dhcp`\"\u003e`dhcp`\u003c/span\u003e.\n"},"cpuFrequency":{"type":"string","description":"An option to change the CPU frequency of the device.\n"},"cpuMode":{"type":"string","description":"An option whether to enter CPU suspend mode in HTL instruction. Possible values: `power-save`, \u003cspan pulumi-lang-nodejs=\"`regular`\" pulumi-lang-dotnet=\"`Regular`\" pulumi-lang-go=\"`regular`\" pulumi-lang-python=\"`regular`\" pulumi-lang-yaml=\"`regular`\" pulumi-lang-java=\"`regular`\"\u003e`regular`\u003c/span\u003e.\n"},"enableJumperReset":{"type":"boolean","description":"An option to enable reset via the onboard jumper.\n"},"enterSetupOn":{"type":"string","description":"An option to set which key will cause the BIOS to enter configuration mode during boot delay. Possible values: `any-key`, `delete-key`.\n"},"forceBackupBooter":{"type":"boolean","description":"An option to use the backup RouterBOOT.\n"},"initDelay":{"type":"string","description":"An option to set a delay before the USB port is initialized. Used for mPCIe modems with RB9xx series devices only.\n"},"memoryDataRate":{"type":"string","description":"An option to change the memory data rate of the device. Values depend on the model.\n"},"memoryFrequency":{"type":"string","description":"An option to change the memory frequency of the device. Values depend on the model.\n"},"prebootEtherboot":{"type":"string","description":"An option to enable preboot \u003cspan pulumi-lang-nodejs=\"`etherboot`\" pulumi-lang-dotnet=\"`Etherboot`\" pulumi-lang-go=\"`etherboot`\" pulumi-lang-python=\"`etherboot`\" pulumi-lang-yaml=\"`etherboot`\" pulumi-lang-java=\"`etherboot`\"\u003e`etherboot`\u003c/span\u003e, which runs before the regular boot device.\n"},"prebootEtherbootServer":{"type":"string","description":"An option to instruct `preboot-etherboot` to accept only from the specified Netinstall server.\n"},"protectedRouterboot":{"type":"string","description":"An option to disable any access to the RouterBOOT configuration settings over a console cable and disables the operation of the reset button to change the boot mode (Netinstall will be disabled). Possible values: \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"reformatHoldButton":{"type":"string","description":"An option to enable resetting everything by pressing the button at power-on for longer than the specified time but less than `reformat_hold_button_max.`\n"},"reformatHoldButtonMax":{"type":"string","description":"See \u003cspan pulumi-lang-nodejs=\"`reformatHoldButton`\" pulumi-lang-dotnet=\"`ReformatHoldButton`\" pulumi-lang-go=\"`reformatHoldButton`\" pulumi-lang-python=\"`reformat_hold_button`\" pulumi-lang-yaml=\"`reformatHoldButton`\" pulumi-lang-java=\"`reformatHoldButton`\"\u003e`reformat_hold_button`\u003c/span\u003e.\n"},"regulatoryDomainCe":{"type":"boolean","description":"An option to enable extra-low TX power for high antenna gain devices.\n"},"silentBoot":{"type":"boolean","description":"An option to turn off output on the serial console and beeping sounds during booting.\n"},"systemRouterboardSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["systemRouterboardSettingsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoUpgrade":{"type":"boolean","description":"An option to enable firmware upgrade automatically after the RouterOS upgrade.\n"},"baudRate":{"type":"number","description":"An option to choose the onboard RS232 speed in bits per second.\n"},"bootDelay":{"type":"string","description":"A delay for a keystroke while booting.\n"},"bootDevice":{"type":"string","description":"An option to choose the way RouterBOOT loads the operating system. Possible values: \u003cspan pulumi-lang-nodejs=\"`ethernet`\" pulumi-lang-dotnet=\"`Ethernet`\" pulumi-lang-go=\"`ethernet`\" pulumi-lang-python=\"`ethernet`\" pulumi-lang-yaml=\"`ethernet`\" pulumi-lang-java=\"`ethernet`\"\u003e`ethernet`\u003c/span\u003e, `flash-boot`, `flash-boot-once-then-nand`, `nand-if-fail-then-ethernet`, `nand-only`, `try-ethernet-once-then-nand`.\n"},"bootOs":{"type":"string","description":"An option to choose the booting operating system for CRS3xx series switches. Possible values: `router-os`, \u003cspan pulumi-lang-nodejs=\"`swos`\" pulumi-lang-dotnet=\"`Swos`\" pulumi-lang-go=\"`swos`\" pulumi-lang-python=\"`swos`\" pulumi-lang-yaml=\"`swos`\" pulumi-lang-java=\"`swos`\"\u003e`swos`\u003c/span\u003e.\n"},"bootProtocol":{"type":"string","description":"Boot protocol to use. Possible values: \u003cspan pulumi-lang-nodejs=\"`bootp`\" pulumi-lang-dotnet=\"`Bootp`\" pulumi-lang-go=\"`bootp`\" pulumi-lang-python=\"`bootp`\" pulumi-lang-yaml=\"`bootp`\" pulumi-lang-java=\"`bootp`\"\u003e`bootp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dhcp`\" pulumi-lang-dotnet=\"`Dhcp`\" pulumi-lang-go=\"`dhcp`\" pulumi-lang-python=\"`dhcp`\" pulumi-lang-yaml=\"`dhcp`\" pulumi-lang-java=\"`dhcp`\"\u003e`dhcp`\u003c/span\u003e.\n"},"cpuFrequency":{"type":"string","description":"An option to change the CPU frequency of the device.\n"},"cpuMode":{"type":"string","description":"An option whether to enter CPU suspend mode in HTL instruction. Possible values: `power-save`, \u003cspan pulumi-lang-nodejs=\"`regular`\" pulumi-lang-dotnet=\"`Regular`\" pulumi-lang-go=\"`regular`\" pulumi-lang-python=\"`regular`\" pulumi-lang-yaml=\"`regular`\" pulumi-lang-java=\"`regular`\"\u003e`regular`\u003c/span\u003e.\n"},"enableJumperReset":{"type":"boolean","description":"An option to enable reset via the onboard jumper.\n"},"enterSetupOn":{"type":"string","description":"An option to set which key will cause the BIOS to enter configuration mode during boot delay. Possible values: `any-key`, `delete-key`.\n"},"forceBackupBooter":{"type":"boolean","description":"An option to use the backup RouterBOOT.\n"},"initDelay":{"type":"string","description":"An option to set a delay before the USB port is initialized. Used for mPCIe modems with RB9xx series devices only.\n"},"memoryDataRate":{"type":"string","description":"An option to change the memory data rate of the device. Values depend on the model.\n"},"memoryFrequency":{"type":"string","description":"An option to change the memory frequency of the device. Values depend on the model.\n"},"prebootEtherboot":{"type":"string","description":"An option to enable preboot \u003cspan pulumi-lang-nodejs=\"`etherboot`\" pulumi-lang-dotnet=\"`Etherboot`\" pulumi-lang-go=\"`etherboot`\" pulumi-lang-python=\"`etherboot`\" pulumi-lang-yaml=\"`etherboot`\" pulumi-lang-java=\"`etherboot`\"\u003e`etherboot`\u003c/span\u003e, which runs before the regular boot device.\n"},"prebootEtherbootServer":{"type":"string","description":"An option to instruct `preboot-etherboot` to accept only from the specified Netinstall server.\n"},"protectedRouterboot":{"type":"string","description":"An option to disable any access to the RouterBOOT configuration settings over a console cable and disables the operation of the reset button to change the boot mode (Netinstall will be disabled). Possible values: \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"reformatHoldButton":{"type":"string","description":"An option to enable resetting everything by pressing the button at power-on for longer than the specified time but less than `reformat_hold_button_max.`\n"},"reformatHoldButtonMax":{"type":"string","description":"See \u003cspan pulumi-lang-nodejs=\"`reformatHoldButton`\" pulumi-lang-dotnet=\"`ReformatHoldButton`\" pulumi-lang-go=\"`reformatHoldButton`\" pulumi-lang-python=\"`reformat_hold_button`\" pulumi-lang-yaml=\"`reformatHoldButton`\" pulumi-lang-java=\"`reformatHoldButton`\"\u003e`reformat_hold_button`\u003c/span\u003e.\n"},"regulatoryDomainCe":{"type":"boolean","description":"An option to enable extra-low TX power for high antenna gain devices.\n"},"silentBoot":{"type":"boolean","description":"An option to turn off output on the serial console and beeping sounds during booting.\n"},"systemRouterboardSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemRouterboardSettings resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"autoUpgrade":{"type":"boolean","description":"An option to enable firmware upgrade automatically after the RouterOS upgrade.\n"},"baudRate":{"type":"number","description":"An option to choose the onboard RS232 speed in bits per second.\n"},"bootDelay":{"type":"string","description":"A delay for a keystroke while booting.\n"},"bootDevice":{"type":"string","description":"An option to choose the way RouterBOOT loads the operating system. Possible values: \u003cspan pulumi-lang-nodejs=\"`ethernet`\" pulumi-lang-dotnet=\"`Ethernet`\" pulumi-lang-go=\"`ethernet`\" pulumi-lang-python=\"`ethernet`\" pulumi-lang-yaml=\"`ethernet`\" pulumi-lang-java=\"`ethernet`\"\u003e`ethernet`\u003c/span\u003e, `flash-boot`, `flash-boot-once-then-nand`, `nand-if-fail-then-ethernet`, `nand-only`, `try-ethernet-once-then-nand`.\n"},"bootOs":{"type":"string","description":"An option to choose the booting operating system for CRS3xx series switches. Possible values: `router-os`, \u003cspan pulumi-lang-nodejs=\"`swos`\" pulumi-lang-dotnet=\"`Swos`\" pulumi-lang-go=\"`swos`\" pulumi-lang-python=\"`swos`\" pulumi-lang-yaml=\"`swos`\" pulumi-lang-java=\"`swos`\"\u003e`swos`\u003c/span\u003e.\n"},"bootProtocol":{"type":"string","description":"Boot protocol to use. Possible values: \u003cspan pulumi-lang-nodejs=\"`bootp`\" pulumi-lang-dotnet=\"`Bootp`\" pulumi-lang-go=\"`bootp`\" pulumi-lang-python=\"`bootp`\" pulumi-lang-yaml=\"`bootp`\" pulumi-lang-java=\"`bootp`\"\u003e`bootp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dhcp`\" pulumi-lang-dotnet=\"`Dhcp`\" pulumi-lang-go=\"`dhcp`\" pulumi-lang-python=\"`dhcp`\" pulumi-lang-yaml=\"`dhcp`\" pulumi-lang-java=\"`dhcp`\"\u003e`dhcp`\u003c/span\u003e.\n"},"cpuFrequency":{"type":"string","description":"An option to change the CPU frequency of the device.\n"},"cpuMode":{"type":"string","description":"An option whether to enter CPU suspend mode in HTL instruction. Possible values: `power-save`, \u003cspan pulumi-lang-nodejs=\"`regular`\" pulumi-lang-dotnet=\"`Regular`\" pulumi-lang-go=\"`regular`\" pulumi-lang-python=\"`regular`\" pulumi-lang-yaml=\"`regular`\" pulumi-lang-java=\"`regular`\"\u003e`regular`\u003c/span\u003e.\n"},"enableJumperReset":{"type":"boolean","description":"An option to enable reset via the onboard jumper.\n"},"enterSetupOn":{"type":"string","description":"An option to set which key will cause the BIOS to enter configuration mode during boot delay. Possible values: `any-key`, `delete-key`.\n"},"forceBackupBooter":{"type":"boolean","description":"An option to use the backup RouterBOOT.\n"},"initDelay":{"type":"string","description":"An option to set a delay before the USB port is initialized. Used for mPCIe modems with RB9xx series devices only.\n"},"memoryDataRate":{"type":"string","description":"An option to change the memory data rate of the device. Values depend on the model.\n"},"memoryFrequency":{"type":"string","description":"An option to change the memory frequency of the device. Values depend on the model.\n"},"prebootEtherboot":{"type":"string","description":"An option to enable preboot \u003cspan pulumi-lang-nodejs=\"`etherboot`\" pulumi-lang-dotnet=\"`Etherboot`\" pulumi-lang-go=\"`etherboot`\" pulumi-lang-python=\"`etherboot`\" pulumi-lang-yaml=\"`etherboot`\" pulumi-lang-java=\"`etherboot`\"\u003e`etherboot`\u003c/span\u003e, which runs before the regular boot device.\n"},"prebootEtherbootServer":{"type":"string","description":"An option to instruct `preboot-etherboot` to accept only from the specified Netinstall server.\n"},"protectedRouterboot":{"type":"string","description":"An option to disable any access to the RouterBOOT configuration settings over a console cable and disables the operation of the reset button to change the boot mode (Netinstall will be disabled). Possible values: \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"reformatHoldButton":{"type":"string","description":"An option to enable resetting everything by pressing the button at power-on for longer than the specified time but less than `reformat_hold_button_max.`\n"},"reformatHoldButtonMax":{"type":"string","description":"See \u003cspan pulumi-lang-nodejs=\"`reformatHoldButton`\" pulumi-lang-dotnet=\"`ReformatHoldButton`\" pulumi-lang-go=\"`reformatHoldButton`\" pulumi-lang-python=\"`reformat_hold_button`\" pulumi-lang-yaml=\"`reformatHoldButton`\" pulumi-lang-java=\"`reformatHoldButton`\"\u003e`reformat_hold_button`\u003c/span\u003e.\n"},"regulatoryDomainCe":{"type":"boolean","description":"An option to enable extra-low TX power for high antenna gain devices.\n"},"silentBoot":{"type":"boolean","description":"An option to turn off output on the serial console and beeping sounds during booting.\n"},"systemRouterboardSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/systemRouterboardUsb:SystemRouterboardUsb":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.SystemRouterboardUsb(\"settings\", {type: \"auto\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.SystemRouterboardUsb(\"settings\", type=\"auto\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.SystemRouterboardUsb(\"settings\", new()\n    {\n        Type = \"auto\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemRouterboardUsb(ctx, \"settings\", \u0026routeros.SystemRouterboardUsbArgs{\n\t\t\tType: pulumi.String(\"auto\"),\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.routeros.SystemRouterboardUsb;\nimport com.pulumi.routeros.SystemRouterboardUsbArgs;\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 settings = new SystemRouterboardUsb(\"settings\", SystemRouterboardUsbArgs.builder()\n            .type(\"auto\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:SystemRouterboardUsb\n    properties:\n      type: auto\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemRouterboardUsb:SystemRouterboardUsb settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"systemRouterboardUsbId":{"type":"string","description":"The ID of this resource.\n"},"type":{"type":"string","description":"An option to set the type of the USB port. Possible value: \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, `mini-PCIe`, `USB-type-A`.\n"},"usbMode":{"type":"string","description":"An option to set the USB port mode. Possible values: \u003cspan pulumi-lang-nodejs=\"`automatic`\" pulumi-lang-dotnet=\"`Automatic`\" pulumi-lang-go=\"`automatic`\" pulumi-lang-python=\"`automatic`\" pulumi-lang-yaml=\"`automatic`\" pulumi-lang-java=\"`automatic`\"\u003e`automatic`\u003c/span\u003e, `force-host`.\n"}},"type":"object","required":["systemRouterboardUsbId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"systemRouterboardUsbId":{"type":"string","description":"The ID of this resource.\n"},"type":{"type":"string","description":"An option to set the type of the USB port. Possible value: \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, `mini-PCIe`, `USB-type-A`.\n"},"usbMode":{"type":"string","description":"An option to set the USB port mode. Possible values: \u003cspan pulumi-lang-nodejs=\"`automatic`\" pulumi-lang-dotnet=\"`Automatic`\" pulumi-lang-go=\"`automatic`\" pulumi-lang-python=\"`automatic`\" pulumi-lang-yaml=\"`automatic`\" pulumi-lang-java=\"`automatic`\"\u003e`automatic`\u003c/span\u003e, `force-host`.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemRouterboardUsb resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"systemRouterboardUsbId":{"type":"string","description":"The ID of this resource.\n"},"type":{"type":"string","description":"An option to set the type of the USB port. Possible value: \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, `mini-PCIe`, `USB-type-A`.\n"},"usbMode":{"type":"string","description":"An option to set the USB port mode. Possible values: \u003cspan pulumi-lang-nodejs=\"`automatic`\" pulumi-lang-dotnet=\"`Automatic`\" pulumi-lang-go=\"`automatic`\" pulumi-lang-python=\"`automatic`\" pulumi-lang-yaml=\"`automatic`\" pulumi-lang-java=\"`automatic`\"\u003e`automatic`\u003c/span\u003e, `force-host`.\n"}},"type":"object"}},"routeros:index/systemScheduler:SystemScheduler":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst schedule1 = new routeros.SystemScheduler(\"schedule1\", {\n    name: \"schedule1\",\n    onEvent: \"script name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nschedule1 = routeros.SystemScheduler(\"schedule1\",\n    name=\"schedule1\",\n    on_event=\"script name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var schedule1 = new Routeros.SystemScheduler(\"schedule1\", new()\n    {\n        Name = \"schedule1\",\n        OnEvent = \"script name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemScheduler(ctx, \"schedule1\", \u0026routeros.SystemSchedulerArgs{\n\t\t\tName:    pulumi.String(\"schedule1\"),\n\t\t\tOnEvent: pulumi.String(\"script name\"),\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.routeros.SystemScheduler;\nimport com.pulumi.routeros.SystemSchedulerArgs;\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 schedule1 = new SystemScheduler(\"schedule1\", SystemSchedulerArgs.builder()\n            .name(\"schedule1\")\n            .onEvent(\"script name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  schedule1:\n    type: routeros:SystemScheduler\n    properties:\n      name: schedule1\n      onEvent: script name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/system/scheduler get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/systemScheduler:SystemScheduler schedule1 \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/systemScheduler:SystemScheduler schedule1 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interval":{"type":"string","description":"Interval between two script executions, if time interval is set to zero, the script is only executed at its start time, otherwise it is executed repeatedly at the time interval is specified."},"name":{"type":"string"},"nextRun":{"type":"string"},"onEvent":{"type":"string","description":"Name of the script to execute. It must be presented at /system script."},"owner":{"type":"string"},"policies":{"type":"array","items":{"type":"string"},"description":"List of applicable policies:\n    * dude - Policy that grants rights to log in to dude server.  \n    * ftp - Policy that grants full rights to log in remotely via FTP, to read/write/erase files and to transfer files from/to the router. Should be used together with read/write policies.  \n    * password - Policy that grants rights to change the password.  \n    * policy - Policy that grants user management rights. Should be used together with the write policy. Allows also to see global variables created by other users (requires also 'test' policy).  \n    * read - Policy that grants read access to the router's configuration. All console commands that do not alter router's configuration are allowed. Doesn't affect FTP.  \n    * reboot - Policy that allows rebooting the router.  \n    * romon - Policy that grants rights to connect to RoMon server.  \n    * sensitive - Policy that grants rights to change \"hide sensitive\" option, if this policy is disabled sensitive information is not displayed.  \n    * sniff - Policy that grants rights to use packet sniffer tool.  \n    * test - Policy that grants rights to run ping, traceroute, bandwidth-test, wireless scan, snooper, and other test commands.  \n    * write - Policy that grants write access to the router's configuration, except for user management. This policy does not allow to read the configuration, so make sure to enable read policy as well.  \npolicy = [\"ftp\", \"read\", \"write\"]"},"runCount":{"type":"string","description":"This counter is incremented each time the script is executed."},"startDate":{"type":"string","description":"Date of the first script execution."},"startTime":{"type":"string","description":"Time of the first script execution. If scheduler item has start-time set to startup, it behaves as if start-time and start-date were set to time 3 seconds after console starts up. It means that all scripts having start-time is startup and interval is 0 will be executed once each time router boots. If the interval is set to value other than 0 scheduler will not run at startup."},"systemSchedulerId":{"type":"string"}},"type":"object","required":["interval","name","nextRun","onEvent","owner","policies","runCount","startDate","startTime","systemSchedulerId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interval":{"type":"string","description":"Interval between two script executions, if time interval is set to zero, the script is only executed at its start time, otherwise it is executed repeatedly at the time interval is specified."},"name":{"type":"string"},"onEvent":{"type":"string","description":"Name of the script to execute. It must be presented at /system script."},"policies":{"type":"array","items":{"type":"string"},"description":"List of applicable policies:\n    * dude - Policy that grants rights to log in to dude server.  \n    * ftp - Policy that grants full rights to log in remotely via FTP, to read/write/erase files and to transfer files from/to the router. Should be used together with read/write policies.  \n    * password - Policy that grants rights to change the password.  \n    * policy - Policy that grants user management rights. Should be used together with the write policy. Allows also to see global variables created by other users (requires also 'test' policy).  \n    * read - Policy that grants read access to the router's configuration. All console commands that do not alter router's configuration are allowed. Doesn't affect FTP.  \n    * reboot - Policy that allows rebooting the router.  \n    * romon - Policy that grants rights to connect to RoMon server.  \n    * sensitive - Policy that grants rights to change \"hide sensitive\" option, if this policy is disabled sensitive information is not displayed.  \n    * sniff - Policy that grants rights to use packet sniffer tool.  \n    * test - Policy that grants rights to run ping, traceroute, bandwidth-test, wireless scan, snooper, and other test commands.  \n    * write - Policy that grants write access to the router's configuration, except for user management. This policy does not allow to read the configuration, so make sure to enable read policy as well.  \npolicy = [\"ftp\", \"read\", \"write\"]"},"startDate":{"type":"string","description":"Date of the first script execution."},"startTime":{"type":"string","description":"Time of the first script execution. If scheduler item has start-time set to startup, it behaves as if start-time and start-date were set to time 3 seconds after console starts up. It means that all scripts having start-time is startup and interval is 0 will be executed once each time router boots. If the interval is set to value other than 0 scheduler will not run at startup."},"systemSchedulerId":{"type":"string"}},"requiredInputs":["onEvent"],"stateInputs":{"description":"Input properties used for looking up and filtering SystemScheduler resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interval":{"type":"string","description":"Interval between two script executions, if time interval is set to zero, the script is only executed at its start time, otherwise it is executed repeatedly at the time interval is specified."},"name":{"type":"string"},"nextRun":{"type":"string"},"onEvent":{"type":"string","description":"Name of the script to execute. It must be presented at /system script."},"owner":{"type":"string"},"policies":{"type":"array","items":{"type":"string"},"description":"List of applicable policies:\n    * dude - Policy that grants rights to log in to dude server.  \n    * ftp - Policy that grants full rights to log in remotely via FTP, to read/write/erase files and to transfer files from/to the router. Should be used together with read/write policies.  \n    * password - Policy that grants rights to change the password.  \n    * policy - Policy that grants user management rights. Should be used together with the write policy. Allows also to see global variables created by other users (requires also 'test' policy).  \n    * read - Policy that grants read access to the router's configuration. All console commands that do not alter router's configuration are allowed. Doesn't affect FTP.  \n    * reboot - Policy that allows rebooting the router.  \n    * romon - Policy that grants rights to connect to RoMon server.  \n    * sensitive - Policy that grants rights to change \"hide sensitive\" option, if this policy is disabled sensitive information is not displayed.  \n    * sniff - Policy that grants rights to use packet sniffer tool.  \n    * test - Policy that grants rights to run ping, traceroute, bandwidth-test, wireless scan, snooper, and other test commands.  \n    * write - Policy that grants write access to the router's configuration, except for user management. This policy does not allow to read the configuration, so make sure to enable read policy as well.  \npolicy = [\"ftp\", \"read\", \"write\"]"},"runCount":{"type":"string","description":"This counter is incremented each time the script is executed."},"startDate":{"type":"string","description":"Date of the first script execution."},"startTime":{"type":"string","description":"Time of the first script execution. If scheduler item has start-time set to startup, it behaves as if start-time and start-date were set to time 3 seconds after console starts up. It means that all scripts having start-time is startup and interval is 0 will be executed once each time router boots. If the interval is set to value other than 0 scheduler will not run at startup."},"systemSchedulerId":{"type":"string"}},"type":"object"}},"routeros:index/systemScript:SystemScript":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst script = new routeros.SystemScript(\"script\", {\n    name: \"my_script\",\n    source: \"    :log info \\\\\\\"This is a test script created by Terraform.\\\\\\\"\\n\",\n    policies: [\n        \"read\",\n        \"write\",\n        \"test\",\n        \"policy\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nscript = routeros.SystemScript(\"script\",\n    name=\"my_script\",\n    source=\"    :log info \\\\\\\"This is a test script created by Terraform.\\\\\\\"\\n\",\n    policies=[\n        \"read\",\n        \"write\",\n        \"test\",\n        \"policy\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var script = new Routeros.SystemScript(\"script\", new()\n    {\n        Name = \"my_script\",\n        Source = @\"    :log info \\\"\"This is a test script created by Terraform.\\\"\"\n\",\n        Policies = new[]\n        {\n            \"read\",\n            \"write\",\n            \"test\",\n            \"policy\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemScript(ctx, \"script\", \u0026routeros.SystemScriptArgs{\n\t\t\tName:   pulumi.String(\"my_script\"),\n\t\t\tSource: pulumi.String(\"    :log info \\\\\\\"This is a test script created by Terraform.\\\\\\\"\\n\"),\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"read\"),\n\t\t\t\tpulumi.String(\"write\"),\n\t\t\t\tpulumi.String(\"test\"),\n\t\t\t\tpulumi.String(\"policy\"),\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.routeros.SystemScript;\nimport com.pulumi.routeros.SystemScriptArgs;\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 script = new SystemScript(\"script\", SystemScriptArgs.builder()\n            .name(\"my_script\")\n            .source(\"\"\"\n    :log info \\\"This is a test script created by Terraform.\\\"\n            \"\"\")\n            .policies(            \n                \"read\",\n                \"write\",\n                \"test\",\n                \"policy\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  script:\n    type: routeros:SystemScript\n    properties:\n      name: my_script\n      source: |2\n            :log info \\\"This is a test script created by Terraform.\\\"\n      policies:\n        - read\n        - write\n        - test\n        - policy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/system/script get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/systemScript:SystemScript script \"*0\"\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/systemScript:SystemScript script \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"dontRequirePermissions":{"type":"boolean","description":"Bypass permissions check when the script is being executed, useful when scripts are being executed from services that have limited permissions, such as Netwatch."},"invalid":{"type":"boolean"},"lastStarted":{"type":"string","description":"Date and time when the script was last invoked."},"launchTrigger":{"type":"string","description":"Changing the attribute value causes the script to run."},"name":{"type":"string","description":"Name of the script."},"owner":{"type":"string"},"policies":{"type":"array","items":{"type":"string"},"description":"List of applicable policies:\n\t* ftp - Policy that grants full rights to log in remotely via FTP, to read/write/erase files and to transfer files from/to the router. Should be used together with read/write policies.  \n\t* password - Policy that grants rights to change the password.  \n\t* policy - Policy that grants user management rights. Should be used together with the write policy. Allows also to see global variables created by other users (requires also 'test' policy).  \n\t* read - Policy that grants read access to the router's configuration. All console commands that do not alter router's configuration are allowed. Doesn't affect FTP.  \n\t* reboot - Policy that allows rebooting the router.  \n\t* sensitive - Policy that grants rights to change \"hide sensitive\" option, if this policy is disabled sensitive information is not displayed.  \n\t* sniff - Policy that grants rights to use packet sniffer tool.  \n\t* test - Policy that grants rights to run ping, traceroute, bandwidth-test, wireless scan, snooper, and other test commands.  \n\t* write - Policy that grants write access to the router's configuration, except for user management. This policy does not allow to read the configuration, so make sure to enable read policy as well.  \npolicy = [\"ftp\", \"read\", \"write\"]"},"runCount":{"type":"string","description":"This counter is incremented each time the script is executed."},"source":{"type":"string","description":"Script source code."},"systemScriptId":{"type":"string"}},"type":"object","required":["invalid","lastStarted","name","owner","policies","runCount","source","systemScriptId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"dontRequirePermissions":{"type":"boolean","description":"Bypass permissions check when the script is being executed, useful when scripts are being executed from services that have limited permissions, such as Netwatch."},"launchTrigger":{"type":"string","description":"Changing the attribute value causes the script to run."},"name":{"type":"string","description":"Name of the script."},"policies":{"type":"array","items":{"type":"string"},"description":"List of applicable policies:\n\t* ftp - Policy that grants full rights to log in remotely via FTP, to read/write/erase files and to transfer files from/to the router. Should be used together with read/write policies.  \n\t* password - Policy that grants rights to change the password.  \n\t* policy - Policy that grants user management rights. Should be used together with the write policy. Allows also to see global variables created by other users (requires also 'test' policy).  \n\t* read - Policy that grants read access to the router's configuration. All console commands that do not alter router's configuration are allowed. Doesn't affect FTP.  \n\t* reboot - Policy that allows rebooting the router.  \n\t* sensitive - Policy that grants rights to change \"hide sensitive\" option, if this policy is disabled sensitive information is not displayed.  \n\t* sniff - Policy that grants rights to use packet sniffer tool.  \n\t* test - Policy that grants rights to run ping, traceroute, bandwidth-test, wireless scan, snooper, and other test commands.  \n\t* write - Policy that grants write access to the router's configuration, except for user management. This policy does not allow to read the configuration, so make sure to enable read policy as well.  \npolicy = [\"ftp\", \"read\", \"write\"]"},"source":{"type":"string","description":"Script source code."},"systemScriptId":{"type":"string"}},"requiredInputs":["source"],"stateInputs":{"description":"Input properties used for looking up and filtering SystemScript resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"dontRequirePermissions":{"type":"boolean","description":"Bypass permissions check when the script is being executed, useful when scripts are being executed from services that have limited permissions, such as Netwatch."},"invalid":{"type":"boolean"},"lastStarted":{"type":"string","description":"Date and time when the script was last invoked."},"launchTrigger":{"type":"string","description":"Changing the attribute value causes the script to run."},"name":{"type":"string","description":"Name of the script."},"owner":{"type":"string"},"policies":{"type":"array","items":{"type":"string"},"description":"List of applicable policies:\n\t* ftp - Policy that grants full rights to log in remotely via FTP, to read/write/erase files and to transfer files from/to the router. Should be used together with read/write policies.  \n\t* password - Policy that grants rights to change the password.  \n\t* policy - Policy that grants user management rights. Should be used together with the write policy. Allows also to see global variables created by other users (requires also 'test' policy).  \n\t* read - Policy that grants read access to the router's configuration. All console commands that do not alter router's configuration are allowed. Doesn't affect FTP.  \n\t* reboot - Policy that allows rebooting the router.  \n\t* sensitive - Policy that grants rights to change \"hide sensitive\" option, if this policy is disabled sensitive information is not displayed.  \n\t* sniff - Policy that grants rights to use packet sniffer tool.  \n\t* test - Policy that grants rights to run ping, traceroute, bandwidth-test, wireless scan, snooper, and other test commands.  \n\t* write - Policy that grants write access to the router's configuration, except for user management. This policy does not allow to read the configuration, so make sure to enable read policy as well.  \npolicy = [\"ftp\", \"read\", \"write\"]"},"runCount":{"type":"string","description":"This counter is incremented each time the script is executed."},"source":{"type":"string","description":"Script source code."},"systemScriptId":{"type":"string"}},"type":"object"}},"routeros:index/systemUser:SystemUser":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.SystemUser(\"test\", {\n    name: \"test-user-1\",\n    address: \"0.0.0.0/0\",\n    group: \"read\",\n    password: \"secret\",\n    comment: \"Test User\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.SystemUser(\"test\",\n    name=\"test-user-1\",\n    address=\"0.0.0.0/0\",\n    group=\"read\",\n    password=\"secret\",\n    comment=\"Test User\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.SystemUser(\"test\", new()\n    {\n        Name = \"test-user-1\",\n        Address = \"0.0.0.0/0\",\n        Group = \"read\",\n        Password = \"secret\",\n        Comment = \"Test User\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemUser(ctx, \"test\", \u0026routeros.SystemUserArgs{\n\t\t\tName:     pulumi.String(\"test-user-1\"),\n\t\t\tAddress:  pulumi.String(\"0.0.0.0/0\"),\n\t\t\tGroup:    pulumi.String(\"read\"),\n\t\t\tPassword: pulumi.String(\"secret\"),\n\t\t\tComment:  pulumi.String(\"Test User\"),\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.routeros.SystemUser;\nimport com.pulumi.routeros.SystemUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new SystemUser(\"test\", SystemUserArgs.builder()\n            .name(\"test-user-1\")\n            .address(\"0.0.0.0/0\")\n            .group(\"read\")\n            .password(\"secret\")\n            .comment(\"Test User\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:SystemUser\n    properties:\n      name: test-user-1\n      address: 0.0.0.0/0\n      group: read\n      password: secret\n      comment: Test User\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/user get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/systemUser:SystemUser test *1\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/systemUser:SystemUser test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"Host or network address from which the user is allowed to log in.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"expired":{"type":"boolean","description":"Password expired.\n"},"group":{"type":"string","description":"Name of the group the user belongs to.\n"},"inactivityPolicy":{"type":"string","description":"Inactivity policy.\n"},"inactivityTimeout":{"type":"string","description":"Inactivity timeout for non-GUI sessions.\n"},"name":{"type":"string","description":"User name. Although it must start with an alphanumeric character, it may contain '*', '_', '.' and '@' symbols.\n"},"password":{"type":"string","description":"User  password. If not specified, it is left blank (hit [Enter] when logging  in). It conforms to standard Unix characteristics of passwords and may  contain letters, digits, '*' and '_' symbols.\n","secret":true},"systemUserId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["expired","group","name","systemUserId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"Host or network address from which the user is allowed to log in.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"group":{"type":"string","description":"Name of the group the user belongs to.\n"},"inactivityPolicy":{"type":"string","description":"Inactivity policy.\n"},"inactivityTimeout":{"type":"string","description":"Inactivity timeout for non-GUI sessions.\n"},"name":{"type":"string","description":"User name. Although it must start with an alphanumeric character, it may contain '*', '_', '.' and '@' symbols.\n"},"password":{"type":"string","description":"User  password. If not specified, it is left blank (hit [Enter] when logging  in). It conforms to standard Unix characteristics of passwords and may  contain letters, digits, '*' and '_' symbols.\n","secret":true},"systemUserId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["group"],"stateInputs":{"description":"Input properties used for looking up and filtering SystemUser resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"Host or network address from which the user is allowed to log in.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"expired":{"type":"boolean","description":"Password expired.\n"},"group":{"type":"string","description":"Name of the group the user belongs to.\n"},"inactivityPolicy":{"type":"string","description":"Inactivity policy.\n"},"inactivityTimeout":{"type":"string","description":"Inactivity timeout for non-GUI sessions.\n"},"name":{"type":"string","description":"User name. Although it must start with an alphanumeric character, it may contain '*', '_', '.' and '@' symbols.\n"},"password":{"type":"string","description":"User  password. If not specified, it is left blank (hit [Enter] when logging  in). It conforms to standard Unix characteristics of passwords and may  contain letters, digits, '*' and '_' symbols.\n","secret":true},"systemUserId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/systemUserAaa:SystemUserAaa":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.SystemUserAaa(\"settings\", {useRadius: true});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.SystemUserAaa(\"settings\", use_radius=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.SystemUserAaa(\"settings\", new()\n    {\n        UseRadius = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemUserAaa(ctx, \"settings\", \u0026routeros.SystemUserAaaArgs{\n\t\t\tUseRadius: 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.routeros.SystemUserAaa;\nimport com.pulumi.routeros.SystemUserAaaArgs;\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 settings = new SystemUserAaa(\"settings\", SystemUserAaaArgs.builder()\n            .useRadius(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:SystemUserAaa\n    properties:\n      useRadius: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemUserAaa:SystemUserAaa settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"An option that enables accounting for users.\n"},"defaultGroup":{"type":"string","description":"The user group that is used by default for users authenticated via a RADIUS server.\n"},"excludeGroups":{"type":"array","items":{"type":"string"},"description":"A set of groups that are not allowed for users authenticated by RADIUS.\n"},"interimUpdate":{"type":"string","description":"Interval between scheduled RADIUS Interim-Update messages.\n"},"systemUserAaaId":{"type":"string","description":"The ID of this resource.\n"},"useRadius":{"type":"boolean","description":"An option whether to use RADIUS server.\n"}},"type":"object","required":["systemUserAaaId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"An option that enables accounting for users.\n"},"defaultGroup":{"type":"string","description":"The user group that is used by default for users authenticated via a RADIUS server.\n"},"excludeGroups":{"type":"array","items":{"type":"string"},"description":"A set of groups that are not allowed for users authenticated by RADIUS.\n"},"interimUpdate":{"type":"string","description":"Interval between scheduled RADIUS Interim-Update messages.\n"},"systemUserAaaId":{"type":"string","description":"The ID of this resource.\n"},"useRadius":{"type":"boolean","description":"An option whether to use RADIUS server.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemUserAaa resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accounting":{"type":"boolean","description":"An option that enables accounting for users.\n"},"defaultGroup":{"type":"string","description":"The user group that is used by default for users authenticated via a RADIUS server.\n"},"excludeGroups":{"type":"array","items":{"type":"string"},"description":"A set of groups that are not allowed for users authenticated by RADIUS.\n"},"interimUpdate":{"type":"string","description":"Interval between scheduled RADIUS Interim-Update messages.\n"},"systemUserAaaId":{"type":"string","description":"The ID of this resource.\n"},"useRadius":{"type":"boolean","description":"An option whether to use RADIUS server.\n"}},"type":"object"}},"routeros:index/systemUserGroup:SystemUserGroup":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst terraform = new routeros.SystemUserGroup(\"terraform\", {\n    name: \"terraform\",\n    policies: [\n        \"api\",\n        \"!ftp\",\n        \"!local\",\n        \"password\",\n        \"policy\",\n        \"read\",\n        \"!reboot\",\n        \"!rest-api\",\n        \"!romon\",\n        \"sensitive\",\n        \"!sniff\",\n        \"!ssh\",\n        \"!telnet\",\n        \"!test\",\n        \"!web\",\n        \"!winbox\",\n        \"write\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nterraform = routeros.SystemUserGroup(\"terraform\",\n    name=\"terraform\",\n    policies=[\n        \"api\",\n        \"!ftp\",\n        \"!local\",\n        \"password\",\n        \"policy\",\n        \"read\",\n        \"!reboot\",\n        \"!rest-api\",\n        \"!romon\",\n        \"sensitive\",\n        \"!sniff\",\n        \"!ssh\",\n        \"!telnet\",\n        \"!test\",\n        \"!web\",\n        \"!winbox\",\n        \"write\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var terraform = new Routeros.SystemUserGroup(\"terraform\", new()\n    {\n        Name = \"terraform\",\n        Policies = new[]\n        {\n            \"api\",\n            \"!ftp\",\n            \"!local\",\n            \"password\",\n            \"policy\",\n            \"read\",\n            \"!reboot\",\n            \"!rest-api\",\n            \"!romon\",\n            \"sensitive\",\n            \"!sniff\",\n            \"!ssh\",\n            \"!telnet\",\n            \"!test\",\n            \"!web\",\n            \"!winbox\",\n            \"write\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemUserGroup(ctx, \"terraform\", \u0026routeros.SystemUserGroupArgs{\n\t\t\tName: pulumi.String(\"terraform\"),\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"api\"),\n\t\t\t\tpulumi.String(\"!ftp\"),\n\t\t\t\tpulumi.String(\"!local\"),\n\t\t\t\tpulumi.String(\"password\"),\n\t\t\t\tpulumi.String(\"policy\"),\n\t\t\t\tpulumi.String(\"read\"),\n\t\t\t\tpulumi.String(\"!reboot\"),\n\t\t\t\tpulumi.String(\"!rest-api\"),\n\t\t\t\tpulumi.String(\"!romon\"),\n\t\t\t\tpulumi.String(\"sensitive\"),\n\t\t\t\tpulumi.String(\"!sniff\"),\n\t\t\t\tpulumi.String(\"!ssh\"),\n\t\t\t\tpulumi.String(\"!telnet\"),\n\t\t\t\tpulumi.String(\"!test\"),\n\t\t\t\tpulumi.String(\"!web\"),\n\t\t\t\tpulumi.String(\"!winbox\"),\n\t\t\t\tpulumi.String(\"write\"),\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.routeros.SystemUserGroup;\nimport com.pulumi.routeros.SystemUserGroupArgs;\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 terraform = new SystemUserGroup(\"terraform\", SystemUserGroupArgs.builder()\n            .name(\"terraform\")\n            .policies(            \n                \"api\",\n                \"!ftp\",\n                \"!local\",\n                \"password\",\n                \"policy\",\n                \"read\",\n                \"!reboot\",\n                \"!rest-api\",\n                \"!romon\",\n                \"sensitive\",\n                \"!sniff\",\n                \"!ssh\",\n                \"!telnet\",\n                \"!test\",\n                \"!web\",\n                \"!winbox\",\n                \"write\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  terraform:\n    type: routeros:SystemUserGroup\n    properties:\n      name: terraform\n      policies:\n        - api\n        - '!ftp'\n        - '!local'\n        - password\n        - policy\n        - read\n        - '!reboot'\n        - '!rest-api'\n        - '!romon'\n        - sensitive\n        - '!sniff'\n        - '!ssh'\n        - '!telnet'\n        - '!test'\n        - '!web'\n        - '!winbox'\n        - write\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/user/group get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/systemUserGroup:SystemUserGroup terraform *1\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/systemUserGroup:SystemUserGroup terraform \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"name":{"type":"string","description":"The name of the user group\n"},"policies":{"type":"array","items":{"type":"string"},"description":"A set of allowed policies.\n"},"skin":{"type":"string","description":"The name of the skin that will be used for WebFig.\n"},"systemUserGroupId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","systemUserGroupId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"name":{"type":"string","description":"The name of the user group\n"},"policies":{"type":"array","items":{"type":"string"},"description":"A set of allowed policies.\n"},"skin":{"type":"string","description":"The name of the skin that will be used for WebFig.\n"},"systemUserGroupId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemUserGroup resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___unset_":{"type":"string","description":"\u003cem\u003eA set of fields that require setting/unsetting. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"name":{"type":"string","description":"The name of the user group\n"},"policies":{"type":"array","items":{"type":"string"},"description":"A set of allowed policies.\n"},"skin":{"type":"string","description":"The name of the skin that will be used for WebFig.\n"},"systemUserGroupId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/systemUserSettings:SystemUserSettings":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.SystemUserSettings(\"settings\", {\n    minimumCategories: 2,\n    minimumPasswordLength: 8,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.SystemUserSettings(\"settings\",\n    minimum_categories=2,\n    minimum_password_length=8)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.SystemUserSettings(\"settings\", new()\n    {\n        MinimumCategories = 2,\n        MinimumPasswordLength = 8,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemUserSettings(ctx, \"settings\", \u0026routeros.SystemUserSettingsArgs{\n\t\t\tMinimumCategories:     pulumi.Float64(2),\n\t\t\tMinimumPasswordLength: pulumi.Float64(8),\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.routeros.SystemUserSettings;\nimport com.pulumi.routeros.SystemUserSettingsArgs;\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 settings = new SystemUserSettings(\"settings\", SystemUserSettingsArgs.builder()\n            .minimumCategories(2.0)\n            .minimumPasswordLength(8.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:SystemUserSettings\n    properties:\n      minimumCategories: 2\n      minimumPasswordLength: 8\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/systemUserSettings:SystemUserSettings settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"minimumCategories":{"type":"number","description":"An option specifies the complexity requirements of the password, with categories being uppercase, lowercase, digit, and symbol.\n"},"minimumPasswordLength":{"type":"number","description":"An option specifies the minimum length of the password.\n"},"systemUserSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["systemUserSettingsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"minimumCategories":{"type":"number","description":"An option specifies the complexity requirements of the password, with categories being uppercase, lowercase, digit, and symbol.\n"},"minimumPasswordLength":{"type":"number","description":"An option specifies the minimum length of the password.\n"},"systemUserSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering SystemUserSettings resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"minimumCategories":{"type":"number","description":"An option specifies the complexity requirements of the password, with categories being uppercase, lowercase, digit, and symbol.\n"},"minimumPasswordLength":{"type":"number","description":"An option specifies the minimum length of the password.\n"},"systemUserSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/systemUserSshkeys:SystemUserSshkeys":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.SystemUserSshkeys(\"test\", {\n    user: \"test-user-1\",\n    key: \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCyJ1EvW98veNVzR3VamNgmu0xOd/JK9YNvP/pa4WC5eT90UbX4TN7dKEK/x2FCwnnG9u0FQhzG2qa/Cg8meUvlfydn6uxc0/WCeXTKSu6sT63noPO6m4fHY7gu3Zt+fOc/WYGch9sBeWjZlCS1mA2lajkWhM3J8TFWCFm2Zk4/S3s5mt6VLbwpQnH2LhE41+azzDEVhcR6i3FfdgOF/J+j2fYYHJsBEKoQA5zUac2zWmz7X4Rv/g11ZBRqdMpHSD58o5F9lBb13antu5GcEs5RXpXp08OyXuRV9qhFpDBC8DOMALSOgT3vnu8uJLgo8QIulERofj/cRXbLCsmvMbpioBuGFXWx3ha4Ntd6z07kUh2KVbaIQLd/629UHNvgIhoBLlREJ8E5vllsX+jh8hRITHcCiEwXcDO+gG3hvJt0+jm8S8SObE/IHk8VuwWdhIsSku5vd+wVlxm8VeJzjc0cjdIiytvsq8VpLudKEUiqR0f2tHcoq8H+xcJv3Ycu1i8=\",\n    comment: \"Test User\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.SystemUserSshkeys(\"test\",\n    user=\"test-user-1\",\n    key=\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCyJ1EvW98veNVzR3VamNgmu0xOd/JK9YNvP/pa4WC5eT90UbX4TN7dKEK/x2FCwnnG9u0FQhzG2qa/Cg8meUvlfydn6uxc0/WCeXTKSu6sT63noPO6m4fHY7gu3Zt+fOc/WYGch9sBeWjZlCS1mA2lajkWhM3J8TFWCFm2Zk4/S3s5mt6VLbwpQnH2LhE41+azzDEVhcR6i3FfdgOF/J+j2fYYHJsBEKoQA5zUac2zWmz7X4Rv/g11ZBRqdMpHSD58o5F9lBb13antu5GcEs5RXpXp08OyXuRV9qhFpDBC8DOMALSOgT3vnu8uJLgo8QIulERofj/cRXbLCsmvMbpioBuGFXWx3ha4Ntd6z07kUh2KVbaIQLd/629UHNvgIhoBLlREJ8E5vllsX+jh8hRITHcCiEwXcDO+gG3hvJt0+jm8S8SObE/IHk8VuwWdhIsSku5vd+wVlxm8VeJzjc0cjdIiytvsq8VpLudKEUiqR0f2tHcoq8H+xcJv3Ycu1i8=\",\n    comment=\"Test User\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.SystemUserSshkeys(\"test\", new()\n    {\n        User = \"test-user-1\",\n        Key = \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCyJ1EvW98veNVzR3VamNgmu0xOd/JK9YNvP/pa4WC5eT90UbX4TN7dKEK/x2FCwnnG9u0FQhzG2qa/Cg8meUvlfydn6uxc0/WCeXTKSu6sT63noPO6m4fHY7gu3Zt+fOc/WYGch9sBeWjZlCS1mA2lajkWhM3J8TFWCFm2Zk4/S3s5mt6VLbwpQnH2LhE41+azzDEVhcR6i3FfdgOF/J+j2fYYHJsBEKoQA5zUac2zWmz7X4Rv/g11ZBRqdMpHSD58o5F9lBb13antu5GcEs5RXpXp08OyXuRV9qhFpDBC8DOMALSOgT3vnu8uJLgo8QIulERofj/cRXbLCsmvMbpioBuGFXWx3ha4Ntd6z07kUh2KVbaIQLd/629UHNvgIhoBLlREJ8E5vllsX+jh8hRITHcCiEwXcDO+gG3hvJt0+jm8S8SObE/IHk8VuwWdhIsSku5vd+wVlxm8VeJzjc0cjdIiytvsq8VpLudKEUiqR0f2tHcoq8H+xcJv3Ycu1i8=\",\n        Comment = \"Test User\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewSystemUserSshkeys(ctx, \"test\", \u0026routeros.SystemUserSshkeysArgs{\n\t\t\tUser:    pulumi.String(\"test-user-1\"),\n\t\t\tKey:     pulumi.String(\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCyJ1EvW98veNVzR3VamNgmu0xOd/JK9YNvP/pa4WC5eT90UbX4TN7dKEK/x2FCwnnG9u0FQhzG2qa/Cg8meUvlfydn6uxc0/WCeXTKSu6sT63noPO6m4fHY7gu3Zt+fOc/WYGch9sBeWjZlCS1mA2lajkWhM3J8TFWCFm2Zk4/S3s5mt6VLbwpQnH2LhE41+azzDEVhcR6i3FfdgOF/J+j2fYYHJsBEKoQA5zUac2zWmz7X4Rv/g11ZBRqdMpHSD58o5F9lBb13antu5GcEs5RXpXp08OyXuRV9qhFpDBC8DOMALSOgT3vnu8uJLgo8QIulERofj/cRXbLCsmvMbpioBuGFXWx3ha4Ntd6z07kUh2KVbaIQLd/629UHNvgIhoBLlREJ8E5vllsX+jh8hRITHcCiEwXcDO+gG3hvJt0+jm8S8SObE/IHk8VuwWdhIsSku5vd+wVlxm8VeJzjc0cjdIiytvsq8VpLudKEUiqR0f2tHcoq8H+xcJv3Ycu1i8=\"),\n\t\t\tComment: pulumi.String(\"Test User\"),\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.routeros.SystemUserSshkeys;\nimport com.pulumi.routeros.SystemUserSshkeysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new SystemUserSshkeys(\"test\", SystemUserSshkeysArgs.builder()\n            .user(\"test-user-1\")\n            .key(\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCyJ1EvW98veNVzR3VamNgmu0xOd/JK9YNvP/pa4WC5eT90UbX4TN7dKEK/x2FCwnnG9u0FQhzG2qa/Cg8meUvlfydn6uxc0/WCeXTKSu6sT63noPO6m4fHY7gu3Zt+fOc/WYGch9sBeWjZlCS1mA2lajkWhM3J8TFWCFm2Zk4/S3s5mt6VLbwpQnH2LhE41+azzDEVhcR6i3FfdgOF/J+j2fYYHJsBEKoQA5zUac2zWmz7X4Rv/g11ZBRqdMpHSD58o5F9lBb13antu5GcEs5RXpXp08OyXuRV9qhFpDBC8DOMALSOgT3vnu8uJLgo8QIulERofj/cRXbLCsmvMbpioBuGFXWx3ha4Ntd6z07kUh2KVbaIQLd/629UHNvgIhoBLlREJ8E5vllsX+jh8hRITHcCiEwXcDO+gG3hvJt0+jm8S8SObE/IHk8VuwWdhIsSku5vd+wVlxm8VeJzjc0cjdIiytvsq8VpLudKEUiqR0f2tHcoq8H+xcJv3Ycu1i8=\")\n            .comment(\"Test User\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:SystemUserSshkeys\n    properties:\n      user: test-user-1\n      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCyJ1EvW98veNVzR3VamNgmu0xOd/JK9YNvP/pa4WC5eT90UbX4TN7dKEK/x2FCwnnG9u0FQhzG2qa/Cg8meUvlfydn6uxc0/WCeXTKSu6sT63noPO6m4fHY7gu3Zt+fOc/WYGch9sBeWjZlCS1mA2lajkWhM3J8TFWCFm2Zk4/S3s5mt6VLbwpQnH2LhE41+azzDEVhcR6i3FfdgOF/J+j2fYYHJsBEKoQA5zUac2zWmz7X4Rv/g11ZBRqdMpHSD58o5F9lBb13antu5GcEs5RXpXp08OyXuRV9qhFpDBC8DOMALSOgT3vnu8uJLgo8QIulERofj/cRXbLCsmvMbpioBuGFXWx3ha4Ntd6z07kUh2KVbaIQLd/629UHNvgIhoBLlREJ8E5vllsX+jh8hRITHcCiEwXcDO+gG3hvJt0+jm8S8SObE/IHk8VuwWdhIsSku5vd+wVlxm8VeJzjc0cjdIiytvsq8VpLudKEUiqR0f2tHcoq8H+xcJv3Ycu1i8=\n      comment: Test User\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/user/ssh-keys get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/systemUserSshkeys:SystemUserSshkeys test *1\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/systemUserSshkeys:SystemUserSshkeys test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bits":{"type":"number","description":"key length\n"},"comment":{"type":"string"},"fingerprint":{"type":"string","description":"SSH key fingerprint\n"},"key":{"type":"string","description":"key\n","secret":true},"keyOwner":{"type":"string","description":"SSH key owner\n"},"keyType":{"type":"string","description":"key type\n"},"rsa":{"type":"boolean","description":"key type is rsa\n"},"systemUserSshkeysId":{"type":"string","description":"The ID of this resource.\n"},"user":{"type":"string","description":"username to which the SSH key is assigned.\n"}},"type":"object","required":["bits","fingerprint","key","keyOwner","keyType","rsa","systemUserSshkeysId","user"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"key":{"type":"string","description":"key\n","secret":true},"systemUserSshkeysId":{"type":"string","description":"The ID of this resource.\n"},"user":{"type":"string","description":"username to which the SSH key is assigned.\n"}},"requiredInputs":["key","user"],"stateInputs":{"description":"Input properties used for looking up and filtering SystemUserSshkeys resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bits":{"type":"number","description":"key length\n"},"comment":{"type":"string"},"fingerprint":{"type":"string","description":"SSH key fingerprint\n"},"key":{"type":"string","description":"key\n","secret":true},"keyOwner":{"type":"string","description":"SSH key owner\n"},"keyType":{"type":"string","description":"key type\n"},"rsa":{"type":"boolean","description":"key type is rsa\n"},"systemUserSshkeysId":{"type":"string","description":"The ID of this resource.\n"},"user":{"type":"string","description":"username to which the SSH key is assigned.\n"}},"type":"object"}},"routeros:index/toolBandwidthServer:ToolBandwidthServer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.ToolBandwidthServer(\"test\", {\n    enabled: true,\n    authenticate: false,\n    maxSessions: 100,\n    allocateUdpPortsFrom: 2000,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.ToolBandwidthServer(\"test\",\n    enabled=True,\n    authenticate=False,\n    max_sessions=100,\n    allocate_udp_ports_from=2000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.ToolBandwidthServer(\"test\", new()\n    {\n        Enabled = true,\n        Authenticate = false,\n        MaxSessions = 100,\n        AllocateUdpPortsFrom = 2000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewToolBandwidthServer(ctx, \"test\", \u0026routeros.ToolBandwidthServerArgs{\n\t\t\tEnabled:              pulumi.Bool(true),\n\t\t\tAuthenticate:         pulumi.Bool(false),\n\t\t\tMaxSessions:          pulumi.Float64(100),\n\t\t\tAllocateUdpPortsFrom: pulumi.Float64(2000),\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.routeros.ToolBandwidthServer;\nimport com.pulumi.routeros.ToolBandwidthServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ToolBandwidthServer(\"test\", ToolBandwidthServerArgs.builder()\n            .enabled(true)\n            .authenticate(false)\n            .maxSessions(100.0)\n            .allocateUdpPortsFrom(2000.0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:ToolBandwidthServer\n    properties:\n      enabled: true\n      authenticate: false\n      maxSessions: 100\n      allocateUdpPortsFrom: 2000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/toolBandwidthServer:ToolBandwidthServer test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allocateUdpPortsFrom":{"type":"number","description":"Beginning of UDP port range.\n"},"allowedAddresses4s":{"type":"array","items":{"type":"string"},"description":"IPv4 allowed networks.\n"},"allowedAddresses6s":{"type":"array","items":{"type":"string"},"description":"Ipv6 allowed networks.\n"},"authenticate":{"type":"boolean","description":"Communicate only with authenticated clients.\n"},"enabled":{"type":"boolean","description":"Defines whether bandwidth server is enabled or not.\n"},"maxSessions":{"type":"number","description":"Maximal simultaneous test count.\n"},"toolBandwidthServerId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["toolBandwidthServerId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allocateUdpPortsFrom":{"type":"number","description":"Beginning of UDP port range.\n"},"allowedAddresses4s":{"type":"array","items":{"type":"string"},"description":"IPv4 allowed networks.\n"},"allowedAddresses6s":{"type":"array","items":{"type":"string"},"description":"Ipv6 allowed networks.\n"},"authenticate":{"type":"boolean","description":"Communicate only with authenticated clients.\n"},"enabled":{"type":"boolean","description":"Defines whether bandwidth server is enabled or not.\n"},"maxSessions":{"type":"number","description":"Maximal simultaneous test count.\n"},"toolBandwidthServerId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ToolBandwidthServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allocateUdpPortsFrom":{"type":"number","description":"Beginning of UDP port range.\n"},"allowedAddresses4s":{"type":"array","items":{"type":"string"},"description":"IPv4 allowed networks.\n"},"allowedAddresses6s":{"type":"array","items":{"type":"string"},"description":"Ipv6 allowed networks.\n"},"authenticate":{"type":"boolean","description":"Communicate only with authenticated clients.\n"},"enabled":{"type":"boolean","description":"Defines whether bandwidth server is enabled or not.\n"},"maxSessions":{"type":"number","description":"Maximal simultaneous test count.\n"},"toolBandwidthServerId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/toolEmail:ToolEmail":{"properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"from":{"type":"string","description":"Name or email address that will be shown as a receiver."},"lastAddress":{"type":"string"},"lastStatus":{"type":"string"},"password":{"type":"string","description":"Password used for authenticating to an SMTP server.","secret":true},"port":{"type":"string","description":"SMTP server's port."},"server":{"type":"string","description":"SMTP server's IP address."},"tls":{"type":"string","description":"Whether to use TLS encryption:\n  * yes - sends STARTTLS and drops the session if TLS is not available on the server\n  * no - do not send STARTTLS\n  * starttls - sends STARTTLS and continue without TLS if a server responds that TLS is not available"},"toolEmailId":{"type":"string"},"user":{"type":"string","description":"The username used for authenticating to an SMTP server."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"type":"object","required":["lastAddress","lastStatus","toolEmailId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"from":{"type":"string","description":"Name or email address that will be shown as a receiver."},"password":{"type":"string","description":"Password used for authenticating to an SMTP server.","secret":true},"port":{"type":"string","description":"SMTP server's port."},"server":{"type":"string","description":"SMTP server's IP address."},"tls":{"type":"string","description":"Whether to use TLS encryption:\n  * yes - sends STARTTLS and drops the session if TLS is not available on the server\n  * no - do not send STARTTLS\n  * starttls - sends STARTTLS and continue without TLS if a server responds that TLS is not available"},"toolEmailId":{"type":"string"},"user":{"type":"string","description":"The username used for authenticating to an SMTP server."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"stateInputs":{"description":"Input properties used for looking up and filtering ToolEmail resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"from":{"type":"string","description":"Name or email address that will be shown as a receiver."},"lastAddress":{"type":"string"},"lastStatus":{"type":"string"},"password":{"type":"string","description":"Password used for authenticating to an SMTP server.","secret":true},"port":{"type":"string","description":"SMTP server's port."},"server":{"type":"string","description":"SMTP server's IP address."},"tls":{"type":"string","description":"Whether to use TLS encryption:\n  * yes - sends STARTTLS and drops the session if TLS is not available on the server\n  * no - do not send STARTTLS\n  * starttls - sends STARTTLS and continue without TLS if a server responds that TLS is not available"},"toolEmailId":{"type":"string"},"user":{"type":"string","description":"The username used for authenticating to an SMTP server."},"vrf":{"type":"string","description":"The VRF table this resource operates on."}},"type":"object"}},"routeros:index/toolGraphingInterface:ToolGraphingInterface":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.ToolGraphingInterface(\"test\", {\"interface\": \"all\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.ToolGraphingInterface(\"test\", interface=\"all\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.ToolGraphingInterface(\"test\", new()\n    {\n        Interface = \"all\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewToolGraphingInterface(ctx, \"test\", \u0026routeros.ToolGraphingInterfaceArgs{\n\t\t\tInterface: pulumi.String(\"all\"),\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.routeros.ToolGraphingInterface;\nimport com.pulumi.routeros.ToolGraphingInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ToolGraphingInterface(\"test\", ToolGraphingInterfaceArgs.builder()\n            .interface_(\"all\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:ToolGraphingInterface\n    properties:\n      interface: all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/tool/graphing/interface get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/toolGraphingInterface:ToolGraphingInterface test \"*0\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowAddress":{"type":"string","description":"IP address range from which is allowed to access graphing information.\n"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface.\n"},"storeOnDisk":{"type":"boolean","description":"Defines whether to store collected information on system drive.\n"},"toolGraphingInterfaceId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["interface","toolGraphingInterfaceId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowAddress":{"type":"string","description":"IP address range from which is allowed to access graphing information.\n"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface.\n"},"storeOnDisk":{"type":"boolean","description":"Defines whether to store collected information on system drive.\n"},"toolGraphingInterfaceId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering ToolGraphingInterface resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowAddress":{"type":"string","description":"IP address range from which is allowed to access graphing information.\n"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface.\n"},"storeOnDisk":{"type":"boolean","description":"Defines whether to store collected information on system drive.\n"},"toolGraphingInterfaceId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/toolGraphingQueue:ToolGraphingQueue":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.ToolGraphingQueue(\"test\", {simpleQueue: \"all\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.ToolGraphingQueue(\"test\", simple_queue=\"all\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.ToolGraphingQueue(\"test\", new()\n    {\n        SimpleQueue = \"all\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewToolGraphingQueue(ctx, \"test\", \u0026routeros.ToolGraphingQueueArgs{\n\t\t\tSimpleQueue: pulumi.String(\"all\"),\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.routeros.ToolGraphingQueue;\nimport com.pulumi.routeros.ToolGraphingQueueArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ToolGraphingQueue(\"test\", ToolGraphingQueueArgs.builder()\n            .simpleQueue(\"all\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:ToolGraphingQueue\n    properties:\n      simpleQueue: all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/tool/graphing/queue get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/toolGraphingQueue:ToolGraphingQueue test \"*0\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowAddress":{"type":"string","description":"IP address range from which is allowed to access graphing information.\n"},"allowTarget":{"type":"boolean","description":"Whether to allow access to graphs from queue's target-address.\n"},"disabled":{"type":"boolean"},"simpleQueue":{"type":"string","description":"Defines which queues will be monitored. all means that all queues on router will be monitored.\n"},"storeOnDisk":{"type":"boolean","description":"Defines whether to store collected information on system drive.\n"},"toolGraphingQueueId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["simpleQueue","toolGraphingQueueId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowAddress":{"type":"string","description":"IP address range from which is allowed to access graphing information.\n"},"allowTarget":{"type":"boolean","description":"Whether to allow access to graphs from queue's target-address.\n"},"disabled":{"type":"boolean"},"simpleQueue":{"type":"string","description":"Defines which queues will be monitored. all means that all queues on router will be monitored.\n"},"storeOnDisk":{"type":"boolean","description":"Defines whether to store collected information on system drive.\n"},"toolGraphingQueueId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["simpleQueue"],"stateInputs":{"description":"Input properties used for looking up and filtering ToolGraphingQueue resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowAddress":{"type":"string","description":"IP address range from which is allowed to access graphing information.\n"},"allowTarget":{"type":"boolean","description":"Whether to allow access to graphs from queue's target-address.\n"},"disabled":{"type":"boolean"},"simpleQueue":{"type":"string","description":"Defines which queues will be monitored. all means that all queues on router will be monitored.\n"},"storeOnDisk":{"type":"boolean","description":"Defines whether to store collected information on system drive.\n"},"toolGraphingQueueId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/toolGraphingResource:ToolGraphingResource":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.ToolGraphingResource(\"test\", {});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.ToolGraphingResource(\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.ToolGraphingResource(\"test\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewToolGraphingResource(ctx, \"test\", 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.routeros.ToolGraphingResource;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ToolGraphingResource(\"test\");\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:ToolGraphingResource\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/tool/graphing/resource get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/toolGraphingResource:ToolGraphingResource test \"*0\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowAddress":{"type":"string","description":"IP address range from which is allowed to access graphing information.\n"},"disabled":{"type":"boolean"},"storeOnDisk":{"type":"boolean","description":"Defines whether to store collected information on system drive.\n"},"toolGraphingResourceId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["toolGraphingResourceId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowAddress":{"type":"string","description":"IP address range from which is allowed to access graphing information.\n"},"disabled":{"type":"boolean"},"storeOnDisk":{"type":"boolean","description":"Defines whether to store collected information on system drive.\n"},"toolGraphingResourceId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ToolGraphingResource resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowAddress":{"type":"string","description":"IP address range from which is allowed to access graphing information.\n"},"disabled":{"type":"boolean"},"storeOnDisk":{"type":"boolean","description":"Defines whether to store collected information on system drive.\n"},"toolGraphingResourceId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/toolMacServer:ToolMacServer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.ToolMacServer(\"test\", {allowedInterfaceList: \"LAN\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.ToolMacServer(\"test\", allowed_interface_list=\"LAN\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.ToolMacServer(\"test\", new()\n    {\n        AllowedInterfaceList = \"LAN\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewToolMacServer(ctx, \"test\", \u0026routeros.ToolMacServerArgs{\n\t\t\tAllowedInterfaceList: pulumi.String(\"LAN\"),\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.routeros.ToolMacServer;\nimport com.pulumi.routeros.ToolMacServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ToolMacServer(\"test\", ToolMacServerArgs.builder()\n            .allowedInterfaceList(\"LAN\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:ToolMacServer\n    properties:\n      allowedInterfaceList: LAN\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/toolMacServer:ToolMacServer test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowedInterfaceList":{"type":"string","description":"List of interfaces for MAC Telnet access.\n"},"toolMacServerId":{"type":"string"}},"type":"object","required":["allowedInterfaceList","toolMacServerId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowedInterfaceList":{"type":"string","description":"List of interfaces for MAC Telnet access.\n"},"toolMacServerId":{"type":"string"}},"requiredInputs":["allowedInterfaceList"],"stateInputs":{"description":"Input properties used for looking up and filtering ToolMacServer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowedInterfaceList":{"type":"string","description":"List of interfaces for MAC Telnet access.\n"},"toolMacServerId":{"type":"string"}},"type":"object"}},"routeros:index/toolMacServerPing:ToolMacServerPing":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.ToolMacServerPing(\"test\", {enabled: false});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.ToolMacServerPing(\"test\", enabled=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.ToolMacServerPing(\"test\", new()\n    {\n        Enabled = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewToolMacServerPing(ctx, \"test\", \u0026routeros.ToolMacServerPingArgs{\n\t\t\tEnabled: 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.routeros.ToolMacServerPing;\nimport com.pulumi.routeros.ToolMacServerPingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ToolMacServerPing(\"test\", ToolMacServerPingArgs.builder()\n            .enabled(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:ToolMacServerPing\n    properties:\n      enabled: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/toolMacServerPing:ToolMacServerPing test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"Whether to enable the MAC Ping server.\n"},"toolMacServerPingId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["toolMacServerPingId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"Whether to enable the MAC Ping server.\n"},"toolMacServerPingId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ToolMacServerPing resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"Whether to enable the MAC Ping server.\n"},"toolMacServerPingId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/toolMacServerWinbox:ToolMacServerWinbox":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.ToolMacServerWinbox(\"test\", {allowedInterfaceList: \"LAN\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.ToolMacServerWinbox(\"test\", allowed_interface_list=\"LAN\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.ToolMacServerWinbox(\"test\", new()\n    {\n        AllowedInterfaceList = \"LAN\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewToolMacServerWinbox(ctx, \"test\", \u0026routeros.ToolMacServerWinboxArgs{\n\t\t\tAllowedInterfaceList: pulumi.String(\"LAN\"),\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.routeros.ToolMacServerWinbox;\nimport com.pulumi.routeros.ToolMacServerWinboxArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ToolMacServerWinbox(\"test\", ToolMacServerWinboxArgs.builder()\n            .allowedInterfaceList(\"LAN\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:ToolMacServerWinbox\n    properties:\n      allowedInterfaceList: LAN\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/toolMacServerWinbox:ToolMacServerWinbox test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowedInterfaceList":{"type":"string","description":"List of interfaces for MAC WinBox access.\n"},"toolMacServerWinboxId":{"type":"string"}},"type":"object","required":["allowedInterfaceList","toolMacServerWinboxId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowedInterfaceList":{"type":"string","description":"List of interfaces for MAC WinBox access.\n"},"toolMacServerWinboxId":{"type":"string"}},"requiredInputs":["allowedInterfaceList"],"stateInputs":{"description":"Input properties used for looking up and filtering ToolMacServerWinbox resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowedInterfaceList":{"type":"string","description":"List of interfaces for MAC WinBox access.\n"},"toolMacServerWinboxId":{"type":"string"}},"type":"object"}},"routeros:index/toolNetwatch:ToolNetwatch":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.ToolNetwatch(\"test\", {\n    name: \"watch-google-pdns\",\n    type: \"icmp\",\n    host: \"8.8.8.8\",\n    interval: \"30s\",\n    upScript: \":log info \\\"Ping to 8.8.8.8 successful\\\"\",\n    thrMax: \"400ms\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.ToolNetwatch(\"test\",\n    name=\"watch-google-pdns\",\n    type=\"icmp\",\n    host=\"8.8.8.8\",\n    interval=\"30s\",\n    up_script=\":log info \\\"Ping to 8.8.8.8 successful\\\"\",\n    thr_max=\"400ms\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.ToolNetwatch(\"test\", new()\n    {\n        Name = \"watch-google-pdns\",\n        Type = \"icmp\",\n        Host = \"8.8.8.8\",\n        Interval = \"30s\",\n        UpScript = \":log info \\\"Ping to 8.8.8.8 successful\\\"\",\n        ThrMax = \"400ms\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewToolNetwatch(ctx, \"test\", \u0026routeros.ToolNetwatchArgs{\n\t\t\tName:     pulumi.String(\"watch-google-pdns\"),\n\t\t\tType:     pulumi.String(\"icmp\"),\n\t\t\tHost:     pulumi.String(\"8.8.8.8\"),\n\t\t\tInterval: pulumi.String(\"30s\"),\n\t\t\tUpScript: pulumi.String(\":log info \\\"Ping to 8.8.8.8 successful\\\"\"),\n\t\t\tThrMax:   pulumi.String(\"400ms\"),\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.routeros.ToolNetwatch;\nimport com.pulumi.routeros.ToolNetwatchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ToolNetwatch(\"test\", ToolNetwatchArgs.builder()\n            .name(\"watch-google-pdns\")\n            .type(\"icmp\")\n            .host(\"8.8.8.8\")\n            .interval(\"30s\")\n            .upScript(\":log info \\\"Ping to 8.8.8.8 successful\\\"\")\n            .thrMax(\"400ms\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:ToolNetwatch\n    properties:\n      name: watch-google-pdns\n      type: icmp\n      host: 8.8.8.8\n      interval: 30s\n      upScript: :log info \"Ping to 8.8.8.8 successful\"\n      thrMax: 400ms\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/tool/netwatch get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/toolNetwatch:ToolNetwatch test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/toolNetwatch:ToolNetwatch test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acceptIcmpTimeExceeded":{"type":"boolean","description":"If the ICMP `time exceeded` message should be considered a valid response."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dnsServer":{"type":"string","description":"The DNS server that the probe should send its requests to, if not specified it will use the value from `/ip dns`."},"downScript":{"type":"string","description":"Script to execute on the event of probe state change `OK` -\u003e \u003cspan pulumi-lang-nodejs=\"`fail`\" pulumi-lang-dotnet=\"`Fail`\" pulumi-lang-go=\"`fail`\" pulumi-lang-python=\"`fail`\" pulumi-lang-yaml=\"`fail`\" pulumi-lang-java=\"`fail`\"\u003e`fail`\u003c/span\u003e."},"earlyFailureDetection":{"type":"boolean","description":"Netwatch will not wait to finish all the packets to be processed to change probe status if it is already known that host will be considered as \u003cspan pulumi-lang-nodejs=\"`down`\" pulumi-lang-dotnet=\"`Down`\" pulumi-lang-go=\"`down`\" pulumi-lang-python=\"`down`\" pulumi-lang-yaml=\"`down`\" pulumi-lang-java=\"`down`\"\u003e`down`\u003c/span\u003e."},"earlySuccessDetection":{"type":"boolean","description":"Netwatch will not wait to finish all the packets to be processed to change probe status if it is already known that host will be considered as \u003cspan pulumi-lang-nodejs=\"`up`\" pulumi-lang-dotnet=\"`Up`\" pulumi-lang-go=\"`up`\" pulumi-lang-python=\"`up`\" pulumi-lang-yaml=\"`up`\" pulumi-lang-java=\"`up`\"\u003e`up`\u003c/span\u003e."},"host":{"type":"string","description":"The IP address of the server to be probed. Formats:\n  * ipv4\n  * ipv4@vrf\n  * ipv6 \n  * ipv6@vrf\n  * ipv6-linklocal%interface"},"httpCodeMax":{"type":"number","description":"Response in the range [http-code-min , http-code-max] is a probe pass/OK; outside - a probe fail. See [mozilla-http-status](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) or [rfc7231](https://datatracker.ietf.org/doc/html/rfc7231#section-6)."},"httpCodeMin":{"type":"number","description":"OK/fail criteria for HTTP response code."},"interval":{"type":"string","description":"The time interval between probe tests."},"name":{"type":"string","description":"Task name."},"packetCount":{"type":"number","description":"Total count of ICMP packets to send out within a single test."},"packetInterval":{"type":"string","description":"The time between ICMP-request packet send."},"packetSize":{"type":"number","description":"The total size of the IP ICMP packet."},"port":{"type":"number","description":"TCP port (for both tcp-conn and http-get probes)"},"recordType":{"type":"string","description":"Record type that will be used for DNS probe."},"srcAddress":{"type":"string","description":"Source IP address which the Netwatch will try to use in order to reach the host. If address is not present, then the host will be considered as \u003cspan pulumi-lang-nodejs=\"`down`\" pulumi-lang-dotnet=\"`Down`\" pulumi-lang-go=\"`down`\" pulumi-lang-python=\"`down`\" pulumi-lang-yaml=\"`down`\" pulumi-lang-java=\"`down`\"\u003e`down`\u003c/span\u003e."},"startDelay":{"type":"string","description":"Time to wait before starting probe (on add, enable, or system start)."},"startupDelay":{"type":"string","description":"Time to wait until starting Netwatch probe after system startup."},"testScript":{"type":"string","description":"Script to execute at the end of every probe test."},"thrAvg":{"type":"string","description":"Fail threshold for rtt-avg."},"thrHttpTime":{"type":"string","description":"Fail threshold for http-resp-time."},"thrJitter":{"type":"string","description":"Fail threshold for rtt-jitter."},"thrLossCount":{"type":"number","description":"Fail threshold for loss-count."},"thrLossPercent":{"type":"number","description":"Fail threshold for loss-percent."},"thrMax":{"type":"string","description":"Fail threshold for rtt-max (a value above thr-max is a probe fail)."},"thrStdev":{"type":"string","description":"Fail threshold for rtt-stdev."},"thrTcpConnTime":{"type":"string","description":"Fail threshold for tcp-connect-time, the configuration uses microseconds, if the time unit is not specified (s/m/h), log and status pages display the same value in milliseconds."},"timeout":{"type":"string","description":"Max time limit to wait for a response."},"toolNetwatchId":{"type":"string"},"ttl":{"type":"number","description":"Manually set time to live value for ICMP packet."},"type":{"type":"string","description":"Type of the probe:\n  *  icmp - (ping-style) series of ICMP request-response with statistics\n  *  tcp-conn - test TCP connection (3-way handshake) to a server specified by IP and port\n  *  http-get - do an HTTP Get request and test for a range of correct replies\n  *  simple - simplified ICMP probe, with fewer options than **ICMP** type, used for backward compatibility with the older Netwatch version"},"upScript":{"type":"string","description":"Script to execute on the event of probe state change \u003cspan pulumi-lang-nodejs=\"`fail`\" pulumi-lang-dotnet=\"`Fail`\" pulumi-lang-go=\"`fail`\" pulumi-lang-python=\"`fail`\" pulumi-lang-yaml=\"`fail`\" pulumi-lang-java=\"`fail`\"\u003e`fail`\u003c/span\u003e -\u003e `OK`."}},"type":"object","required":["host","name","toolNetwatchId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acceptIcmpTimeExceeded":{"type":"boolean","description":"If the ICMP `time exceeded` message should be considered a valid response."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dnsServer":{"type":"string","description":"The DNS server that the probe should send its requests to, if not specified it will use the value from `/ip dns`."},"downScript":{"type":"string","description":"Script to execute on the event of probe state change `OK` -\u003e \u003cspan pulumi-lang-nodejs=\"`fail`\" pulumi-lang-dotnet=\"`Fail`\" pulumi-lang-go=\"`fail`\" pulumi-lang-python=\"`fail`\" pulumi-lang-yaml=\"`fail`\" pulumi-lang-java=\"`fail`\"\u003e`fail`\u003c/span\u003e."},"earlyFailureDetection":{"type":"boolean","description":"Netwatch will not wait to finish all the packets to be processed to change probe status if it is already known that host will be considered as \u003cspan pulumi-lang-nodejs=\"`down`\" pulumi-lang-dotnet=\"`Down`\" pulumi-lang-go=\"`down`\" pulumi-lang-python=\"`down`\" pulumi-lang-yaml=\"`down`\" pulumi-lang-java=\"`down`\"\u003e`down`\u003c/span\u003e."},"earlySuccessDetection":{"type":"boolean","description":"Netwatch will not wait to finish all the packets to be processed to change probe status if it is already known that host will be considered as \u003cspan pulumi-lang-nodejs=\"`up`\" pulumi-lang-dotnet=\"`Up`\" pulumi-lang-go=\"`up`\" pulumi-lang-python=\"`up`\" pulumi-lang-yaml=\"`up`\" pulumi-lang-java=\"`up`\"\u003e`up`\u003c/span\u003e."},"host":{"type":"string","description":"The IP address of the server to be probed. Formats:\n  * ipv4\n  * ipv4@vrf\n  * ipv6 \n  * ipv6@vrf\n  * ipv6-linklocal%interface"},"httpCodeMax":{"type":"number","description":"Response in the range [http-code-min , http-code-max] is a probe pass/OK; outside - a probe fail. See [mozilla-http-status](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) or [rfc7231](https://datatracker.ietf.org/doc/html/rfc7231#section-6)."},"httpCodeMin":{"type":"number","description":"OK/fail criteria for HTTP response code."},"interval":{"type":"string","description":"The time interval between probe tests."},"name":{"type":"string","description":"Task name."},"packetCount":{"type":"number","description":"Total count of ICMP packets to send out within a single test."},"packetInterval":{"type":"string","description":"The time between ICMP-request packet send."},"packetSize":{"type":"number","description":"The total size of the IP ICMP packet."},"port":{"type":"number","description":"TCP port (for both tcp-conn and http-get probes)"},"recordType":{"type":"string","description":"Record type that will be used for DNS probe."},"srcAddress":{"type":"string","description":"Source IP address which the Netwatch will try to use in order to reach the host. If address is not present, then the host will be considered as \u003cspan pulumi-lang-nodejs=\"`down`\" pulumi-lang-dotnet=\"`Down`\" pulumi-lang-go=\"`down`\" pulumi-lang-python=\"`down`\" pulumi-lang-yaml=\"`down`\" pulumi-lang-java=\"`down`\"\u003e`down`\u003c/span\u003e."},"startDelay":{"type":"string","description":"Time to wait before starting probe (on add, enable, or system start)."},"startupDelay":{"type":"string","description":"Time to wait until starting Netwatch probe after system startup."},"testScript":{"type":"string","description":"Script to execute at the end of every probe test."},"thrAvg":{"type":"string","description":"Fail threshold for rtt-avg."},"thrHttpTime":{"type":"string","description":"Fail threshold for http-resp-time."},"thrJitter":{"type":"string","description":"Fail threshold for rtt-jitter."},"thrLossCount":{"type":"number","description":"Fail threshold for loss-count."},"thrLossPercent":{"type":"number","description":"Fail threshold for loss-percent."},"thrMax":{"type":"string","description":"Fail threshold for rtt-max (a value above thr-max is a probe fail)."},"thrStdev":{"type":"string","description":"Fail threshold for rtt-stdev."},"thrTcpConnTime":{"type":"string","description":"Fail threshold for tcp-connect-time, the configuration uses microseconds, if the time unit is not specified (s/m/h), log and status pages display the same value in milliseconds."},"timeout":{"type":"string","description":"Max time limit to wait for a response."},"toolNetwatchId":{"type":"string"},"ttl":{"type":"number","description":"Manually set time to live value for ICMP packet."},"type":{"type":"string","description":"Type of the probe:\n  *  icmp - (ping-style) series of ICMP request-response with statistics\n  *  tcp-conn - test TCP connection (3-way handshake) to a server specified by IP and port\n  *  http-get - do an HTTP Get request and test for a range of correct replies\n  *  simple - simplified ICMP probe, with fewer options than **ICMP** type, used for backward compatibility with the older Netwatch version"},"upScript":{"type":"string","description":"Script to execute on the event of probe state change \u003cspan pulumi-lang-nodejs=\"`fail`\" pulumi-lang-dotnet=\"`Fail`\" pulumi-lang-go=\"`fail`\" pulumi-lang-python=\"`fail`\" pulumi-lang-yaml=\"`fail`\" pulumi-lang-java=\"`fail`\"\u003e`fail`\u003c/span\u003e -\u003e `OK`."}},"requiredInputs":["host"],"stateInputs":{"description":"Input properties used for looking up and filtering ToolNetwatch resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"acceptIcmpTimeExceeded":{"type":"boolean","description":"If the ICMP `time exceeded` message should be considered a valid response."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"dnsServer":{"type":"string","description":"The DNS server that the probe should send its requests to, if not specified it will use the value from `/ip dns`."},"downScript":{"type":"string","description":"Script to execute on the event of probe state change `OK` -\u003e \u003cspan pulumi-lang-nodejs=\"`fail`\" pulumi-lang-dotnet=\"`Fail`\" pulumi-lang-go=\"`fail`\" pulumi-lang-python=\"`fail`\" pulumi-lang-yaml=\"`fail`\" pulumi-lang-java=\"`fail`\"\u003e`fail`\u003c/span\u003e."},"earlyFailureDetection":{"type":"boolean","description":"Netwatch will not wait to finish all the packets to be processed to change probe status if it is already known that host will be considered as \u003cspan pulumi-lang-nodejs=\"`down`\" pulumi-lang-dotnet=\"`Down`\" pulumi-lang-go=\"`down`\" pulumi-lang-python=\"`down`\" pulumi-lang-yaml=\"`down`\" pulumi-lang-java=\"`down`\"\u003e`down`\u003c/span\u003e."},"earlySuccessDetection":{"type":"boolean","description":"Netwatch will not wait to finish all the packets to be processed to change probe status if it is already known that host will be considered as \u003cspan pulumi-lang-nodejs=\"`up`\" pulumi-lang-dotnet=\"`Up`\" pulumi-lang-go=\"`up`\" pulumi-lang-python=\"`up`\" pulumi-lang-yaml=\"`up`\" pulumi-lang-java=\"`up`\"\u003e`up`\u003c/span\u003e."},"host":{"type":"string","description":"The IP address of the server to be probed. Formats:\n  * ipv4\n  * ipv4@vrf\n  * ipv6 \n  * ipv6@vrf\n  * ipv6-linklocal%interface"},"httpCodeMax":{"type":"number","description":"Response in the range [http-code-min , http-code-max] is a probe pass/OK; outside - a probe fail. See [mozilla-http-status](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) or [rfc7231](https://datatracker.ietf.org/doc/html/rfc7231#section-6)."},"httpCodeMin":{"type":"number","description":"OK/fail criteria for HTTP response code."},"interval":{"type":"string","description":"The time interval between probe tests."},"name":{"type":"string","description":"Task name."},"packetCount":{"type":"number","description":"Total count of ICMP packets to send out within a single test."},"packetInterval":{"type":"string","description":"The time between ICMP-request packet send."},"packetSize":{"type":"number","description":"The total size of the IP ICMP packet."},"port":{"type":"number","description":"TCP port (for both tcp-conn and http-get probes)"},"recordType":{"type":"string","description":"Record type that will be used for DNS probe."},"srcAddress":{"type":"string","description":"Source IP address which the Netwatch will try to use in order to reach the host. If address is not present, then the host will be considered as \u003cspan pulumi-lang-nodejs=\"`down`\" pulumi-lang-dotnet=\"`Down`\" pulumi-lang-go=\"`down`\" pulumi-lang-python=\"`down`\" pulumi-lang-yaml=\"`down`\" pulumi-lang-java=\"`down`\"\u003e`down`\u003c/span\u003e."},"startDelay":{"type":"string","description":"Time to wait before starting probe (on add, enable, or system start)."},"startupDelay":{"type":"string","description":"Time to wait until starting Netwatch probe after system startup."},"testScript":{"type":"string","description":"Script to execute at the end of every probe test."},"thrAvg":{"type":"string","description":"Fail threshold for rtt-avg."},"thrHttpTime":{"type":"string","description":"Fail threshold for http-resp-time."},"thrJitter":{"type":"string","description":"Fail threshold for rtt-jitter."},"thrLossCount":{"type":"number","description":"Fail threshold for loss-count."},"thrLossPercent":{"type":"number","description":"Fail threshold for loss-percent."},"thrMax":{"type":"string","description":"Fail threshold for rtt-max (a value above thr-max is a probe fail)."},"thrStdev":{"type":"string","description":"Fail threshold for rtt-stdev."},"thrTcpConnTime":{"type":"string","description":"Fail threshold for tcp-connect-time, the configuration uses microseconds, if the time unit is not specified (s/m/h), log and status pages display the same value in milliseconds."},"timeout":{"type":"string","description":"Max time limit to wait for a response."},"toolNetwatchId":{"type":"string"},"ttl":{"type":"number","description":"Manually set time to live value for ICMP packet."},"type":{"type":"string","description":"Type of the probe:\n  *  icmp - (ping-style) series of ICMP request-response with statistics\n  *  tcp-conn - test TCP connection (3-way handshake) to a server specified by IP and port\n  *  http-get - do an HTTP Get request and test for a range of correct replies\n  *  simple - simplified ICMP probe, with fewer options than **ICMP** type, used for backward compatibility with the older Netwatch version"},"upScript":{"type":"string","description":"Script to execute on the event of probe state change \u003cspan pulumi-lang-nodejs=\"`fail`\" pulumi-lang-dotnet=\"`Fail`\" pulumi-lang-go=\"`fail`\" pulumi-lang-python=\"`fail`\" pulumi-lang-yaml=\"`fail`\" pulumi-lang-java=\"`fail`\"\u003e`fail`\u003c/span\u003e -\u003e `OK`."}},"type":"object"}},"routeros:index/toolSniffer:ToolSniffer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.ToolSniffer(\"test\", {\n    enabled: true,\n    streamingEnabled: true,\n    streamingServer: \"192.168.88.5:37008\",\n    filterStream: true,\n    filterInterfaces: [\"ether2\"],\n    filterDirection: \"rx\",\n    filterOperatorBetweenEntries: \"and\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.ToolSniffer(\"test\",\n    enabled=True,\n    streaming_enabled=True,\n    streaming_server=\"192.168.88.5:37008\",\n    filter_stream=True,\n    filter_interfaces=[\"ether2\"],\n    filter_direction=\"rx\",\n    filter_operator_between_entries=\"and\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.ToolSniffer(\"test\", new()\n    {\n        Enabled = true,\n        StreamingEnabled = true,\n        StreamingServer = \"192.168.88.5:37008\",\n        FilterStream = true,\n        FilterInterfaces = new[]\n        {\n            \"ether2\",\n        },\n        FilterDirection = \"rx\",\n        FilterOperatorBetweenEntries = \"and\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewToolSniffer(ctx, \"test\", \u0026routeros.ToolSnifferArgs{\n\t\t\tEnabled:          pulumi.Bool(true),\n\t\t\tStreamingEnabled: pulumi.Bool(true),\n\t\t\tStreamingServer:  pulumi.String(\"192.168.88.5:37008\"),\n\t\t\tFilterStream:     pulumi.Bool(true),\n\t\t\tFilterInterfaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ether2\"),\n\t\t\t},\n\t\t\tFilterDirection:              pulumi.String(\"rx\"),\n\t\t\tFilterOperatorBetweenEntries: pulumi.String(\"and\"),\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.routeros.ToolSniffer;\nimport com.pulumi.routeros.ToolSnifferArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ToolSniffer(\"test\", ToolSnifferArgs.builder()\n            .enabled(true)\n            .streamingEnabled(true)\n            .streamingServer(\"192.168.88.5:37008\")\n            .filterStream(true)\n            .filterInterfaces(\"ether2\")\n            .filterDirection(\"rx\")\n            .filterOperatorBetweenEntries(\"and\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:ToolSniffer\n    properties:\n      enabled: true\n      streamingEnabled: true\n      streamingServer: 192.168.88.5:37008\n      filterStream: true\n      filterInterfaces:\n        - ether2\n      filterDirection: rx\n      filterOperatorBetweenEntries: and\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/toolSniffer:ToolSniffer test .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"Start packet capture."},"fileLimit":{"type":"number","description":"File size limit. Sniffer will stop when a limit is reached."},"fileName":{"type":"string","description":"Name of the file where sniffed packets will be saved."},"filterCpu":{"type":"string","description":"CPU core used as a filter."},"filterDirection":{"type":"string","description":"Specifies which direction filtering will be applied."},"filterDstIpAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IP destination addresses used as a filter."},"filterDstIpv6Addresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IPv6 destination addresses used as a filter."},"filterDstMacAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 MAC destination addresses and MAC address masks used as a filter."},"filterDstPorts":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma-separated destination ports used as a filter. A list of predefined port names is also available, like ssh and telnet."},"filterInterfaces":{"type":"array","items":{"type":"string"},"description":"Interface name on which sniffer will be running. all indicates that the sniffer will sniff packets on all interfaces."},"filterIpAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IP addresses used as a filter."},"filterIpProtocols":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma-separated IP/IPv6 protocols used as a filter. IP protocols (instead of protocol names, protocol numbers can be used):\n  * ipsec-ah - IPsec AH protocol\n  * ipsec-esp - IPsec ESP protocol\n  * ddp - datagram delivery protocol\n  * egp - exterior gateway protocol\n  * ggp - gateway-gateway protocol\n  * gre - general routing encapsulation\n  * hmp - host monitoring protocol\n  * idpr-cmtp - idpr control message transport\n  * icmp - internet control message protocol\n  * icmpv6 - internet control message protocol v6\n  * igmp - internet group management protocol\n  * ipencap - ip encapsulated in ip\n  * ipip - ip encapsulation\n  * encap - ip encapsulation\n  * iso-tp4 - iso transport protocol class 4\n  * ospf - open shortest path first\n  * pup - parc universal packet protocol\n  * pim - protocol independent multicast\n  * rspf - radio shortest path first\n  * rdp - reliable datagram protocol\n  * st - st datagram mode\n  * tcp - transmission control protocol\n  * udp - user datagram protocol\n  * vmtp versatile message transport\n  * vrrp - virtual router redundancy protocol\n  * xns-idp - xerox xns idp\n  * xtp - xpress transfer protocol"},"filterIpv6Addresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IPv6 addresses used as a filter."},"filterMacAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 MAC addresses and MAC address masks used as a filter."},"filterMacProtocols":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma separated entries used as a filter. Mac protocols (instead of protocol names, protocol number can be used):\n  * 802.2 - 802.2 Frames (0x0004)\n  * arp - Address Resolution Protocol (0x0806)\n  * homeplug-av - HomePlug AV MME (0x88E1)\n  * ip - Internet Protocol version 4 (0x0800)\n  * ipv6 - Internet Protocol Version 6 (0x86DD)\n  * ipx - Internetwork Packet Exchange (0x8137)\n  * lldp - Link Layer Discovery Protocol (0x88CC)\n  * loop-protect - Loop Protect Protocol (0x9003)\n  * mpls-multicast - MPLS multicast (0x8848)\n  * mpls-unicast - MPLS unicast (0x8847)\n  * packing-compr - Encapsulated packets with compressed IP packing (0x9001)\n  * packing-simple - Encapsulated packets with simple IP packing (0x9000)\n  * pppoe - PPPoE Session Stage (0x8864)\n  * pppoe-discovery - PPPoE Discovery Stage (0x8863)\n  * rarp - Reverse Address Resolution Protocol (0x8035)\n  * service-vlan - Provider Bridging (IEEE 802.1ad) \u0026 Shortest Path Bridging IEEE 802.1aq (0x88A8)\n  * vlan - VLAN-tagged frame (IEEE 802.1Q) and Shortest Path Bridging IEEE 802.1aq with NNI compatibility (0x8100)"},"filterOperatorBetweenEntries":{"type":"string","description":"Changes the logic for filters with multiple entries."},"filterPorts":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma-separated ports used as a filter. A list of predefined port names is also available, like ssh and telnet."},"filterSize":{"type":"string","description":"Filters packets of specified size or size range in bytes."},"filterSrcIpAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IP source addresses used as a filter."},"filterSrcIpv6Addresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IPv6 source addresses used as a filter."},"filterSrcMacAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 MAC source addresses and MAC address masks used as a filter."},"filterSrcPorts":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma-separated source ports used as a filter. A list of predefined port names is also available, like ssh and telnet."},"filterStream":{"type":"boolean","description":"Sniffed packets that are devised for the sniffer server are ignored."},"filterVlans":{"type":"array","items":{"type":"number"},"description":"Up to 16 VLAN IDs used as a filter."},"maxPacketSize":{"type":"number"},"memoryLimit":{"type":"number","description":"Memory amount used to store sniffed data."},"memoryScroll":{"type":"boolean","description":"Whether to rewrite older sniffed data when the memory limit is reached."},"onlyHeaders":{"type":"boolean","description":"Save in the memory only the packet's headers, not the whole packet."},"running":{"type":"boolean"},"streamingEnabled":{"type":"boolean","description":"Defines whether to send sniffed packets to the streaming server."},"streamingServer":{"type":"string","description":"Tazmen Sniffer Protocol (TZSP) stream receiver."},"toolSnifferId":{"type":"string"}},"type":"object","required":["running","toolSnifferId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"Start packet capture."},"fileLimit":{"type":"number","description":"File size limit. Sniffer will stop when a limit is reached."},"fileName":{"type":"string","description":"Name of the file where sniffed packets will be saved."},"filterCpu":{"type":"string","description":"CPU core used as a filter."},"filterDirection":{"type":"string","description":"Specifies which direction filtering will be applied."},"filterDstIpAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IP destination addresses used as a filter."},"filterDstIpv6Addresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IPv6 destination addresses used as a filter."},"filterDstMacAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 MAC destination addresses and MAC address masks used as a filter."},"filterDstPorts":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma-separated destination ports used as a filter. A list of predefined port names is also available, like ssh and telnet."},"filterInterfaces":{"type":"array","items":{"type":"string"},"description":"Interface name on which sniffer will be running. all indicates that the sniffer will sniff packets on all interfaces."},"filterIpAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IP addresses used as a filter."},"filterIpProtocols":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma-separated IP/IPv6 protocols used as a filter. IP protocols (instead of protocol names, protocol numbers can be used):\n  * ipsec-ah - IPsec AH protocol\n  * ipsec-esp - IPsec ESP protocol\n  * ddp - datagram delivery protocol\n  * egp - exterior gateway protocol\n  * ggp - gateway-gateway protocol\n  * gre - general routing encapsulation\n  * hmp - host monitoring protocol\n  * idpr-cmtp - idpr control message transport\n  * icmp - internet control message protocol\n  * icmpv6 - internet control message protocol v6\n  * igmp - internet group management protocol\n  * ipencap - ip encapsulated in ip\n  * ipip - ip encapsulation\n  * encap - ip encapsulation\n  * iso-tp4 - iso transport protocol class 4\n  * ospf - open shortest path first\n  * pup - parc universal packet protocol\n  * pim - protocol independent multicast\n  * rspf - radio shortest path first\n  * rdp - reliable datagram protocol\n  * st - st datagram mode\n  * tcp - transmission control protocol\n  * udp - user datagram protocol\n  * vmtp versatile message transport\n  * vrrp - virtual router redundancy protocol\n  * xns-idp - xerox xns idp\n  * xtp - xpress transfer protocol"},"filterIpv6Addresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IPv6 addresses used as a filter."},"filterMacAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 MAC addresses and MAC address masks used as a filter."},"filterMacProtocols":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma separated entries used as a filter. Mac protocols (instead of protocol names, protocol number can be used):\n  * 802.2 - 802.2 Frames (0x0004)\n  * arp - Address Resolution Protocol (0x0806)\n  * homeplug-av - HomePlug AV MME (0x88E1)\n  * ip - Internet Protocol version 4 (0x0800)\n  * ipv6 - Internet Protocol Version 6 (0x86DD)\n  * ipx - Internetwork Packet Exchange (0x8137)\n  * lldp - Link Layer Discovery Protocol (0x88CC)\n  * loop-protect - Loop Protect Protocol (0x9003)\n  * mpls-multicast - MPLS multicast (0x8848)\n  * mpls-unicast - MPLS unicast (0x8847)\n  * packing-compr - Encapsulated packets with compressed IP packing (0x9001)\n  * packing-simple - Encapsulated packets with simple IP packing (0x9000)\n  * pppoe - PPPoE Session Stage (0x8864)\n  * pppoe-discovery - PPPoE Discovery Stage (0x8863)\n  * rarp - Reverse Address Resolution Protocol (0x8035)\n  * service-vlan - Provider Bridging (IEEE 802.1ad) \u0026 Shortest Path Bridging IEEE 802.1aq (0x88A8)\n  * vlan - VLAN-tagged frame (IEEE 802.1Q) and Shortest Path Bridging IEEE 802.1aq with NNI compatibility (0x8100)"},"filterOperatorBetweenEntries":{"type":"string","description":"Changes the logic for filters with multiple entries."},"filterPorts":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma-separated ports used as a filter. A list of predefined port names is also available, like ssh and telnet."},"filterSize":{"type":"string","description":"Filters packets of specified size or size range in bytes."},"filterSrcIpAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IP source addresses used as a filter."},"filterSrcIpv6Addresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IPv6 source addresses used as a filter."},"filterSrcMacAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 MAC source addresses and MAC address masks used as a filter."},"filterSrcPorts":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma-separated source ports used as a filter. A list of predefined port names is also available, like ssh and telnet."},"filterStream":{"type":"boolean","description":"Sniffed packets that are devised for the sniffer server are ignored."},"filterVlans":{"type":"array","items":{"type":"number"},"description":"Up to 16 VLAN IDs used as a filter."},"maxPacketSize":{"type":"number"},"memoryLimit":{"type":"number","description":"Memory amount used to store sniffed data."},"memoryScroll":{"type":"boolean","description":"Whether to rewrite older sniffed data when the memory limit is reached."},"onlyHeaders":{"type":"boolean","description":"Save in the memory only the packet's headers, not the whole packet."},"streamingEnabled":{"type":"boolean","description":"Defines whether to send sniffed packets to the streaming server."},"streamingServer":{"type":"string","description":"Tazmen Sniffer Protocol (TZSP) stream receiver."},"toolSnifferId":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering ToolSniffer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"enabled":{"type":"boolean","description":"Start packet capture."},"fileLimit":{"type":"number","description":"File size limit. Sniffer will stop when a limit is reached."},"fileName":{"type":"string","description":"Name of the file where sniffed packets will be saved."},"filterCpu":{"type":"string","description":"CPU core used as a filter."},"filterDirection":{"type":"string","description":"Specifies which direction filtering will be applied."},"filterDstIpAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IP destination addresses used as a filter."},"filterDstIpv6Addresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IPv6 destination addresses used as a filter."},"filterDstMacAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 MAC destination addresses and MAC address masks used as a filter."},"filterDstPorts":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma-separated destination ports used as a filter. A list of predefined port names is also available, like ssh and telnet."},"filterInterfaces":{"type":"array","items":{"type":"string"},"description":"Interface name on which sniffer will be running. all indicates that the sniffer will sniff packets on all interfaces."},"filterIpAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IP addresses used as a filter."},"filterIpProtocols":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma-separated IP/IPv6 protocols used as a filter. IP protocols (instead of protocol names, protocol numbers can be used):\n  * ipsec-ah - IPsec AH protocol\n  * ipsec-esp - IPsec ESP protocol\n  * ddp - datagram delivery protocol\n  * egp - exterior gateway protocol\n  * ggp - gateway-gateway protocol\n  * gre - general routing encapsulation\n  * hmp - host monitoring protocol\n  * idpr-cmtp - idpr control message transport\n  * icmp - internet control message protocol\n  * icmpv6 - internet control message protocol v6\n  * igmp - internet group management protocol\n  * ipencap - ip encapsulated in ip\n  * ipip - ip encapsulation\n  * encap - ip encapsulation\n  * iso-tp4 - iso transport protocol class 4\n  * ospf - open shortest path first\n  * pup - parc universal packet protocol\n  * pim - protocol independent multicast\n  * rspf - radio shortest path first\n  * rdp - reliable datagram protocol\n  * st - st datagram mode\n  * tcp - transmission control protocol\n  * udp - user datagram protocol\n  * vmtp versatile message transport\n  * vrrp - virtual router redundancy protocol\n  * xns-idp - xerox xns idp\n  * xtp - xpress transfer protocol"},"filterIpv6Addresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IPv6 addresses used as a filter."},"filterMacAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 MAC addresses and MAC address masks used as a filter."},"filterMacProtocols":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma separated entries used as a filter. Mac protocols (instead of protocol names, protocol number can be used):\n  * 802.2 - 802.2 Frames (0x0004)\n  * arp - Address Resolution Protocol (0x0806)\n  * homeplug-av - HomePlug AV MME (0x88E1)\n  * ip - Internet Protocol version 4 (0x0800)\n  * ipv6 - Internet Protocol Version 6 (0x86DD)\n  * ipx - Internetwork Packet Exchange (0x8137)\n  * lldp - Link Layer Discovery Protocol (0x88CC)\n  * loop-protect - Loop Protect Protocol (0x9003)\n  * mpls-multicast - MPLS multicast (0x8848)\n  * mpls-unicast - MPLS unicast (0x8847)\n  * packing-compr - Encapsulated packets with compressed IP packing (0x9001)\n  * packing-simple - Encapsulated packets with simple IP packing (0x9000)\n  * pppoe - PPPoE Session Stage (0x8864)\n  * pppoe-discovery - PPPoE Discovery Stage (0x8863)\n  * rarp - Reverse Address Resolution Protocol (0x8035)\n  * service-vlan - Provider Bridging (IEEE 802.1ad) \u0026 Shortest Path Bridging IEEE 802.1aq (0x88A8)\n  * vlan - VLAN-tagged frame (IEEE 802.1Q) and Shortest Path Bridging IEEE 802.1aq with NNI compatibility (0x8100)"},"filterOperatorBetweenEntries":{"type":"string","description":"Changes the logic for filters with multiple entries."},"filterPorts":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma-separated ports used as a filter. A list of predefined port names is also available, like ssh and telnet."},"filterSize":{"type":"string","description":"Filters packets of specified size or size range in bytes."},"filterSrcIpAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IP source addresses used as a filter."},"filterSrcIpv6Addresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 IPv6 source addresses used as a filter."},"filterSrcMacAddresses":{"type":"array","items":{"type":"string"},"description":"Up to 16 MAC source addresses and MAC address masks used as a filter."},"filterSrcPorts":{"type":"array","items":{"type":"string"},"description":"Up to 16 comma-separated source ports used as a filter. A list of predefined port names is also available, like ssh and telnet."},"filterStream":{"type":"boolean","description":"Sniffed packets that are devised for the sniffer server are ignored."},"filterVlans":{"type":"array","items":{"type":"number"},"description":"Up to 16 VLAN IDs used as a filter."},"maxPacketSize":{"type":"number"},"memoryLimit":{"type":"number","description":"Memory amount used to store sniffed data."},"memoryScroll":{"type":"boolean","description":"Whether to rewrite older sniffed data when the memory limit is reached."},"onlyHeaders":{"type":"boolean","description":"Save in the memory only the packet's headers, not the whole packet."},"running":{"type":"boolean"},"streamingEnabled":{"type":"boolean","description":"Defines whether to send sniffed packets to the streaming server."},"streamingServer":{"type":"string","description":"Tazmen Sniffer Protocol (TZSP) stream receiver."},"toolSnifferId":{"type":"string"}},"type":"object"}},"routeros:index/userManagerAdvanced:UserManagerAdvanced":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.UserManagerAdvanced(\"settings\", {\n    webPrivatePassword: \"password\",\n    webPrivateUsername: \"admin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.UserManagerAdvanced(\"settings\",\n    web_private_password=\"password\",\n    web_private_username=\"admin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.UserManagerAdvanced(\"settings\", new()\n    {\n        WebPrivatePassword = \"password\",\n        WebPrivateUsername = \"admin\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewUserManagerAdvanced(ctx, \"settings\", \u0026routeros.UserManagerAdvancedArgs{\n\t\t\tWebPrivatePassword: pulumi.String(\"password\"),\n\t\t\tWebPrivateUsername: pulumi.String(\"admin\"),\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.routeros.UserManagerAdvanced;\nimport com.pulumi.routeros.UserManagerAdvancedArgs;\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 settings = new UserManagerAdvanced(\"settings\", UserManagerAdvancedArgs.builder()\n            .webPrivatePassword(\"password\")\n            .webPrivateUsername(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:UserManagerAdvanced\n    properties:\n      webPrivatePassword: password\n      webPrivateUsername: admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/userManagerAdvanced:UserManagerAdvanced settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"paypalAllow":{"type":"boolean","description":"An option whether to enable PayPal functionality for User Manager.\n"},"paypalCurrency":{"type":"string","description":"The currency related to price setting in which users will be billed.\n"},"paypalPassword":{"type":"string","description":"The password of the PayPal API account.\n"},"paypalSignature":{"type":"string","description":"The signature of the PayPal API account.\n"},"paypalUseSandbox":{"type":"boolean","description":"An option whether to use PayPal's sandbox environment for testing purposes.\n"},"paypalUser":{"type":"string","description":"The username of the PayPal API account.\n"},"userManagerAdvancedId":{"type":"string","description":"The ID of this resource.\n"},"webPrivatePassword":{"type":"string","description":"The password for accessing `/um/PRIVATE/` section over HTTP.\n"},"webPrivateUsername":{"type":"string","description":"The username for accessing `/um/PRIVATE/` section over HTTP.\n"}},"type":"object","required":["userManagerAdvancedId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"paypalAllow":{"type":"boolean","description":"An option whether to enable PayPal functionality for User Manager.\n"},"paypalCurrency":{"type":"string","description":"The currency related to price setting in which users will be billed.\n"},"paypalPassword":{"type":"string","description":"The password of the PayPal API account.\n"},"paypalSignature":{"type":"string","description":"The signature of the PayPal API account.\n"},"paypalUseSandbox":{"type":"boolean","description":"An option whether to use PayPal's sandbox environment for testing purposes.\n"},"paypalUser":{"type":"string","description":"The username of the PayPal API account.\n"},"userManagerAdvancedId":{"type":"string","description":"The ID of this resource.\n"},"webPrivatePassword":{"type":"string","description":"The password for accessing `/um/PRIVATE/` section over HTTP.\n"},"webPrivateUsername":{"type":"string","description":"The username for accessing `/um/PRIVATE/` section over HTTP.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering UserManagerAdvanced resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"paypalAllow":{"type":"boolean","description":"An option whether to enable PayPal functionality for User Manager.\n"},"paypalCurrency":{"type":"string","description":"The currency related to price setting in which users will be billed.\n"},"paypalPassword":{"type":"string","description":"The password of the PayPal API account.\n"},"paypalSignature":{"type":"string","description":"The signature of the PayPal API account.\n"},"paypalUseSandbox":{"type":"boolean","description":"An option whether to use PayPal's sandbox environment for testing purposes.\n"},"paypalUser":{"type":"string","description":"The username of the PayPal API account.\n"},"userManagerAdvancedId":{"type":"string","description":"The ID of this resource.\n"},"webPrivatePassword":{"type":"string","description":"The password for accessing `/um/PRIVATE/` section over HTTP.\n"},"webPrivateUsername":{"type":"string","description":"The username for accessing `/um/PRIVATE/` section over HTTP.\n"}},"type":"object"}},"routeros:index/userManagerAttribute:UserManagerAttribute":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst mikrotikWirelessComment = new routeros.UserManagerAttribute(\"mikrotik_wireless_comment\", {\n    name: \"Mikrotik-Wireless-Comment\",\n    packetTypes: [\"access-accept\"],\n    typeId: 21,\n    valueType: \"string\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nmikrotik_wireless_comment = routeros.UserManagerAttribute(\"mikrotik_wireless_comment\",\n    name=\"Mikrotik-Wireless-Comment\",\n    packet_types=[\"access-accept\"],\n    type_id=21,\n    value_type=\"string\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mikrotikWirelessComment = new Routeros.UserManagerAttribute(\"mikrotik_wireless_comment\", new()\n    {\n        Name = \"Mikrotik-Wireless-Comment\",\n        PacketTypes = new[]\n        {\n            \"access-accept\",\n        },\n        TypeId = 21,\n        ValueType = \"string\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewUserManagerAttribute(ctx, \"mikrotik_wireless_comment\", \u0026routeros.UserManagerAttributeArgs{\n\t\t\tName: pulumi.String(\"Mikrotik-Wireless-Comment\"),\n\t\t\tPacketTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"access-accept\"),\n\t\t\t},\n\t\t\tTypeId:    pulumi.Float64(21),\n\t\t\tValueType: pulumi.String(\"string\"),\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.routeros.UserManagerAttribute;\nimport com.pulumi.routeros.UserManagerAttributeArgs;\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 mikrotikWirelessComment = new UserManagerAttribute(\"mikrotikWirelessComment\", UserManagerAttributeArgs.builder()\n            .name(\"Mikrotik-Wireless-Comment\")\n            .packetTypes(\"access-accept\")\n            .typeId(21.0)\n            .valueType(\"string\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mikrotikWirelessComment:\n    type: routeros:UserManagerAttribute\n    name: mikrotik_wireless_comment\n    properties:\n      name: Mikrotik-Wireless-Comment\n      packetTypes:\n        - access-accept\n      typeId: 21\n      valueType: string\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/user-manager/attribute get [print show-ids]]\n\nterraform routeros_user_manager_attribute.mikrotik_wireless_comment '*1'\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/userManagerAttribute:UserManagerAttribute mikrotik_wireless_comment \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"default":{"type":"boolean","description":"It's the default item.\n"},"defaultName":{"type":"string","description":"The attribute's default name.\n"},"name":{"type":"string","description":"The attribute's name.\n"},"packetTypes":{"type":"array","items":{"type":"string"},"description":"A set of `access-accept` and `access-challenge`.\n"},"standardName":{"type":"string"},"typeId":{"type":"number","description":"Attribute identification number from the specific vendor's attribute database.\n"},"userManagerAttributeId":{"type":"string","description":"The ID of this resource.\n"},"valueType":{"type":"string","description":"The attribute's value type.\n"},"vendorId":{"type":"string","description":"IANA allocated a specific enterprise identification number.\n"}},"type":"object","required":["default","defaultName","name","standardName","typeId","userManagerAttributeId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"name":{"type":"string","description":"The attribute's name.\n"},"packetTypes":{"type":"array","items":{"type":"string"},"description":"A set of `access-accept` and `access-challenge`.\n"},"typeId":{"type":"number","description":"Attribute identification number from the specific vendor's attribute database.\n"},"userManagerAttributeId":{"type":"string","description":"The ID of this resource.\n"},"valueType":{"type":"string","description":"The attribute's value type.\n"},"vendorId":{"type":"string","description":"IANA allocated a specific enterprise identification number.\n"}},"requiredInputs":["typeId"],"stateInputs":{"description":"Input properties used for looking up and filtering UserManagerAttribute resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"default":{"type":"boolean","description":"It's the default item.\n"},"defaultName":{"type":"string","description":"The attribute's default name.\n"},"name":{"type":"string","description":"The attribute's name.\n"},"packetTypes":{"type":"array","items":{"type":"string"},"description":"A set of `access-accept` and `access-challenge`.\n"},"standardName":{"type":"string"},"typeId":{"type":"number","description":"Attribute identification number from the specific vendor's attribute database.\n"},"userManagerAttributeId":{"type":"string","description":"The ID of this resource.\n"},"valueType":{"type":"string","description":"The attribute's value type.\n"},"vendorId":{"type":"string","description":"IANA allocated a specific enterprise identification number.\n"}},"type":"object"}},"routeros:index/userManagerDatabase:UserManagerDatabase":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.UserManagerDatabase(\"settings\", {dbPath: \"/flash/user-manager5\"});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.UserManagerDatabase(\"settings\", db_path=\"/flash/user-manager5\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.UserManagerDatabase(\"settings\", new()\n    {\n        DbPath = \"/flash/user-manager5\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewUserManagerDatabase(ctx, \"settings\", \u0026routeros.UserManagerDatabaseArgs{\n\t\t\tDbPath: pulumi.String(\"/flash/user-manager5\"),\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.routeros.UserManagerDatabase;\nimport com.pulumi.routeros.UserManagerDatabaseArgs;\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 settings = new UserManagerDatabase(\"settings\", UserManagerDatabaseArgs.builder()\n            .dbPath(\"/flash/user-manager5\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:UserManagerDatabase\n    properties:\n      dbPath: /flash/user-manager5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/userManagerDatabase:UserManagerDatabase settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"dbPath":{"type":"string","description":"Path to the location where database files will be stored.\n"},"userManagerDatabaseId":{"type":"string"}},"type":"object","required":["dbPath","userManagerDatabaseId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"dbPath":{"type":"string","description":"Path to the location where database files will be stored.\n"},"userManagerDatabaseId":{"type":"string"}},"requiredInputs":["dbPath"],"stateInputs":{"description":"Input properties used for looking up and filtering UserManagerDatabase resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"dbPath":{"type":"string","description":"Path to the location where database files will be stored.\n"},"userManagerDatabaseId":{"type":"string"}},"type":"object"}},"routeros:index/userManagerLimitation:UserManagerLimitation":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.UserManagerLimitation(\"test\", {\n    name: \"test\",\n    downloadLimit: 1024,\n    uploadLimit: 1024,\n    uptimeLimit: \"10d\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.UserManagerLimitation(\"test\",\n    name=\"test\",\n    download_limit=1024,\n    upload_limit=1024,\n    uptime_limit=\"10d\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.UserManagerLimitation(\"test\", new()\n    {\n        Name = \"test\",\n        DownloadLimit = 1024,\n        UploadLimit = 1024,\n        UptimeLimit = \"10d\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewUserManagerLimitation(ctx, \"test\", \u0026routeros.UserManagerLimitationArgs{\n\t\t\tName:          pulumi.String(\"test\"),\n\t\t\tDownloadLimit: pulumi.Float64(1024),\n\t\t\tUploadLimit:   pulumi.Float64(1024),\n\t\t\tUptimeLimit:   pulumi.String(\"10d\"),\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.routeros.UserManagerLimitation;\nimport com.pulumi.routeros.UserManagerLimitationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new UserManagerLimitation(\"test\", UserManagerLimitationArgs.builder()\n            .name(\"test\")\n            .downloadLimit(1024.0)\n            .uploadLimit(1024.0)\n            .uptimeLimit(\"10d\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:UserManagerLimitation\n    properties:\n      name: test\n      downloadLimit: 1024\n      uploadLimit: 1024\n      uptimeLimit: 10d\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/user-manager/limitation get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/userManagerLimitation:UserManagerLimitation test '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/userManagerLimitation:UserManagerLimitation test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"downloadLimit":{"type":"number","description":"The total amount of traffic a user can download in bytes.\n"},"name":{"type":"string","description":"Unique name of the limitation.\n"},"rateLimitBurstRx":{"type":"number"},"rateLimitBurstThresholdRx":{"type":"number"},"rateLimitBurstThresholdTx":{"type":"number"},"rateLimitBurstTimeRx":{"type":"string"},"rateLimitBurstTimeTx":{"type":"string"},"rateLimitBurstTx":{"type":"number"},"rateLimitMinRx":{"type":"number"},"rateLimitMinTx":{"type":"number"},"rateLimitPriority":{"type":"number"},"rateLimitRx":{"type":"number"},"rateLimitTx":{"type":"number"},"resetCountersInterval":{"type":"string","description":"The interval from \u003cspan pulumi-lang-nodejs=\"`resetCountersStartTime`\" pulumi-lang-dotnet=\"`ResetCountersStartTime`\" pulumi-lang-go=\"`resetCountersStartTime`\" pulumi-lang-python=\"`reset_counters_start_time`\" pulumi-lang-yaml=\"`resetCountersStartTime`\" pulumi-lang-java=\"`resetCountersStartTime`\"\u003e`reset_counters_start_time`\u003c/span\u003e when all associated user statistics are cleared.\n"},"resetCountersStartTime":{"type":"string","description":"Static date and time value from which \u003cspan pulumi-lang-nodejs=\"`resetCountersInterval`\" pulumi-lang-dotnet=\"`ResetCountersInterval`\" pulumi-lang-go=\"`resetCountersInterval`\" pulumi-lang-python=\"`reset_counters_interval`\" pulumi-lang-yaml=\"`resetCountersInterval`\" pulumi-lang-java=\"`resetCountersInterval`\"\u003e`reset_counters_interval`\u003c/span\u003e is calculated.\n"},"transferLimit":{"type":"number","description":"The total amount of aggregated (download+upload) traffic in bytes.\n"},"uploadLimit":{"type":"number","description":"The total amount of traffic a user can upload in bytes.\n"},"uptimeLimit":{"type":"string","description":"The total amount of uptime a user can stay active.\n"},"userManagerLimitationId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","userManagerLimitationId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"downloadLimit":{"type":"number","description":"The total amount of traffic a user can download in bytes.\n"},"name":{"type":"string","description":"Unique name of the limitation.\n"},"rateLimitBurstRx":{"type":"number"},"rateLimitBurstThresholdRx":{"type":"number"},"rateLimitBurstThresholdTx":{"type":"number"},"rateLimitBurstTimeRx":{"type":"string"},"rateLimitBurstTimeTx":{"type":"string"},"rateLimitBurstTx":{"type":"number"},"rateLimitMinRx":{"type":"number"},"rateLimitMinTx":{"type":"number"},"rateLimitPriority":{"type":"number"},"rateLimitRx":{"type":"number"},"rateLimitTx":{"type":"number"},"resetCountersInterval":{"type":"string","description":"The interval from \u003cspan pulumi-lang-nodejs=\"`resetCountersStartTime`\" pulumi-lang-dotnet=\"`ResetCountersStartTime`\" pulumi-lang-go=\"`resetCountersStartTime`\" pulumi-lang-python=\"`reset_counters_start_time`\" pulumi-lang-yaml=\"`resetCountersStartTime`\" pulumi-lang-java=\"`resetCountersStartTime`\"\u003e`reset_counters_start_time`\u003c/span\u003e when all associated user statistics are cleared.\n"},"resetCountersStartTime":{"type":"string","description":"Static date and time value from which \u003cspan pulumi-lang-nodejs=\"`resetCountersInterval`\" pulumi-lang-dotnet=\"`ResetCountersInterval`\" pulumi-lang-go=\"`resetCountersInterval`\" pulumi-lang-python=\"`reset_counters_interval`\" pulumi-lang-yaml=\"`resetCountersInterval`\" pulumi-lang-java=\"`resetCountersInterval`\"\u003e`reset_counters_interval`\u003c/span\u003e is calculated.\n"},"transferLimit":{"type":"number","description":"The total amount of aggregated (download+upload) traffic in bytes.\n"},"uploadLimit":{"type":"number","description":"The total amount of traffic a user can upload in bytes.\n"},"uptimeLimit":{"type":"string","description":"The total amount of uptime a user can stay active.\n"},"userManagerLimitationId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering UserManagerLimitation resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"downloadLimit":{"type":"number","description":"The total amount of traffic a user can download in bytes.\n"},"name":{"type":"string","description":"Unique name of the limitation.\n"},"rateLimitBurstRx":{"type":"number"},"rateLimitBurstThresholdRx":{"type":"number"},"rateLimitBurstThresholdTx":{"type":"number"},"rateLimitBurstTimeRx":{"type":"string"},"rateLimitBurstTimeTx":{"type":"string"},"rateLimitBurstTx":{"type":"number"},"rateLimitMinRx":{"type":"number"},"rateLimitMinTx":{"type":"number"},"rateLimitPriority":{"type":"number"},"rateLimitRx":{"type":"number"},"rateLimitTx":{"type":"number"},"resetCountersInterval":{"type":"string","description":"The interval from \u003cspan pulumi-lang-nodejs=\"`resetCountersStartTime`\" pulumi-lang-dotnet=\"`ResetCountersStartTime`\" pulumi-lang-go=\"`resetCountersStartTime`\" pulumi-lang-python=\"`reset_counters_start_time`\" pulumi-lang-yaml=\"`resetCountersStartTime`\" pulumi-lang-java=\"`resetCountersStartTime`\"\u003e`reset_counters_start_time`\u003c/span\u003e when all associated user statistics are cleared.\n"},"resetCountersStartTime":{"type":"string","description":"Static date and time value from which \u003cspan pulumi-lang-nodejs=\"`resetCountersInterval`\" pulumi-lang-dotnet=\"`ResetCountersInterval`\" pulumi-lang-go=\"`resetCountersInterval`\" pulumi-lang-python=\"`reset_counters_interval`\" pulumi-lang-yaml=\"`resetCountersInterval`\" pulumi-lang-java=\"`resetCountersInterval`\"\u003e`reset_counters_interval`\u003c/span\u003e is calculated.\n"},"transferLimit":{"type":"number","description":"The total amount of aggregated (download+upload) traffic in bytes.\n"},"uploadLimit":{"type":"number","description":"The total amount of traffic a user can upload in bytes.\n"},"uptimeLimit":{"type":"string","description":"The total amount of uptime a user can stay active.\n"},"userManagerLimitationId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/userManagerProfile:UserManagerProfile":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.UserManagerProfile(\"test\", {\n    name: \"test\",\n    nameForUsers: \"Test\",\n    price: 0.02,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.UserManagerProfile(\"test\",\n    name=\"test\",\n    name_for_users=\"Test\",\n    price=0.02)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.UserManagerProfile(\"test\", new()\n    {\n        Name = \"test\",\n        NameForUsers = \"Test\",\n        Price = 0.02,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewUserManagerProfile(ctx, \"test\", \u0026routeros.UserManagerProfileArgs{\n\t\t\tName:         pulumi.String(\"test\"),\n\t\t\tNameForUsers: pulumi.String(\"Test\"),\n\t\t\tPrice:        pulumi.Float64(0.02),\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.routeros.UserManagerProfile;\nimport com.pulumi.routeros.UserManagerProfileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new UserManagerProfile(\"test\", UserManagerProfileArgs.builder()\n            .name(\"test\")\n            .nameForUsers(\"Test\")\n            .price(0.02)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:UserManagerProfile\n    properties:\n      name: test\n      nameForUsers: Test\n      price: 0.02\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/user-manager/profile get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/userManagerProfile:UserManagerProfile test '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/userManagerProfile:UserManagerProfile test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"name":{"type":"string","description":"Unique name of the profile.\n"},"nameForUsers":{"type":"string","description":"The name that will be shown to users in the web interface.\n"},"overrideSharedUsers":{"type":"string","description":"An option whether to allow multiple sessions with the same user name.\n"},"price":{"type":"number","description":"The price of the profile.\n"},"startsWhen":{"type":"string","description":"The time when the profile becomes active (\u003cspan pulumi-lang-nodejs=\"`assigned`\" pulumi-lang-dotnet=\"`Assigned`\" pulumi-lang-go=\"`assigned`\" pulumi-lang-python=\"`assigned`\" pulumi-lang-yaml=\"`assigned`\" pulumi-lang-java=\"`assigned`\"\u003e`assigned`\u003c/span\u003e - immediately when the profile entry is created, `first-auth` - upon first authentication request).\n"},"userManagerProfileId":{"type":"string","description":"The ID of this resource.\n"},"validity":{"type":"string","description":"The total amount of time a user can use this profile.\n"}},"type":"object","required":["name","userManagerProfileId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"name":{"type":"string","description":"Unique name of the profile.\n"},"nameForUsers":{"type":"string","description":"The name that will be shown to users in the web interface.\n"},"overrideSharedUsers":{"type":"string","description":"An option whether to allow multiple sessions with the same user name.\n"},"price":{"type":"number","description":"The price of the profile.\n"},"startsWhen":{"type":"string","description":"The time when the profile becomes active (\u003cspan pulumi-lang-nodejs=\"`assigned`\" pulumi-lang-dotnet=\"`Assigned`\" pulumi-lang-go=\"`assigned`\" pulumi-lang-python=\"`assigned`\" pulumi-lang-yaml=\"`assigned`\" pulumi-lang-java=\"`assigned`\"\u003e`assigned`\u003c/span\u003e - immediately when the profile entry is created, `first-auth` - upon first authentication request).\n"},"userManagerProfileId":{"type":"string","description":"The ID of this resource.\n"},"validity":{"type":"string","description":"The total amount of time a user can use this profile.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering UserManagerProfile resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"name":{"type":"string","description":"Unique name of the profile.\n"},"nameForUsers":{"type":"string","description":"The name that will be shown to users in the web interface.\n"},"overrideSharedUsers":{"type":"string","description":"An option whether to allow multiple sessions with the same user name.\n"},"price":{"type":"number","description":"The price of the profile.\n"},"startsWhen":{"type":"string","description":"The time when the profile becomes active (\u003cspan pulumi-lang-nodejs=\"`assigned`\" pulumi-lang-dotnet=\"`Assigned`\" pulumi-lang-go=\"`assigned`\" pulumi-lang-python=\"`assigned`\" pulumi-lang-yaml=\"`assigned`\" pulumi-lang-java=\"`assigned`\"\u003e`assigned`\u003c/span\u003e - immediately when the profile entry is created, `first-auth` - upon first authentication request).\n"},"userManagerProfileId":{"type":"string","description":"The ID of this resource.\n"},"validity":{"type":"string","description":"The total amount of time a user can use this profile.\n"}},"type":"object"}},"routeros:index/userManagerProfileLimitation:UserManagerProfileLimitation":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.UserManagerLimitation(\"test\", {\n    name: \"test\",\n    downloadLimit: 1024,\n    uploadLimit: 1024,\n    uptimeLimit: \"10d\",\n});\nconst testUserManagerProfile = new routeros.UserManagerProfile(\"test\", {\n    name: \"test\",\n    nameForUsers: \"Test\",\n    price: 0.02,\n});\nconst weekendNight = new routeros.UserManagerProfileLimitation(\"weekend_night\", {\n    limitation: test.name,\n    profile: testUserManagerProfile.name,\n    fromTime: \"0s\",\n    tillTime: \"6h\",\n    weekdays: [\n        \"sunday\",\n        \"saturday\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.UserManagerLimitation(\"test\",\n    name=\"test\",\n    download_limit=1024,\n    upload_limit=1024,\n    uptime_limit=\"10d\")\ntest_user_manager_profile = routeros.UserManagerProfile(\"test\",\n    name=\"test\",\n    name_for_users=\"Test\",\n    price=0.02)\nweekend_night = routeros.UserManagerProfileLimitation(\"weekend_night\",\n    limitation=test.name,\n    profile=test_user_manager_profile.name,\n    from_time=\"0s\",\n    till_time=\"6h\",\n    weekdays=[\n        \"sunday\",\n        \"saturday\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.UserManagerLimitation(\"test\", new()\n    {\n        Name = \"test\",\n        DownloadLimit = 1024,\n        UploadLimit = 1024,\n        UptimeLimit = \"10d\",\n    });\n\n    var testUserManagerProfile = new Routeros.UserManagerProfile(\"test\", new()\n    {\n        Name = \"test\",\n        NameForUsers = \"Test\",\n        Price = 0.02,\n    });\n\n    var weekendNight = new Routeros.UserManagerProfileLimitation(\"weekend_night\", new()\n    {\n        Limitation = test.Name,\n        Profile = testUserManagerProfile.Name,\n        FromTime = \"0s\",\n        TillTime = \"6h\",\n        Weekdays = new[]\n        {\n            \"sunday\",\n            \"saturday\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := routeros.NewUserManagerLimitation(ctx, \"test\", \u0026routeros.UserManagerLimitationArgs{\n\t\t\tName:          pulumi.String(\"test\"),\n\t\t\tDownloadLimit: pulumi.Float64(1024),\n\t\t\tUploadLimit:   pulumi.Float64(1024),\n\t\t\tUptimeLimit:   pulumi.String(\"10d\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestUserManagerProfile, err := routeros.NewUserManagerProfile(ctx, \"test\", \u0026routeros.UserManagerProfileArgs{\n\t\t\tName:         pulumi.String(\"test\"),\n\t\t\tNameForUsers: pulumi.String(\"Test\"),\n\t\t\tPrice:        pulumi.Float64(0.02),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewUserManagerProfileLimitation(ctx, \"weekend_night\", \u0026routeros.UserManagerProfileLimitationArgs{\n\t\t\tLimitation: test.Name,\n\t\t\tProfile:    testUserManagerProfile.Name,\n\t\t\tFromTime:   pulumi.String(\"0s\"),\n\t\t\tTillTime:   pulumi.String(\"6h\"),\n\t\t\tWeekdays: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sunday\"),\n\t\t\t\tpulumi.String(\"saturday\"),\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.routeros.UserManagerLimitation;\nimport com.pulumi.routeros.UserManagerLimitationArgs;\nimport com.pulumi.routeros.UserManagerProfile;\nimport com.pulumi.routeros.UserManagerProfileArgs;\nimport com.pulumi.routeros.UserManagerProfileLimitation;\nimport com.pulumi.routeros.UserManagerProfileLimitationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new UserManagerLimitation(\"test\", UserManagerLimitationArgs.builder()\n            .name(\"test\")\n            .downloadLimit(1024.0)\n            .uploadLimit(1024.0)\n            .uptimeLimit(\"10d\")\n            .build());\n\n        var testUserManagerProfile = new UserManagerProfile(\"testUserManagerProfile\", UserManagerProfileArgs.builder()\n            .name(\"test\")\n            .nameForUsers(\"Test\")\n            .price(0.02)\n            .build());\n\n        var weekendNight = new UserManagerProfileLimitation(\"weekendNight\", UserManagerProfileLimitationArgs.builder()\n            .limitation(test.name())\n            .profile(testUserManagerProfile.name())\n            .fromTime(\"0s\")\n            .tillTime(\"6h\")\n            .weekdays(            \n                \"sunday\",\n                \"saturday\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:UserManagerLimitation\n    properties:\n      name: test\n      downloadLimit: 1024\n      uploadLimit: 1024\n      uptimeLimit: 10d\n  testUserManagerProfile:\n    type: routeros:UserManagerProfile\n    name: test\n    properties:\n      name: test\n      nameForUsers: Test\n      price: 0.02\n  weekendNight:\n    type: routeros:UserManagerProfileLimitation\n    name: weekend_night\n    properties:\n      limitation: ${test.name}\n      profile: ${testUserManagerProfile.name}\n      fromTime: 0s\n      tillTime: 6h\n      weekdays:\n        - sunday\n        - saturday\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/user-manager/profile-limitation get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/userManagerProfileLimitation:UserManagerProfileLimitation weekend_night '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/userManagerProfileLimitation:UserManagerProfileLimitation weekend_night \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"fromTime":{"type":"string","description":"Time of the day when the limitation should take place.\n"},"limitation":{"type":"string","description":"The limitation name.\n"},"profile":{"type":"string","description":"The profile name.\n"},"tillTime":{"type":"string","description":"Time of the day when the limitation should end.\n"},"userManagerProfileLimitationId":{"type":"string","description":"The ID of this resource.\n"},"weekdays":{"type":"array","items":{"type":"string"},"description":"Days of the week when the limitation is active.\n"}},"type":"object","required":["limitation","profile","userManagerProfileLimitationId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"fromTime":{"type":"string","description":"Time of the day when the limitation should take place.\n"},"limitation":{"type":"string","description":"The limitation name.\n"},"profile":{"type":"string","description":"The profile name.\n"},"tillTime":{"type":"string","description":"Time of the day when the limitation should end.\n"},"userManagerProfileLimitationId":{"type":"string","description":"The ID of this resource.\n"},"weekdays":{"type":"array","items":{"type":"string"},"description":"Days of the week when the limitation is active.\n"}},"requiredInputs":["limitation","profile"],"stateInputs":{"description":"Input properties used for looking up and filtering UserManagerProfileLimitation resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"fromTime":{"type":"string","description":"Time of the day when the limitation should take place.\n"},"limitation":{"type":"string","description":"The limitation name.\n"},"profile":{"type":"string","description":"The profile name.\n"},"tillTime":{"type":"string","description":"Time of the day when the limitation should end.\n"},"userManagerProfileLimitationId":{"type":"string","description":"The ID of this resource.\n"},"weekdays":{"type":"array","items":{"type":"string"},"description":"Days of the week when the limitation is active.\n"}},"type":"object"}},"routeros:index/userManagerRouter:UserManagerRouter":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.UserManagerRouter(\"test\", {\n    address: \"127.0.0.1\",\n    name: \"test\",\n    sharedSecret: \"password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.UserManagerRouter(\"test\",\n    address=\"127.0.0.1\",\n    name=\"test\",\n    shared_secret=\"password\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.UserManagerRouter(\"test\", new()\n    {\n        Address = \"127.0.0.1\",\n        Name = \"test\",\n        SharedSecret = \"password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewUserManagerRouter(ctx, \"test\", \u0026routeros.UserManagerRouterArgs{\n\t\t\tAddress:      pulumi.String(\"127.0.0.1\"),\n\t\t\tName:         pulumi.String(\"test\"),\n\t\t\tSharedSecret: pulumi.String(\"password\"),\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.routeros.UserManagerRouter;\nimport com.pulumi.routeros.UserManagerRouterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new UserManagerRouter(\"test\", UserManagerRouterArgs.builder()\n            .address(\"127.0.0.1\")\n            .name(\"test\")\n            .sharedSecret(\"password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:UserManagerRouter\n    properties:\n      address: 127.0.0.1\n      name: test\n      sharedSecret: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/user-manager/router get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/userManagerRouter:UserManagerRouter test '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/userManagerRouter:UserManagerRouter test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"IP address of the RADIUS client.\n"},"coaPort":{"type":"number","description":"Port number of CoA (Change of Authorization) communication.\n"},"disabled":{"type":"boolean"},"name":{"type":"string","description":"Unique name of the RADIUS client.\n"},"sharedSecret":{"type":"string","description":"The shared secret to secure communication.\n","secret":true},"userManagerRouterId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["address","name","userManagerRouterId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"IP address of the RADIUS client.\n"},"coaPort":{"type":"number","description":"Port number of CoA (Change of Authorization) communication.\n"},"disabled":{"type":"boolean"},"name":{"type":"string","description":"Unique name of the RADIUS client.\n"},"sharedSecret":{"type":"string","description":"The shared secret to secure communication.\n","secret":true},"userManagerRouterId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["address"],"stateInputs":{"description":"Input properties used for looking up and filtering UserManagerRouter resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"address":{"type":"string","description":"IP address of the RADIUS client.\n"},"coaPort":{"type":"number","description":"Port number of CoA (Change of Authorization) communication.\n"},"disabled":{"type":"boolean"},"name":{"type":"string","description":"Unique name of the RADIUS client.\n"},"sharedSecret":{"type":"string","description":"The shared secret to secure communication.\n","secret":true},"userManagerRouterId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/userManagerSettings:UserManagerSettings":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.UserManagerSettings(\"settings\", {enabled: true});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.UserManagerSettings(\"settings\", enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.UserManagerSettings(\"settings\", new()\n    {\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewUserManagerSettings(ctx, \"settings\", \u0026routeros.UserManagerSettingsArgs{\n\t\t\tEnabled: 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.routeros.UserManagerSettings;\nimport com.pulumi.routeros.UserManagerSettingsArgs;\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 settings = new UserManagerSettings(\"settings\", UserManagerSettingsArgs.builder()\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:UserManagerSettings\n    properties:\n      enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/userManagerSettings:UserManagerSettings settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accountingPort":{"type":"number","description":"Port to listen for RADIUS accounting requests.\n"},"authenticationPort":{"type":"number","description":"Port to listen for RADIUS authentication requests.\n"},"certificate":{"type":"string","description":"Certificate for use in EAP TLS-type authentication methods.\n"},"enabled":{"type":"boolean","description":"An option whether the User Manager functionality is enabled.\n"},"requireMessageAuth":{"type":"string","description":"An option whether to require `Message-Authenticator` in received Access-Accept/Challenge/Reject messages.\n"},"useProfiles":{"type":"boolean","description":"An option whether to use Profiles and Limitations. When set to \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, only User configuration is required to run User Manager.\n"},"userManagerSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["userManagerSettingsId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accountingPort":{"type":"number","description":"Port to listen for RADIUS accounting requests.\n"},"authenticationPort":{"type":"number","description":"Port to listen for RADIUS authentication requests.\n"},"certificate":{"type":"string","description":"Certificate for use in EAP TLS-type authentication methods.\n"},"enabled":{"type":"boolean","description":"An option whether the User Manager functionality is enabled.\n"},"requireMessageAuth":{"type":"string","description":"An option whether to require `Message-Authenticator` in received Access-Accept/Challenge/Reject messages.\n"},"useProfiles":{"type":"boolean","description":"An option whether to use Profiles and Limitations. When set to \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, only User configuration is required to run User Manager.\n"},"userManagerSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering UserManagerSettings resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"accountingPort":{"type":"number","description":"Port to listen for RADIUS accounting requests.\n"},"authenticationPort":{"type":"number","description":"Port to listen for RADIUS authentication requests.\n"},"certificate":{"type":"string","description":"Certificate for use in EAP TLS-type authentication methods.\n"},"enabled":{"type":"boolean","description":"An option whether the User Manager functionality is enabled.\n"},"requireMessageAuth":{"type":"string","description":"An option whether to require `Message-Authenticator` in received Access-Accept/Challenge/Reject messages.\n"},"useProfiles":{"type":"boolean","description":"An option whether to use Profiles and Limitations. When set to \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, only User configuration is required to run User Manager.\n"},"userManagerSettingsId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/userManagerUser:UserManagerUser":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst mikrotikWirelessComment = new routeros.UserManagerAttribute(\"mikrotik_wireless_comment\", {\n    name: \"Mikrotik-Wireless-Comment\",\n    typeId: 21,\n    valueType: \"string\",\n});\nconst mikrotikWirelessVlanid = new routeros.UserManagerAttribute(\"mikrotik_wireless_vlanid\", {\n    name: \"Mikrotik-Wireless-VLANID\",\n    typeId: 26,\n    valueType: \"uint32\",\n});\nconst test = new routeros.UserManagerUserGroup(\"test\", {name: \"test\"});\nconst testUserManagerUser = new routeros.UserManagerUser(\"test\", {\n    attributes: [\n        pulumi.interpolate`${mikrotikWirelessComment.name}:Test Group`,\n        pulumi.interpolate`${mikrotikWirelessVlanid.name}:100`,\n    ],\n    group: test.name,\n    name: \"test\",\n    password: \"password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nmikrotik_wireless_comment = routeros.UserManagerAttribute(\"mikrotik_wireless_comment\",\n    name=\"Mikrotik-Wireless-Comment\",\n    type_id=21,\n    value_type=\"string\")\nmikrotik_wireless_vlanid = routeros.UserManagerAttribute(\"mikrotik_wireless_vlanid\",\n    name=\"Mikrotik-Wireless-VLANID\",\n    type_id=26,\n    value_type=\"uint32\")\ntest = routeros.UserManagerUserGroup(\"test\", name=\"test\")\ntest_user_manager_user = routeros.UserManagerUser(\"test\",\n    attributes=[\n        mikrotik_wireless_comment.name.apply(lambda name: f\"{name}:Test Group\"),\n        mikrotik_wireless_vlanid.name.apply(lambda name: f\"{name}:100\"),\n    ],\n    group=test.name,\n    name=\"test\",\n    password=\"password\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mikrotikWirelessComment = new Routeros.UserManagerAttribute(\"mikrotik_wireless_comment\", new()\n    {\n        Name = \"Mikrotik-Wireless-Comment\",\n        TypeId = 21,\n        ValueType = \"string\",\n    });\n\n    var mikrotikWirelessVlanid = new Routeros.UserManagerAttribute(\"mikrotik_wireless_vlanid\", new()\n    {\n        Name = \"Mikrotik-Wireless-VLANID\",\n        TypeId = 26,\n        ValueType = \"uint32\",\n    });\n\n    var test = new Routeros.UserManagerUserGroup(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var testUserManagerUser = new Routeros.UserManagerUser(\"test\", new()\n    {\n        Attributes = new[]\n        {\n            mikrotikWirelessComment.Name.Apply(name =\u003e $\"{name}:Test Group\"),\n            mikrotikWirelessVlanid.Name.Apply(name =\u003e $\"{name}:100\"),\n        },\n        Group = test.Name,\n        Name = \"test\",\n        Password = \"password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmikrotikWirelessComment, err := routeros.NewUserManagerAttribute(ctx, \"mikrotik_wireless_comment\", \u0026routeros.UserManagerAttributeArgs{\n\t\t\tName:      pulumi.String(\"Mikrotik-Wireless-Comment\"),\n\t\t\tTypeId:    pulumi.Float64(21),\n\t\t\tValueType: pulumi.String(\"string\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmikrotikWirelessVlanid, err := routeros.NewUserManagerAttribute(ctx, \"mikrotik_wireless_vlanid\", \u0026routeros.UserManagerAttributeArgs{\n\t\t\tName:      pulumi.String(\"Mikrotik-Wireless-VLANID\"),\n\t\t\tTypeId:    pulumi.Float64(26),\n\t\t\tValueType: pulumi.String(\"uint32\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := routeros.NewUserManagerUserGroup(ctx, \"test\", \u0026routeros.UserManagerUserGroupArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewUserManagerUser(ctx, \"test\", \u0026routeros.UserManagerUserArgs{\n\t\t\tAttributes: pulumi.StringArray{\n\t\t\t\tmikrotikWirelessComment.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v:Test Group\", name), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tmikrotikWirelessVlanid.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v:100\", name), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t\tGroup:    test.Name,\n\t\t\tName:     pulumi.String(\"test\"),\n\t\t\tPassword: pulumi.String(\"password\"),\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.routeros.UserManagerAttribute;\nimport com.pulumi.routeros.UserManagerAttributeArgs;\nimport com.pulumi.routeros.UserManagerUserGroup;\nimport com.pulumi.routeros.UserManagerUserGroupArgs;\nimport com.pulumi.routeros.UserManagerUser;\nimport com.pulumi.routeros.UserManagerUserArgs;\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 mikrotikWirelessComment = new UserManagerAttribute(\"mikrotikWirelessComment\", UserManagerAttributeArgs.builder()\n            .name(\"Mikrotik-Wireless-Comment\")\n            .typeId(21.0)\n            .valueType(\"string\")\n            .build());\n\n        var mikrotikWirelessVlanid = new UserManagerAttribute(\"mikrotikWirelessVlanid\", UserManagerAttributeArgs.builder()\n            .name(\"Mikrotik-Wireless-VLANID\")\n            .typeId(26.0)\n            .valueType(\"uint32\")\n            .build());\n\n        var test = new UserManagerUserGroup(\"test\", UserManagerUserGroupArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var testUserManagerUser = new UserManagerUser(\"testUserManagerUser\", UserManagerUserArgs.builder()\n            .attributes(            \n                mikrotikWirelessComment.name().applyValue(_name -\u003e String.format(\"%s:Test Group\", _name)),\n                mikrotikWirelessVlanid.name().applyValue(_name -\u003e String.format(\"%s:100\", _name)))\n            .group(test.name())\n            .name(\"test\")\n            .password(\"password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mikrotikWirelessComment:\n    type: routeros:UserManagerAttribute\n    name: mikrotik_wireless_comment\n    properties:\n      name: Mikrotik-Wireless-Comment\n      typeId: 21\n      valueType: string\n  mikrotikWirelessVlanid:\n    type: routeros:UserManagerAttribute\n    name: mikrotik_wireless_vlanid\n    properties:\n      name: Mikrotik-Wireless-VLANID\n      typeId: 26\n      valueType: uint32\n  test:\n    type: routeros:UserManagerUserGroup\n    properties:\n      name: test\n  testUserManagerUser:\n    type: routeros:UserManagerUser\n    name: test\n    properties:\n      attributes:\n        - ${mikrotikWirelessComment.name}:Test Group\n        - ${mikrotikWirelessVlanid.name}:100\n      group: ${test.name}\n      name: test\n      password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/user-manager/user get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/userManagerUser:UserManagerUser test '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/userManagerUser:UserManagerUser test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"attributes":{"type":"array","items":{"type":"string"},"description":"A custom set of colon-separated attributes with their values will be added to `Access-Accept` messages for users in this group.\n"},"callerId":{"type":"string","description":"Allow user's authentication with a specific Calling-Station-Id value.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"group":{"type":"string","description":"Name of the group the user is associated with.\n"},"name":{"type":"string","description":"Username for session authentication.\n"},"otpSecret":{"type":"string","description":"A token of a one-time code that will be attached to the password.\n"},"password":{"type":"string","description":"The password of the user for session authentication.\n"},"sharedUsers":{"type":"number","description":"The total amount of sessions the user can simultaneously establish.\n"},"userManagerUserId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","userManagerUserId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"attributes":{"type":"array","items":{"type":"string"},"description":"A custom set of colon-separated attributes with their values will be added to `Access-Accept` messages for users in this group.\n"},"callerId":{"type":"string","description":"Allow user's authentication with a specific Calling-Station-Id value.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"group":{"type":"string","description":"Name of the group the user is associated with.\n"},"name":{"type":"string","description":"Username for session authentication.\n"},"otpSecret":{"type":"string","description":"A token of a one-time code that will be attached to the password.\n"},"password":{"type":"string","description":"The password of the user for session authentication.\n"},"sharedUsers":{"type":"number","description":"The total amount of sessions the user can simultaneously establish.\n"},"userManagerUserId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering UserManagerUser resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"attributes":{"type":"array","items":{"type":"string"},"description":"A custom set of colon-separated attributes with their values will be added to `Access-Accept` messages for users in this group.\n"},"callerId":{"type":"string","description":"Allow user's authentication with a specific Calling-Station-Id value.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"group":{"type":"string","description":"Name of the group the user is associated with.\n"},"name":{"type":"string","description":"Username for session authentication.\n"},"otpSecret":{"type":"string","description":"A token of a one-time code that will be attached to the password.\n"},"password":{"type":"string","description":"The password of the user for session authentication.\n"},"sharedUsers":{"type":"number","description":"The total amount of sessions the user can simultaneously establish.\n"},"userManagerUserId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/userManagerUserGroup:UserManagerUserGroup":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst mikrotikWirelessComment = new routeros.UserManagerAttribute(\"mikrotik_wireless_comment\", {\n    name: \"Mikrotik-Wireless-Comment\",\n    typeId: 21,\n    valueType: \"string\",\n});\nconst mikrotikWirelessVlanid = new routeros.UserManagerAttribute(\"mikrotik_wireless_vlanid\", {\n    name: \"Mikrotik-Wireless-VLANID\",\n    typeId: 26,\n    valueType: \"uint32\",\n});\nconst test = new routeros.UserManagerUserGroup(\"test\", {\n    name: \"test\",\n    attributes: [\n        pulumi.interpolate`${mikrotikWirelessComment.name}:Test Group`,\n        pulumi.interpolate`${mikrotikWirelessVlanid.name}:100`,\n    ],\n    innerAuths: [\n        \"ttls-chap\",\n        \"ttls-pap\",\n    ],\n    outerAuths: [\n        \"chap\",\n        \"pap\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nmikrotik_wireless_comment = routeros.UserManagerAttribute(\"mikrotik_wireless_comment\",\n    name=\"Mikrotik-Wireless-Comment\",\n    type_id=21,\n    value_type=\"string\")\nmikrotik_wireless_vlanid = routeros.UserManagerAttribute(\"mikrotik_wireless_vlanid\",\n    name=\"Mikrotik-Wireless-VLANID\",\n    type_id=26,\n    value_type=\"uint32\")\ntest = routeros.UserManagerUserGroup(\"test\",\n    name=\"test\",\n    attributes=[\n        mikrotik_wireless_comment.name.apply(lambda name: f\"{name}:Test Group\"),\n        mikrotik_wireless_vlanid.name.apply(lambda name: f\"{name}:100\"),\n    ],\n    inner_auths=[\n        \"ttls-chap\",\n        \"ttls-pap\",\n    ],\n    outer_auths=[\n        \"chap\",\n        \"pap\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var mikrotikWirelessComment = new Routeros.UserManagerAttribute(\"mikrotik_wireless_comment\", new()\n    {\n        Name = \"Mikrotik-Wireless-Comment\",\n        TypeId = 21,\n        ValueType = \"string\",\n    });\n\n    var mikrotikWirelessVlanid = new Routeros.UserManagerAttribute(\"mikrotik_wireless_vlanid\", new()\n    {\n        Name = \"Mikrotik-Wireless-VLANID\",\n        TypeId = 26,\n        ValueType = \"uint32\",\n    });\n\n    var test = new Routeros.UserManagerUserGroup(\"test\", new()\n    {\n        Name = \"test\",\n        Attributes = new[]\n        {\n            mikrotikWirelessComment.Name.Apply(name =\u003e $\"{name}:Test Group\"),\n            mikrotikWirelessVlanid.Name.Apply(name =\u003e $\"{name}:100\"),\n        },\n        InnerAuths = new[]\n        {\n            \"ttls-chap\",\n            \"ttls-pap\",\n        },\n        OuterAuths = new[]\n        {\n            \"chap\",\n            \"pap\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmikrotikWirelessComment, err := routeros.NewUserManagerAttribute(ctx, \"mikrotik_wireless_comment\", \u0026routeros.UserManagerAttributeArgs{\n\t\t\tName:      pulumi.String(\"Mikrotik-Wireless-Comment\"),\n\t\t\tTypeId:    pulumi.Float64(21),\n\t\t\tValueType: pulumi.String(\"string\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmikrotikWirelessVlanid, err := routeros.NewUserManagerAttribute(ctx, \"mikrotik_wireless_vlanid\", \u0026routeros.UserManagerAttributeArgs{\n\t\t\tName:      pulumi.String(\"Mikrotik-Wireless-VLANID\"),\n\t\t\tTypeId:    pulumi.Float64(26),\n\t\t\tValueType: pulumi.String(\"uint32\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewUserManagerUserGroup(ctx, \"test\", \u0026routeros.UserManagerUserGroupArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tAttributes: pulumi.StringArray{\n\t\t\t\tmikrotikWirelessComment.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v:Test Group\", name), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tmikrotikWirelessVlanid.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v:100\", name), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t\tInnerAuths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ttls-chap\"),\n\t\t\t\tpulumi.String(\"ttls-pap\"),\n\t\t\t},\n\t\t\tOuterAuths: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"chap\"),\n\t\t\t\tpulumi.String(\"pap\"),\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.routeros.UserManagerAttribute;\nimport com.pulumi.routeros.UserManagerAttributeArgs;\nimport com.pulumi.routeros.UserManagerUserGroup;\nimport com.pulumi.routeros.UserManagerUserGroupArgs;\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 mikrotikWirelessComment = new UserManagerAttribute(\"mikrotikWirelessComment\", UserManagerAttributeArgs.builder()\n            .name(\"Mikrotik-Wireless-Comment\")\n            .typeId(21.0)\n            .valueType(\"string\")\n            .build());\n\n        var mikrotikWirelessVlanid = new UserManagerAttribute(\"mikrotikWirelessVlanid\", UserManagerAttributeArgs.builder()\n            .name(\"Mikrotik-Wireless-VLANID\")\n            .typeId(26.0)\n            .valueType(\"uint32\")\n            .build());\n\n        var test = new UserManagerUserGroup(\"test\", UserManagerUserGroupArgs.builder()\n            .name(\"test\")\n            .attributes(            \n                mikrotikWirelessComment.name().applyValue(_name -\u003e String.format(\"%s:Test Group\", _name)),\n                mikrotikWirelessVlanid.name().applyValue(_name -\u003e String.format(\"%s:100\", _name)))\n            .innerAuths(            \n                \"ttls-chap\",\n                \"ttls-pap\")\n            .outerAuths(            \n                \"chap\",\n                \"pap\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mikrotikWirelessComment:\n    type: routeros:UserManagerAttribute\n    name: mikrotik_wireless_comment\n    properties:\n      name: Mikrotik-Wireless-Comment\n      typeId: 21\n      valueType: string\n  mikrotikWirelessVlanid:\n    type: routeros:UserManagerAttribute\n    name: mikrotik_wireless_vlanid\n    properties:\n      name: Mikrotik-Wireless-VLANID\n      typeId: 26\n      valueType: uint32\n  test:\n    type: routeros:UserManagerUserGroup\n    properties:\n      name: test\n      attributes:\n        - ${mikrotikWirelessComment.name}:Test Group\n        - ${mikrotikWirelessVlanid.name}:100\n      innerAuths:\n        - ttls-chap\n        - ttls-pap\n      outerAuths:\n        - chap\n        - pap\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/user-manager/user/group get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/userManagerUserGroup:UserManagerUserGroup test '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/userManagerUserGroup:UserManagerUserGroup test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"attributes":{"type":"array","items":{"type":"string"},"description":"A custom set of colon-separated attributes with their values will be added to `Access-Accept` messages for users in this group.\n"},"default":{"type":"boolean","description":"It's the default item.\n"},"defaultName":{"type":"string","description":"The default name of the group.\n"},"innerAuths":{"type":"array","items":{"type":"string"},"description":"A set of allowed authentication methods for tunneled authentication methods (`ttls-pap`, `ttls-chap`, `ttls-mschap1`, `ttls-mschap2`, `peap-mschap2`).\n"},"name":{"type":"string","description":"Unique name of the group.\n"},"outerAuths":{"type":"array","items":{"type":"string"},"description":"A set of allowed authentication methods (\u003cspan pulumi-lang-nodejs=\"`pap`\" pulumi-lang-dotnet=\"`Pap`\" pulumi-lang-go=\"`pap`\" pulumi-lang-python=\"`pap`\" pulumi-lang-yaml=\"`pap`\" pulumi-lang-java=\"`pap`\"\u003e`pap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`chap`\" pulumi-lang-dotnet=\"`Chap`\" pulumi-lang-go=\"`chap`\" pulumi-lang-python=\"`chap`\" pulumi-lang-yaml=\"`chap`\" pulumi-lang-java=\"`chap`\"\u003e`chap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mschap1`\" pulumi-lang-dotnet=\"`Mschap1`\" pulumi-lang-go=\"`mschap1`\" pulumi-lang-python=\"`mschap1`\" pulumi-lang-yaml=\"`mschap1`\" pulumi-lang-java=\"`mschap1`\"\u003e`mschap1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mschap2`\" pulumi-lang-dotnet=\"`Mschap2`\" pulumi-lang-go=\"`mschap2`\" pulumi-lang-python=\"`mschap2`\" pulumi-lang-yaml=\"`mschap2`\" pulumi-lang-java=\"`mschap2`\"\u003e`mschap2`\u003c/span\u003e, `eap-tls`, `eap-ttls`, `eap-peap`, `eap-mschap2`).\n"},"userManagerUserGroupId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["default","defaultName","name","userManagerUserGroupId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"attributes":{"type":"array","items":{"type":"string"},"description":"A custom set of colon-separated attributes with their values will be added to `Access-Accept` messages for users in this group.\n"},"innerAuths":{"type":"array","items":{"type":"string"},"description":"A set of allowed authentication methods for tunneled authentication methods (`ttls-pap`, `ttls-chap`, `ttls-mschap1`, `ttls-mschap2`, `peap-mschap2`).\n"},"name":{"type":"string","description":"Unique name of the group.\n"},"outerAuths":{"type":"array","items":{"type":"string"},"description":"A set of allowed authentication methods (\u003cspan pulumi-lang-nodejs=\"`pap`\" pulumi-lang-dotnet=\"`Pap`\" pulumi-lang-go=\"`pap`\" pulumi-lang-python=\"`pap`\" pulumi-lang-yaml=\"`pap`\" pulumi-lang-java=\"`pap`\"\u003e`pap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`chap`\" pulumi-lang-dotnet=\"`Chap`\" pulumi-lang-go=\"`chap`\" pulumi-lang-python=\"`chap`\" pulumi-lang-yaml=\"`chap`\" pulumi-lang-java=\"`chap`\"\u003e`chap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mschap1`\" pulumi-lang-dotnet=\"`Mschap1`\" pulumi-lang-go=\"`mschap1`\" pulumi-lang-python=\"`mschap1`\" pulumi-lang-yaml=\"`mschap1`\" pulumi-lang-java=\"`mschap1`\"\u003e`mschap1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mschap2`\" pulumi-lang-dotnet=\"`Mschap2`\" pulumi-lang-go=\"`mschap2`\" pulumi-lang-python=\"`mschap2`\" pulumi-lang-yaml=\"`mschap2`\" pulumi-lang-java=\"`mschap2`\"\u003e`mschap2`\u003c/span\u003e, `eap-tls`, `eap-ttls`, `eap-peap`, `eap-mschap2`).\n"},"userManagerUserGroupId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering UserManagerUserGroup resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"attributes":{"type":"array","items":{"type":"string"},"description":"A custom set of colon-separated attributes with their values will be added to `Access-Accept` messages for users in this group.\n"},"default":{"type":"boolean","description":"It's the default item.\n"},"defaultName":{"type":"string","description":"The default name of the group.\n"},"innerAuths":{"type":"array","items":{"type":"string"},"description":"A set of allowed authentication methods for tunneled authentication methods (`ttls-pap`, `ttls-chap`, `ttls-mschap1`, `ttls-mschap2`, `peap-mschap2`).\n"},"name":{"type":"string","description":"Unique name of the group.\n"},"outerAuths":{"type":"array","items":{"type":"string"},"description":"A set of allowed authentication methods (\u003cspan pulumi-lang-nodejs=\"`pap`\" pulumi-lang-dotnet=\"`Pap`\" pulumi-lang-go=\"`pap`\" pulumi-lang-python=\"`pap`\" pulumi-lang-yaml=\"`pap`\" pulumi-lang-java=\"`pap`\"\u003e`pap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`chap`\" pulumi-lang-dotnet=\"`Chap`\" pulumi-lang-go=\"`chap`\" pulumi-lang-python=\"`chap`\" pulumi-lang-yaml=\"`chap`\" pulumi-lang-java=\"`chap`\"\u003e`chap`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mschap1`\" pulumi-lang-dotnet=\"`Mschap1`\" pulumi-lang-go=\"`mschap1`\" pulumi-lang-python=\"`mschap1`\" pulumi-lang-yaml=\"`mschap1`\" pulumi-lang-java=\"`mschap1`\"\u003e`mschap1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mschap2`\" pulumi-lang-dotnet=\"`Mschap2`\" pulumi-lang-go=\"`mschap2`\" pulumi-lang-python=\"`mschap2`\" pulumi-lang-yaml=\"`mschap2`\" pulumi-lang-java=\"`mschap2`\"\u003e`mschap2`\u003c/span\u003e, `eap-tls`, `eap-ttls`, `eap-peap`, `eap-mschap2`).\n"},"userManagerUserGroupId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/userManagerUserProfile:UserManagerUserProfile":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.UserManagerProfile(\"test\", {name: \"test\"});\nconst testUserManagerUser = new routeros.UserManagerUser(\"test\", {name: \"test\"});\nconst testUserManagerUserProfile = new routeros.UserManagerUserProfile(\"test\", {\n    profile: test.name,\n    user: testUserManagerUser.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.UserManagerProfile(\"test\", name=\"test\")\ntest_user_manager_user = routeros.UserManagerUser(\"test\", name=\"test\")\ntest_user_manager_user_profile = routeros.UserManagerUserProfile(\"test\",\n    profile=test.name,\n    user=test_user_manager_user.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.UserManagerProfile(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var testUserManagerUser = new Routeros.UserManagerUser(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var testUserManagerUserProfile = new Routeros.UserManagerUserProfile(\"test\", new()\n    {\n        Profile = test.Name,\n        User = testUserManagerUser.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := routeros.NewUserManagerProfile(ctx, \"test\", \u0026routeros.UserManagerProfileArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestUserManagerUser, err := routeros.NewUserManagerUser(ctx, \"test\", \u0026routeros.UserManagerUserArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewUserManagerUserProfile(ctx, \"test\", \u0026routeros.UserManagerUserProfileArgs{\n\t\t\tProfile: test.Name,\n\t\t\tUser:    testUserManagerUser.Name,\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.routeros.UserManagerProfile;\nimport com.pulumi.routeros.UserManagerProfileArgs;\nimport com.pulumi.routeros.UserManagerUser;\nimport com.pulumi.routeros.UserManagerUserArgs;\nimport com.pulumi.routeros.UserManagerUserProfile;\nimport com.pulumi.routeros.UserManagerUserProfileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new UserManagerProfile(\"test\", UserManagerProfileArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var testUserManagerUser = new UserManagerUser(\"testUserManagerUser\", UserManagerUserArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var testUserManagerUserProfile = new UserManagerUserProfile(\"testUserManagerUserProfile\", UserManagerUserProfileArgs.builder()\n            .profile(test.name())\n            .user(testUserManagerUser.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:UserManagerProfile\n    properties:\n      name: test\n  testUserManagerUser:\n    type: routeros:UserManagerUser\n    name: test\n    properties:\n      name: test\n  testUserManagerUserProfile:\n    type: routeros:UserManagerUserProfile\n    name: test\n    properties:\n      profile: ${test.name}\n      user: ${testUserManagerUser.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/user-manager/user-profile get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/userManagerUserProfile:UserManagerUserProfile test '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/userManagerUserProfile:UserManagerUserProfile test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"profile":{"type":"string","description":"Name of the profile to assign to the user.\n"},"user":{"type":"string","description":"Name of the user to use the specified profile.\n"},"userManagerUserProfileId":{"type":"string"}},"type":"object","required":["profile","user","userManagerUserProfileId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"profile":{"type":"string","description":"Name of the profile to assign to the user.\n"},"user":{"type":"string","description":"Name of the user to use the specified profile.\n"},"userManagerUserProfileId":{"type":"string"}},"requiredInputs":["profile","user"],"stateInputs":{"description":"Input properties used for looking up and filtering UserManagerUserProfile resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___skip_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"profile":{"type":"string","description":"Name of the profile to assign to the user.\n"},"user":{"type":"string","description":"Name of the user to use the specified profile.\n"},"userManagerUserProfileId":{"type":"string"}},"type":"object"}},"routeros:index/vlan:Vlan":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.Vlan \" pulumi-lang-dotnet=\" routeros.Vlan \" pulumi-lang-go=\" Vlan \" pulumi-lang-python=\" Vlan \" pulumi-lang-yaml=\" routeros.Vlan \" pulumi-lang-java=\" routeros.Vlan \"\u003e routeros.Vlan \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceVlan\n\" pulumi-lang-dotnet=\" routeros.InterfaceVlan\n\" pulumi-lang-go=\" InterfaceVlan\n\" pulumi-lang-python=\" InterfaceVlan\n\" pulumi-lang-yaml=\" routeros.InterfaceVlan\n\" pulumi-lang-java=\" routeros.InterfaceVlan\n\"\u003e routeros.InterfaceVlan\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"hwOffloaded":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"string"},"macAddress":{"type":"string","description":"Current mac address."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"mvrp":{"type":"boolean","description":"Specifies whether this VLAN should declare its attributes through Multiple VLAN Registration Protocol (MVRP) as an applicant (available since RouterOS 7.15). It can be used to register the VLAN with connected bridges that support MVRP. This property only has an effect when use-service-tag is disabled."},"name":{"type":"string"},"routerosVlanId":{"type":"string"},"running":{"type":"boolean"},"useServiceTag":{"type":"boolean"},"vlanId":{"type":"number","description":"Virtual LAN identifier or tag that is used to distinguish VLANs. Must be equal for all computers that belong to the same VLAN."}},"type":"object","required":["interface","l2mtu","loopProtectStatus","macAddress","mtu","name","routerosVlanId","running"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"hwOffloaded":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"mvrp":{"type":"boolean","description":"Specifies whether this VLAN should declare its attributes through Multiple VLAN Registration Protocol (MVRP) as an applicant (available since RouterOS 7.15). It can be used to register the VLAN with connected bridges that support MVRP. This property only has an effect when use-service-tag is disabled."},"name":{"type":"string"},"routerosVlanId":{"type":"string"},"useServiceTag":{"type":"boolean"},"vlanId":{"type":"number","description":"Virtual LAN identifier or tag that is used to distinguish VLANs. Must be equal for all computers that belong to the same VLAN."}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering Vlan resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"hwOffloaded":{"type":"boolean"},"interface":{"type":"string","description":"Name of the interface."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"loopProtect":{"type":"string"},"loopProtectDisableTime":{"type":"string"},"loopProtectSendInterval":{"type":"string"},"loopProtectStatus":{"type":"string"},"macAddress":{"type":"string","description":"Current mac address."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"mvrp":{"type":"boolean","description":"Specifies whether this VLAN should declare its attributes through Multiple VLAN Registration Protocol (MVRP) as an applicant (available since RouterOS 7.15). It can be used to register the VLAN with connected bridges that support MVRP. This property only has an effect when use-service-tag is disabled."},"name":{"type":"string"},"routerosVlanId":{"type":"string"},"running":{"type":"boolean"},"useServiceTag":{"type":"boolean"},"vlanId":{"type":"number","description":"Virtual LAN identifier or tag that is used to distinguish VLANs. Must be equal for all computers that belong to the same VLAN."}},"type":"object"}},"routeros:index/vrrp:Vrrp":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.Vrrp \" pulumi-lang-dotnet=\" routeros.Vrrp \" pulumi-lang-go=\" Vrrp \" pulumi-lang-python=\" Vrrp \" pulumi-lang-yaml=\" routeros.Vrrp \" pulumi-lang-java=\" routeros.Vrrp \"\u003e routeros.Vrrp \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceVrrp\n\" pulumi-lang-dotnet=\" routeros.InterfaceVrrp\n\" pulumi-lang-go=\" InterfaceVrrp\n\" pulumi-lang-python=\" InterfaceVrrp\n\" pulumi-lang-yaml=\" routeros.InterfaceVrrp\n\" pulumi-lang-java=\" routeros.InterfaceVrrp\n\"\u003e routeros.InterfaceVrrp\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"authentication":{"type":"string","description":"Authentication method to use for VRRP advertisement packets."},"comment":{"type":"string"},"connectionTrackingMode":{"type":"string","description":"Specifies the mode for connection tracking synchronization. This setting is only relevant when `sync-connection-tracking=yes` is enabled."},"connectionTrackingPort":{"type":"number","description":"Specifies UDP port for connection tracking synchronization. This setting is only relevant when `sync-connection-tracking=yes` is enabled."},"disabled":{"type":"boolean"},"groupAuthority":{"type":"string","description":"Allows combining multiple VRRP interfaces to maintain the same VRRP status within the group. \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e was previously called \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e is kept for compatibility with scripts, but if both are set only \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e will be taken into account."},"groupMaster":{"type":"string","description":"Allows combining multiple VRRP interfaces to maintain the same VRRP status within the group. \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e was previously called \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e is kept for compatibility with scripts, but if both are set only \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e will be taken into account."},"interface":{"type":"string","description":"Name of the interface."},"interval":{"type":"string","description":"VRRP update interval in seconds. Defines how often master sends advertisement packets."},"invalid":{"type":"boolean"},"macAddress":{"type":"string","description":"Current mac address."},"mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"name":{"type":"string"},"onBackup":{"type":"string","description":"Script to execute when the node is switched to the backup state."},"onFail":{"type":"string","description":"Script to execute when the node fails."},"onMaster":{"type":"string","description":"Script to execute when the node is switched to master state."},"password":{"type":"string","description":"Password required for authentication. Can be ignored if authentication is not used.","secret":true},"preemptionMode":{"type":"boolean","description":"Whether the master node always has the priority. When set to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e the backup node will not be elected to be a master until the current master fails, even if the backup node has higher priority than the current master. This setting is ignored if the owner router becomes available"},"priority":{"type":"number","description":"Priority of VRRP node used in Master election algorithm. A higher number means higher priority. \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e is reserved for the router that owns VR IP and \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e is reserved for the Master router to indicate that it is releasing responsibility."},"remoteAddress":{"type":"string","description":"Specifies the remote address of the other VRRP router for syncing connection tracking. If not set, the system autodetects the remote address via VRRP. The remote address is used only if \u003cspan pulumi-lang-nodejs=\"`syncConnectionTracking \" pulumi-lang-dotnet=\"`SyncConnectionTracking \" pulumi-lang-go=\"`syncConnectionTracking \" pulumi-lang-python=\"`sync_connection_tracking \" pulumi-lang-yaml=\"`syncConnectionTracking \" pulumi-lang-java=\"`syncConnectionTracking \"\u003e`sync_connection_tracking \u003c/span\u003e= true`.Sync connection tracking uses UDP port 8275."},"running":{"type":"boolean"},"syncConnectionTracking":{"type":"boolean","description":"Synchronize connection tracking entries from Master to Backup device."},"v3Protocol":{"type":"string","description":"A protocol that will be used by VRRPv3. Valid only if the version is 3."},"version":{"type":"number","description":"Which VRRP version to use."},"vrid":{"type":"number","description":"Virtual Router identifier. Each Virtual router must have a unique id number."},"vrrpId":{"type":"string"}},"type":"object","required":["interface","invalid","macAddress","mtu","name","running","vrrpId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"authentication":{"type":"string","description":"Authentication method to use for VRRP advertisement packets."},"comment":{"type":"string"},"connectionTrackingMode":{"type":"string","description":"Specifies the mode for connection tracking synchronization. This setting is only relevant when `sync-connection-tracking=yes` is enabled."},"connectionTrackingPort":{"type":"number","description":"Specifies UDP port for connection tracking synchronization. This setting is only relevant when `sync-connection-tracking=yes` is enabled."},"disabled":{"type":"boolean"},"groupAuthority":{"type":"string","description":"Allows combining multiple VRRP interfaces to maintain the same VRRP status within the group. \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e was previously called \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e is kept for compatibility with scripts, but if both are set only \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e will be taken into account."},"groupMaster":{"type":"string","description":"Allows combining multiple VRRP interfaces to maintain the same VRRP status within the group. \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e was previously called \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e is kept for compatibility with scripts, but if both are set only \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e will be taken into account."},"interface":{"type":"string","description":"Name of the interface."},"interval":{"type":"string","description":"VRRP update interval in seconds. Defines how often master sends advertisement packets."},"name":{"type":"string"},"onBackup":{"type":"string","description":"Script to execute when the node is switched to the backup state."},"onFail":{"type":"string","description":"Script to execute when the node fails."},"onMaster":{"type":"string","description":"Script to execute when the node is switched to master state."},"password":{"type":"string","description":"Password required for authentication. Can be ignored if authentication is not used.","secret":true},"preemptionMode":{"type":"boolean","description":"Whether the master node always has the priority. When set to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e the backup node will not be elected to be a master until the current master fails, even if the backup node has higher priority than the current master. This setting is ignored if the owner router becomes available"},"priority":{"type":"number","description":"Priority of VRRP node used in Master election algorithm. A higher number means higher priority. \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e is reserved for the router that owns VR IP and \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e is reserved for the Master router to indicate that it is releasing responsibility."},"remoteAddress":{"type":"string","description":"Specifies the remote address of the other VRRP router for syncing connection tracking. If not set, the system autodetects the remote address via VRRP. The remote address is used only if \u003cspan pulumi-lang-nodejs=\"`syncConnectionTracking \" pulumi-lang-dotnet=\"`SyncConnectionTracking \" pulumi-lang-go=\"`syncConnectionTracking \" pulumi-lang-python=\"`sync_connection_tracking \" pulumi-lang-yaml=\"`syncConnectionTracking \" pulumi-lang-java=\"`syncConnectionTracking \"\u003e`sync_connection_tracking \u003c/span\u003e= true`.Sync connection tracking uses UDP port 8275."},"syncConnectionTracking":{"type":"boolean","description":"Synchronize connection tracking entries from Master to Backup device."},"v3Protocol":{"type":"string","description":"A protocol that will be used by VRRPv3. Valid only if the version is 3."},"version":{"type":"number","description":"Which VRRP version to use."},"vrid":{"type":"number","description":"Virtual Router identifier. Each Virtual router must have a unique id number."},"vrrpId":{"type":"string"}},"requiredInputs":["interface"],"stateInputs":{"description":"Input properties used for looking up and filtering Vrrp resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"authentication":{"type":"string","description":"Authentication method to use for VRRP advertisement packets."},"comment":{"type":"string"},"connectionTrackingMode":{"type":"string","description":"Specifies the mode for connection tracking synchronization. This setting is only relevant when `sync-connection-tracking=yes` is enabled."},"connectionTrackingPort":{"type":"number","description":"Specifies UDP port for connection tracking synchronization. This setting is only relevant when `sync-connection-tracking=yes` is enabled."},"disabled":{"type":"boolean"},"groupAuthority":{"type":"string","description":"Allows combining multiple VRRP interfaces to maintain the same VRRP status within the group. \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e was previously called \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e is kept for compatibility with scripts, but if both are set only \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e will be taken into account."},"groupMaster":{"type":"string","description":"Allows combining multiple VRRP interfaces to maintain the same VRRP status within the group. \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e was previously called \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupMaster`\" pulumi-lang-dotnet=\"`GroupMaster`\" pulumi-lang-go=\"`groupMaster`\" pulumi-lang-python=\"`group_master`\" pulumi-lang-yaml=\"`groupMaster`\" pulumi-lang-java=\"`groupMaster`\"\u003e`group_master`\u003c/span\u003e is kept for compatibility with scripts, but if both are set only \u003cspan pulumi-lang-nodejs=\"`groupAuthority`\" pulumi-lang-dotnet=\"`GroupAuthority`\" pulumi-lang-go=\"`groupAuthority`\" pulumi-lang-python=\"`group_authority`\" pulumi-lang-yaml=\"`groupAuthority`\" pulumi-lang-java=\"`groupAuthority`\"\u003e`group_authority`\u003c/span\u003e will be taken into account."},"interface":{"type":"string","description":"Name of the interface."},"interval":{"type":"string","description":"VRRP update interval in seconds. Defines how often master sends advertisement packets."},"invalid":{"type":"boolean"},"macAddress":{"type":"string","description":"Current mac address."},"mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"name":{"type":"string"},"onBackup":{"type":"string","description":"Script to execute when the node is switched to the backup state."},"onFail":{"type":"string","description":"Script to execute when the node fails."},"onMaster":{"type":"string","description":"Script to execute when the node is switched to master state."},"password":{"type":"string","description":"Password required for authentication. Can be ignored if authentication is not used.","secret":true},"preemptionMode":{"type":"boolean","description":"Whether the master node always has the priority. When set to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e the backup node will not be elected to be a master until the current master fails, even if the backup node has higher priority than the current master. This setting is ignored if the owner router becomes available"},"priority":{"type":"number","description":"Priority of VRRP node used in Master election algorithm. A higher number means higher priority. \u003cspan pulumi-lang-nodejs=\"`255`\" pulumi-lang-dotnet=\"`255`\" pulumi-lang-go=\"`255`\" pulumi-lang-python=\"`255`\" pulumi-lang-yaml=\"`255`\" pulumi-lang-java=\"`255`\"\u003e`255`\u003c/span\u003e is reserved for the router that owns VR IP and \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e is reserved for the Master router to indicate that it is releasing responsibility."},"remoteAddress":{"type":"string","description":"Specifies the remote address of the other VRRP router for syncing connection tracking. If not set, the system autodetects the remote address via VRRP. The remote address is used only if \u003cspan pulumi-lang-nodejs=\"`syncConnectionTracking \" pulumi-lang-dotnet=\"`SyncConnectionTracking \" pulumi-lang-go=\"`syncConnectionTracking \" pulumi-lang-python=\"`sync_connection_tracking \" pulumi-lang-yaml=\"`syncConnectionTracking \" pulumi-lang-java=\"`syncConnectionTracking \"\u003e`sync_connection_tracking \u003c/span\u003e= true`.Sync connection tracking uses UDP port 8275."},"running":{"type":"boolean"},"syncConnectionTracking":{"type":"boolean","description":"Synchronize connection tracking entries from Master to Backup device."},"v3Protocol":{"type":"string","description":"A protocol that will be used by VRRPv3. Valid only if the version is 3."},"version":{"type":"number","description":"Which VRRP version to use."},"vrid":{"type":"number","description":"Virtual Router identifier. Each Virtual router must have a unique id number."},"vrrpId":{"type":"string"}},"type":"object"}},"routeros:index/wifi:Wifi":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.Wifi \" pulumi-lang-dotnet=\" routeros.Wifi \" pulumi-lang-go=\" Wifi \" pulumi-lang-python=\" Wifi \" pulumi-lang-yaml=\" routeros.Wifi \" pulumi-lang-java=\" routeros.Wifi \"\u003e routeros.Wifi \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.13.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\n// If you need to add a reference to an existing configuration, each inline section contains a `config` parameter \n// where you can specify the name of the actual resource.\n// configuration = {\n//   config = routeros_wifi_configuration.my-config.name\n// }\nconst wifi1 = new routeros.Wifi(\"wifi1\", {\n    configuration: {\n        manager: \"capsman\",\n    },\n    name: \"wifi1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\n# If you need to add a reference to an existing configuration, each inline section contains a `config` parameter \n# where you can specify the name of the actual resource.\n# configuration = {\n#   config = routeros_wifi_configuration.my-config.name\n# }\nwifi1 = routeros.Wifi(\"wifi1\",\n    configuration={\n        \"manager\": \"capsman\",\n    },\n    name=\"wifi1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // If you need to add a reference to an existing configuration, each inline section contains a `config` parameter \n    // where you can specify the name of the actual resource.\n    // configuration = {\n    //   config = routeros_wifi_configuration.my-config.name\n    // }\n    var wifi1 = new Routeros.Wifi(\"wifi1\", new()\n    {\n        Configuration = \n        {\n            { \"manager\", \"capsman\" },\n        },\n        Name = \"wifi1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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// If you need to add a reference to an existing configuration, each inline section contains a `config` parameter\n\t\t// where you can specify the name of the actual resource.\n\t\t//\n\t\t//\tconfiguration = {\n\t\t//\t  config = routeros_wifi_configuration.my-config.name\n\t\t//\t}\n\t\t_, err := routeros.NewWifi(ctx, \"wifi1\", \u0026routeros.WifiArgs{\n\t\t\tConfiguration: pulumi.StringMap{\n\t\t\t\t\"manager\": pulumi.String(\"capsman\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"wifi1\"),\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.routeros.Wifi;\nimport com.pulumi.routeros.WifiArgs;\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        // If you need to add a reference to an existing configuration, each inline section contains a `config` parameter \n        // where you can specify the name of the actual resource.\n        // configuration = {\n        //   config = routeros_wifi_configuration.my-config.name\n        // }\n        var wifi1 = new Wifi(\"wifi1\", WifiArgs.builder()\n            .configuration(Map.of(\"manager\", \"capsman\"))\n            .name(\"wifi1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # If you need to add a reference to an existing configuration, each inline section contains a `config` parameter \n  # where you can specify the name of the actual resource.\n  # configuration = {\n  #   config = routeros_wifi_configuration.my-config.name\n  # }\n  wifi1:\n    type: routeros:Wifi\n    properties:\n      configuration:\n        manager: capsman\n      name: wifi1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wifi get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/wifi:Wifi wifi1 '*1'\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"aaa":{"type":"object","additionalProperties":{"type":"string"},"description":"AAA inline settings."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"bound":{"type":"boolean","description":"A flag whether the interface is currently available for the WiFi manager."},"channel":{"type":"object","additionalProperties":{"type":"string"},"description":"Channel inline settings."},"comment":{"type":"string"},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"Configuration inline settings."},"datapath":{"type":"object","additionalProperties":{"type":"string"},"description":"Datapath inline settings."},"defaultName":{"type":"string","description":"The interface's default name."},"deprioritizeUnii34":{"type":"boolean","description":"Whether to assign lower priority to channels with a control frequency of 5720 or 5825-5885 MHz. These channels are unsupported by some client devices, making their automatic selection undesirable. Defaults to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e in ETSI regulatory domains, elsewhere to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e."},"disableRunningCheck":{"type":"boolean","description":"An option to set the running property to true if it is not disabled."},"disabled":{"type":"boolean"},"inactive":{"type":"boolean","description":"A flag whether the interface is currently inactive."},"interworking":{"type":"object","additionalProperties":{"type":"string"},"description":"Interworking inline settings."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"macAddress":{"type":"string","description":"MAC address (BSSID) to use for the interface."},"master":{"type":"boolean","description":"A flag whether the interface is not a virtual one."},"masterInterface":{"type":"string","description":"The corresponding master interface of the virtual one."},"mtu":{"type":"number","description":"Layer3 maximum transmission unit"},"name":{"type":"string","description":"Name of the interface."},"radioMac":{"type":"string","description":"The MAC address of the associated radio."},"running":{"type":"boolean","description":"A flag whether the interface has established a link to another device."},"security":{"type":"object","additionalProperties":{"type":"string"},"description":"Security inline settings."},"steering":{"type":"object","additionalProperties":{"type":"string"},"description":"Steering inline settings."},"wifiId":{"type":"string"}},"type":"object","required":["bound","defaultName","inactive","master","name","radioMac","running","wifiId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"aaa":{"type":"object","additionalProperties":{"type":"string"},"description":"AAA inline settings."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"channel":{"type":"object","additionalProperties":{"type":"string"},"description":"Channel inline settings."},"comment":{"type":"string"},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"Configuration inline settings."},"datapath":{"type":"object","additionalProperties":{"type":"string"},"description":"Datapath inline settings."},"deprioritizeUnii34":{"type":"boolean","description":"Whether to assign lower priority to channels with a control frequency of 5720 or 5825-5885 MHz. These channels are unsupported by some client devices, making their automatic selection undesirable. Defaults to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e in ETSI regulatory domains, elsewhere to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e."},"disableRunningCheck":{"type":"boolean","description":"An option to set the running property to true if it is not disabled."},"disabled":{"type":"boolean"},"interworking":{"type":"object","additionalProperties":{"type":"string"},"description":"Interworking inline settings."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"macAddress":{"type":"string","description":"MAC address (BSSID) to use for the interface."},"masterInterface":{"type":"string","description":"The corresponding master interface of the virtual one."},"mtu":{"type":"number","description":"Layer3 maximum transmission unit"},"name":{"type":"string","description":"Name of the interface."},"security":{"type":"object","additionalProperties":{"type":"string"},"description":"Security inline settings."},"steering":{"type":"object","additionalProperties":{"type":"string"},"description":"Steering inline settings."},"wifiId":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering Wifi resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"aaa":{"type":"object","additionalProperties":{"type":"string"},"description":"AAA inline settings."},"arp":{"type":"string","description":"Address Resolution Protocol mode:\n  * disabled - the interface will not use ARP\n  * enabled - the interface will use ARP\n  * local-proxy-arp - the router performs proxy ARP on the interface and sends replies to the same interface\n  * proxy-arp - the router performs proxy ARP on the interface and sends replies to other interfaces\n  * reply-only - the interface will only reply to requests originated from matching IP address/MAC address combinations which are entered as static entries in the ARP table. No dynamic entries will be automatically stored in the ARP table. Therefore for communications to be successful, a valid static entry must already exist."},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used."},"bound":{"type":"boolean","description":"A flag whether the interface is currently available for the WiFi manager."},"channel":{"type":"object","additionalProperties":{"type":"string"},"description":"Channel inline settings."},"comment":{"type":"string"},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"Configuration inline settings."},"datapath":{"type":"object","additionalProperties":{"type":"string"},"description":"Datapath inline settings."},"defaultName":{"type":"string","description":"The interface's default name."},"deprioritizeUnii34":{"type":"boolean","description":"Whether to assign lower priority to channels with a control frequency of 5720 or 5825-5885 MHz. These channels are unsupported by some client devices, making their automatic selection undesirable. Defaults to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e in ETSI regulatory domains, elsewhere to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e."},"disableRunningCheck":{"type":"boolean","description":"An option to set the running property to true if it is not disabled."},"disabled":{"type":"boolean"},"inactive":{"type":"boolean","description":"A flag whether the interface is currently inactive."},"interworking":{"type":"object","additionalProperties":{"type":"string"},"description":"Interworking inline settings."},"l2mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards)."},"macAddress":{"type":"string","description":"MAC address (BSSID) to use for the interface."},"master":{"type":"boolean","description":"A flag whether the interface is not a virtual one."},"masterInterface":{"type":"string","description":"The corresponding master interface of the virtual one."},"mtu":{"type":"number","description":"Layer3 maximum transmission unit"},"name":{"type":"string","description":"Name of the interface."},"radioMac":{"type":"string","description":"The MAC address of the associated radio."},"running":{"type":"boolean","description":"A flag whether the interface has established a link to another device."},"security":{"type":"object","additionalProperties":{"type":"string"},"description":"Security inline settings."},"steering":{"type":"object","additionalProperties":{"type":"string"},"description":"Steering inline settings."},"wifiId":{"type":"string"}},"type":"object"}},"routeros:index/wifiAaa:WifiAaa":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WifiAaa \" pulumi-lang-dotnet=\" routeros.WifiAaa \" pulumi-lang-go=\" WifiAaa \" pulumi-lang-python=\" WifiAaa \" pulumi-lang-yaml=\" routeros.WifiAaa \" pulumi-lang-java=\" routeros.WifiAaa \"\u003e routeros.WifiAaa \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.13.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst aaa1 = new routeros.WifiAaa(\"aaa1\", {\n    calledFormat: \"S\",\n    name: \"aaa1\",\n    passwordFormat: \"\",\n    usernameFormat: \"AA:AA:AA:AA:AA:AA\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\naaa1 = routeros.WifiAaa(\"aaa1\",\n    called_format=\"S\",\n    name=\"aaa1\",\n    password_format=\"\",\n    username_format=\"AA:AA:AA:AA:AA:AA\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var aaa1 = new Routeros.WifiAaa(\"aaa1\", new()\n    {\n        CalledFormat = \"S\",\n        Name = \"aaa1\",\n        PasswordFormat = \"\",\n        UsernameFormat = \"AA:AA:AA:AA:AA:AA\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewWifiAaa(ctx, \"aaa1\", \u0026routeros.WifiAaaArgs{\n\t\t\tCalledFormat:   pulumi.String(\"S\"),\n\t\t\tName:           pulumi.String(\"aaa1\"),\n\t\t\tPasswordFormat: pulumi.String(\"\"),\n\t\t\tUsernameFormat: pulumi.String(\"AA:AA:AA:AA:AA:AA\"),\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.routeros.WifiAaa;\nimport com.pulumi.routeros.WifiAaaArgs;\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 aaa1 = new WifiAaa(\"aaa1\", WifiAaaArgs.builder()\n            .calledFormat(\"S\")\n            .name(\"aaa1\")\n            .passwordFormat(\"\")\n            .usernameFormat(\"AA:AA:AA:AA:AA:AA\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  aaa1:\n    type: routeros:WifiAaa\n    properties:\n      calledFormat: S\n      name: aaa1\n      passwordFormat: \"\"\n      usernameFormat: AA:AA:AA:AA:AA:AA\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wifi/aaa get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/wifiAaa:WifiAaa aaa1 '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/wifiAaa:WifiAaa aaa1 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"calledFormat":{"type":"string","description":"Format of the `Called-Station-Id` RADIUS attribute.\n"},"callingFormat":{"type":"string","description":"Format of the `Calling-Station-Id` RADIUS attribute.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interimUpdate":{"type":"string","description":"Interval at which to send interim updates about traffic accounting to the RADIUS server.\n"},"macCaching":{"type":"string","description":"Time to cache RADIUS server replies when MAC address authentication is enabled.\n"},"name":{"type":"string","description":"Name of the AAA profile.\n"},"nasIdentifier":{"type":"string","description":"Value of the `NAS-Identifier` RADIUS attribute.\n"},"passwordFormat":{"type":"string","description":"Format of the `User-Password` RADIUS attribute.\n"},"usernameFormat":{"type":"string","description":"Format of the `User-Name` RADIUS attribute.\n"},"wifiAaaId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","wifiAaaId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"calledFormat":{"type":"string","description":"Format of the `Called-Station-Id` RADIUS attribute.\n"},"callingFormat":{"type":"string","description":"Format of the `Calling-Station-Id` RADIUS attribute.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interimUpdate":{"type":"string","description":"Interval at which to send interim updates about traffic accounting to the RADIUS server.\n"},"macCaching":{"type":"string","description":"Time to cache RADIUS server replies when MAC address authentication is enabled.\n"},"name":{"type":"string","description":"Name of the AAA profile.\n"},"nasIdentifier":{"type":"string","description":"Value of the `NAS-Identifier` RADIUS attribute.\n"},"passwordFormat":{"type":"string","description":"Format of the `User-Password` RADIUS attribute.\n"},"usernameFormat":{"type":"string","description":"Format of the `User-Name` RADIUS attribute.\n"},"wifiAaaId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering WifiAaa resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"calledFormat":{"type":"string","description":"Format of the `Called-Station-Id` RADIUS attribute.\n"},"callingFormat":{"type":"string","description":"Format of the `Calling-Station-Id` RADIUS attribute.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interimUpdate":{"type":"string","description":"Interval at which to send interim updates about traffic accounting to the RADIUS server.\n"},"macCaching":{"type":"string","description":"Time to cache RADIUS server replies when MAC address authentication is enabled.\n"},"name":{"type":"string","description":"Name of the AAA profile.\n"},"nasIdentifier":{"type":"string","description":"Value of the `NAS-Identifier` RADIUS attribute.\n"},"passwordFormat":{"type":"string","description":"Format of the `User-Password` RADIUS attribute.\n"},"usernameFormat":{"type":"string","description":"Format of the `User-Name` RADIUS attribute.\n"},"wifiAaaId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/wifiAccessList:WifiAccessList":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WifiAccessList \" pulumi-lang-dotnet=\" routeros.WifiAccessList \" pulumi-lang-go=\" WifiAccessList \" pulumi-lang-python=\" WifiAccessList \" pulumi-lang-yaml=\" routeros.WifiAccessList \" pulumi-lang-java=\" routeros.WifiAccessList \"\u003e routeros.WifiAccessList \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.13.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst radius = new routeros.WifiAccessList(\"radius\", {\n    action: \"query-radius\",\n    comment: \"RADIUS\",\n    radiusAccounting: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nradius = routeros.WifiAccessList(\"radius\",\n    action=\"query-radius\",\n    comment=\"RADIUS\",\n    radius_accounting=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var radius = new Routeros.WifiAccessList(\"radius\", new()\n    {\n        Action = \"query-radius\",\n        Comment = \"RADIUS\",\n        RadiusAccounting = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewWifiAccessList(ctx, \"radius\", \u0026routeros.WifiAccessListArgs{\n\t\t\tAction:           pulumi.String(\"query-radius\"),\n\t\t\tComment:          pulumi.String(\"RADIUS\"),\n\t\t\tRadiusAccounting: 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.routeros.WifiAccessList;\nimport com.pulumi.routeros.WifiAccessListArgs;\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 radius = new WifiAccessList(\"radius\", WifiAccessListArgs.builder()\n            .action(\"query-radius\")\n            .comment(\"RADIUS\")\n            .radiusAccounting(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  radius:\n    type: routeros:WifiAccessList\n    properties:\n      action: query-radius\n      comment: RADIUS\n      radiusAccounting: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wifi/access-list get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/wifiAccessList:WifiAccessList radius '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/wifiAccessList:WifiAccessList radius \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"An action to take when a client matches."},"allowSignalOutOfRange":{"type":"string","description":"An option that permits the client's signal to be out of the range always or for some time interval."},"clientIsolation":{"type":"boolean","description":"An option that specifies whether to deny forwarding data between clients connected to the same interface."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface name to compare with an interface to which the client actually connects to."},"lastLoggedIn":{"type":"string","description":"Last time this client logged in."},"lastLoggedOut":{"type":"string","description":"Last time this client logged out."},"macAddress":{"type":"string","description":"MAC address of the client."},"macAddressMask":{"type":"string","description":"MAC address mask to apply when comparing clients' addresses."},"matchCount":{"type":"number","description":"Number of times this entry was matched."},"passphrase":{"type":"string","description":"PSK passphrase for the client if some PSK authentication algorithm is used."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"radiusAccounting":{"type":"boolean","description":"An option that specifies if RADIUS traffic accounting should be used in case of RADIUS authentication of the client."},"signalRange":{"type":"string","description":"The range in which the client signal must fall."},"ssidRegexp":{"type":"string","description":"The regular expression to compare the actual SSID the client connects to."},"time":{"type":"string","description":"Time of the day and days of the week when the rule is applicable."},"vlanId":{"type":"number","description":"VLAN ID to use for VLAN tagging or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e."},"wifiAccessListId":{"type":"string"}},"type":"object","required":["lastLoggedIn","lastLoggedOut","matchCount","wifiAccessListId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"An action to take when a client matches."},"allowSignalOutOfRange":{"type":"string","description":"An option that permits the client's signal to be out of the range always or for some time interval."},"clientIsolation":{"type":"boolean","description":"An option that specifies whether to deny forwarding data between clients connected to the same interface."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface name to compare with an interface to which the client actually connects to."},"macAddress":{"type":"string","description":"MAC address of the client."},"macAddressMask":{"type":"string","description":"MAC address mask to apply when comparing clients' addresses."},"passphrase":{"type":"string","description":"PSK passphrase for the client if some PSK authentication algorithm is used."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"radiusAccounting":{"type":"boolean","description":"An option that specifies if RADIUS traffic accounting should be used in case of RADIUS authentication of the client."},"signalRange":{"type":"string","description":"The range in which the client signal must fall."},"ssidRegexp":{"type":"string","description":"The regular expression to compare the actual SSID the client connects to."},"time":{"type":"string","description":"Time of the day and days of the week when the rule is applicable."},"vlanId":{"type":"number","description":"VLAN ID to use for VLAN tagging or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e."},"wifiAccessListId":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering WifiAccessList resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"An action to take when a client matches."},"allowSignalOutOfRange":{"type":"string","description":"An option that permits the client's signal to be out of the range always or for some time interval."},"clientIsolation":{"type":"boolean","description":"An option that specifies whether to deny forwarding data between clients connected to the same interface."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interface":{"type":"string","description":"Interface name to compare with an interface to which the client actually connects to."},"lastLoggedIn":{"type":"string","description":"Last time this client logged in."},"lastLoggedOut":{"type":"string","description":"Last time this client logged out."},"macAddress":{"type":"string","description":"MAC address of the client."},"macAddressMask":{"type":"string","description":"MAC address mask to apply when comparing clients' addresses."},"matchCount":{"type":"number","description":"Number of times this entry was matched."},"passphrase":{"type":"string","description":"PSK passphrase for the client if some PSK authentication algorithm is used."},"placeBefore":{"type":"string","description":"Before which position the rule will be inserted.  \n\t\u003e Please check the effect of this option, as it does not work as you think!  \n\t\u003e Best way to use in conjunction with a data source. See example."},"radiusAccounting":{"type":"boolean","description":"An option that specifies if RADIUS traffic accounting should be used in case of RADIUS authentication of the client."},"signalRange":{"type":"string","description":"The range in which the client signal must fall."},"ssidRegexp":{"type":"string","description":"The regular expression to compare the actual SSID the client connects to."},"time":{"type":"string","description":"Time of the day and days of the week when the rule is applicable."},"vlanId":{"type":"number","description":"VLAN ID to use for VLAN tagging or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e."},"wifiAccessListId":{"type":"string"}},"type":"object"}},"routeros:index/wifiCap:WifiCap":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WifiCap \" pulumi-lang-dotnet=\" routeros.WifiCap \" pulumi-lang-go=\" WifiCap \" pulumi-lang-python=\" WifiCap \" pulumi-lang-yaml=\" routeros.WifiCap \" pulumi-lang-java=\" routeros.WifiCap \"\u003e routeros.WifiCap \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.13.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.WifiCap(\"settings\", {\n    enabled: true,\n    discoveryInterfaces: [\"bridge1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.WifiCap(\"settings\",\n    enabled=True,\n    discovery_interfaces=[\"bridge1\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.WifiCap(\"settings\", new()\n    {\n        Enabled = true,\n        DiscoveryInterfaces = new[]\n        {\n            \"bridge1\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewWifiCap(ctx, \"settings\", \u0026routeros.WifiCapArgs{\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tDiscoveryInterfaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"bridge1\"),\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.routeros.WifiCap;\nimport com.pulumi.routeros.WifiCapArgs;\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 settings = new WifiCap(\"settings\", WifiCapArgs.builder()\n            .enabled(true)\n            .discoveryInterfaces(\"bridge1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:WifiCap\n    properties:\n      enabled: true\n      discoveryInterfaces:\n        - bridge1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/wifiCap:WifiCap settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"capsManAddresses":{"type":"array","items":{"type":"string"},"description":"List of Manager IP addresses that CAP will attempt to contact during discovery.\n"},"capsManCertificateCommonNames":{"type":"array","items":{"type":"string"},"description":"List of manager certificate common names that CAP will connect to.\n"},"capsManNames":{"type":"array","items":{"type":"string"},"description":"An ordered list of CAPs Manager names that the CAP will connect to.\n"},"certificate":{"type":"string","description":"Certificate to use for authentication.\n"},"currentCapsManAddress":{"type":"string","description":"Currently used CAPsMAN address.\n"},"currentCapsManIdentity":{"type":"string","description":"Currently used CAPsMAN identity.\n"},"discoveryInterfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces over which CAP should attempt to discover CAPs Manager.\n"},"enabled":{"type":"boolean","description":"Disable or enable the CAP functionality.\n"},"lockToCapsMan":{"type":"boolean","description":"Lock CAP to the first CAPsMAN it connects to.\n"},"lockedCapsManCommonName":{"type":"string","description":"Common name of the CAPsMAN that the CAP is locked to.\n"},"requestedCertificate":{"type":"string","description":"Requested certificate.\n"},"slavesDatapath":{"type":"string","description":"Name of the bridge interface the CAP will be added to.\n"},"slavesStatic":{"type":"boolean","description":"An option that creates static virtual interfaces.\n"},"wifiCapId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["currentCapsManAddress","currentCapsManIdentity","lockedCapsManCommonName","requestedCertificate","wifiCapId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"capsManAddresses":{"type":"array","items":{"type":"string"},"description":"List of Manager IP addresses that CAP will attempt to contact during discovery.\n"},"capsManCertificateCommonNames":{"type":"array","items":{"type":"string"},"description":"List of manager certificate common names that CAP will connect to.\n"},"capsManNames":{"type":"array","items":{"type":"string"},"description":"An ordered list of CAPs Manager names that the CAP will connect to.\n"},"certificate":{"type":"string","description":"Certificate to use for authentication.\n"},"discoveryInterfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces over which CAP should attempt to discover CAPs Manager.\n"},"enabled":{"type":"boolean","description":"Disable or enable the CAP functionality.\n"},"lockToCapsMan":{"type":"boolean","description":"Lock CAP to the first CAPsMAN it connects to.\n"},"slavesDatapath":{"type":"string","description":"Name of the bridge interface the CAP will be added to.\n"},"slavesStatic":{"type":"boolean","description":"An option that creates static virtual interfaces.\n"},"wifiCapId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering WifiCap resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"capsManAddresses":{"type":"array","items":{"type":"string"},"description":"List of Manager IP addresses that CAP will attempt to contact during discovery.\n"},"capsManCertificateCommonNames":{"type":"array","items":{"type":"string"},"description":"List of manager certificate common names that CAP will connect to.\n"},"capsManNames":{"type":"array","items":{"type":"string"},"description":"An ordered list of CAPs Manager names that the CAP will connect to.\n"},"certificate":{"type":"string","description":"Certificate to use for authentication.\n"},"currentCapsManAddress":{"type":"string","description":"Currently used CAPsMAN address.\n"},"currentCapsManIdentity":{"type":"string","description":"Currently used CAPsMAN identity.\n"},"discoveryInterfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces over which CAP should attempt to discover CAPs Manager.\n"},"enabled":{"type":"boolean","description":"Disable or enable the CAP functionality.\n"},"lockToCapsMan":{"type":"boolean","description":"Lock CAP to the first CAPsMAN it connects to.\n"},"lockedCapsManCommonName":{"type":"string","description":"Common name of the CAPsMAN that the CAP is locked to.\n"},"requestedCertificate":{"type":"string","description":"Requested certificate.\n"},"slavesDatapath":{"type":"string","description":"Name of the bridge interface the CAP will be added to.\n"},"slavesStatic":{"type":"boolean","description":"An option that creates static virtual interfaces.\n"},"wifiCapId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/wifiCapsman:WifiCapsman":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WifiCapsman \" pulumi-lang-dotnet=\" routeros.WifiCapsman \" pulumi-lang-go=\" WifiCapsman \" pulumi-lang-python=\" WifiCapsman \" pulumi-lang-yaml=\" routeros.WifiCapsman \" pulumi-lang-java=\" routeros.WifiCapsman \"\u003e routeros.WifiCapsman \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.13.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst settings = new routeros.WifiCapsman(\"settings\", {\n    enabled: true,\n    interfaces: [\"bridge1\"],\n    upgradePolicy: \"suggest-same-version\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsettings = routeros.WifiCapsman(\"settings\",\n    enabled=True,\n    interfaces=[\"bridge1\"],\n    upgrade_policy=\"suggest-same-version\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = new Routeros.WifiCapsman(\"settings\", new()\n    {\n        Enabled = true,\n        Interfaces = new[]\n        {\n            \"bridge1\",\n        },\n        UpgradePolicy = \"suggest-same-version\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewWifiCapsman(ctx, \"settings\", \u0026routeros.WifiCapsmanArgs{\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tInterfaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"bridge1\"),\n\t\t\t},\n\t\t\tUpgradePolicy: pulumi.String(\"suggest-same-version\"),\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.routeros.WifiCapsman;\nimport com.pulumi.routeros.WifiCapsmanArgs;\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 settings = new WifiCapsman(\"settings\", WifiCapsmanArgs.builder()\n            .enabled(true)\n            .interfaces(\"bridge1\")\n            .upgradePolicy(\"suggest-same-version\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  settings:\n    type: routeros:WifiCapsman\n    properties:\n      enabled: true\n      interfaces:\n        - bridge1\n      upgradePolicy: suggest-same-version\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n```sh\n$ pulumi import routeros:index/wifiCapsman:WifiCapsman settings .\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"caCertificate":{"type":"string","description":"Device CA certificate.\n"},"certificate":{"type":"string","description":"Device certificate.\n"},"enabled":{"type":"boolean","description":"Disable or enable CAPsMAN functionality.\n"},"generatedCaCertificate":{"type":"string","description":"Generated CA certificate.\n"},"generatedCertificate":{"type":"string","description":"Generated CAPsMAN certificate.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces on which CAPsMAN will listen for CAP connections.\n"},"packagePath":{"type":"string","description":"Folder location for the RouterOS packages. For example, use '/upgrade' to specify the upgrade folder from the files section. If empty string is set, CAPsMAN can use built-in RouterOS packages, note that in this case only CAPs with the same architecture as CAPsMAN will be upgraded.\n"},"requirePeerCertificate":{"type":"boolean","description":"Require all connecting CAPs to have a valid certificate.\n"},"upgradePolicy":{"type":"string","description":"Upgrade policy options.\n"},"wifiCapsmanId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["generatedCaCertificate","generatedCertificate","wifiCapsmanId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"caCertificate":{"type":"string","description":"Device CA certificate.\n"},"certificate":{"type":"string","description":"Device certificate.\n"},"enabled":{"type":"boolean","description":"Disable or enable CAPsMAN functionality.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces on which CAPsMAN will listen for CAP connections.\n"},"packagePath":{"type":"string","description":"Folder location for the RouterOS packages. For example, use '/upgrade' to specify the upgrade folder from the files section. If empty string is set, CAPsMAN can use built-in RouterOS packages, note that in this case only CAPs with the same architecture as CAPsMAN will be upgraded.\n"},"requirePeerCertificate":{"type":"boolean","description":"Require all connecting CAPs to have a valid certificate.\n"},"upgradePolicy":{"type":"string","description":"Upgrade policy options.\n"},"wifiCapsmanId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering WifiCapsman resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"caCertificate":{"type":"string","description":"Device CA certificate.\n"},"certificate":{"type":"string","description":"Device certificate.\n"},"enabled":{"type":"boolean","description":"Disable or enable CAPsMAN functionality.\n"},"generatedCaCertificate":{"type":"string","description":"Generated CA certificate.\n"},"generatedCertificate":{"type":"string","description":"Generated CAPsMAN certificate.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"List of interfaces on which CAPsMAN will listen for CAP connections.\n"},"packagePath":{"type":"string","description":"Folder location for the RouterOS packages. For example, use '/upgrade' to specify the upgrade folder from the files section. If empty string is set, CAPsMAN can use built-in RouterOS packages, note that in this case only CAPs with the same architecture as CAPsMAN will be upgraded.\n"},"requirePeerCertificate":{"type":"boolean","description":"Require all connecting CAPs to have a valid certificate.\n"},"upgradePolicy":{"type":"string","description":"Upgrade policy options.\n"},"wifiCapsmanId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/wifiChannel:WifiChannel":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WifiChannel \" pulumi-lang-dotnet=\" routeros.WifiChannel \" pulumi-lang-go=\" WifiChannel \" pulumi-lang-python=\" WifiChannel \" pulumi-lang-yaml=\" routeros.WifiChannel \" pulumi-lang-java=\" routeros.WifiChannel \"\u003e routeros.WifiChannel \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.13.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst channel1 = new routeros.WifiChannel(\"channel1\", {\n    name: \"1\",\n    band: \"2ghz-n\",\n    frequencies: [\"2412\"],\n    secondaryFrequencies: [\"disabled\"],\n    skipDfsChannels: \"disabled\",\n    width: \"20mhz\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nchannel1 = routeros.WifiChannel(\"channel1\",\n    name=\"1\",\n    band=\"2ghz-n\",\n    frequencies=[\"2412\"],\n    secondary_frequencies=[\"disabled\"],\n    skip_dfs_channels=\"disabled\",\n    width=\"20mhz\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var channel1 = new Routeros.WifiChannel(\"channel1\", new()\n    {\n        Name = \"1\",\n        Band = \"2ghz-n\",\n        Frequencies = new[]\n        {\n            \"2412\",\n        },\n        SecondaryFrequencies = new[]\n        {\n            \"disabled\",\n        },\n        SkipDfsChannels = \"disabled\",\n        Width = \"20mhz\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewWifiChannel(ctx, \"channel1\", \u0026routeros.WifiChannelArgs{\n\t\t\tName: pulumi.String(\"1\"),\n\t\t\tBand: pulumi.String(\"2ghz-n\"),\n\t\t\tFrequencies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2412\"),\n\t\t\t},\n\t\t\tSecondaryFrequencies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"disabled\"),\n\t\t\t},\n\t\t\tSkipDfsChannels: pulumi.String(\"disabled\"),\n\t\t\tWidth:           pulumi.String(\"20mhz\"),\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.routeros.WifiChannel;\nimport com.pulumi.routeros.WifiChannelArgs;\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 channel1 = new WifiChannel(\"channel1\", WifiChannelArgs.builder()\n            .name(\"1\")\n            .band(\"2ghz-n\")\n            .frequencies(\"2412\")\n            .secondaryFrequencies(\"disabled\")\n            .skipDfsChannels(\"disabled\")\n            .width(\"20mhz\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  channel1:\n    type: routeros:WifiChannel\n    properties:\n      name: '1'\n      band: 2ghz-n\n      frequencies:\n        - 2412\n      secondaryFrequencies:\n        - disabled\n      skipDfsChannels: disabled\n      width: 20mhz\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wifi/channel get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/wifiChannel:WifiChannel channel1 '*1'\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"band":{"type":"string","description":"Frequency band and wireless standard that will be used by the AP."},"comment":{"type":"string"},"deprioritizeUnii34":{"type":"boolean","description":"Whether to assign lower priority to channels with a control frequency of 5720 or 5825-5885 MHz. These channels are unsupported by some client devices, making their automatic selection undesirable. Defaults to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e in ETSI regulatory domains, elsewhere to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e."},"disabled":{"type":"boolean"},"frequencies":{"type":"array","items":{"type":"string"},"description":"Channel frequency value or range in MHz on which AP or station will operate."},"name":{"type":"string","description":"Name of the channel."},"reselectInterval":{"type":"string","description":"An option that specifies when the interface should rescan channel availability and select the most appropriate one to use."},"reselectTime":{"type":"string","description":"Specifies the clock time when the interface should run \"rescan channel availability\" and select the most appropriate one to use. Specifying the clock time will allow the system to select this time dynamically and randomly. This helps to avoid a situation when many APs at the same time scan the network, select the same channel, and prefer to use it at the same time. reselect-time uses a background scan. \nThe reselect process will choose the most suitable channel considering the number of networks in the channel, channel usage, and overlap with networks in adjacent channels. It can be used with a list of frequencies defined, or with frequency not set - using all supported frequencies.\nExample:\n\n    - 01:00..01:30 → Would set the rescan of channels to run every night, once, randomly, between 01:00 AM to 01:30 AM, system clock time.\n    - 14:00..14:30 → Would set the rescan of channels to run every day (after midday), once, randomly between 14:00:00 to 14:30:00 (or 2 PM to 2:30 PM), system clock time."},"secondaryFrequencies":{"type":"array","items":{"type":"string"},"description":"Specifies the second frequency that will be used for 80+80MHz configuration. Set it to \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e in order to disable 80+80MHz capability."},"skipDfsChannels":{"type":"string","description":"An option to avoid using channels on which channel availability check (listening for the presence of radar signals) is required."},"width":{"type":"string","description":"Channel width."},"wifiChannelId":{"type":"string"}},"type":"object","required":["name","wifiChannelId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"band":{"type":"string","description":"Frequency band and wireless standard that will be used by the AP."},"comment":{"type":"string"},"deprioritizeUnii34":{"type":"boolean","description":"Whether to assign lower priority to channels with a control frequency of 5720 or 5825-5885 MHz. These channels are unsupported by some client devices, making their automatic selection undesirable. Defaults to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e in ETSI regulatory domains, elsewhere to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e."},"disabled":{"type":"boolean"},"frequencies":{"type":"array","items":{"type":"string"},"description":"Channel frequency value or range in MHz on which AP or station will operate."},"name":{"type":"string","description":"Name of the channel."},"reselectInterval":{"type":"string","description":"An option that specifies when the interface should rescan channel availability and select the most appropriate one to use."},"reselectTime":{"type":"string","description":"Specifies the clock time when the interface should run \"rescan channel availability\" and select the most appropriate one to use. Specifying the clock time will allow the system to select this time dynamically and randomly. This helps to avoid a situation when many APs at the same time scan the network, select the same channel, and prefer to use it at the same time. reselect-time uses a background scan. \nThe reselect process will choose the most suitable channel considering the number of networks in the channel, channel usage, and overlap with networks in adjacent channels. It can be used with a list of frequencies defined, or with frequency not set - using all supported frequencies.\nExample:\n\n    - 01:00..01:30 → Would set the rescan of channels to run every night, once, randomly, between 01:00 AM to 01:30 AM, system clock time.\n    - 14:00..14:30 → Would set the rescan of channels to run every day (after midday), once, randomly between 14:00:00 to 14:30:00 (or 2 PM to 2:30 PM), system clock time."},"secondaryFrequencies":{"type":"array","items":{"type":"string"},"description":"Specifies the second frequency that will be used for 80+80MHz configuration. Set it to \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e in order to disable 80+80MHz capability."},"skipDfsChannels":{"type":"string","description":"An option to avoid using channels on which channel availability check (listening for the presence of radar signals) is required."},"width":{"type":"string","description":"Channel width."},"wifiChannelId":{"type":"string"}},"stateInputs":{"description":"Input properties used for looking up and filtering WifiChannel resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"band":{"type":"string","description":"Frequency band and wireless standard that will be used by the AP."},"comment":{"type":"string"},"deprioritizeUnii34":{"type":"boolean","description":"Whether to assign lower priority to channels with a control frequency of 5720 or 5825-5885 MHz. These channels are unsupported by some client devices, making their automatic selection undesirable. Defaults to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e in ETSI regulatory domains, elsewhere to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e."},"disabled":{"type":"boolean"},"frequencies":{"type":"array","items":{"type":"string"},"description":"Channel frequency value or range in MHz on which AP or station will operate."},"name":{"type":"string","description":"Name of the channel."},"reselectInterval":{"type":"string","description":"An option that specifies when the interface should rescan channel availability and select the most appropriate one to use."},"reselectTime":{"type":"string","description":"Specifies the clock time when the interface should run \"rescan channel availability\" and select the most appropriate one to use. Specifying the clock time will allow the system to select this time dynamically and randomly. This helps to avoid a situation when many APs at the same time scan the network, select the same channel, and prefer to use it at the same time. reselect-time uses a background scan. \nThe reselect process will choose the most suitable channel considering the number of networks in the channel, channel usage, and overlap with networks in adjacent channels. It can be used with a list of frequencies defined, or with frequency not set - using all supported frequencies.\nExample:\n\n    - 01:00..01:30 → Would set the rescan of channels to run every night, once, randomly, between 01:00 AM to 01:30 AM, system clock time.\n    - 14:00..14:30 → Would set the rescan of channels to run every day (after midday), once, randomly between 14:00:00 to 14:30:00 (or 2 PM to 2:30 PM), system clock time."},"secondaryFrequencies":{"type":"array","items":{"type":"string"},"description":"Specifies the second frequency that will be used for 80+80MHz configuration. Set it to \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e in order to disable 80+80MHz capability."},"skipDfsChannels":{"type":"string","description":"An option to avoid using channels on which channel availability check (listening for the presence of radar signals) is required."},"width":{"type":"string","description":"Channel width."},"wifiChannelId":{"type":"string"}},"type":"object"}},"routeros:index/wifiConfiguration:WifiConfiguration":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WifiConfiguration \" pulumi-lang-dotnet=\" routeros.WifiConfiguration \" pulumi-lang-go=\" WifiConfiguration \" pulumi-lang-python=\" WifiConfiguration \" pulumi-lang-yaml=\" routeros.WifiConfiguration \" pulumi-lang-java=\" routeros.WifiConfiguration \"\u003e routeros.WifiConfiguration \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.13.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst aaa1 = new routeros.WifiAaa(\"aaa1\", {\n    calledFormat: \"S\",\n    name: \"aaa1\",\n    passwordFormat: \"\",\n    usernameFormat: \"AA:AA:AA:AA:AA:AA\",\n});\nconst channel1 = new routeros.WifiChannel(\"channel1\", {\n    name: \"1\",\n    band: \"2ghz-n\",\n    frequencies: [\"2412\"],\n    secondaryFrequencies: [\"disabled\"],\n    skipDfsChannels: \"disabled\",\n    width: \"20mhz\",\n});\nconst datapath1 = new routeros.WifiDatapath(\"datapath1\", {\n    name: \"datapath1\",\n    bridge: \"bridge1\",\n    clientIsolation: false,\n});\nconst security1 = new routeros.WifiSecurity(\"security1\", {\n    name: \"security1\",\n    authenticationTypes: [\n        \"wpa2-psk\",\n        \"wpa3-psk\",\n    ],\n    ft: true,\n    ftPreserveVlanid: true,\n    passphrase: \"password\",\n});\nconst configuration1 = new routeros.WifiConfiguration(\"configuration1\", {\n    country: \"Netherlands\",\n    manager: \"capsman\",\n    mode: \"ap\",\n    name: \"configuration1\",\n    ssid: \"my-network\",\n    aaa: {\n        config: aaa1.name,\n    },\n    channel: {\n        config: channel1.name,\n    },\n    datapath: {\n        config: datapath1.name,\n    },\n    security: {\n        config: security1.name,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\naaa1 = routeros.WifiAaa(\"aaa1\",\n    called_format=\"S\",\n    name=\"aaa1\",\n    password_format=\"\",\n    username_format=\"AA:AA:AA:AA:AA:AA\")\nchannel1 = routeros.WifiChannel(\"channel1\",\n    name=\"1\",\n    band=\"2ghz-n\",\n    frequencies=[\"2412\"],\n    secondary_frequencies=[\"disabled\"],\n    skip_dfs_channels=\"disabled\",\n    width=\"20mhz\")\ndatapath1 = routeros.WifiDatapath(\"datapath1\",\n    name=\"datapath1\",\n    bridge=\"bridge1\",\n    client_isolation=False)\nsecurity1 = routeros.WifiSecurity(\"security1\",\n    name=\"security1\",\n    authentication_types=[\n        \"wpa2-psk\",\n        \"wpa3-psk\",\n    ],\n    ft=True,\n    ft_preserve_vlanid=True,\n    passphrase=\"password\")\nconfiguration1 = routeros.WifiConfiguration(\"configuration1\",\n    country=\"Netherlands\",\n    manager=\"capsman\",\n    mode=\"ap\",\n    name=\"configuration1\",\n    ssid=\"my-network\",\n    aaa={\n        \"config\": aaa1.name,\n    },\n    channel={\n        \"config\": channel1.name,\n    },\n    datapath={\n        \"config\": datapath1.name,\n    },\n    security={\n        \"config\": security1.name,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var aaa1 = new Routeros.WifiAaa(\"aaa1\", new()\n    {\n        CalledFormat = \"S\",\n        Name = \"aaa1\",\n        PasswordFormat = \"\",\n        UsernameFormat = \"AA:AA:AA:AA:AA:AA\",\n    });\n\n    var channel1 = new Routeros.WifiChannel(\"channel1\", new()\n    {\n        Name = \"1\",\n        Band = \"2ghz-n\",\n        Frequencies = new[]\n        {\n            \"2412\",\n        },\n        SecondaryFrequencies = new[]\n        {\n            \"disabled\",\n        },\n        SkipDfsChannels = \"disabled\",\n        Width = \"20mhz\",\n    });\n\n    var datapath1 = new Routeros.WifiDatapath(\"datapath1\", new()\n    {\n        Name = \"datapath1\",\n        Bridge = \"bridge1\",\n        ClientIsolation = false,\n    });\n\n    var security1 = new Routeros.WifiSecurity(\"security1\", new()\n    {\n        Name = \"security1\",\n        AuthenticationTypes = new[]\n        {\n            \"wpa2-psk\",\n            \"wpa3-psk\",\n        },\n        Ft = true,\n        FtPreserveVlanid = true,\n        Passphrase = \"password\",\n    });\n\n    var configuration1 = new Routeros.WifiConfiguration(\"configuration1\", new()\n    {\n        Country = \"Netherlands\",\n        Manager = \"capsman\",\n        Mode = \"ap\",\n        Name = \"configuration1\",\n        Ssid = \"my-network\",\n        Aaa = \n        {\n            { \"config\", aaa1.Name },\n        },\n        Channel = \n        {\n            { \"config\", channel1.Name },\n        },\n        Datapath = \n        {\n            { \"config\", datapath1.Name },\n        },\n        Security = \n        {\n            { \"config\", security1.Name },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taaa1, err := routeros.NewWifiAaa(ctx, \"aaa1\", \u0026routeros.WifiAaaArgs{\n\t\t\tCalledFormat:   pulumi.String(\"S\"),\n\t\t\tName:           pulumi.String(\"aaa1\"),\n\t\t\tPasswordFormat: pulumi.String(\"\"),\n\t\t\tUsernameFormat: pulumi.String(\"AA:AA:AA:AA:AA:AA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tchannel1, err := routeros.NewWifiChannel(ctx, \"channel1\", \u0026routeros.WifiChannelArgs{\n\t\t\tName: pulumi.String(\"1\"),\n\t\t\tBand: pulumi.String(\"2ghz-n\"),\n\t\t\tFrequencies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2412\"),\n\t\t\t},\n\t\t\tSecondaryFrequencies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"disabled\"),\n\t\t\t},\n\t\t\tSkipDfsChannels: pulumi.String(\"disabled\"),\n\t\t\tWidth:           pulumi.String(\"20mhz\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdatapath1, err := routeros.NewWifiDatapath(ctx, \"datapath1\", \u0026routeros.WifiDatapathArgs{\n\t\t\tName:            pulumi.String(\"datapath1\"),\n\t\t\tBridge:          pulumi.String(\"bridge1\"),\n\t\t\tClientIsolation: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecurity1, err := routeros.NewWifiSecurity(ctx, \"security1\", \u0026routeros.WifiSecurityArgs{\n\t\t\tName: pulumi.String(\"security1\"),\n\t\t\tAuthenticationTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"wpa2-psk\"),\n\t\t\t\tpulumi.String(\"wpa3-psk\"),\n\t\t\t},\n\t\t\tFt:               pulumi.Bool(true),\n\t\t\tFtPreserveVlanid: pulumi.Bool(true),\n\t\t\tPassphrase:       pulumi.String(\"password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewWifiConfiguration(ctx, \"configuration1\", \u0026routeros.WifiConfigurationArgs{\n\t\t\tCountry: pulumi.String(\"Netherlands\"),\n\t\t\tManager: pulumi.String(\"capsman\"),\n\t\t\tMode:    pulumi.String(\"ap\"),\n\t\t\tName:    pulumi.String(\"configuration1\"),\n\t\t\tSsid:    pulumi.String(\"my-network\"),\n\t\t\tAaa: pulumi.StringMap{\n\t\t\t\t\"config\": aaa1.Name,\n\t\t\t},\n\t\t\tChannel: pulumi.StringMap{\n\t\t\t\t\"config\": channel1.Name,\n\t\t\t},\n\t\t\tDatapath: pulumi.StringMap{\n\t\t\t\t\"config\": datapath1.Name,\n\t\t\t},\n\t\t\tSecurity: pulumi.StringMap{\n\t\t\t\t\"config\": security1.Name,\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.routeros.WifiAaa;\nimport com.pulumi.routeros.WifiAaaArgs;\nimport com.pulumi.routeros.WifiChannel;\nimport com.pulumi.routeros.WifiChannelArgs;\nimport com.pulumi.routeros.WifiDatapath;\nimport com.pulumi.routeros.WifiDatapathArgs;\nimport com.pulumi.routeros.WifiSecurity;\nimport com.pulumi.routeros.WifiSecurityArgs;\nimport com.pulumi.routeros.WifiConfiguration;\nimport com.pulumi.routeros.WifiConfigurationArgs;\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 aaa1 = new WifiAaa(\"aaa1\", WifiAaaArgs.builder()\n            .calledFormat(\"S\")\n            .name(\"aaa1\")\n            .passwordFormat(\"\")\n            .usernameFormat(\"AA:AA:AA:AA:AA:AA\")\n            .build());\n\n        var channel1 = new WifiChannel(\"channel1\", WifiChannelArgs.builder()\n            .name(\"1\")\n            .band(\"2ghz-n\")\n            .frequencies(\"2412\")\n            .secondaryFrequencies(\"disabled\")\n            .skipDfsChannels(\"disabled\")\n            .width(\"20mhz\")\n            .build());\n\n        var datapath1 = new WifiDatapath(\"datapath1\", WifiDatapathArgs.builder()\n            .name(\"datapath1\")\n            .bridge(\"bridge1\")\n            .clientIsolation(false)\n            .build());\n\n        var security1 = new WifiSecurity(\"security1\", WifiSecurityArgs.builder()\n            .name(\"security1\")\n            .authenticationTypes(            \n                \"wpa2-psk\",\n                \"wpa3-psk\")\n            .ft(true)\n            .ftPreserveVlanid(true)\n            .passphrase(\"password\")\n            .build());\n\n        var configuration1 = new WifiConfiguration(\"configuration1\", WifiConfigurationArgs.builder()\n            .country(\"Netherlands\")\n            .manager(\"capsman\")\n            .mode(\"ap\")\n            .name(\"configuration1\")\n            .ssid(\"my-network\")\n            .aaa(Map.of(\"config\", aaa1.name()))\n            .channel(Map.of(\"config\", channel1.name()))\n            .datapath(Map.of(\"config\", datapath1.name()))\n            .security(Map.of(\"config\", security1.name()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  aaa1:\n    type: routeros:WifiAaa\n    properties:\n      calledFormat: S\n      name: aaa1\n      passwordFormat: \"\"\n      usernameFormat: AA:AA:AA:AA:AA:AA\n  channel1:\n    type: routeros:WifiChannel\n    properties:\n      name: '1'\n      band: 2ghz-n\n      frequencies:\n        - 2412\n      secondaryFrequencies:\n        - disabled\n      skipDfsChannels: disabled\n      width: 20mhz\n  datapath1:\n    type: routeros:WifiDatapath\n    properties:\n      name: datapath1\n      bridge: bridge1\n      clientIsolation: false\n  security1:\n    type: routeros:WifiSecurity\n    properties:\n      name: security1\n      authenticationTypes:\n        - wpa2-psk\n        - wpa3-psk\n      ft: true\n      ftPreserveVlanid: true\n      passphrase: password\n  configuration1:\n    type: routeros:WifiConfiguration\n    properties:\n      country: Netherlands\n      manager: capsman\n      mode: ap\n      name: configuration1\n      ssid: my-network\n      aaa:\n        config: ${aaa1.name}\n      channel:\n        config: ${channel1.name}\n      datapath:\n        config: ${datapath1.name}\n      security:\n        config: ${security1.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wifi/configuration get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/wifiConfiguration:WifiConfiguration configuration1 '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/wifiConfiguration:WifiConfiguration configuration1 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"aaa":{"type":"object","additionalProperties":{"type":"string"},"description":"AAA inline settings.\n"},"antennaGain":{"type":"number","description":"An option overrides the default antenna gain.\n"},"beaconInterval":{"type":"string","description":"Time interval between beacon frames.\n"},"chains":{"type":"array","items":{"type":"number"},"description":"Radio chains to use for receiving signals.\n"},"channel":{"type":"object","additionalProperties":{"type":"string"},"description":"Channel inline settings.\n"},"comment":{"type":"string"},"country":{"type":"string","description":"An option determines which regulatory domain restrictions are applied to an interface.\n"},"datapath":{"type":"object","additionalProperties":{"type":"string"},"description":"Datapath inline settings.\n"},"deprioritizeUnii34":{"type":"boolean","description":"Whether to assign lower priority to channels with a control frequency of 5720 or 5825-5885 MHz. These channels are unsupported by some client devices, making their automatic selection undesirable. Defaults to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e in ETSI regulatory domains, elsewhere to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e.\n"},"disabled":{"type":"boolean"},"dtimPeriod":{"type":"number","description":"A period at which to transmit multicast traffic, when there are client devices in power save mode connected to the AP.\n"},"hideSsid":{"type":"boolean","description":"This property has effect only in AP mode. Setting it to yes can remove this network from the list of wireless networks that are shown by some client software. Changing this setting does not improve the security of the wireless network, because SSID is included in other frames sent by the AP.\n"},"interworking":{"type":"object","additionalProperties":{"type":"string"},"description":"Interworking inline settings.\n"},"manager":{"type":"string","description":"An option to specify the remote CAP mode.\n"},"mode":{"type":"string","description":"An option to specify the access point operational mode.\n"},"multicastEnhance":{"type":"string","description":"An option to enable converting every multicast-address IP or IPv6 packet into multiple unicast-addresses frames for each connected station.\n"},"name":{"type":"string","description":"Name of the configuration.\n"},"qosClassifier":{"type":"string","description":"An option to specify the QoS classifier.\n"},"security":{"type":"object","additionalProperties":{"type":"string"},"description":"Security inline settings.\n"},"ssid":{"type":"string","description":"SSID (service set identifier) is a name broadcast in the beacons that identifies wireless network.\n"},"steering":{"type":"object","additionalProperties":{"type":"string"},"description":"Steering inline settings.\n"},"txChains":{"type":"array","items":{"type":"number"},"description":"Radio chains to use for transmitting signals.\n"},"txPower":{"type":"number","description":"A limit on the transmit power (in dBm) of the interface.\n"},"wifiConfigurationId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","wifiConfigurationId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"aaa":{"type":"object","additionalProperties":{"type":"string"},"description":"AAA inline settings.\n"},"antennaGain":{"type":"number","description":"An option overrides the default antenna gain.\n"},"beaconInterval":{"type":"string","description":"Time interval between beacon frames.\n"},"chains":{"type":"array","items":{"type":"number"},"description":"Radio chains to use for receiving signals.\n"},"channel":{"type":"object","additionalProperties":{"type":"string"},"description":"Channel inline settings.\n"},"comment":{"type":"string"},"country":{"type":"string","description":"An option determines which regulatory domain restrictions are applied to an interface.\n"},"datapath":{"type":"object","additionalProperties":{"type":"string"},"description":"Datapath inline settings.\n"},"deprioritizeUnii34":{"type":"boolean","description":"Whether to assign lower priority to channels with a control frequency of 5720 or 5825-5885 MHz. These channels are unsupported by some client devices, making their automatic selection undesirable. Defaults to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e in ETSI regulatory domains, elsewhere to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e.\n"},"disabled":{"type":"boolean"},"dtimPeriod":{"type":"number","description":"A period at which to transmit multicast traffic, when there are client devices in power save mode connected to the AP.\n"},"hideSsid":{"type":"boolean","description":"This property has effect only in AP mode. Setting it to yes can remove this network from the list of wireless networks that are shown by some client software. Changing this setting does not improve the security of the wireless network, because SSID is included in other frames sent by the AP.\n"},"interworking":{"type":"object","additionalProperties":{"type":"string"},"description":"Interworking inline settings.\n"},"manager":{"type":"string","description":"An option to specify the remote CAP mode.\n"},"mode":{"type":"string","description":"An option to specify the access point operational mode.\n"},"multicastEnhance":{"type":"string","description":"An option to enable converting every multicast-address IP or IPv6 packet into multiple unicast-addresses frames for each connected station.\n"},"name":{"type":"string","description":"Name of the configuration.\n"},"qosClassifier":{"type":"string","description":"An option to specify the QoS classifier.\n"},"security":{"type":"object","additionalProperties":{"type":"string"},"description":"Security inline settings.\n"},"ssid":{"type":"string","description":"SSID (service set identifier) is a name broadcast in the beacons that identifies wireless network.\n"},"steering":{"type":"object","additionalProperties":{"type":"string"},"description":"Steering inline settings.\n"},"txChains":{"type":"array","items":{"type":"number"},"description":"Radio chains to use for transmitting signals.\n"},"txPower":{"type":"number","description":"A limit on the transmit power (in dBm) of the interface.\n"},"wifiConfigurationId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering WifiConfiguration resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"aaa":{"type":"object","additionalProperties":{"type":"string"},"description":"AAA inline settings.\n"},"antennaGain":{"type":"number","description":"An option overrides the default antenna gain.\n"},"beaconInterval":{"type":"string","description":"Time interval between beacon frames.\n"},"chains":{"type":"array","items":{"type":"number"},"description":"Radio chains to use for receiving signals.\n"},"channel":{"type":"object","additionalProperties":{"type":"string"},"description":"Channel inline settings.\n"},"comment":{"type":"string"},"country":{"type":"string","description":"An option determines which regulatory domain restrictions are applied to an interface.\n"},"datapath":{"type":"object","additionalProperties":{"type":"string"},"description":"Datapath inline settings.\n"},"deprioritizeUnii34":{"type":"boolean","description":"Whether to assign lower priority to channels with a control frequency of 5720 or 5825-5885 MHz. These channels are unsupported by some client devices, making their automatic selection undesirable. Defaults to \u003cspan pulumi-lang-nodejs=\"`yes`\" pulumi-lang-dotnet=\"`Yes`\" pulumi-lang-go=\"`yes`\" pulumi-lang-python=\"`yes`\" pulumi-lang-yaml=\"`yes`\" pulumi-lang-java=\"`yes`\"\u003e`yes`\u003c/span\u003e in ETSI regulatory domains, elsewhere to \u003cspan pulumi-lang-nodejs=\"`no`\" pulumi-lang-dotnet=\"`No`\" pulumi-lang-go=\"`no`\" pulumi-lang-python=\"`no`\" pulumi-lang-yaml=\"`no`\" pulumi-lang-java=\"`no`\"\u003e`no`\u003c/span\u003e.\n"},"disabled":{"type":"boolean"},"dtimPeriod":{"type":"number","description":"A period at which to transmit multicast traffic, when there are client devices in power save mode connected to the AP.\n"},"hideSsid":{"type":"boolean","description":"This property has effect only in AP mode. Setting it to yes can remove this network from the list of wireless networks that are shown by some client software. Changing this setting does not improve the security of the wireless network, because SSID is included in other frames sent by the AP.\n"},"interworking":{"type":"object","additionalProperties":{"type":"string"},"description":"Interworking inline settings.\n"},"manager":{"type":"string","description":"An option to specify the remote CAP mode.\n"},"mode":{"type":"string","description":"An option to specify the access point operational mode.\n"},"multicastEnhance":{"type":"string","description":"An option to enable converting every multicast-address IP or IPv6 packet into multiple unicast-addresses frames for each connected station.\n"},"name":{"type":"string","description":"Name of the configuration.\n"},"qosClassifier":{"type":"string","description":"An option to specify the QoS classifier.\n"},"security":{"type":"object","additionalProperties":{"type":"string"},"description":"Security inline settings.\n"},"ssid":{"type":"string","description":"SSID (service set identifier) is a name broadcast in the beacons that identifies wireless network.\n"},"steering":{"type":"object","additionalProperties":{"type":"string"},"description":"Steering inline settings.\n"},"txChains":{"type":"array","items":{"type":"number"},"description":"Radio chains to use for transmitting signals.\n"},"txPower":{"type":"number","description":"A limit on the transmit power (in dBm) of the interface.\n"},"wifiConfigurationId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/wifiDatapath:WifiDatapath":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WifiDatapath \" pulumi-lang-dotnet=\" routeros.WifiDatapath \" pulumi-lang-go=\" WifiDatapath \" pulumi-lang-python=\" WifiDatapath \" pulumi-lang-yaml=\" routeros.WifiDatapath \" pulumi-lang-java=\" routeros.WifiDatapath \"\u003e routeros.WifiDatapath \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.13.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst datapath1 = new routeros.WifiDatapath(\"datapath1\", {\n    name: \"datapath1\",\n    bridge: \"bridge1\",\n    clientIsolation: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ndatapath1 = routeros.WifiDatapath(\"datapath1\",\n    name=\"datapath1\",\n    bridge=\"bridge1\",\n    client_isolation=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var datapath1 = new Routeros.WifiDatapath(\"datapath1\", new()\n    {\n        Name = \"datapath1\",\n        Bridge = \"bridge1\",\n        ClientIsolation = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewWifiDatapath(ctx, \"datapath1\", \u0026routeros.WifiDatapathArgs{\n\t\t\tName:            pulumi.String(\"datapath1\"),\n\t\t\tBridge:          pulumi.String(\"bridge1\"),\n\t\t\tClientIsolation: 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.routeros.WifiDatapath;\nimport com.pulumi.routeros.WifiDatapathArgs;\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 datapath1 = new WifiDatapath(\"datapath1\", WifiDatapathArgs.builder()\n            .name(\"datapath1\")\n            .bridge(\"bridge1\")\n            .clientIsolation(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  datapath1:\n    type: routeros:WifiDatapath\n    properties:\n      name: datapath1\n      bridge: bridge1\n      clientIsolation: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wifi/datapath get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/wifiDatapath:WifiDatapath datapath1 '*1'\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"Bridge interface to add the interface as a bridge port.\n"},"bridgeCost":{"type":"string","description":"Spanning tree protocol cost of the bridge port.\n"},"bridgeHorizon":{"type":"string","description":"Bridge horizon to use when adding as a bridge port.\n"},"clientIsolation":{"type":"boolean","description":"An option to toggle communication between clients connected to the same AP.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaceList":{"type":"string","description":"List to which add the interface as a member.\n"},"name":{"type":"string","description":"Name of the datapath.\n"},"trafficProcessing":{"type":"string"},"vlanId":{"type":"number","description":"Default VLAN ID to assign to client devices connecting to this interface.\n"},"wifiDatapathId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","wifiDatapathId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"Bridge interface to add the interface as a bridge port.\n"},"bridgeCost":{"type":"string","description":"Spanning tree protocol cost of the bridge port.\n"},"bridgeHorizon":{"type":"string","description":"Bridge horizon to use when adding as a bridge port.\n"},"clientIsolation":{"type":"boolean","description":"An option to toggle communication between clients connected to the same AP.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaceList":{"type":"string","description":"List to which add the interface as a member.\n"},"name":{"type":"string","description":"Name of the datapath.\n"},"trafficProcessing":{"type":"string"},"vlanId":{"type":"number","description":"Default VLAN ID to assign to client devices connecting to this interface.\n"},"wifiDatapathId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering WifiDatapath resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"bridge":{"type":"string","description":"Bridge interface to add the interface as a bridge port.\n"},"bridgeCost":{"type":"string","description":"Spanning tree protocol cost of the bridge port.\n"},"bridgeHorizon":{"type":"string","description":"Bridge horizon to use when adding as a bridge port.\n"},"clientIsolation":{"type":"boolean","description":"An option to toggle communication between clients connected to the same AP.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"interfaceList":{"type":"string","description":"List to which add the interface as a member.\n"},"name":{"type":"string","description":"Name of the datapath.\n"},"trafficProcessing":{"type":"string"},"vlanId":{"type":"number","description":"Default VLAN ID to assign to client devices connecting to this interface.\n"},"wifiDatapathId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/wifiInterworking:WifiInterworking":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WifiInterworking \" pulumi-lang-dotnet=\" routeros.WifiInterworking \" pulumi-lang-go=\" WifiInterworking \" pulumi-lang-python=\" WifiInterworking \" pulumi-lang-yaml=\" routeros.WifiInterworking \" pulumi-lang-java=\" routeros.WifiInterworking \"\u003e routeros.WifiInterworking \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.13.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst interworking1 = new routeros.WifiInterworking(\"interworking1\", {\n    name: \"interworking1\",\n    internet: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ninterworking1 = routeros.WifiInterworking(\"interworking1\",\n    name=\"interworking1\",\n    internet=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var interworking1 = new Routeros.WifiInterworking(\"interworking1\", new()\n    {\n        Name = \"interworking1\",\n        Internet = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewWifiInterworking(ctx, \"interworking1\", \u0026routeros.WifiInterworkingArgs{\n\t\t\tName:     pulumi.String(\"interworking1\"),\n\t\t\tInternet: 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.routeros.WifiInterworking;\nimport com.pulumi.routeros.WifiInterworkingArgs;\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 interworking1 = new WifiInterworking(\"interworking1\", WifiInterworkingArgs.builder()\n            .name(\"interworking1\")\n            .internet(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  interworking1:\n    type: routeros:WifiInterworking\n    properties:\n      name: interworking1\n      internet: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wifi/interworking get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/wifiInterworking:WifiInterworking interworking1 '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/wifiInterworking:WifiInterworking interworking1 \"name=xxx\"\n```\n\n","properties":{"3gppInfos":{"type":"array","items":{"type":"string"},"description":"Cellular network advertisement information - country and network codes.\n"},"3gppRaw":{"type":"string","description":"Cellular network advertisement information - country and network codes.\n"},"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"asra":{"type":"boolean","description":"An option to enable Additional Steps Required for Access.\n"},"authenticationTypes":{"type":"array","items":{"type":"string"},"description":"A list of authentication types that is only effective when \u003cspan pulumi-lang-nodejs=\"`asra`\" pulumi-lang-dotnet=\"`Asra`\" pulumi-lang-go=\"`asra`\" pulumi-lang-python=\"`asra`\" pulumi-lang-yaml=\"`asra`\" pulumi-lang-java=\"`asra`\"\u003e`asra`\u003c/span\u003e is set to yes.\n"},"comment":{"type":"string"},"connectionCapabilities":{"type":"array","items":{"type":"string"},"description":"A list to provide information about the allowed IP protocols and ports.\n"},"disabled":{"type":"boolean"},"domainNames":{"type":"array","items":{"type":"string"},"description":"A list of fully qualified domain names (FQDN) that indicate the entity operating the Hotspot.\n"},"esr":{"type":"boolean","description":"An option to enable Emergency Services Reachability.\n"},"hessid":{"type":"string","description":"Homogenous extended service set identifier (HESSID).\n"},"hotspot20":{"type":"boolean","description":"An option to indicate Hotspot 2.0 capability of the Access Point.\n"},"hotspot20Dgaf":{"type":"boolean","description":"An option to indicate Downstream Group-Addressed Forwarding (DGAF) capability.\n"},"internet":{"type":"boolean","description":"An option to indicate Internet availability.\n"},"ipv4Availability":{"type":"string","description":"An option to indicate IPv4 availability.\n"},"ipv6Availability":{"type":"string","description":"An option to indicate IPv6 availability.\n"},"name":{"type":"string","description":"Name of the interworking profile.\n"},"networkType":{"type":"string","description":"Information about network access type.\n"},"operationalClasses":{"type":"array","items":{"type":"number"},"description":"A list with information about other available bands.\n"},"operatorNames":{"type":"array","items":{"type":"string"},"description":"A list of colon-separated operator names and language codes.\n"},"realms":{"type":"array","items":{"type":"string"},"description":"A list of colon-separated realm names and EAP methods.\n"},"realmsRaws":{"type":"array","items":{"type":"string"},"description":"A list of 'NAI Realm Tuple' excluding 'NAI Realm Data Field Length' field.\n"},"roamingOis":{"type":"array","items":{"type":"string"},"description":"A list of Organization Identifiers (OI).\n"},"uesa":{"type":"boolean","description":"An option to enable Unauthenticated Emergency Service Accessibility.\n"},"venue":{"type":"string","description":"Information about the venue in which the Access Point is located.\n"},"venueNames":{"type":"array","items":{"type":"string"},"description":"A list of colon-separated venue names and language codes.\n"},"wanAtCapacity":{"type":"boolean","description":"An option to indicate that the Access Point or the network is at its max capacity.\n"},"wanDownlink":{"type":"number","description":"The downlink speed of the WAN connection set in kbps.\n"},"wanDownlinkLoad":{"type":"number","description":"The downlink load of the WAN connection measured over \u003cspan pulumi-lang-nodejs=\"`wanMeasurementDuration`\" pulumi-lang-dotnet=\"`WanMeasurementDuration`\" pulumi-lang-go=\"`wanMeasurementDuration`\" pulumi-lang-python=\"`wan_measurement_duration`\" pulumi-lang-yaml=\"`wanMeasurementDuration`\" pulumi-lang-java=\"`wanMeasurementDuration`\"\u003e`wan_measurement_duration`\u003c/span\u003e.\n"},"wanMeasurementDuration":{"type":"number","description":"The duration during which \u003cspan pulumi-lang-nodejs=\"`wanDownlinkLoad`\" pulumi-lang-dotnet=\"`WanDownlinkLoad`\" pulumi-lang-go=\"`wanDownlinkLoad`\" pulumi-lang-python=\"`wan_downlink_load`\" pulumi-lang-yaml=\"`wanDownlinkLoad`\" pulumi-lang-java=\"`wanDownlinkLoad`\"\u003e`wan_downlink_load`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wanUplinkLoad`\" pulumi-lang-dotnet=\"`WanUplinkLoad`\" pulumi-lang-go=\"`wanUplinkLoad`\" pulumi-lang-python=\"`wan_uplink_load`\" pulumi-lang-yaml=\"`wanUplinkLoad`\" pulumi-lang-java=\"`wanUplinkLoad`\"\u003e`wan_uplink_load`\u003c/span\u003e are measured.\n"},"wanStatus":{"type":"string","description":"Information about the status of the Access Point's WAN connection.\n"},"wanSymmetric":{"type":"boolean","description":"An option to indicate that the WAN link is symmetric (upload and download speeds are the same).\n"},"wanUplink":{"type":"number","description":"The uplink speed of the WAN connection set in kbps.\n"},"wanUplinkLoad":{"type":"number","description":"The uplink load of the WAN connection measured over \u003cspan pulumi-lang-nodejs=\"`wanMeasurementDuration`\" pulumi-lang-dotnet=\"`WanMeasurementDuration`\" pulumi-lang-go=\"`wanMeasurementDuration`\" pulumi-lang-python=\"`wan_measurement_duration`\" pulumi-lang-yaml=\"`wanMeasurementDuration`\" pulumi-lang-java=\"`wanMeasurementDuration`\"\u003e`wan_measurement_duration`\u003c/span\u003e.\n"},"wifiInterworkingId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","wifiInterworkingId"],"inputProperties":{"3gppInfos":{"type":"array","items":{"type":"string"},"description":"Cellular network advertisement information - country and network codes.\n"},"3gppRaw":{"type":"string","description":"Cellular network advertisement information - country and network codes.\n"},"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"asra":{"type":"boolean","description":"An option to enable Additional Steps Required for Access.\n"},"authenticationTypes":{"type":"array","items":{"type":"string"},"description":"A list of authentication types that is only effective when \u003cspan pulumi-lang-nodejs=\"`asra`\" pulumi-lang-dotnet=\"`Asra`\" pulumi-lang-go=\"`asra`\" pulumi-lang-python=\"`asra`\" pulumi-lang-yaml=\"`asra`\" pulumi-lang-java=\"`asra`\"\u003e`asra`\u003c/span\u003e is set to yes.\n"},"comment":{"type":"string"},"connectionCapabilities":{"type":"array","items":{"type":"string"},"description":"A list to provide information about the allowed IP protocols and ports.\n"},"disabled":{"type":"boolean"},"domainNames":{"type":"array","items":{"type":"string"},"description":"A list of fully qualified domain names (FQDN) that indicate the entity operating the Hotspot.\n"},"esr":{"type":"boolean","description":"An option to enable Emergency Services Reachability.\n"},"hessid":{"type":"string","description":"Homogenous extended service set identifier (HESSID).\n"},"hotspot20":{"type":"boolean","description":"An option to indicate Hotspot 2.0 capability of the Access Point.\n"},"hotspot20Dgaf":{"type":"boolean","description":"An option to indicate Downstream Group-Addressed Forwarding (DGAF) capability.\n"},"internet":{"type":"boolean","description":"An option to indicate Internet availability.\n"},"ipv4Availability":{"type":"string","description":"An option to indicate IPv4 availability.\n"},"ipv6Availability":{"type":"string","description":"An option to indicate IPv6 availability.\n"},"name":{"type":"string","description":"Name of the interworking profile.\n"},"networkType":{"type":"string","description":"Information about network access type.\n"},"operationalClasses":{"type":"array","items":{"type":"number"},"description":"A list with information about other available bands.\n"},"operatorNames":{"type":"array","items":{"type":"string"},"description":"A list of colon-separated operator names and language codes.\n"},"realms":{"type":"array","items":{"type":"string"},"description":"A list of colon-separated realm names and EAP methods.\n"},"realmsRaws":{"type":"array","items":{"type":"string"},"description":"A list of 'NAI Realm Tuple' excluding 'NAI Realm Data Field Length' field.\n"},"roamingOis":{"type":"array","items":{"type":"string"},"description":"A list of Organization Identifiers (OI).\n"},"uesa":{"type":"boolean","description":"An option to enable Unauthenticated Emergency Service Accessibility.\n"},"venue":{"type":"string","description":"Information about the venue in which the Access Point is located.\n"},"venueNames":{"type":"array","items":{"type":"string"},"description":"A list of colon-separated venue names and language codes.\n"},"wanAtCapacity":{"type":"boolean","description":"An option to indicate that the Access Point or the network is at its max capacity.\n"},"wanDownlink":{"type":"number","description":"The downlink speed of the WAN connection set in kbps.\n"},"wanDownlinkLoad":{"type":"number","description":"The downlink load of the WAN connection measured over \u003cspan pulumi-lang-nodejs=\"`wanMeasurementDuration`\" pulumi-lang-dotnet=\"`WanMeasurementDuration`\" pulumi-lang-go=\"`wanMeasurementDuration`\" pulumi-lang-python=\"`wan_measurement_duration`\" pulumi-lang-yaml=\"`wanMeasurementDuration`\" pulumi-lang-java=\"`wanMeasurementDuration`\"\u003e`wan_measurement_duration`\u003c/span\u003e.\n"},"wanMeasurementDuration":{"type":"number","description":"The duration during which \u003cspan pulumi-lang-nodejs=\"`wanDownlinkLoad`\" pulumi-lang-dotnet=\"`WanDownlinkLoad`\" pulumi-lang-go=\"`wanDownlinkLoad`\" pulumi-lang-python=\"`wan_downlink_load`\" pulumi-lang-yaml=\"`wanDownlinkLoad`\" pulumi-lang-java=\"`wanDownlinkLoad`\"\u003e`wan_downlink_load`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wanUplinkLoad`\" pulumi-lang-dotnet=\"`WanUplinkLoad`\" pulumi-lang-go=\"`wanUplinkLoad`\" pulumi-lang-python=\"`wan_uplink_load`\" pulumi-lang-yaml=\"`wanUplinkLoad`\" pulumi-lang-java=\"`wanUplinkLoad`\"\u003e`wan_uplink_load`\u003c/span\u003e are measured.\n"},"wanStatus":{"type":"string","description":"Information about the status of the Access Point's WAN connection.\n"},"wanSymmetric":{"type":"boolean","description":"An option to indicate that the WAN link is symmetric (upload and download speeds are the same).\n"},"wanUplink":{"type":"number","description":"The uplink speed of the WAN connection set in kbps.\n"},"wanUplinkLoad":{"type":"number","description":"The uplink load of the WAN connection measured over \u003cspan pulumi-lang-nodejs=\"`wanMeasurementDuration`\" pulumi-lang-dotnet=\"`WanMeasurementDuration`\" pulumi-lang-go=\"`wanMeasurementDuration`\" pulumi-lang-python=\"`wan_measurement_duration`\" pulumi-lang-yaml=\"`wanMeasurementDuration`\" pulumi-lang-java=\"`wanMeasurementDuration`\"\u003e`wan_measurement_duration`\u003c/span\u003e.\n"},"wifiInterworkingId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering WifiInterworking resources.\n","properties":{"3gppInfos":{"type":"array","items":{"type":"string"},"description":"Cellular network advertisement information - country and network codes.\n"},"3gppRaw":{"type":"string","description":"Cellular network advertisement information - country and network codes.\n"},"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"asra":{"type":"boolean","description":"An option to enable Additional Steps Required for Access.\n"},"authenticationTypes":{"type":"array","items":{"type":"string"},"description":"A list of authentication types that is only effective when \u003cspan pulumi-lang-nodejs=\"`asra`\" pulumi-lang-dotnet=\"`Asra`\" pulumi-lang-go=\"`asra`\" pulumi-lang-python=\"`asra`\" pulumi-lang-yaml=\"`asra`\" pulumi-lang-java=\"`asra`\"\u003e`asra`\u003c/span\u003e is set to yes.\n"},"comment":{"type":"string"},"connectionCapabilities":{"type":"array","items":{"type":"string"},"description":"A list to provide information about the allowed IP protocols and ports.\n"},"disabled":{"type":"boolean"},"domainNames":{"type":"array","items":{"type":"string"},"description":"A list of fully qualified domain names (FQDN) that indicate the entity operating the Hotspot.\n"},"esr":{"type":"boolean","description":"An option to enable Emergency Services Reachability.\n"},"hessid":{"type":"string","description":"Homogenous extended service set identifier (HESSID).\n"},"hotspot20":{"type":"boolean","description":"An option to indicate Hotspot 2.0 capability of the Access Point.\n"},"hotspot20Dgaf":{"type":"boolean","description":"An option to indicate Downstream Group-Addressed Forwarding (DGAF) capability.\n"},"internet":{"type":"boolean","description":"An option to indicate Internet availability.\n"},"ipv4Availability":{"type":"string","description":"An option to indicate IPv4 availability.\n"},"ipv6Availability":{"type":"string","description":"An option to indicate IPv6 availability.\n"},"name":{"type":"string","description":"Name of the interworking profile.\n"},"networkType":{"type":"string","description":"Information about network access type.\n"},"operationalClasses":{"type":"array","items":{"type":"number"},"description":"A list with information about other available bands.\n"},"operatorNames":{"type":"array","items":{"type":"string"},"description":"A list of colon-separated operator names and language codes.\n"},"realms":{"type":"array","items":{"type":"string"},"description":"A list of colon-separated realm names and EAP methods.\n"},"realmsRaws":{"type":"array","items":{"type":"string"},"description":"A list of 'NAI Realm Tuple' excluding 'NAI Realm Data Field Length' field.\n"},"roamingOis":{"type":"array","items":{"type":"string"},"description":"A list of Organization Identifiers (OI).\n"},"uesa":{"type":"boolean","description":"An option to enable Unauthenticated Emergency Service Accessibility.\n"},"venue":{"type":"string","description":"Information about the venue in which the Access Point is located.\n"},"venueNames":{"type":"array","items":{"type":"string"},"description":"A list of colon-separated venue names and language codes.\n"},"wanAtCapacity":{"type":"boolean","description":"An option to indicate that the Access Point or the network is at its max capacity.\n"},"wanDownlink":{"type":"number","description":"The downlink speed of the WAN connection set in kbps.\n"},"wanDownlinkLoad":{"type":"number","description":"The downlink load of the WAN connection measured over \u003cspan pulumi-lang-nodejs=\"`wanMeasurementDuration`\" pulumi-lang-dotnet=\"`WanMeasurementDuration`\" pulumi-lang-go=\"`wanMeasurementDuration`\" pulumi-lang-python=\"`wan_measurement_duration`\" pulumi-lang-yaml=\"`wanMeasurementDuration`\" pulumi-lang-java=\"`wanMeasurementDuration`\"\u003e`wan_measurement_duration`\u003c/span\u003e.\n"},"wanMeasurementDuration":{"type":"number","description":"The duration during which \u003cspan pulumi-lang-nodejs=\"`wanDownlinkLoad`\" pulumi-lang-dotnet=\"`WanDownlinkLoad`\" pulumi-lang-go=\"`wanDownlinkLoad`\" pulumi-lang-python=\"`wan_downlink_load`\" pulumi-lang-yaml=\"`wanDownlinkLoad`\" pulumi-lang-java=\"`wanDownlinkLoad`\"\u003e`wan_downlink_load`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wanUplinkLoad`\" pulumi-lang-dotnet=\"`WanUplinkLoad`\" pulumi-lang-go=\"`wanUplinkLoad`\" pulumi-lang-python=\"`wan_uplink_load`\" pulumi-lang-yaml=\"`wanUplinkLoad`\" pulumi-lang-java=\"`wanUplinkLoad`\"\u003e`wan_uplink_load`\u003c/span\u003e are measured.\n"},"wanStatus":{"type":"string","description":"Information about the status of the Access Point's WAN connection.\n"},"wanSymmetric":{"type":"boolean","description":"An option to indicate that the WAN link is symmetric (upload and download speeds are the same).\n"},"wanUplink":{"type":"number","description":"The uplink speed of the WAN connection set in kbps.\n"},"wanUplinkLoad":{"type":"number","description":"The uplink load of the WAN connection measured over \u003cspan pulumi-lang-nodejs=\"`wanMeasurementDuration`\" pulumi-lang-dotnet=\"`WanMeasurementDuration`\" pulumi-lang-go=\"`wanMeasurementDuration`\" pulumi-lang-python=\"`wan_measurement_duration`\" pulumi-lang-yaml=\"`wanMeasurementDuration`\" pulumi-lang-java=\"`wanMeasurementDuration`\"\u003e`wan_measurement_duration`\u003c/span\u003e.\n"},"wifiInterworkingId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/wifiProvisioning:WifiProvisioning":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WifiProvisioning \" pulumi-lang-dotnet=\" routeros.WifiProvisioning \" pulumi-lang-go=\" WifiProvisioning \" pulumi-lang-python=\" WifiProvisioning \" pulumi-lang-yaml=\" routeros.WifiProvisioning \" pulumi-lang-java=\" routeros.WifiProvisioning \"\u003e routeros.WifiProvisioning \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.13.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst configuration1 = new routeros.WifiConfiguration(\"configuration1\", {\n    country: \"Netherlands\",\n    manager: \"capsman\",\n    mode: \"ap\",\n    name: \"configuration1\",\n    ssid: \"my-network\",\n});\nconst provisioning1 = new routeros.WifiProvisioning(\"provisioning1\", {\n    action: \"create-enabled\",\n    masterConfiguration: configuration1.name,\n    nameFormat: \"cap1:\",\n    radioMac: \"00:11:22:33:44:55\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nconfiguration1 = routeros.WifiConfiguration(\"configuration1\",\n    country=\"Netherlands\",\n    manager=\"capsman\",\n    mode=\"ap\",\n    name=\"configuration1\",\n    ssid=\"my-network\")\nprovisioning1 = routeros.WifiProvisioning(\"provisioning1\",\n    action=\"create-enabled\",\n    master_configuration=configuration1.name,\n    name_format=\"cap1:\",\n    radio_mac=\"00:11:22:33:44:55\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var configuration1 = new Routeros.WifiConfiguration(\"configuration1\", new()\n    {\n        Country = \"Netherlands\",\n        Manager = \"capsman\",\n        Mode = \"ap\",\n        Name = \"configuration1\",\n        Ssid = \"my-network\",\n    });\n\n    var provisioning1 = new Routeros.WifiProvisioning(\"provisioning1\", new()\n    {\n        Action = \"create-enabled\",\n        MasterConfiguration = configuration1.Name,\n        NameFormat = \"cap1:\",\n        RadioMac = \"00:11:22:33:44:55\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tconfiguration1, err := routeros.NewWifiConfiguration(ctx, \"configuration1\", \u0026routeros.WifiConfigurationArgs{\n\t\t\tCountry: pulumi.String(\"Netherlands\"),\n\t\t\tManager: pulumi.String(\"capsman\"),\n\t\t\tMode:    pulumi.String(\"ap\"),\n\t\t\tName:    pulumi.String(\"configuration1\"),\n\t\t\tSsid:    pulumi.String(\"my-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewWifiProvisioning(ctx, \"provisioning1\", \u0026routeros.WifiProvisioningArgs{\n\t\t\tAction:              pulumi.String(\"create-enabled\"),\n\t\t\tMasterConfiguration: configuration1.Name,\n\t\t\tNameFormat:          pulumi.String(\"cap1:\"),\n\t\t\tRadioMac:            pulumi.String(\"00:11:22:33:44:55\"),\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.routeros.WifiConfiguration;\nimport com.pulumi.routeros.WifiConfigurationArgs;\nimport com.pulumi.routeros.WifiProvisioning;\nimport com.pulumi.routeros.WifiProvisioningArgs;\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 configuration1 = new WifiConfiguration(\"configuration1\", WifiConfigurationArgs.builder()\n            .country(\"Netherlands\")\n            .manager(\"capsman\")\n            .mode(\"ap\")\n            .name(\"configuration1\")\n            .ssid(\"my-network\")\n            .build());\n\n        var provisioning1 = new WifiProvisioning(\"provisioning1\", WifiProvisioningArgs.builder()\n            .action(\"create-enabled\")\n            .masterConfiguration(configuration1.name())\n            .nameFormat(\"cap1:\")\n            .radioMac(\"00:11:22:33:44:55\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  configuration1:\n    type: routeros:WifiConfiguration\n    properties:\n      country: Netherlands\n      manager: capsman\n      mode: ap\n      name: configuration1\n      ssid: my-network\n  provisioning1:\n    type: routeros:WifiProvisioning\n    properties:\n      action: create-enabled\n      masterConfiguration: ${configuration1.name}\n      nameFormat: 'cap1:'\n      radioMac: 00:11:22:33:44:55\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wifi/provisioning get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/wifiProvisioning:WifiProvisioning provisioning1 '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/wifiProvisioning:WifiProvisioning provisioning1 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Provisioning action.\n"},"addressRanges":{"type":"array","items":{"type":"string"},"description":"Match CAPs by IPs within configured address ranges.\n"},"comment":{"type":"string"},"commonNameRegexp":{"type":"string","description":"Regular expression to match radios by common name.\n"},"disabled":{"type":"boolean"},"identityRegexp":{"type":"string","description":"Regular expression to match radios by router identity.\n"},"masterConfiguration":{"type":"string","description":"If action specifies to create interfaces, then a new master interface with its configuration set to this configuration profile will be created.\n"},"nameFormat":{"type":"string","description":"Specify the format of the CAP interface name creation.\n"},"radioMac":{"type":"string","description":"MAC address of radio to be matched, empty MAC means match all MAC addresses. `00:00:00:00:00:00` is not considered empty MAC-address.\n"},"slaveConfigurations":{"type":"array","items":{"type":"string"},"description":"If action specifies to create interfaces, then a new slave interface for each configuration profile in this list is created.\n"},"slaveNameFormat":{"type":"string","description":"The name format of the slave CAP interfaces. This option is available in RouterOS starting from version 7.16.\n"},"supportedBands":{"type":"array","items":{"type":"string"},"description":"Match CAPs by supported modes.\n"},"wifiProvisioningId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["wifiProvisioningId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Provisioning action.\n"},"addressRanges":{"type":"array","items":{"type":"string"},"description":"Match CAPs by IPs within configured address ranges.\n"},"comment":{"type":"string"},"commonNameRegexp":{"type":"string","description":"Regular expression to match radios by common name.\n"},"disabled":{"type":"boolean"},"identityRegexp":{"type":"string","description":"Regular expression to match radios by router identity.\n"},"masterConfiguration":{"type":"string","description":"If action specifies to create interfaces, then a new master interface with its configuration set to this configuration profile will be created.\n"},"nameFormat":{"type":"string","description":"Specify the format of the CAP interface name creation.\n"},"radioMac":{"type":"string","description":"MAC address of radio to be matched, empty MAC means match all MAC addresses. `00:00:00:00:00:00` is not considered empty MAC-address.\n"},"slaveConfigurations":{"type":"array","items":{"type":"string"},"description":"If action specifies to create interfaces, then a new slave interface for each configuration profile in this list is created.\n"},"slaveNameFormat":{"type":"string","description":"The name format of the slave CAP interfaces. This option is available in RouterOS starting from version 7.16.\n"},"supportedBands":{"type":"array","items":{"type":"string"},"description":"Match CAPs by supported modes.\n"},"wifiProvisioningId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering WifiProvisioning resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"action":{"type":"string","description":"Provisioning action.\n"},"addressRanges":{"type":"array","items":{"type":"string"},"description":"Match CAPs by IPs within configured address ranges.\n"},"comment":{"type":"string"},"commonNameRegexp":{"type":"string","description":"Regular expression to match radios by common name.\n"},"disabled":{"type":"boolean"},"identityRegexp":{"type":"string","description":"Regular expression to match radios by router identity.\n"},"masterConfiguration":{"type":"string","description":"If action specifies to create interfaces, then a new master interface with its configuration set to this configuration profile will be created.\n"},"nameFormat":{"type":"string","description":"Specify the format of the CAP interface name creation.\n"},"radioMac":{"type":"string","description":"MAC address of radio to be matched, empty MAC means match all MAC addresses. `00:00:00:00:00:00` is not considered empty MAC-address.\n"},"slaveConfigurations":{"type":"array","items":{"type":"string"},"description":"If action specifies to create interfaces, then a new slave interface for each configuration profile in this list is created.\n"},"slaveNameFormat":{"type":"string","description":"The name format of the slave CAP interfaces. This option is available in RouterOS starting from version 7.16.\n"},"supportedBands":{"type":"array","items":{"type":"string"},"description":"Match CAPs by supported modes.\n"},"wifiProvisioningId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/wifiSecurity:WifiSecurity":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WifiSecurity \" pulumi-lang-dotnet=\" routeros.WifiSecurity \" pulumi-lang-go=\" WifiSecurity \" pulumi-lang-python=\" WifiSecurity \" pulumi-lang-yaml=\" routeros.WifiSecurity \" pulumi-lang-java=\" routeros.WifiSecurity \"\u003e routeros.WifiSecurity \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.13.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst security1 = new routeros.WifiSecurity(\"security1\", {\n    name: \"security1\",\n    authenticationTypes: [\n        \"wpa2-psk\",\n        \"wpa3-psk\",\n    ],\n    ft: true,\n    ftPreserveVlanid: true,\n    passphrase: \"password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsecurity1 = routeros.WifiSecurity(\"security1\",\n    name=\"security1\",\n    authentication_types=[\n        \"wpa2-psk\",\n        \"wpa3-psk\",\n    ],\n    ft=True,\n    ft_preserve_vlanid=True,\n    passphrase=\"password\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var security1 = new Routeros.WifiSecurity(\"security1\", new()\n    {\n        Name = \"security1\",\n        AuthenticationTypes = new[]\n        {\n            \"wpa2-psk\",\n            \"wpa3-psk\",\n        },\n        Ft = true,\n        FtPreserveVlanid = true,\n        Passphrase = \"password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewWifiSecurity(ctx, \"security1\", \u0026routeros.WifiSecurityArgs{\n\t\t\tName: pulumi.String(\"security1\"),\n\t\t\tAuthenticationTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"wpa2-psk\"),\n\t\t\t\tpulumi.String(\"wpa3-psk\"),\n\t\t\t},\n\t\t\tFt:               pulumi.Bool(true),\n\t\t\tFtPreserveVlanid: pulumi.Bool(true),\n\t\t\tPassphrase:       pulumi.String(\"password\"),\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.routeros.WifiSecurity;\nimport com.pulumi.routeros.WifiSecurityArgs;\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 security1 = new WifiSecurity(\"security1\", WifiSecurityArgs.builder()\n            .name(\"security1\")\n            .authenticationTypes(            \n                \"wpa2-psk\",\n                \"wpa3-psk\")\n            .ft(true)\n            .ftPreserveVlanid(true)\n            .passphrase(\"password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  security1:\n    type: routeros:WifiSecurity\n    properties:\n      name: security1\n      authenticationTypes:\n        - wpa2-psk\n        - wpa3-psk\n      ft: true\n      ftPreserveVlanid: true\n      passphrase: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wifi/security get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/wifiSecurity:WifiSecurity security1 '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/wifiSecurity:WifiSecurity security1 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authenticationTypes":{"type":"array","items":{"type":"string"},"description":"Authentication types to enable on the interface.\n"},"comment":{"type":"string"},"connectGroup":{"type":"string","description":"APs within the same connect group do not allow more than 1 client device with the same MAC address.\n"},"connectPriority":{"type":"string","description":"An option to determine how a connection is handled if the MAC address of the client device is the same as that of another active connection to another AP.\n"},"dhGroups":{"type":"array","items":{"type":"number"},"description":"Identifiers of elliptic curve cryptography groups to use in SAE (WPA3) authentication.\n"},"disablePmkid":{"type":"boolean","description":"An option to disable inclusion of a PMKID in EAPOL frames.\n"},"disabled":{"type":"boolean"},"eapAccounting":{"type":"boolean","description":"An option to send accounting information to RADIUS server for EAP-authenticated peers.\n"},"eapAnonymousIdentity":{"type":"string","description":"An option to specify anonymous identity for EAP outer authentication.\n"},"eapCertificateMode":{"type":"string","description":"A policy for handling the TLS certificate of the RADIUS server.\n"},"eapMethods":{"type":"array","items":{"type":"string"},"description":"A set of EAP methods to consider for authentication.\n"},"eapPassword":{"type":"string","description":"Password to use when the chosen EAP method requires one.\n"},"eapTlsCertificate":{"type":"string","description":"Name or id of a certificate in the device's certificate store to use when the chosen EAP authentication method requires one.\n"},"eapUsername":{"type":"string","description":"Username to use when the chosen EAP method requires one.\n"},"encryptions":{"type":"array","items":{"type":"string"},"description":"A list of ciphers to support for encrypting unicast traffic.\n"},"ft":{"type":"boolean","description":"An option to enable 802.11r fast BSS transitions (roaming).\n"},"ftMobilityDomain":{"type":"string","description":"The fast BSS transition mobility domain ID.\n"},"ftNasIdentifier":{"type":"string","description":"Fast BSS transition PMK-R0 key holder identifier.\n"},"ftOverDs":{"type":"boolean","description":"An option to enable fast BSS transitions over DS (distributed system).\n"},"ftPreserveVlanid":{"type":"boolean","description":"An option to preserve VLAN ID when roaming.\n"},"ftR0KeyLifetime":{"type":"string","description":"The lifetime of the fast BSS transition PMK-R0 encryption key.\n"},"ftReassociationDeadline":{"type":"string","description":"Fast BSS transition reassociation deadline.\n"},"groupEncryption":{"type":"string","description":"A cipher to use for encrypting multicast traffic.\n"},"groupKeyUpdate":{"type":"string","description":"The interval at which the group temporal key (key for encrypting broadcast traffic) is renewed.\n"},"managementEncryption":{"type":"string","description":"A cipher to use for encrypting protected management frames.\n"},"managementProtection":{"type":"string","description":"An option to enable 802.11w management frame protection.\n"},"multiPassphraseGroup":{"type":"string","description":"Name of `/interface/wifi/security/multi-passphrase/` group that will be used. Only a single group can be defined under the security profile.\n"},"name":{"type":"string","description":"Name of the security profile.\n"},"oweTransitionInterface":{"type":"string","description":"Name or internal ID of an interface which MAC address and SSID to advertise as the matching AP when running in OWE transition mode.\n"},"passphrase":{"type":"string","description":"Passphrase to use for PSK authentication types.\n"},"saeAntiCloggingThreshold":{"type":"string","description":"A parameter to mitigate DoS attacks by specifying a threshold of in-progress SAE authentications.\n"},"saeMaxFailureRate":{"type":"string","description":"Rate of failed SAE (WPA3) associations per minute, at which the AP will stop processing new association requests.\n"},"saePwe":{"type":"string","description":"Methods to support for deriving SAE password element.\n"},"wifiSecurityId":{"type":"string","description":"The ID of this resource.\n"},"wps":{"type":"string","description":"An option to enable WPS (Wi-Fi Protected Setup).\n"}},"type":"object","required":["name","wifiSecurityId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authenticationTypes":{"type":"array","items":{"type":"string"},"description":"Authentication types to enable on the interface.\n"},"comment":{"type":"string"},"connectGroup":{"type":"string","description":"APs within the same connect group do not allow more than 1 client device with the same MAC address.\n"},"connectPriority":{"type":"string","description":"An option to determine how a connection is handled if the MAC address of the client device is the same as that of another active connection to another AP.\n"},"dhGroups":{"type":"array","items":{"type":"number"},"description":"Identifiers of elliptic curve cryptography groups to use in SAE (WPA3) authentication.\n"},"disablePmkid":{"type":"boolean","description":"An option to disable inclusion of a PMKID in EAPOL frames.\n"},"disabled":{"type":"boolean"},"eapAccounting":{"type":"boolean","description":"An option to send accounting information to RADIUS server for EAP-authenticated peers.\n"},"eapAnonymousIdentity":{"type":"string","description":"An option to specify anonymous identity for EAP outer authentication.\n"},"eapCertificateMode":{"type":"string","description":"A policy for handling the TLS certificate of the RADIUS server.\n"},"eapMethods":{"type":"array","items":{"type":"string"},"description":"A set of EAP methods to consider for authentication.\n"},"eapPassword":{"type":"string","description":"Password to use when the chosen EAP method requires one.\n"},"eapTlsCertificate":{"type":"string","description":"Name or id of a certificate in the device's certificate store to use when the chosen EAP authentication method requires one.\n"},"eapUsername":{"type":"string","description":"Username to use when the chosen EAP method requires one.\n"},"encryptions":{"type":"array","items":{"type":"string"},"description":"A list of ciphers to support for encrypting unicast traffic.\n"},"ft":{"type":"boolean","description":"An option to enable 802.11r fast BSS transitions (roaming).\n"},"ftMobilityDomain":{"type":"string","description":"The fast BSS transition mobility domain ID.\n"},"ftNasIdentifier":{"type":"string","description":"Fast BSS transition PMK-R0 key holder identifier.\n"},"ftOverDs":{"type":"boolean","description":"An option to enable fast BSS transitions over DS (distributed system).\n"},"ftPreserveVlanid":{"type":"boolean","description":"An option to preserve VLAN ID when roaming.\n"},"ftR0KeyLifetime":{"type":"string","description":"The lifetime of the fast BSS transition PMK-R0 encryption key.\n"},"ftReassociationDeadline":{"type":"string","description":"Fast BSS transition reassociation deadline.\n"},"groupEncryption":{"type":"string","description":"A cipher to use for encrypting multicast traffic.\n"},"groupKeyUpdate":{"type":"string","description":"The interval at which the group temporal key (key for encrypting broadcast traffic) is renewed.\n"},"managementEncryption":{"type":"string","description":"A cipher to use for encrypting protected management frames.\n"},"managementProtection":{"type":"string","description":"An option to enable 802.11w management frame protection.\n"},"multiPassphraseGroup":{"type":"string","description":"Name of `/interface/wifi/security/multi-passphrase/` group that will be used. Only a single group can be defined under the security profile.\n"},"name":{"type":"string","description":"Name of the security profile.\n"},"oweTransitionInterface":{"type":"string","description":"Name or internal ID of an interface which MAC address and SSID to advertise as the matching AP when running in OWE transition mode.\n"},"passphrase":{"type":"string","description":"Passphrase to use for PSK authentication types.\n"},"saeAntiCloggingThreshold":{"type":"string","description":"A parameter to mitigate DoS attacks by specifying a threshold of in-progress SAE authentications.\n"},"saeMaxFailureRate":{"type":"string","description":"Rate of failed SAE (WPA3) associations per minute, at which the AP will stop processing new association requests.\n"},"saePwe":{"type":"string","description":"Methods to support for deriving SAE password element.\n"},"wifiSecurityId":{"type":"string","description":"The ID of this resource.\n"},"wps":{"type":"string","description":"An option to enable WPS (Wi-Fi Protected Setup).\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering WifiSecurity resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"authenticationTypes":{"type":"array","items":{"type":"string"},"description":"Authentication types to enable on the interface.\n"},"comment":{"type":"string"},"connectGroup":{"type":"string","description":"APs within the same connect group do not allow more than 1 client device with the same MAC address.\n"},"connectPriority":{"type":"string","description":"An option to determine how a connection is handled if the MAC address of the client device is the same as that of another active connection to another AP.\n"},"dhGroups":{"type":"array","items":{"type":"number"},"description":"Identifiers of elliptic curve cryptography groups to use in SAE (WPA3) authentication.\n"},"disablePmkid":{"type":"boolean","description":"An option to disable inclusion of a PMKID in EAPOL frames.\n"},"disabled":{"type":"boolean"},"eapAccounting":{"type":"boolean","description":"An option to send accounting information to RADIUS server for EAP-authenticated peers.\n"},"eapAnonymousIdentity":{"type":"string","description":"An option to specify anonymous identity for EAP outer authentication.\n"},"eapCertificateMode":{"type":"string","description":"A policy for handling the TLS certificate of the RADIUS server.\n"},"eapMethods":{"type":"array","items":{"type":"string"},"description":"A set of EAP methods to consider for authentication.\n"},"eapPassword":{"type":"string","description":"Password to use when the chosen EAP method requires one.\n"},"eapTlsCertificate":{"type":"string","description":"Name or id of a certificate in the device's certificate store to use when the chosen EAP authentication method requires one.\n"},"eapUsername":{"type":"string","description":"Username to use when the chosen EAP method requires one.\n"},"encryptions":{"type":"array","items":{"type":"string"},"description":"A list of ciphers to support for encrypting unicast traffic.\n"},"ft":{"type":"boolean","description":"An option to enable 802.11r fast BSS transitions (roaming).\n"},"ftMobilityDomain":{"type":"string","description":"The fast BSS transition mobility domain ID.\n"},"ftNasIdentifier":{"type":"string","description":"Fast BSS transition PMK-R0 key holder identifier.\n"},"ftOverDs":{"type":"boolean","description":"An option to enable fast BSS transitions over DS (distributed system).\n"},"ftPreserveVlanid":{"type":"boolean","description":"An option to preserve VLAN ID when roaming.\n"},"ftR0KeyLifetime":{"type":"string","description":"The lifetime of the fast BSS transition PMK-R0 encryption key.\n"},"ftReassociationDeadline":{"type":"string","description":"Fast BSS transition reassociation deadline.\n"},"groupEncryption":{"type":"string","description":"A cipher to use for encrypting multicast traffic.\n"},"groupKeyUpdate":{"type":"string","description":"The interval at which the group temporal key (key for encrypting broadcast traffic) is renewed.\n"},"managementEncryption":{"type":"string","description":"A cipher to use for encrypting protected management frames.\n"},"managementProtection":{"type":"string","description":"An option to enable 802.11w management frame protection.\n"},"multiPassphraseGroup":{"type":"string","description":"Name of `/interface/wifi/security/multi-passphrase/` group that will be used. Only a single group can be defined under the security profile.\n"},"name":{"type":"string","description":"Name of the security profile.\n"},"oweTransitionInterface":{"type":"string","description":"Name or internal ID of an interface which MAC address and SSID to advertise as the matching AP when running in OWE transition mode.\n"},"passphrase":{"type":"string","description":"Passphrase to use for PSK authentication types.\n"},"saeAntiCloggingThreshold":{"type":"string","description":"A parameter to mitigate DoS attacks by specifying a threshold of in-progress SAE authentications.\n"},"saeMaxFailureRate":{"type":"string","description":"Rate of failed SAE (WPA3) associations per minute, at which the AP will stop processing new association requests.\n"},"saePwe":{"type":"string","description":"Methods to support for deriving SAE password element.\n"},"wifiSecurityId":{"type":"string","description":"The ID of this resource.\n"},"wps":{"type":"string","description":"An option to enable WPS (Wi-Fi Protected Setup).\n"}},"type":"object"}},"routeros:index/wifiSecurityMultiPassphrase:WifiSecurityMultiPassphrase":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WifiSecurityMultiPassphrase \" pulumi-lang-dotnet=\" routeros.WifiSecurityMultiPassphrase \" pulumi-lang-go=\" WifiSecurityMultiPassphrase \" pulumi-lang-python=\" WifiSecurityMultiPassphrase \" pulumi-lang-yaml=\" routeros.WifiSecurityMultiPassphrase \" pulumi-lang-java=\" routeros.WifiSecurityMultiPassphrase \"\u003e routeros.WifiSecurityMultiPassphrase \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.17beta1.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = new routeros.WifiSecurityMultiPassphrase(\"test\", {\n    group: \"gr-123\",\n    passphrase: wifiSecurity.data.test,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.WifiSecurityMultiPassphrase(\"test\",\n    group=\"gr-123\",\n    passphrase=wifi_security[\"data\"][\"test\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Routeros.WifiSecurityMultiPassphrase(\"test\", new()\n    {\n        Group = \"gr-123\",\n        Passphrase = wifiSecurity.Data.Test,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewWifiSecurityMultiPassphrase(ctx, \"test\", \u0026routeros.WifiSecurityMultiPassphraseArgs{\n\t\t\tGroup:      pulumi.String(\"gr-123\"),\n\t\t\tPassphrase: pulumi.Any(wifiSecurity.Data.Test),\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.routeros.WifiSecurityMultiPassphrase;\nimport com.pulumi.routeros.WifiSecurityMultiPassphraseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new WifiSecurityMultiPassphrase(\"test\", WifiSecurityMultiPassphraseArgs.builder()\n            .group(\"gr-123\")\n            .passphrase(wifiSecurity.data().test())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: routeros:WifiSecurityMultiPassphrase\n    properties:\n      group: gr-123\n      passphrase: ${wifiSecurity.data.test}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/wifi/security/multi/passphrase get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/wifiSecurityMultiPassphrase:WifiSecurityMultiPassphrase test *3\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/wifiSecurityMultiPassphrase:WifiSecurityMultiPassphrase test \"comment=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"expires":{"type":"string","description":"The expiration date and time for passphrase specified in this entry, doesn't affect the whole group. Once the date is reached, existing clients using this passphrase will be disconnected, and new clients will not be able to connect using it. If not set, passphrase can be used indefinetly.\n"},"group":{"type":"string","description":"Assigning the group to a security profile or an access list, will enable use of all passphrases defined under it.\n"},"isolation":{"type":"boolean","description":"Determines whether the client device using this passphrase is isolated from other clients on AP. Traffic from an isolated client will not be forwarded to other clients and unicast traffic from a non-isolated client will not be forwarded to an isolated one.\n"},"passphrase":{"type":"string","description":"The passphrase to use for PSK authentication types. Multiple users can use the same passphrase. Not compatible with WPA3-PSK.\n","secret":true},"vlanId":{"type":"number","description":"vlan-id that will be assigned to clients using this passphrase Only supported on wifi-qcom interfaces, if wifi-qcom-ac AP has a client that uses a passphrase that has vlan-id associated with it, the client will not be able to join.\n"},"wifiSecurityMultiPassphraseId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["group","wifiSecurityMultiPassphraseId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"expires":{"type":"string","description":"The expiration date and time for passphrase specified in this entry, doesn't affect the whole group. Once the date is reached, existing clients using this passphrase will be disconnected, and new clients will not be able to connect using it. If not set, passphrase can be used indefinetly.\n"},"group":{"type":"string","description":"Assigning the group to a security profile or an access list, will enable use of all passphrases defined under it.\n"},"isolation":{"type":"boolean","description":"Determines whether the client device using this passphrase is isolated from other clients on AP. Traffic from an isolated client will not be forwarded to other clients and unicast traffic from a non-isolated client will not be forwarded to an isolated one.\n"},"passphrase":{"type":"string","description":"The passphrase to use for PSK authentication types. Multiple users can use the same passphrase. Not compatible with WPA3-PSK.\n","secret":true},"vlanId":{"type":"number","description":"vlan-id that will be assigned to clients using this passphrase Only supported on wifi-qcom interfaces, if wifi-qcom-ac AP has a client that uses a passphrase that has vlan-id associated with it, the client will not be able to join.\n"},"wifiSecurityMultiPassphraseId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["group"],"stateInputs":{"description":"Input properties used for looking up and filtering WifiSecurityMultiPassphrase resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"expires":{"type":"string","description":"The expiration date and time for passphrase specified in this entry, doesn't affect the whole group. Once the date is reached, existing clients using this passphrase will be disconnected, and new clients will not be able to connect using it. If not set, passphrase can be used indefinetly.\n"},"group":{"type":"string","description":"Assigning the group to a security profile or an access list, will enable use of all passphrases defined under it.\n"},"isolation":{"type":"boolean","description":"Determines whether the client device using this passphrase is isolated from other clients on AP. Traffic from an isolated client will not be forwarded to other clients and unicast traffic from a non-isolated client will not be forwarded to an isolated one.\n"},"passphrase":{"type":"string","description":"The passphrase to use for PSK authentication types. Multiple users can use the same passphrase. Not compatible with WPA3-PSK.\n","secret":true},"vlanId":{"type":"number","description":"vlan-id that will be assigned to clients using this passphrase Only supported on wifi-qcom interfaces, if wifi-qcom-ac AP has a client that uses a passphrase that has vlan-id associated with it, the client will not be able to join.\n"},"wifiSecurityMultiPassphraseId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/wifiSteering:WifiSteering":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WifiSteering \" pulumi-lang-dotnet=\" routeros.WifiSteering \" pulumi-lang-go=\" WifiSteering \" pulumi-lang-python=\" WifiSteering \" pulumi-lang-yaml=\" routeros.WifiSteering \" pulumi-lang-java=\" routeros.WifiSteering \"\u003e routeros.WifiSteering \u003c/span\u003e(Resource)\n\n*\u003cspan style=\"color:red\"\u003eThis resource requires a minimum version of RouterOS 7.13.\u003c/span\u003e*\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst steering1 = new routeros.WifiSteering(\"steering1\", {\n    name: \"steering1\",\n    neighborGroups: [\"something\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nsteering1 = routeros.WifiSteering(\"steering1\",\n    name=\"steering1\",\n    neighbor_groups=[\"something\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var steering1 = new Routeros.WifiSteering(\"steering1\", new()\n    {\n        Name = \"steering1\",\n        NeighborGroups = new[]\n        {\n            \"something\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.NewWifiSteering(ctx, \"steering1\", \u0026routeros.WifiSteeringArgs{\n\t\t\tName: pulumi.String(\"steering1\"),\n\t\t\tNeighborGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"something\"),\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.routeros.WifiSteering;\nimport com.pulumi.routeros.WifiSteeringArgs;\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 steering1 = new WifiSteering(\"steering1\", WifiSteeringArgs.builder()\n            .name(\"steering1\")\n            .neighborGroups(\"something\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  steering1:\n    type: routeros:WifiSteering\n    properties:\n      name: steering1\n      neighborGroups:\n        - something\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/interface/wifi/steering get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/wifiSteering:WifiSteering steering1 '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/wifiSteering:WifiSteering steering1 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"name":{"type":"string","description":"Name of the steering profile.\n"},"neighborGroups":{"type":"array","items":{"type":"string"},"description":"Neighbor group of potential roaming candidates.\n"},"rrm":{"type":"boolean","description":"An option to enable sending 802.11k neighbor reports.\n"},"wifiSteeringId":{"type":"string","description":"The ID of this resource.\n"},"wnm":{"type":"boolean","description":"An option to enable sending 802.11v BSS transition management requests.\n"}},"type":"object","required":["name","wifiSteeringId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"name":{"type":"string","description":"Name of the steering profile.\n"},"neighborGroups":{"type":"array","items":{"type":"string"},"description":"Neighbor group of potential roaming candidates.\n"},"rrm":{"type":"boolean","description":"An option to enable sending 802.11k neighbor reports.\n"},"wifiSteeringId":{"type":"string","description":"The ID of this resource.\n"},"wnm":{"type":"boolean","description":"An option to enable sending 802.11v BSS transition management requests.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering WifiSteering resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"name":{"type":"string","description":"Name of the steering profile.\n"},"neighborGroups":{"type":"array","items":{"type":"string"},"description":"Neighbor group of potential roaming candidates.\n"},"rrm":{"type":"boolean","description":"An option to enable sending 802.11k neighbor reports.\n"},"wifiSteeringId":{"type":"string","description":"The ID of this resource.\n"},"wnm":{"type":"boolean","description":"An option to enable sending 802.11v BSS transition management requests.\n"}},"type":"object"}},"routeros:index/wireguard:Wireguard":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.Wireguard \" pulumi-lang-dotnet=\" routeros.Wireguard \" pulumi-lang-go=\" Wireguard \" pulumi-lang-python=\" Wireguard \" pulumi-lang-yaml=\" routeros.Wireguard \" pulumi-lang-java=\" routeros.Wireguard \"\u003e routeros.Wireguard \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceWireguard\n\" pulumi-lang-dotnet=\" routeros.InterfaceWireguard\n\" pulumi-lang-go=\" InterfaceWireguard\n\" pulumi-lang-python=\" InterfaceWireguard\n\" pulumi-lang-yaml=\" routeros.InterfaceWireguard\n\" pulumi-lang-java=\" routeros.InterfaceWireguard\n\"\u003e routeros.InterfaceWireguard\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"listenPort":{"type":"number","description":"Port for WireGuard service to listen on for incoming sessions."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string"},"privateKey":{"type":"string","description":"A base64 private key. If not specified, it will be automatically generated upon interface creation.","secret":true},"publicKey":{"type":"string","description":"A base64 public key is calculated from the private key."},"running":{"type":"boolean"},"wireguardId":{"type":"string"}},"type":"object","required":["listenPort","mtu","name","privateKey","publicKey","running","wireguardId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"listenPort":{"type":"number","description":"Port for WireGuard service to listen on for incoming sessions."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string"},"privateKey":{"type":"string","description":"A base64 private key. If not specified, it will be automatically generated upon interface creation.","secret":true},"wireguardId":{"type":"string"}},"requiredInputs":["listenPort"],"stateInputs":{"description":"Input properties used for looking up and filtering Wireguard resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"listenPort":{"type":"number","description":"Port for WireGuard service to listen on for incoming sessions."},"mtu":{"type":"string","description":"Layer3 Maximum transmission unit ('auto', 0 .. 65535). Look for the exact minimum value in the MikroTik documentation"},"name":{"type":"string"},"privateKey":{"type":"string","description":"A base64 private key. If not specified, it will be automatically generated upon interface creation.","secret":true},"publicKey":{"type":"string","description":"A base64 public key is calculated from the private key."},"running":{"type":"boolean"},"wireguardId":{"type":"string"}},"type":"object"}},"routeros:index/wireguardKeys:WireguardKeys":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WireguardKeys \" pulumi-lang-dotnet=\" routeros.WireguardKeys \" pulumi-lang-go=\" WireguardKeys \" pulumi-lang-python=\" WireguardKeys \" pulumi-lang-yaml=\" routeros.WireguardKeys \" pulumi-lang-java=\" routeros.WireguardKeys \"\u003e routeros.WireguardKeys \u003c/span\u003e(Resource)\n\nCreating key sets for WireGuard tunnels.\n\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"keys":{"type":"array","items":{"$ref":"#/types/routeros:index%2FWireguardKeysKey:WireguardKeysKey"},"secret":true},"number":{"type":"number","description":"The number of key sets.\n"},"wireguardKeysId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["keys","wireguardKeysId"],"inputProperties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"number":{"type":"number","description":"The number of key sets.\n"},"wireguardKeysId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering WireguardKeys resources.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"keys":{"type":"array","items":{"$ref":"#/types/routeros:index%2FWireguardKeysKey:WireguardKeysKey"},"secret":true},"number":{"type":"number","description":"The number of key sets.\n"},"wireguardKeysId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/wireguardPeer:WireguardPeer":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.WireguardPeer \" pulumi-lang-dotnet=\" routeros.WireguardPeer \" pulumi-lang-go=\" WireguardPeer \" pulumi-lang-python=\" WireguardPeer \" pulumi-lang-yaml=\" routeros.WireguardPeer \" pulumi-lang-java=\" routeros.WireguardPeer \"\u003e routeros.WireguardPeer \u003c/span\u003e(Resource)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.InterfaceWireguardPeer\n\" pulumi-lang-dotnet=\" routeros.InterfaceWireguardPeer\n\" pulumi-lang-go=\" InterfaceWireguardPeer\n\" pulumi-lang-python=\" InterfaceWireguardPeer\n\" pulumi-lang-yaml=\" routeros.InterfaceWireguardPeer\n\" pulumi-lang-java=\" routeros.InterfaceWireguardPeer\n\"\u003e routeros.InterfaceWireguardPeer\n\u003c/span\u003e\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowedAddresses":{"type":"array","items":{"type":"string"},"description":"List of IP (v4 or v6) addresses with CIDR masks from which incoming traffic for this peer is allowed and to which outgoing traffic for this peer is directed. The catch-all 0.0.0.0/0 may be specified for matching all IPv4 addresses, and ::/0 may be specified for matching all IPv6 addresses."},"clientAddress":{"type":"string","description":"When imported using a qr code for a client (for example, a phone), then this address for the wg interface is set on that device."},"clientDns":{"type":"string","description":"Specify when using WireGuard Server as a VPN gateway for peer traffic."},"clientEndpoint":{"type":"string","description":"The IP address and port number of the WireGuard Server."},"clientKeepalive":{"type":"string","description":"Same as persistent-keepalive but from peer side."},"clientListenPort":{"type":"number","description":"The local port upon which this WireGuard tunnel will listen for incoming traffic from peers, and the port from which it will source outgoing packets."},"comment":{"type":"string"},"currentEndpointAddress":{"type":"string","description":"The most recent source IP address of correctly authenticated packets from the peer."},"currentEndpointPort":{"type":"number","description":"The most recent source IP port of correctly authenticated packets from the peer."},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"endpointAddress":{"type":"string","description":"An endpoint IP or hostname can be left blank to allow remote connection from any address."},"endpointPort":{"type":"string","description":"An endpoint port can be left blank to allow remote connection from any port."},"interface":{"type":"string","description":"Name of the interface."},"isResponder":{"type":"boolean","description":"Specifies if peer is intended to be connection initiator or only responder. Should be used on WireGuard devices that are used as \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e for other devices as clients to connect to. Otherwise router will all repeatedly try to connect `endpoint-address` or `current-endpoint-address` causing unnecessary system logs to be written."},"lastHandshake":{"type":"string","description":"Time in seconds after the last successful handshake."},"name":{"type":"string","description":"Name of the tunnel."},"persistentKeepalive":{"type":"string","description":"A seconds interval, between 1 and 65535 inclusive, of how often to send an authenticated empty packet to the peer for the purpose of keeping a stateful firewall or NAT mapping valid persistently. For example, if the interface very rarely sends traffic, but it might at anytime receive traffic from a peer, and it is behind NAT, the interface might benefit from having a persistent keepalive interval of 25 seconds."},"presharedKey":{"type":"string","description":"A **base64** preshared key. Optional, and may be omitted. This option adds an additional layer of symmetric-key cryptography to be mixed into the already existing public-key cryptography, for post-quantum resistance.","secret":true},"privateKey":{"type":"string","description":"A base64 private key. If not specified, it will be automatically generated upon interface creation."},"publicKey":{"type":"string","description":"The remote peer's calculated public key."},"rx":{"type":"string","description":"The total amount of bytes received from the peer."},"tx":{"type":"string","description":"The total amount of bytes transmitted to the peer."},"wireguardPeerId":{"type":"string"}},"type":"object","required":["allowedAddresses","currentEndpointAddress","currentEndpointPort","dynamic","endpointAddress","endpointPort","interface","lastHandshake","name","publicKey","rx","tx","wireguardPeerId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowedAddresses":{"type":"array","items":{"type":"string"},"description":"List of IP (v4 or v6) addresses with CIDR masks from which incoming traffic for this peer is allowed and to which outgoing traffic for this peer is directed. The catch-all 0.0.0.0/0 may be specified for matching all IPv4 addresses, and ::/0 may be specified for matching all IPv6 addresses."},"clientAddress":{"type":"string","description":"When imported using a qr code for a client (for example, a phone), then this address for the wg interface is set on that device."},"clientDns":{"type":"string","description":"Specify when using WireGuard Server as a VPN gateway for peer traffic."},"clientEndpoint":{"type":"string","description":"The IP address and port number of the WireGuard Server."},"clientKeepalive":{"type":"string","description":"Same as persistent-keepalive but from peer side."},"clientListenPort":{"type":"number","description":"The local port upon which this WireGuard tunnel will listen for incoming traffic from peers, and the port from which it will source outgoing packets."},"comment":{"type":"string"},"disabled":{"type":"boolean"},"endpointAddress":{"type":"string","description":"An endpoint IP or hostname can be left blank to allow remote connection from any address."},"endpointPort":{"type":"string","description":"An endpoint port can be left blank to allow remote connection from any port."},"interface":{"type":"string","description":"Name of the interface."},"isResponder":{"type":"boolean","description":"Specifies if peer is intended to be connection initiator or only responder. Should be used on WireGuard devices that are used as \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e for other devices as clients to connect to. Otherwise router will all repeatedly try to connect `endpoint-address` or `current-endpoint-address` causing unnecessary system logs to be written."},"name":{"type":"string","description":"Name of the tunnel."},"persistentKeepalive":{"type":"string","description":"A seconds interval, between 1 and 65535 inclusive, of how often to send an authenticated empty packet to the peer for the purpose of keeping a stateful firewall or NAT mapping valid persistently. For example, if the interface very rarely sends traffic, but it might at anytime receive traffic from a peer, and it is behind NAT, the interface might benefit from having a persistent keepalive interval of 25 seconds."},"presharedKey":{"type":"string","description":"A **base64** preshared key. Optional, and may be omitted. This option adds an additional layer of symmetric-key cryptography to be mixed into the already existing public-key cryptography, for post-quantum resistance.","secret":true},"privateKey":{"type":"string","description":"A base64 private key. If not specified, it will be automatically generated upon interface creation."},"publicKey":{"type":"string","description":"The remote peer's calculated public key."},"wireguardPeerId":{"type":"string"}},"requiredInputs":["allowedAddresses","interface","publicKey"],"stateInputs":{"description":"Input properties used for looking up and filtering WireguardPeer resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowedAddresses":{"type":"array","items":{"type":"string"},"description":"List of IP (v4 or v6) addresses with CIDR masks from which incoming traffic for this peer is allowed and to which outgoing traffic for this peer is directed. The catch-all 0.0.0.0/0 may be specified for matching all IPv4 addresses, and ::/0 may be specified for matching all IPv6 addresses."},"clientAddress":{"type":"string","description":"When imported using a qr code for a client (for example, a phone), then this address for the wg interface is set on that device."},"clientDns":{"type":"string","description":"Specify when using WireGuard Server as a VPN gateway for peer traffic."},"clientEndpoint":{"type":"string","description":"The IP address and port number of the WireGuard Server."},"clientKeepalive":{"type":"string","description":"Same as persistent-keepalive but from peer side."},"clientListenPort":{"type":"number","description":"The local port upon which this WireGuard tunnel will listen for incoming traffic from peers, and the port from which it will source outgoing packets."},"comment":{"type":"string"},"currentEndpointAddress":{"type":"string","description":"The most recent source IP address of correctly authenticated packets from the peer."},"currentEndpointPort":{"type":"number","description":"The most recent source IP port of correctly authenticated packets from the peer."},"disabled":{"type":"boolean"},"dynamic":{"type":"boolean","description":"Configuration item created by software, not by management interface. It is not exported, and cannot be directly modified."},"endpointAddress":{"type":"string","description":"An endpoint IP or hostname can be left blank to allow remote connection from any address."},"endpointPort":{"type":"string","description":"An endpoint port can be left blank to allow remote connection from any port."},"interface":{"type":"string","description":"Name of the interface."},"isResponder":{"type":"boolean","description":"Specifies if peer is intended to be connection initiator or only responder. Should be used on WireGuard devices that are used as \u003cspan pulumi-lang-nodejs=\"`servers`\" pulumi-lang-dotnet=\"`Servers`\" pulumi-lang-go=\"`servers`\" pulumi-lang-python=\"`servers`\" pulumi-lang-yaml=\"`servers`\" pulumi-lang-java=\"`servers`\"\u003e`servers`\u003c/span\u003e for other devices as clients to connect to. Otherwise router will all repeatedly try to connect `endpoint-address` or `current-endpoint-address` causing unnecessary system logs to be written."},"lastHandshake":{"type":"string","description":"Time in seconds after the last successful handshake."},"name":{"type":"string","description":"Name of the tunnel."},"persistentKeepalive":{"type":"string","description":"A seconds interval, between 1 and 65535 inclusive, of how often to send an authenticated empty packet to the peer for the purpose of keeping a stateful firewall or NAT mapping valid persistently. For example, if the interface very rarely sends traffic, but it might at anytime receive traffic from a peer, and it is behind NAT, the interface might benefit from having a persistent keepalive interval of 25 seconds."},"presharedKey":{"type":"string","description":"A **base64** preshared key. Optional, and may be omitted. This option adds an additional layer of symmetric-key cryptography to be mixed into the already existing public-key cryptography, for post-quantum resistance.","secret":true},"privateKey":{"type":"string","description":"A base64 private key. If not specified, it will be automatically generated upon interface creation."},"publicKey":{"type":"string","description":"The remote peer's calculated public key."},"rx":{"type":"string","description":"The total amount of bytes received from the peer."},"tx":{"type":"string","description":"The total amount of bytes transmitted to the peer."},"wireguardPeerId":{"type":"string"}},"type":"object"}},"routeros:index/zerotier:Zerotier":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\nimport * as zerotier from \"@pulumi/zerotier\";\n\nconst identity = new zerotier.index.Identity(\"identity\", {});\nconst zt1 = new routeros.Zerotier(\"zt1\", {\n    comment: \"ZeroTier Central\",\n    identity: identity.privateKey,\n    interfaces: [\"all\"],\n    name: \"zt1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\nimport pulumi_zerotier as zerotier\n\nidentity = zerotier.index.Identity(\"identity\")\nzt1 = routeros.Zerotier(\"zt1\",\n    comment=\"ZeroTier Central\",\n    identity=identity[\"privateKey\"],\n    interfaces=[\"all\"],\n    name=\"zt1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\nusing Zerotier = Pulumi.Zerotier;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var identity = new Zerotier.Index.Identity(\"identity\");\n\n    var zt1 = new Routeros.Zerotier(\"zt1\", new()\n    {\n        Comment = \"ZeroTier Central\",\n        Identity = identity.PrivateKey,\n        Interfaces = new[]\n        {\n            \"all\",\n        },\n        Name = \"zt1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi-zerotier/sdk/go/zerotier\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tidentity, err := zerotier.NewIdentity(ctx, \"identity\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewZerotier(ctx, \"zt1\", \u0026routeros.ZerotierArgs{\n\t\t\tComment:  pulumi.String(\"ZeroTier Central\"),\n\t\t\tIdentity: identity.PrivateKey,\n\t\t\tInterfaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"all\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"zt1\"),\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.zerotier.Identity;\nimport com.pulumi.routeros.Zerotier;\nimport com.pulumi.routeros.ZerotierArgs;\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 identity = new Identity(\"identity\");\n\n        var zt1 = new Zerotier(\"zt1\", ZerotierArgs.builder()\n            .comment(\"ZeroTier Central\")\n            .identity(identity.privateKey())\n            .interfaces(\"all\")\n            .name(\"zt1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  identity:\n    type: zerotier:Identity\n  zt1:\n    type: routeros:Zerotier\n    properties:\n      comment: ZeroTier Central\n      identity: ${identity.privateKey}\n      interfaces:\n        - all\n      name: zt1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/zerotier get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/zerotier:Zerotier zt1 '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/zerotier:Zerotier zt1 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"identity":{"type":"string","description":"The 40-bit unique instance address.\n"},"identityPublic":{"type":"string","description":"The public identity of the ZeroTier instance.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"The interfaces to discover ZeroTier peers by ARP and IP type connections.\n"},"name":{"type":"string","description":"Name of the ZeroTier instance.\n"},"online":{"type":"boolean","description":"A flag whether the ZeroTier instance is currently online.\n"},"port":{"type":"number","description":"The port number the instance listens to.\n"},"routeDistance":{"type":"number","description":"The route distance for routes obtained from the planet/moon server.\n"},"state":{"type":"string","description":"The state of the ZeroTier instance.\n"},"zerotierId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["identityPublic","name","online","state","zerotierId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"identity":{"type":"string","description":"The 40-bit unique instance address.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"The interfaces to discover ZeroTier peers by ARP and IP type connections.\n"},"name":{"type":"string","description":"Name of the ZeroTier instance.\n"},"port":{"type":"number","description":"The port number the instance listens to.\n"},"routeDistance":{"type":"number","description":"The route distance for routes obtained from the planet/moon server.\n"},"zerotierId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Zerotier resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___ts_":{"type":"string","description":"\u003cem\u003eA set of transformations for field names. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"identity":{"type":"string","description":"The 40-bit unique instance address.\n"},"identityPublic":{"type":"string","description":"The public identity of the ZeroTier instance.\n"},"interfaces":{"type":"array","items":{"type":"string"},"description":"The interfaces to discover ZeroTier peers by ARP and IP type connections.\n"},"name":{"type":"string","description":"Name of the ZeroTier instance.\n"},"online":{"type":"boolean","description":"A flag whether the ZeroTier instance is currently online.\n"},"port":{"type":"number","description":"The port number the instance listens to.\n"},"routeDistance":{"type":"number","description":"The route distance for routes obtained from the planet/moon server.\n"},"state":{"type":"string","description":"The state of the ZeroTier instance.\n"},"zerotierId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/zerotierController:ZerotierController":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\nimport * as zerotier from \"@pulumi/zerotier\";\n\nconst identity = new zerotier.index.Identity(\"identity\", {});\nconst zt1 = new routeros.Zerotier(\"zt1\", {\n    comment: \"ZeroTier Central\",\n    identity: identity.privateKey,\n    interfaces: [\"all\"],\n    name: \"zt1\",\n});\nconst test = new routeros.ZerotierController(\"test\", {\n    instance: zt1.name,\n    name: \"test\",\n    network: \"1234567812345678\",\n    \"private\": true,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\nimport pulumi_zerotier as zerotier\n\nidentity = zerotier.index.Identity(\"identity\")\nzt1 = routeros.Zerotier(\"zt1\",\n    comment=\"ZeroTier Central\",\n    identity=identity[\"privateKey\"],\n    interfaces=[\"all\"],\n    name=\"zt1\")\ntest = routeros.ZerotierController(\"test\",\n    instance=zt1.name,\n    name=\"test\",\n    network=\"1234567812345678\",\n    private=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\nusing Zerotier = Pulumi.Zerotier;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var identity = new Zerotier.Index.Identity(\"identity\");\n\n    var zt1 = new Routeros.Zerotier(\"zt1\", new()\n    {\n        Comment = \"ZeroTier Central\",\n        Identity = identity.PrivateKey,\n        Interfaces = new[]\n        {\n            \"all\",\n        },\n        Name = \"zt1\",\n    });\n\n    var test = new Routeros.ZerotierController(\"test\", new()\n    {\n        Instance = zt1.Name,\n        Name = \"test\",\n        Network = \"1234567812345678\",\n        Private = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi-zerotier/sdk/go/zerotier\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tidentity, err := zerotier.NewIdentity(ctx, \"identity\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzt1, err := routeros.NewZerotier(ctx, \"zt1\", \u0026routeros.ZerotierArgs{\n\t\t\tComment:  pulumi.String(\"ZeroTier Central\"),\n\t\t\tIdentity: identity.PrivateKey,\n\t\t\tInterfaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"all\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"zt1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewZerotierController(ctx, \"test\", \u0026routeros.ZerotierControllerArgs{\n\t\t\tInstance: zt1.Name,\n\t\t\tName:     pulumi.String(\"test\"),\n\t\t\tNetwork:  pulumi.String(\"1234567812345678\"),\n\t\t\tPrivate:  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.zerotier.Identity;\nimport com.pulumi.routeros.Zerotier;\nimport com.pulumi.routeros.ZerotierArgs;\nimport com.pulumi.routeros.ZerotierController;\nimport com.pulumi.routeros.ZerotierControllerArgs;\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 identity = new Identity(\"identity\");\n\n        var zt1 = new Zerotier(\"zt1\", ZerotierArgs.builder()\n            .comment(\"ZeroTier Central\")\n            .identity(identity.privateKey())\n            .interfaces(\"all\")\n            .name(\"zt1\")\n            .build());\n\n        var test = new ZerotierController(\"test\", ZerotierControllerArgs.builder()\n            .instance(zt1.name())\n            .name(\"test\")\n            .network(\"1234567812345678\")\n            .private_(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  identity:\n    type: zerotier:Identity\n  zt1:\n    type: routeros:Zerotier\n    properties:\n      comment: ZeroTier Central\n      identity: ${identity.privateKey}\n      interfaces:\n        - all\n      name: zt1\n  test:\n    type: routeros:ZerotierController\n    properties:\n      instance: ${zt1.name}\n      name: test\n      network: '1234567812345678'\n      private: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/zerotier/controller get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/zerotierController:ZerotierController test '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/zerotierController:ZerotierController test \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"broadcast":{"type":"boolean","description":"An option to allow receiving broadcast packets.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"inactive":{"type":"boolean","description":"A flag whether the ZeroTier network is inactive.\n"},"instance":{"type":"string","description":"The ZeroTier instance name.\n"},"ip66plane":{"type":"boolean","description":"An option to assign every member a `/80` address within a `/40` network with using NDP emulation.\n"},"ip6Range":{"type":"string","description":"The IPv6 range of the ZeroTier network.\n"},"ip6Rfc4193":{"type":"boolean","description":"An option to assign every member a `/128` address within a `/88` network.\n"},"ipRange":{"type":"string","description":"The IP range of the ZeroTier network.\n"},"mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"multicastLimit":{"type":"number","description":"An option to limit the maximum recipients of a multicast packet.\n"},"name":{"type":"string","description":"Name of the ZeroTier controller.\n"},"network":{"type":"string","description":"The ZeroTier network identifier.\n"},"private":{"type":"boolean","description":"The ZeroTier network access control.\n"},"routes":{"type":"array","items":{"type":"string"},"description":"The routes list that will be pushed to the client.\n"},"zerotierControllerId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["inactive","instance","name","network","zerotierControllerId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"broadcast":{"type":"boolean","description":"An option to allow receiving broadcast packets.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"instance":{"type":"string","description":"The ZeroTier instance name.\n"},"ip66plane":{"type":"boolean","description":"An option to assign every member a `/80` address within a `/40` network with using NDP emulation.\n"},"ip6Range":{"type":"string","description":"The IPv6 range of the ZeroTier network.\n"},"ip6Rfc4193":{"type":"boolean","description":"An option to assign every member a `/128` address within a `/88` network.\n"},"ipRange":{"type":"string","description":"The IP range of the ZeroTier network.\n"},"mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"multicastLimit":{"type":"number","description":"An option to limit the maximum recipients of a multicast packet.\n"},"name":{"type":"string","description":"Name of the ZeroTier controller.\n"},"network":{"type":"string","description":"The ZeroTier network identifier.\n"},"private":{"type":"boolean","description":"The ZeroTier network access control.\n"},"routes":{"type":"array","items":{"type":"string"},"description":"The routes list that will be pushed to the client.\n"},"zerotierControllerId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["instance","network"],"stateInputs":{"description":"Input properties used for looking up and filtering ZerotierController resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"broadcast":{"type":"boolean","description":"An option to allow receiving broadcast packets.\n"},"comment":{"type":"string"},"disabled":{"type":"boolean"},"inactive":{"type":"boolean","description":"A flag whether the ZeroTier network is inactive.\n"},"instance":{"type":"string","description":"The ZeroTier instance name.\n"},"ip66plane":{"type":"boolean","description":"An option to assign every member a `/80` address within a `/40` network with using NDP emulation.\n"},"ip6Range":{"type":"string","description":"The IPv6 range of the ZeroTier network.\n"},"ip6Rfc4193":{"type":"boolean","description":"An option to assign every member a `/128` address within a `/88` network.\n"},"ipRange":{"type":"string","description":"The IP range of the ZeroTier network.\n"},"mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"multicastLimit":{"type":"number","description":"An option to limit the maximum recipients of a multicast packet.\n"},"name":{"type":"string","description":"Name of the ZeroTier controller.\n"},"network":{"type":"string","description":"The ZeroTier network identifier.\n"},"private":{"type":"boolean","description":"The ZeroTier network access control.\n"},"routes":{"type":"array","items":{"type":"string"},"description":"The routes list that will be pushed to the client.\n"},"zerotierControllerId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"routeros:index/zerotierInterface:ZerotierInterface":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\nimport * as zerotier from \"@pulumi/zerotier\";\n\nconst identity = new zerotier.index.Identity(\"identity\", {});\nconst network = new zerotier.index.Network(\"network\", {name: \"test\"});\nconst member = new zerotier.index.Member(\"member\", {\n    authorized: true,\n    memberId: identity.id,\n    name: \"test\",\n    networkId: network.id,\n    hidden: false,\n    allowEthernetBridging: true,\n    noAutoAssignIps: true,\n});\nconst zt1 = new routeros.Zerotier(\"zt1\", {\n    comment: \"ZeroTier Central\",\n    identity: identity.privateKey,\n    interfaces: [\"all\"],\n    name: \"zt1\",\n});\nconst zerotier1 = new routeros.ZerotierInterface(\"zerotier1\", {\n    allowDefault: false,\n    allowGlobal: false,\n    allowManaged: false,\n    instance: zt1.name,\n    name: \"zerotier1\",\n    network: network.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\nimport pulumi_zerotier as zerotier\n\nidentity = zerotier.index.Identity(\"identity\")\nnetwork = zerotier.index.Network(\"network\", name=test)\nmember = zerotier.index.Member(\"member\",\n    authorized=True,\n    member_id=identity.id,\n    name=test,\n    network_id=network.id,\n    hidden=False,\n    allow_ethernet_bridging=True,\n    no_auto_assign_ips=True)\nzt1 = routeros.Zerotier(\"zt1\",\n    comment=\"ZeroTier Central\",\n    identity=identity[\"privateKey\"],\n    interfaces=[\"all\"],\n    name=\"zt1\")\nzerotier1 = routeros.ZerotierInterface(\"zerotier1\",\n    allow_default=False,\n    allow_global=False,\n    allow_managed=False,\n    instance=zt1.name,\n    name=\"zerotier1\",\n    network=network[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\nusing Zerotier = Pulumi.Zerotier;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var identity = new Zerotier.Index.Identity(\"identity\");\n\n    var network = new Zerotier.Index.Network(\"network\", new()\n    {\n        Name = \"test\",\n    });\n\n    var member = new Zerotier.Index.Member(\"member\", new()\n    {\n        Authorized = true,\n        MemberId = identity.Id,\n        Name = \"test\",\n        NetworkId = network.Id,\n        Hidden = false,\n        AllowEthernetBridging = true,\n        NoAutoAssignIps = true,\n    });\n\n    var zt1 = new Routeros.Zerotier(\"zt1\", new()\n    {\n        Comment = \"ZeroTier Central\",\n        Identity = identity.PrivateKey,\n        Interfaces = new[]\n        {\n            \"all\",\n        },\n        Name = \"zt1\",\n    });\n\n    var zerotier1 = new Routeros.ZerotierInterface(\"zerotier1\", new()\n    {\n        AllowDefault = false,\n        AllowGlobal = false,\n        AllowManaged = false,\n        Instance = zt1.Name,\n        Name = \"zerotier1\",\n        Network = network.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi-zerotier/sdk/go/zerotier\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tidentity, err := zerotier.NewIdentity(ctx, \"identity\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := zerotier.NewNetwork(ctx, \"network\", \u0026zerotier.NetworkArgs{\n\t\t\tName: \"test\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = zerotier.NewMember(ctx, \"member\", \u0026zerotier.MemberArgs{\n\t\t\tAuthorized:            true,\n\t\t\tMemberId:              identity.Id,\n\t\t\tName:                  \"test\",\n\t\t\tNetworkId:             network.Id,\n\t\t\tHidden:                false,\n\t\t\tAllowEthernetBridging: true,\n\t\t\tNoAutoAssignIps:       true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzt1, err := routeros.NewZerotier(ctx, \"zt1\", \u0026routeros.ZerotierArgs{\n\t\t\tComment:  pulumi.String(\"ZeroTier Central\"),\n\t\t\tIdentity: identity.PrivateKey,\n\t\t\tInterfaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"all\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"zt1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = routeros.NewZerotierInterface(ctx, \"zerotier1\", \u0026routeros.ZerotierInterfaceArgs{\n\t\t\tAllowDefault: pulumi.Bool(false),\n\t\t\tAllowGlobal:  pulumi.Bool(false),\n\t\t\tAllowManaged: pulumi.Bool(false),\n\t\t\tInstance:     zt1.Name,\n\t\t\tName:         pulumi.String(\"zerotier1\"),\n\t\t\tNetwork:      network.Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.zerotier.Identity;\nimport com.pulumi.zerotier.Network;\nimport com.pulumi.zerotier.NetworkArgs;\nimport com.pulumi.zerotier.Member;\nimport com.pulumi.zerotier.MemberArgs;\nimport com.pulumi.routeros.Zerotier;\nimport com.pulumi.routeros.ZerotierArgs;\nimport com.pulumi.routeros.ZerotierInterface;\nimport com.pulumi.routeros.ZerotierInterfaceArgs;\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 identity = new Identity(\"identity\");\n\n        var network = new Network(\"network\", NetworkArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var member = new Member(\"member\", MemberArgs.builder()\n            .authorized(true)\n            .memberId(identity.id())\n            .name(\"test\")\n            .networkId(network.id())\n            .hidden(false)\n            .allowEthernetBridging(true)\n            .noAutoAssignIps(true)\n            .build());\n\n        var zt1 = new Zerotier(\"zt1\", ZerotierArgs.builder()\n            .comment(\"ZeroTier Central\")\n            .identity(identity.privateKey())\n            .interfaces(\"all\")\n            .name(\"zt1\")\n            .build());\n\n        var zerotier1 = new ZerotierInterface(\"zerotier1\", ZerotierInterfaceArgs.builder()\n            .allowDefault(false)\n            .allowGlobal(false)\n            .allowManaged(false)\n            .instance(zt1.name())\n            .name(\"zerotier1\")\n            .network(network.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  identity:\n    type: zerotier:Identity\n  network:\n    type: zerotier:Network\n    properties:\n      name: test\n  member:\n    type: zerotier:Member\n    properties:\n      authorized: true\n      memberId: ${identity.id}\n      name: test\n      networkId: ${network.id}\n      hidden: false\n      allowEthernetBridging: true\n      noAutoAssignIps: true\n  zt1:\n    type: routeros:Zerotier\n    properties:\n      comment: ZeroTier Central\n      identity: ${identity.privateKey}\n      interfaces:\n        - all\n      name: zt1\n  zerotier1:\n    type: routeros:ZerotierInterface\n    properties:\n      allowDefault: false\n      allowGlobal: false\n      allowManaged: false\n      instance: ${zt1.name}\n      name: zerotier1\n      network: ${network.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n#The ID can be found via API or the terminal\n\n#The command for the terminal is -\u003e :put [/zerotier/interface get [print show-ids]]\n\n```sh\n$ pulumi import routeros:index/zerotierInterface:ZerotierInterface zerotier1 '*1'\n```\n\n#Or you can import a resource using one of its attributes\n\n```sh\n$ pulumi import routeros:index/zerotierInterface:ZerotierInterface zerotier1 \"name=xxx\"\n```\n\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowDefault":{"type":"boolean","description":"An option to override the default route.\n"},"allowGlobal":{"type":"boolean","description":"An option to allow overlapping public IP space by the ZeroTier routes. .\n"},"allowManaged":{"type":"boolean","description":"An option to allow assignment of managed IPs.\n"},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used.\n"},"bridge":{"type":"boolean","description":"A flag whether the ZeroTier interface is bridged.\n"},"comment":{"type":"string"},"dhcp":{"type":"boolean","description":"A flag whether the ZeroTier interface obtained an IP address.\n"},"disableRunningCheck":{"type":"boolean","description":"An option to force the \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e property to true.\n"},"disabled":{"type":"boolean"},"instance":{"type":"string","description":"The ZeroTier instance name.\n"},"macAddress":{"type":"string","description":"Current mac address.\n"},"mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"name":{"type":"string","description":"Name of the ZeroTier interface.\n"},"network":{"type":"string","description":"The ZeroTier network identifier.\n"},"networkName":{"type":"string","description":"The ZeroTier network name.\n"},"running":{"type":"boolean"},"status":{"type":"string","description":"The status of the ZeroTier connection.\n"},"type":{"type":"string","description":"The ZeroTier network type.\n"},"zerotierInterfaceId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["bridge","dhcp","instance","macAddress","mtu","name","network","networkName","running","status","type","zerotierInterfaceId"],"inputProperties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowDefault":{"type":"boolean","description":"An option to override the default route.\n"},"allowGlobal":{"type":"boolean","description":"An option to allow overlapping public IP space by the ZeroTier routes. .\n"},"allowManaged":{"type":"boolean","description":"An option to allow assignment of managed IPs.\n"},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used.\n"},"comment":{"type":"string"},"disableRunningCheck":{"type":"boolean","description":"An option to force the \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e property to true.\n"},"disabled":{"type":"boolean"},"instance":{"type":"string","description":"The ZeroTier instance name.\n"},"name":{"type":"string","description":"Name of the ZeroTier interface.\n"},"network":{"type":"string","description":"The ZeroTier network identifier.\n"},"zerotierInterfaceId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["instance","network"],"stateInputs":{"description":"Input properties used for looking up and filtering ZerotierInterface resources.\n","properties":{"___id_":{"type":"number","description":"\u003cem\u003eResource ID type (.id / name). This is an internal service field, setting a value is not required.\u003c/em\u003e"},"___path_":{"type":"string","description":"\u003cem\u003eResource path for CRUD operations. This is an internal service field, setting a value is not required.\u003c/em\u003e"},"allowDefault":{"type":"boolean","description":"An option to override the default route.\n"},"allowGlobal":{"type":"boolean","description":"An option to allow overlapping public IP space by the ZeroTier routes. .\n"},"allowManaged":{"type":"boolean","description":"An option to allow assignment of managed IPs.\n"},"arpTimeout":{"type":"string","description":"ARP timeout is time how long ARP record is kept in ARP table after no packets are received from IP. Value auto equals to the value of arp-timeout in IP/Settings, default is 30s. Can use postfix \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`s`\" pulumi-lang-dotnet=\"`S`\" pulumi-lang-go=\"`s`\" pulumi-lang-python=\"`s`\" pulumi-lang-yaml=\"`s`\" pulumi-lang-java=\"`s`\"\u003e`s`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`m`\" pulumi-lang-dotnet=\"`M`\" pulumi-lang-go=\"`m`\" pulumi-lang-python=\"`m`\" pulumi-lang-yaml=\"`m`\" pulumi-lang-java=\"`m`\"\u003e`m`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`h`\" pulumi-lang-dotnet=\"`H`\" pulumi-lang-go=\"`h`\" pulumi-lang-python=\"`h`\" pulumi-lang-yaml=\"`h`\" pulumi-lang-java=\"`h`\"\u003e`h`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`d`\" pulumi-lang-dotnet=\"`D`\" pulumi-lang-go=\"`d`\" pulumi-lang-python=\"`d`\" pulumi-lang-yaml=\"`d`\" pulumi-lang-java=\"`d`\"\u003e`d`\u003c/span\u003e for milliseconds, seconds, minutes, hours or days. If no postfix is set then seconds (s) is used.\n"},"bridge":{"type":"boolean","description":"A flag whether the ZeroTier interface is bridged.\n"},"comment":{"type":"string"},"dhcp":{"type":"boolean","description":"A flag whether the ZeroTier interface obtained an IP address.\n"},"disableRunningCheck":{"type":"boolean","description":"An option to force the \u003cspan pulumi-lang-nodejs=\"`running`\" pulumi-lang-dotnet=\"`Running`\" pulumi-lang-go=\"`running`\" pulumi-lang-python=\"`running`\" pulumi-lang-yaml=\"`running`\" pulumi-lang-java=\"`running`\"\u003e`running`\u003c/span\u003e property to true.\n"},"disabled":{"type":"boolean"},"instance":{"type":"string","description":"The ZeroTier instance name.\n"},"macAddress":{"type":"string","description":"Current mac address.\n"},"mtu":{"type":"number","description":"Layer2 Maximum transmission unit. [See](https://wiki.mikrotik.com/wiki/Maximum_Transmission_Unit_on_RouterBoards).\n"},"name":{"type":"string","description":"Name of the ZeroTier interface.\n"},"network":{"type":"string","description":"The ZeroTier network identifier.\n"},"networkName":{"type":"string","description":"The ZeroTier network name.\n"},"running":{"type":"boolean"},"status":{"type":"string","description":"The status of the ZeroTier connection.\n"},"type":{"type":"string","description":"The ZeroTier network type.\n"},"zerotierInterfaceId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}}},"functions":{"pulumi:providers:routeros/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"$ref":"#/resources/pulumi:providers:routeros"}},"type":"object","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}},"routeros:index/getFiles:getFiles":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst files = routeros.getFiles({});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nfiles = routeros.get_files()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var files = Routeros.GetFiles.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.GetFiles(ctx, \u0026routeros.GetFilesArgs{}, 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.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetFilesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var files = RouterosFunctions.getFiles(GetFilesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  files:\n    fn::invoke:\n      function: routeros:getFiles\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFiles.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFiles.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"files":{"items":{"$ref":"#/types/routeros:index%2FgetFilesFile:getFilesFile"},"type":"array"},"filter":{"additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n","type":"object"},"id":{"description":"The ID of this resource.\n","type":"string"}},"required":["files","id"],"type":"object"}},"routeros:index/getFirewall:getFirewall":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.getFirewall \" pulumi-lang-dotnet=\" routeros.getFirewall \" pulumi-lang-go=\" getFirewall \" pulumi-lang-python=\" get_firewall \" pulumi-lang-yaml=\" routeros.getFirewall \" pulumi-lang-java=\" routeros.getFirewall \"\u003e routeros.getFirewall \u003c/span\u003e(Data Source)\n\n---\n\n#### This is an alias for backwards compatibility between plugin versions. \nPlease see documentation for\u003cspan pulumi-lang-nodejs=\" routeros.getIpFirewall\n\" pulumi-lang-dotnet=\" routeros.getIpFirewall\n\" pulumi-lang-go=\" getIpFirewall\n\" pulumi-lang-python=\" get_ip_firewall\n\" pulumi-lang-yaml=\" routeros.getIpFirewall\n\" pulumi-lang-java=\" routeros.getIpFirewall\n\"\u003e routeros.getIpFirewall\n\u003c/span\u003e\n","inputs":{"description":"A collection of arguments for invoking getFirewall.\n","properties":{"___skip_":{"type":"string"},"addressLists":{"type":"array","items":{"$ref":"#/types/routeros:index%2FgetFirewallAddressList:getFirewallAddressList"}},"id":{"type":"string"},"mangles":{"type":"array","items":{"$ref":"#/types/routeros:index%2FgetFirewallMangle:getFirewallMangle"}},"nats":{"type":"array","items":{"$ref":"#/types/routeros:index%2FgetFirewallNat:getFirewallNat"}},"rules":{"type":"array","items":{"$ref":"#/types/routeros:index%2FgetFirewallRule:getFirewallRule"}}},"type":"object"},"outputs":{"description":"A collection of values returned by getFirewall.\n","properties":{"___skip_":{"type":"string"},"addressLists":{"items":{"$ref":"#/types/routeros:index%2FgetFirewallAddressList:getFirewallAddressList"},"type":"array"},"id":{"type":"string"},"mangles":{"items":{"$ref":"#/types/routeros:index%2FgetFirewallMangle:getFirewallMangle"},"type":"array"},"nats":{"items":{"$ref":"#/types/routeros:index%2FgetFirewallNat:getFirewallNat"},"type":"array"},"rules":{"items":{"$ref":"#/types/routeros:index%2FgetFirewallRule:getFirewallRule"},"type":"array"}},"required":["id"],"type":"object"}},"routeros:index/getInterfaceBridgeFilter:getInterfaceBridgeFilter":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst rules = routeros.getInterfaceBridgeFilter({});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nrules = routeros.get_interface_bridge_filter()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rules = Routeros.GetInterfaceBridgeFilter.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.LookupInterfaceBridgeFilter(ctx, \u0026routeros.LookupInterfaceBridgeFilterArgs{}, 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.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetInterfaceBridgeFilterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var rules = RouterosFunctions.getInterfaceBridgeFilter(GetInterfaceBridgeFilterArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  rules:\n    fn::invoke:\n      function: routeros:getInterfaceBridgeFilter\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInterfaceBridgeFilter.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInterfaceBridgeFilter.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"filter":{"additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n","type":"object"},"filters":{"items":{"$ref":"#/types/routeros:index%2FgetInterfaceBridgeFilterFilter:getInterfaceBridgeFilterFilter"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"}},"required":["filters","id"],"type":"object"}},"routeros:index/getInterfaces:getInterfaces":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst interfaces = routeros.getInterfaces({});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ninterfaces = routeros.get_interfaces()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var interfaces = Routeros.GetInterfaces.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.GetInterfaces(ctx, \u0026routeros.GetInterfacesArgs{}, 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.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetInterfacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var interfaces = RouterosFunctions.getInterfaces(GetInterfacesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  interfaces:\n    fn::invoke:\n      function: routeros:getInterfaces\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInterfaces.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"___skip_":{"type":"string"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInterfaces.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"___skip_":{"type":"string"},"filter":{"additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n","type":"object"},"id":{"description":"The ID of this resource.\n","type":"string"},"interfaces":{"items":{"$ref":"#/types/routeros:index%2FgetInterfacesInterface:getInterfacesInterface"},"type":"array"}},"required":["id","interfaces"],"type":"object"}},"routeros:index/getIpAddresses:getIpAddresses":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst ipAddresses = routeros.getIpAddresses({});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nip_addresses = routeros.get_ip_addresses()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ipAddresses = Routeros.GetIpAddresses.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.GetIpAddresses(ctx, \u0026routeros.GetIpAddressesArgs{}, 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.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetIpAddressesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ipAddresses = RouterosFunctions.getIpAddresses(GetIpAddressesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  ipAddresses:\n    fn::invoke:\n      function: routeros:getIpAddresses\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpAddresses.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpAddresses.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"addresses":{"items":{"$ref":"#/types/routeros:index%2FgetIpAddressesAddress:getIpAddressesAddress"},"type":"array"},"filter":{"additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n","type":"object"},"id":{"description":"The ID of this resource.\n","type":"string"}},"required":["addresses","id"],"type":"object"}},"routeros:index/getIpArp:getIpArp":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst data = routeros.getIpArp({});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ndata = routeros.get_ip_arp()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var data = Routeros.GetIpArp.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.GetIpArp(ctx, \u0026routeros.GetIpArpArgs{}, 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.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetIpArpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var data = RouterosFunctions.getIpArp(GetIpArpArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  data:\n    fn::invoke:\n      function: routeros:getIpArp\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpArp.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpArp.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"datas":{"items":{"$ref":"#/types/routeros:index%2FgetIpArpData:getIpArpData"},"type":"array"},"filter":{"additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n","type":"object"},"id":{"description":"The ID of this resource.\n","type":"string"}},"required":["datas","id"],"type":"object"}},"routeros:index/getIpDhcpServerLeases:getIpDhcpServerLeases":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst data = routeros.getIpDhcpServerLeases({});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ndata = routeros.get_ip_dhcp_server_leases()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var data = Routeros.GetIpDhcpServerLeases.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.GetIpDhcpServerLeases(ctx, \u0026routeros.GetIpDhcpServerLeasesArgs{}, 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.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetIpDhcpServerLeasesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var data = RouterosFunctions.getIpDhcpServerLeases(GetIpDhcpServerLeasesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  data:\n    fn::invoke:\n      function: routeros:getIpDhcpServerLeases\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpDhcpServerLeases.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpDhcpServerLeases.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"datas":{"items":{"$ref":"#/types/routeros:index%2FgetIpDhcpServerLeasesData:getIpDhcpServerLeasesData"},"type":"array"},"filter":{"additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n","type":"object"},"id":{"description":"The ID of this resource.\n","type":"string"}},"required":["datas","id"],"type":"object"}},"routeros:index/getIpFirewall:getIpFirewall":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.getIpFirewall \" pulumi-lang-dotnet=\" routeros.getIpFirewall \" pulumi-lang-go=\" getIpFirewall \" pulumi-lang-python=\" get_ip_firewall \" pulumi-lang-yaml=\" routeros.getIpFirewall \" pulumi-lang-java=\" routeros.getIpFirewall \"\u003e routeros.getIpFirewall \u003c/span\u003e(Data Source)\n\nThis datasource contains all supported firewall resources:\n-\u003cspan pulumi-lang-nodejs=\" addressList\n\" pulumi-lang-dotnet=\" AddressList\n\" pulumi-lang-go=\" addressList\n\" pulumi-lang-python=\" address_list\n\" pulumi-lang-yaml=\" addressList\n\" pulumi-lang-java=\" addressList\n\"\u003e address_list\n\u003c/span\u003e- nat\n- mangle\n- rules (aka filter)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst fw = routeros.getIpFirewall({\n    nats: [{}],\n    rules: [\n        {\n            filter: {\n                chain: \"input\",\n                comment: \"rule_2\",\n            },\n        },\n        {\n            filter: {\n                chain: \"forward\",\n            },\n        },\n    ],\n});\nexport const rules = fw.then(fw =\u003e .map(value =\u003e ([\n    value.id,\n    value.srcAddress,\n])));\nexport const nat = fw.then(fw =\u003e .map(value =\u003e ([\n    value.id,\n    value.comment,\n])));\nconst rule3 = new routeros.index.IpFirewall(\"rule_3\", {\n    action: \"accept\",\n    chain: \"input\",\n    comment: \"rule_3\",\n    srcAddress: \"192.168.0.5\",\n    placeBefore: fwRouterosIpFirewallFilter.rules[0].id,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nfw = routeros.get_ip_firewall(nats=[{}],\n    rules=[\n        {\n            \"filter\": {\n                \"chain\": \"input\",\n                \"comment\": \"rule_2\",\n            },\n        },\n        {\n            \"filter\": {\n                \"chain\": \"forward\",\n            },\n        },\n    ])\npulumi.export(\"rules\", [[\n    value.id,\n    value.src_address,\n] for value in fw.rules])\npulumi.export(\"nat\", [[\n    value.id,\n    value.comment,\n] for value in fw.nats])\nrule3 = routeros.index.IpFirewall(\"rule_3\",\n    action=accept,\n    chain=input,\n    comment=rule_3,\n    src_address=192.168.0.5,\n    place_before=fw_routeros_ip_firewall_filter.rules[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var fw = Routeros.GetIpFirewall.Invoke(new()\n    {\n        Nats = new[]\n        {\n            null,\n        },\n        Rules = new[]\n        {\n            new Routeros.Inputs.GetIpFirewallRuleInputArgs\n            {\n                Filter = \n                {\n                    { \"chain\", \"input\" },\n                    { \"comment\", \"rule_2\" },\n                },\n            },\n            new Routeros.Inputs.GetIpFirewallRuleInputArgs\n            {\n                Filter = \n                {\n                    { \"chain\", \"forward\" },\n                },\n            },\n        },\n    });\n\n    var rule3 = new Routeros.Index.IpFirewall(\"rule_3\", new()\n    {\n        Action = \"accept\",\n        Chain = \"input\",\n        Comment = \"rule_3\",\n        SrcAddress = \"192.168.0.5\",\n        PlaceBefore = fwRouterosIpFirewallFilter.Rules[0].Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"rules\"] = .Select(value =\u003e \n        {\n            return new[]\n            {\n                @value.Id,\n                @value.SrcAddress,\n            };\n        }).ToList(),\n        [\"nat\"] = .Select(value =\u003e \n        {\n            return new[]\n            {\n                @value.Id,\n                @value.Comment,\n            };\n        }).ToList(),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpFirewall.\n","properties":{"___skip_":{"type":"string"},"addressLists":{"type":"array","items":{"$ref":"#/types/routeros:index%2FgetIpFirewallAddressList:getIpFirewallAddressList"}},"id":{"type":"string","description":"The ID of this resource.\n"},"mangles":{"type":"array","items":{"$ref":"#/types/routeros:index%2FgetIpFirewallMangle:getIpFirewallMangle"}},"nats":{"type":"array","items":{"$ref":"#/types/routeros:index%2FgetIpFirewallNat:getIpFirewallNat"}},"rules":{"type":"array","items":{"$ref":"#/types/routeros:index%2FgetIpFirewallRule:getIpFirewallRule"}}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpFirewall.\n","properties":{"___skip_":{"type":"string"},"addressLists":{"items":{"$ref":"#/types/routeros:index%2FgetIpFirewallAddressList:getIpFirewallAddressList"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"},"mangles":{"items":{"$ref":"#/types/routeros:index%2FgetIpFirewallMangle:getIpFirewallMangle"},"type":"array"},"nats":{"items":{"$ref":"#/types/routeros:index%2FgetIpFirewallNat:getIpFirewallNat"},"type":"array"},"rules":{"items":{"$ref":"#/types/routeros:index%2FgetIpFirewallRule:getIpFirewallRule"},"type":"array"}},"required":["id"],"type":"object"}},"routeros:index/getIpRoutes:getIpRoutes":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst ipRoutes = routeros.getIpRoutes({});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nip_routes = routeros.get_ip_routes()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ipRoutes = Routeros.GetIpRoutes.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.GetIpRoutes(ctx, \u0026routeros.GetIpRoutesArgs{}, 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.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetIpRoutesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var ipRoutes = RouterosFunctions.getIpRoutes(GetIpRoutesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  ipRoutes:\n    fn::invoke:\n      function: routeros:getIpRoutes\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpRoutes.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpRoutes.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"filter":{"additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n","type":"object"},"id":{"description":"The ID of this resource.\n","type":"string"},"routes":{"items":{"$ref":"#/types/routeros:index%2FgetIpRoutesRoute:getIpRoutesRoute"},"type":"array"}},"required":["id","routes"],"type":"object"}},"routeros:index/getIpServices:getIpServices":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nexport = async () =\u003e {\n    const router = await routeros.getIpServices({});\n    const router_disabled: routeros.IpService[] = [];\n    for (const range of Object.entries(.filter(s =\u003e s.name != \"www-ssl\").reduce((__obj, s) =\u003e ({ ...__obj, [s.name]: s }))).map(([k, v]) =\u003e ({key: k, value: v}))) {\n        router_disabled.push(new routeros.IpService(`router-disabled-${range.key}`, {\n            disabled: true,\n            numbers: range.value.name,\n            port: range.value.port,\n        }));\n    }\n}\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\nrouter = routeros.get_ip_services()\nrouter_disabled = []\nfor range in [{\"key\": k, \"value\": v} for [k, v] in enumerate({s.name: s for s in router.services if s.name != www-ssl})]:\n    router_disabled.append(routeros.IpService(f\"router-disabled-{range['key']}\",\n        disabled=True,\n        numbers=%!v(PANIC=Format method: runtime error: index out of range [-1]),\n        port=%!v(PANIC=Format method: runtime error: index out of range [-1])))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(async() =\u003e \n{\n    var router = await Routeros.GetIpServices.InvokeAsync();\n\n    var router_disabled = new List\u003cRouteros.IpService\u003e();\n    foreach (var range in .Select(pair =\u003e new { pair.Key, pair.Value }))\n    {\n        router_disabled.Add(new Routeros.IpService($\"router-disabled-{range.Key}\", new()\n        {\n            Disabled = true,\n            Numbers = range.Value.Name,\n            Port = range.Value.Port,\n        }));\n    }\n});\n```\n```yaml\nresources:\n  router-disabled:\n    type: routeros:IpService\n    properties:\n      disabled: true\n      numbers: ${range.value.name}\n      port: ${range.value.port}\n    options: {}\nvariables:\n  router:\n    fn::invoke:\n      function: routeros:getIpServices\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpServices.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpServices.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"dynamicServices":{"items":{"$ref":"#/types/routeros:index%2FgetIpServicesDynamicService:getIpServicesDynamicService"},"type":"array"},"filter":{"additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n","type":"object"},"id":{"description":"The ID of this resource.\n","type":"string"},"services":{"items":{"$ref":"#/types/routeros:index%2FgetIpServicesService:getIpServicesService"},"type":"array"}},"required":["dynamicServices","id","services"],"type":"object"}},"routeros:index/getIpv6Addresses:getIpv6Addresses":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst addresses = routeros.getIpv6Addresses({});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\naddresses = routeros.get_ipv6_addresses()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var addresses = Routeros.GetIpv6Addresses.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.GetIpv6Addresses(ctx, \u0026routeros.GetIpv6AddressesArgs{}, 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.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetIpv6AddressesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var addresses = RouterosFunctions.getIpv6Addresses(GetIpv6AddressesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  addresses:\n    fn::invoke:\n      function: routeros:getIpv6Addresses\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpv6Addresses.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"filter":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n"},"id":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpv6Addresses.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"addresses":{"items":{"$ref":"#/types/routeros:index%2FgetIpv6AddressesAddress:getIpv6AddressesAddress"},"type":"array"},"filter":{"additionalProperties":{"type":"string"},"description":"Additional request filtering options.\n","type":"object"},"id":{"description":"The ID of this resource.\n","type":"string"}},"required":["addresses","id"],"type":"object"}},"routeros:index/getIpv6Firewall:getIpv6Firewall":{"description":"## #\u003cspan pulumi-lang-nodejs=\" routeros.getIpv6Firewall \" pulumi-lang-dotnet=\" routeros.getIpv6Firewall \" pulumi-lang-go=\" getIpv6Firewall \" pulumi-lang-python=\" get_ipv6_firewall \" pulumi-lang-yaml=\" routeros.getIpv6Firewall \" pulumi-lang-java=\" routeros.getIpv6Firewall \"\u003e routeros.getIpv6Firewall \u003c/span\u003e(Data Source)\n\nThis datasource contains all supported firewall resources:\n- rules (aka filter)\n","inputs":{"description":"A collection of arguments for invoking getIpv6Firewall.\n","properties":{"___skip_":{"type":"string"},"id":{"type":"string","description":"The ID of this resource.\n"},"mangles":{"type":"array","items":{"$ref":"#/types/routeros:index%2FgetIpv6FirewallMangle:getIpv6FirewallMangle"}},"nats":{"type":"array","items":{"$ref":"#/types/routeros:index%2FgetIpv6FirewallNat:getIpv6FirewallNat"}},"rules":{"type":"array","items":{"$ref":"#/types/routeros:index%2FgetIpv6FirewallRule:getIpv6FirewallRule"}}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpv6Firewall.\n","properties":{"___skip_":{"type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"mangles":{"items":{"$ref":"#/types/routeros:index%2FgetIpv6FirewallMangle:getIpv6FirewallMangle"},"type":"array"},"nats":{"items":{"$ref":"#/types/routeros:index%2FgetIpv6FirewallNat:getIpv6FirewallNat"},"type":"array"},"rules":{"items":{"$ref":"#/types/routeros:index%2FgetIpv6FirewallRule:getIpv6FirewallRule"},"type":"array"}},"required":["id"],"type":"object"}},"routeros:index/getSystemResource:getSystemResource":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst data = routeros.getSystemResource({});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ndata = routeros.get_system_resource()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var data = Routeros.GetSystemResource.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.GetSystemResource(ctx, \u0026routeros.GetSystemResourceArgs{}, 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.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetSystemResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var data = RouterosFunctions.getSystemResource(GetSystemResourceArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  data:\n    fn::invoke:\n      function: routeros:getSystemResource\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSystemResource.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"___skip_":{"type":"string"},"id":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSystemResource.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"___skip_":{"type":"string"},"architectureName":{"type":"string"},"boardName":{"type":"string"},"buildTime":{"type":"string"},"cpu":{"type":"string"},"cpuCount":{"type":"number"},"factorySoftware":{"type":"string"},"id":{"type":"string"},"platform":{"type":"string"},"totalHddSpace":{"type":"number"},"totalMemory":{"type":"number"},"version":{"type":"string"}},"required":["architectureName","boardName","buildTime","cpu","cpuCount","factorySoftware","id","platform","totalHddSpace","totalMemory","version"],"type":"object"}},"routeros:index/getSystemRouterboard:getSystemRouterboard":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst data = routeros.getSystemRouterboard({});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ndata = routeros.get_system_routerboard()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var data = Routeros.GetSystemRouterboard.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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 := routeros.GetSystemRouterboard(ctx, \u0026routeros.GetSystemRouterboardArgs{}, 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.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetSystemRouterboardArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var data = RouterosFunctions.getSystemRouterboard(GetSystemRouterboardArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  data:\n    fn::invoke:\n      function: routeros:getSystemRouterboard\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSystemRouterboard.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"id":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSystemRouterboard.\n","properties":{"___id_":{"type":"number"},"___path_":{"type":"string"},"boardName":{"type":"string"},"currentFirmware":{"type":"string"},"factoryFirmware":{"type":"string"},"firmwareType":{"type":"string"},"id":{"type":"string"},"model":{"type":"string"},"revision":{"type":"string"},"routerboard":{"type":"boolean"},"serialNumber":{"type":"string"},"upgradeFirmware":{"type":"string"}},"required":["boardName","currentFirmware","factoryFirmware","firmwareType","id","model","revision","routerboard","serialNumber","upgradeFirmware"],"type":"object"}},"routeros:index/getWifiEasyConnect:getWifiEasyConnect":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\nconst test = routeros.getWifiEasyConnect({\n    type: \"WPA2\",\n    ssid: \"test\",\n    password: \"password12345\",\n});\nexport const qrcode = test.then(test =\u003e test.qrCode);\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\ntest = routeros.get_wifi_easy_connect(type=\"WPA2\",\n    ssid=\"test\",\n    password=\"password12345\")\npulumi.export(\"qrcode\", test.qr_code)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Routeros.GetWifiEasyConnect.Invoke(new()\n    {\n        Type = \"WPA2\",\n        Ssid = \"test\",\n        Password = \"password12345\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"qrcode\"] = test.Apply(getWifiEasyConnectResult =\u003e getWifiEasyConnectResult.QrCode),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := routeros.GetWifiEasyConnect(ctx, \u0026routeros.GetWifiEasyConnectArgs{\n\t\t\tType:     pulumi.StringRef(\"WPA2\"),\n\t\t\tSsid:     \"test\",\n\t\t\tPassword: \"password12345\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"qrcode\", test.QrCode)\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.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetWifiEasyConnectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = RouterosFunctions.getWifiEasyConnect(GetWifiEasyConnectArgs.builder()\n            .type(\"WPA2\")\n            .ssid(\"test\")\n            .password(\"password12345\")\n            .build());\n\n        ctx.export(\"qrcode\", test.qrCode());\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: routeros:getWifiEasyConnect\n      arguments:\n        type: WPA2\n        ssid: test\n        password: password12345\noutputs:\n  qrcode: ${test.qrCode}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getWifiEasyConnect.\n","properties":{"eapAnonymous":{"type":"boolean","description":"(WPA2-EAP only) Anonymous identity\n"},"eapIdentity":{"type":"string","description":"(WPA2-EAP only) Identity.\n"},"eapMethod":{"type":"string","description":"(WPA2-EAP only) EAP method, like TTLS or PWD.\n"},"eapPhase2":{"type":"string","description":"(WPA2-EAP only) Phase 2 method, like `MSCHAPV2`\n"},"hidden":{"type":"boolean","description":"True if the network SSID is hidden.\n"},"id":{"type":"string","description":"The ID of this resource.\n"},"password":{"type":"string","description":"Password, ignored if T is nopass (in which case it may be omitted). Enclose in double quotes if it is an ASCII name, but could be interpreted as hex (i.e. \"ABCD\").\n","secret":true},"ssid":{"type":"string","description":"Network SSID. Required. Enclose in double quotes if it is an ASCII name, but could be interpreted as hex (i.e. \"ABCD\").\n"},"type":{"type":"string","description":"Authentication type; can be WEP or WPA or WPA2-EAP, or nopass for no password. Or, omit for no password.\n"}},"type":"object","required":["password","ssid"]},"outputs":{"description":"A collection of values returned by getWifiEasyConnect.\n","properties":{"eapAnonymous":{"description":"(WPA2-EAP only) Anonymous identity\n","type":"boolean"},"eapIdentity":{"description":"(WPA2-EAP only) Identity.\n","type":"string"},"eapMethod":{"description":"(WPA2-EAP only) EAP method, like TTLS or PWD.\n","type":"string"},"eapPhase2":{"description":"(WPA2-EAP only) Phase 2 method, like `MSCHAPV2`\n","type":"string"},"hidden":{"description":"True if the network SSID is hidden.\n","type":"boolean"},"id":{"description":"The ID of this resource.\n","type":"string"},"password":{"description":"Password, ignored if T is nopass (in which case it may be omitted). Enclose in double quotes if it is an ASCII name, but could be interpreted as hex (i.e. \"ABCD\").\n","secret":true,"type":"string"},"qrCode":{"description":"QR Code\n","type":"string"},"ssid":{"description":"Network SSID. Required. Enclose in double quotes if it is an ASCII name, but could be interpreted as hex (i.e. \"ABCD\").\n","type":"string"},"type":{"description":"Authentication type; can be WEP or WPA or WPA2-EAP, or nopass for no password. Or, omit for no password.\n","type":"string"}},"required":["id","password","qrCode","ssid"],"type":"object"}},"routeros:index/getX509:getX509":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as routeros from \"@pulumi/routeros\";\n\n// You can keep indents in front of the content lines of the certificate.\n// The normalized certificate is available through the `pem` attribute\nconst cert = routeros.getX509({\n    data: `\\\\t-----BEGIN CERTIFICATE-----\n\\\\tMIIBlTCCATugAwIBAgIINLsws71B5zIwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU\n\\\\tRXh0ZXJuYWwgQ2VydGlmaWNhdGUwHhcNMjQwNTE3MjEyOTUzWhcNMjUwNTE3MjEy\n\\\\tOTUzWjAfMR0wGwYDVQQDDBRFeHRlcm5hbCBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49\n\\\\tAgEGCCqGSM49AwEHA0IABKE1g0Qj4ujIold9tklu2z4BUu/K7xDFF5YmedtOfJyM\n\\\\t1/80APNboqn71y4m4XNE1JNtQuR2bSZPHVrzODkR16ujYTBfMA8GA1UdEwEB/wQF\n\\\\tMAMBAf8wDgYDVR0PAQH/BAQDAgG2MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n\\\\tBQcDAjAdBgNVHQ4EFgQUNXd5bvluIV9YAhGc5yMHc6OzXpMwCgYIKoZIzj0EAwID\n\\\\tSAAwRQIhAODte/qS6CE30cvnQpxP/ObWBPIPZnHtkFHIIC1AOSXwAiBGCGQE+aJY\n\\\\tW72Rw0Y1ckvlt6sU0urkzGuj5wxVF/gSYA==\n\\\\t-----END CERTIFICATE-----\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_routeros as routeros\n\n# You can keep indents in front of the content lines of the certificate.\n# The normalized certificate is available through the `pem` attribute\ncert = routeros.get_x509(data=\"\"\"\\t-----BEGIN CERTIFICATE-----\n\\tMIIBlTCCATugAwIBAgIINLsws71B5zIwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU\n\\tRXh0ZXJuYWwgQ2VydGlmaWNhdGUwHhcNMjQwNTE3MjEyOTUzWhcNMjUwNTE3MjEy\n\\tOTUzWjAfMR0wGwYDVQQDDBRFeHRlcm5hbCBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49\n\\tAgEGCCqGSM49AwEHA0IABKE1g0Qj4ujIold9tklu2z4BUu/K7xDFF5YmedtOfJyM\n\\t1/80APNboqn71y4m4XNE1JNtQuR2bSZPHVrzODkR16ujYTBfMA8GA1UdEwEB/wQF\n\\tMAMBAf8wDgYDVR0PAQH/BAQDAgG2MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n\\tBQcDAjAdBgNVHQ4EFgQUNXd5bvluIV9YAhGc5yMHc6OzXpMwCgYIKoZIzj0EAwID\n\\tSAAwRQIhAODte/qS6CE30cvnQpxP/ObWBPIPZnHtkFHIIC1AOSXwAiBGCGQE+aJY\n\\tW72Rw0Y1ckvlt6sU0urkzGuj5wxVF/gSYA==\n\\t-----END CERTIFICATE-----\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Routeros = Pulumi.Routeros;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // You can keep indents in front of the content lines of the certificate.\n    // The normalized certificate is available through the `pem` attribute\n    var cert = Routeros.GetX509.Invoke(new()\n    {\n        Data = @\"\\t-----BEGIN CERTIFICATE-----\n\\tMIIBlTCCATugAwIBAgIINLsws71B5zIwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU\n\\tRXh0ZXJuYWwgQ2VydGlmaWNhdGUwHhcNMjQwNTE3MjEyOTUzWhcNMjUwNTE3MjEy\n\\tOTUzWjAfMR0wGwYDVQQDDBRFeHRlcm5hbCBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49\n\\tAgEGCCqGSM49AwEHA0IABKE1g0Qj4ujIold9tklu2z4BUu/K7xDFF5YmedtOfJyM\n\\t1/80APNboqn71y4m4XNE1JNtQuR2bSZPHVrzODkR16ujYTBfMA8GA1UdEwEB/wQF\n\\tMAMBAf8wDgYDVR0PAQH/BAQDAgG2MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n\\tBQcDAjAdBgNVHQ4EFgQUNXd5bvluIV9YAhGc5yMHc6OzXpMwCgYIKoZIzj0EAwID\n\\tSAAwRQIhAODte/qS6CE30cvnQpxP/ObWBPIPZnHtkFHIIC1AOSXwAiBGCGQE+aJY\n\\tW72Rw0Y1ckvlt6sU0urkzGuj5wxVF/gSYA==\n\\t-----END CERTIFICATE-----\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/routeros/routeros\"\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// You can keep indents in front of the content lines of the certificate.\n\t\t// The normalized certificate is available through the `pem` attribute\n\t\t_, err := routeros.GetX509(ctx, \u0026routeros.GetX509Args{\n\t\t\tData: `\\t-----BEGIN CERTIFICATE-----\n\\tMIIBlTCCATugAwIBAgIINLsws71B5zIwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU\n\\tRXh0ZXJuYWwgQ2VydGlmaWNhdGUwHhcNMjQwNTE3MjEyOTUzWhcNMjUwNTE3MjEy\n\\tOTUzWjAfMR0wGwYDVQQDDBRFeHRlcm5hbCBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49\n\\tAgEGCCqGSM49AwEHA0IABKE1g0Qj4ujIold9tklu2z4BUu/K7xDFF5YmedtOfJyM\n\\t1/80APNboqn71y4m4XNE1JNtQuR2bSZPHVrzODkR16ujYTBfMA8GA1UdEwEB/wQF\n\\tMAMBAf8wDgYDVR0PAQH/BAQDAgG2MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n\\tBQcDAjAdBgNVHQ4EFgQUNXd5bvluIV9YAhGc5yMHc6OzXpMwCgYIKoZIzj0EAwID\n\\tSAAwRQIhAODte/qS6CE30cvnQpxP/ObWBPIPZnHtkFHIIC1AOSXwAiBGCGQE+aJY\n\\tW72Rw0Y1ckvlt6sU0urkzGuj5wxVF/gSYA==\n\\t-----END CERTIFICATE-----\n`,\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.routeros.RouterosFunctions;\nimport com.pulumi.routeros.inputs.GetX509Args;\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        // You can keep indents in front of the content lines of the certificate.\n        // The normalized certificate is available through the `pem` attribute\n        final var cert = RouterosFunctions.getX509(GetX509Args.builder()\n            .data(\"\"\"\n\\t-----BEGIN CERTIFICATE-----\n\\tMIIBlTCCATugAwIBAgIINLsws71B5zIwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU\n\\tRXh0ZXJuYWwgQ2VydGlmaWNhdGUwHhcNMjQwNTE3MjEyOTUzWhcNMjUwNTE3MjEy\n\\tOTUzWjAfMR0wGwYDVQQDDBRFeHRlcm5hbCBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49\n\\tAgEGCCqGSM49AwEHA0IABKE1g0Qj4ujIold9tklu2z4BUu/K7xDFF5YmedtOfJyM\n\\t1/80APNboqn71y4m4XNE1JNtQuR2bSZPHVrzODkR16ujYTBfMA8GA1UdEwEB/wQF\n\\tMAMBAf8wDgYDVR0PAQH/BAQDAgG2MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n\\tBQcDAjAdBgNVHQ4EFgQUNXd5bvluIV9YAhGc5yMHc6OzXpMwCgYIKoZIzj0EAwID\n\\tSAAwRQIhAODte/qS6CE30cvnQpxP/ObWBPIPZnHtkFHIIC1AOSXwAiBGCGQE+aJY\n\\tW72Rw0Y1ckvlt6sU0urkzGuj5wxVF/gSYA==\n\\t-----END CERTIFICATE-----\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # You can keep indents in front of the content lines of the certificate.\n  # The normalized certificate is available through the `pem` attribute\n  cert:\n    fn::invoke:\n      function: routeros:getX509\n      arguments:\n        data: |\n          \\t-----BEGIN CERTIFICATE-----\n          \\tMIIBlTCCATugAwIBAgIINLsws71B5zIwCgYIKoZIzj0EAwIwHzEdMBsGA1UEAwwU\n          \\tRXh0ZXJuYWwgQ2VydGlmaWNhdGUwHhcNMjQwNTE3MjEyOTUzWhcNMjUwNTE3MjEy\n          \\tOTUzWjAfMR0wGwYDVQQDDBRFeHRlcm5hbCBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49\n          \\tAgEGCCqGSM49AwEHA0IABKE1g0Qj4ujIold9tklu2z4BUu/K7xDFF5YmedtOfJyM\n          \\t1/80APNboqn71y4m4XNE1JNtQuR2bSZPHVrzODkR16ujYTBfMA8GA1UdEwEB/wQF\n          \\tMAMBAf8wDgYDVR0PAQH/BAQDAgG2MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n          \\tBQcDAjAdBgNVHQ4EFgQUNXd5bvluIV9YAhGc5yMHc6OzXpMwCgYIKoZIzj0EAwID\n          \\tSAAwRQIhAODte/qS6CE30cvnQpxP/ObWBPIPZnHtkFHIIC1AOSXwAiBGCGQE+aJY\n          \\tW72Rw0Y1ckvlt6sU0urkzGuj5wxVF/gSYA==\n          \\t-----END CERTIFICATE-----\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getX509.\n","properties":{"data":{"type":"string","description":"X509 certificate in PEM format.\n"}},"type":"object","required":["data"]},"outputs":{"description":"A collection of values returned by getX509.\n","properties":{"akid":{"type":"string"},"authority":{"type":"boolean"},"commonName":{"type":"string"},"data":{"description":"X509 certificate in PEM format.\n","type":"string"},"digestAlgorithm":{"type":"string"},"fingerprint":{"type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"invalidAfter":{"type":"string"},"invalidBefore":{"type":"string"},"issuer":{"type":"string"},"keyType":{"type":"string"},"pem":{"type":"string"},"serialNumber":{"type":"string"},"signatureAlgorithm":{"type":"string"},"skid":{"type":"string"},"subject":{"type":"string"},"subjectAltName":{"type":"string"},"version":{"type":"number"}},"required":["akid","authority","commonName","data","digestAlgorithm","fingerprint","id","invalidAfter","invalidBefore","issuer","keyType","pem","serialNumber","signatureAlgorithm","skid","subject","subjectAltName","version"],"type":"object"}}},"parameterization":{"baseProvider":{"name":"terraform-provider","version":"1.0.1"},"parameter":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL3RlcnJhZm9ybS1yb3V0ZXJvcy9yb3V0ZXJvcyIsInZlcnNpb24iOiIxLjk5LjEifX0="}}