{"id":"ipv4-mask-convert","version":"1.0.0","description":"Convert between an IPv4 prefix length, dotted subnet netmask, and dotted wildcard (host) mask.","supported_operations":["ipv4 mask convert","prefix to netmask","netmask to prefix","wildcard mask convert","subnet mask calculator"],"unsupported_operations":["IPv6","non-contiguous masks"],"semantics":["Input is exactly one of prefix, netmask, or wildcard; unknown fields and multiple/zero of these three throw.","prefix is a JSON integer 0-32.","netmask must be a contiguous run of 1-bits from the most significant bit followed by 0-bits (a valid subnet mask); otherwise the tool throws.","wildcard is the bitwise complement of a valid netmask (a contiguous run of 0-bits followed by 1-bits); otherwise the tool throws.","Output always includes all three equivalent representations."],"limits":{"prefix_min":0,"prefix_max":32},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"oneOf":[{"required":["prefix"],"properties":{"prefix":{"type":"integer","minimum":0,"maximum":32}}},{"required":["netmask"],"properties":{"netmask":{"type":"string","maxLength":15,"pattern":"^(?:0|[1-9][0-9]{0,2})(?:\\.(?:0|[1-9][0-9]{0,2})){3}$"}}},{"required":["wildcard"],"properties":{"wildcard":{"type":"string","maxLength":15,"pattern":"^(?:0|[1-9][0-9]{0,2})(?:\\.(?:0|[1-9][0-9]{0,2})){3}$"}}}]},"output_schema":{"type":"object","additionalProperties":false,"required":["prefix","netmask","wildcard"],"properties":{"prefix":{"type":"integer","minimum":0,"maximum":32},"netmask":{"type":"string","maxLength":15},"wildcard":{"type":"string","maxLength":15}}},"examples":[{"input":{"prefix":24},"output":{"prefix":24,"netmask":"255.255.255.0","wildcard":"0.0.0.255"}}],"execute_url":"/v1/tools/ipv4-mask-convert/versions/1.0.0/execute"}