├── .dockerignore ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .gitlab-ci.yml ├── .npmignore ├── CHANGELOG.md ├── Dockerfile ├── F5_Contributor_License_Agreement.docx ├── LICENSE ├── README.md ├── SUPPORT.md ├── autotoolDeps ├── AS3 │ └── src │ │ ├── lib │ │ ├── adcParser.js │ │ ├── adcParserCheckResource.js │ │ ├── adcParserComponents.js │ │ ├── adcParserFetch.js │ │ ├── adcParserFormats.js │ │ ├── adcParserKeywords.js │ │ ├── adcParserSecrets.js │ │ ├── config.js │ │ ├── constants.js │ │ ├── log.js │ │ ├── postProcessor.js │ │ ├── postValidator.js │ │ ├── properties.json │ │ ├── tag │ │ │ ├── bigComponentTag.js │ │ │ ├── certExtractTag.js │ │ │ ├── checkResourceTag.js │ │ │ ├── expandTag.js │ │ │ ├── fetchTag.js │ │ │ ├── includeTag.js │ │ │ ├── index.js │ │ │ ├── longSecretTag.js │ │ │ ├── minVersionTag.js │ │ │ ├── moduleTag.js │ │ │ ├── nodeTag.js │ │ │ ├── pointerTag.js │ │ │ ├── secretTag.js │ │ │ └── virtualAddressTag.js │ │ ├── tracer.js │ │ ├── util │ │ │ ├── authHeaderUtil.js │ │ │ ├── certUtil.js │ │ │ ├── cloudLibUtils.js │ │ │ ├── expandUtil.js │ │ │ ├── extractUtil.js │ │ │ ├── fetchUtil.js │ │ │ ├── iappUtil.js │ │ │ └── util.js │ │ └── validator.js │ │ └── schema │ │ └── latest │ │ └── adc-schema.json └── DO │ └── src │ ├── lib │ ├── ajvValidator.js │ └── configItems.json │ └── schema │ └── latest │ ├── analytics.schema.json │ ├── auth.schema.json │ ├── base.schema.json │ ├── definitions.schema.json │ ├── do.schema.json │ ├── dsc.schema.json │ ├── formats.js │ ├── gslb.schema.json │ ├── network.schema.json │ ├── remote.schema.json │ └── system.schema.json ├── contributing ├── acc_analytics.md ├── autotool_coverage.md ├── coverage.md ├── release_process.md ├── testing.md └── tmsh_coverage.md ├── docs ├── Makefile ├── _static │ ├── ACC_Robot.svg │ └── f5-logo-solid-rgb_small.png ├── _templates │ └── layout.html ├── conf.py ├── images │ ├── ACC-POST1.png │ └── ACC-POST2.png ├── index.html ├── index.rst ├── make.bat ├── requirements.txt └── userguide │ ├── ACC-POST1.png │ ├── ACC-POST2.png │ ├── classes.rst │ ├── faq.rst │ ├── getting_started.rst │ ├── install.rst │ ├── troubleshooting.rst │ └── using_acc.rst ├── init.js ├── package-lock.json ├── package.json ├── scripts ├── build │ ├── fetch-dependencies.sh │ ├── image-build.sh │ └── pack-code.sh ├── dev │ ├── copyright.txt │ ├── update-acc-deps.sh │ ├── update-from-as3.sh │ ├── update-from-do.sh │ ├── update-util.sh │ └── write-copyright.js └── publish │ └── image-publish.sh ├── src ├── engines │ ├── as3Converter.js │ ├── doConverter.js │ └── parser.js ├── lib │ ├── AS3 │ │ ├── as3PropertiesCustom.json │ │ ├── customDict.js │ │ ├── customHandling.js │ │ └── customMaps │ │ │ ├── certificate.js │ │ │ ├── cipher.js │ │ │ ├── data_group.js │ │ │ ├── dns.js │ │ │ ├── enforcement.js │ │ │ ├── firewall.js │ │ │ ├── gslb.js │ │ │ ├── html_rule.js │ │ │ ├── iapp.js │ │ │ ├── irule.js │ │ │ ├── log_config.js │ │ │ ├── monitor.js │ │ │ ├── network.js │ │ │ ├── persist.js │ │ │ ├── policy.js │ │ │ ├── pool.js │ │ │ ├── profile.js │ │ │ ├── security.js │ │ │ ├── service.js │ │ │ ├── service_address.js │ │ │ └── snat_pool.js │ ├── DO │ │ └── doCustomMaps.js │ ├── analytics.js │ ├── bigipDefaults.json │ ├── declarationStats.js │ ├── logObjects.js │ └── portDict.json ├── main.js ├── postConverter │ ├── filterByApplication.js │ ├── removeDefaultValuesAS3.js │ ├── removeDefaultValuesDO.js │ └── removeInvalidRefs.js ├── preConverter │ ├── extract.js │ ├── filterConf.js │ ├── getCliConfig.js │ └── readFiles.js ├── server.js ├── static │ └── index.html └── util │ ├── convert │ ├── buildProtectedObj.js │ ├── convertToNameValueObj.js │ ├── convertToNumberArray.js │ ├── declarationBase.js │ ├── dedupeArray.js │ ├── deleteProperty.js │ ├── enabledToEnable.js │ ├── findLocation.js │ ├── formatStr.js │ ├── getCidrFromNetmask.js │ ├── getObjectType.js │ ├── handleObjectRef.js │ ├── hyphensToCamel.js │ ├── isIPv4.js │ ├── isIPv6.js │ ├── isInteger.js │ ├── loadCertsAndKeys.js │ ├── loadDeviceCert.js │ ├── prependObjProps.js │ ├── recursiveCamelize.js │ ├── returnEmptyObjIfNone.js │ └── unquote.js │ ├── countObjects.js │ ├── getBigipVersion.js │ ├── getKey.js │ ├── getMergedAS3Properties.js │ ├── log.js │ └── parse │ ├── arrToMultilineStr.js │ ├── countIndent.js │ ├── getTitle.js │ ├── objToArr.js │ ├── removeIndent.js │ └── strToObj.js ├── stryker.conf.js └── test ├── basic_install.ucs ├── engines ├── as3Converter │ ├── adapt_profile │ │ ├── adapt_profile.conf │ │ ├── adapt_profile.json │ │ ├── adapt_profile2.conf │ │ ├── adapt_profile2.json │ │ └── spec.js │ ├── analytics_profile │ │ ├── analytics_profile.conf │ │ ├── analytics_profile.json │ │ ├── analytics_profile2.conf │ │ ├── analytics_profile2.json │ │ └── spec.js │ ├── analytics_tcp_profile │ │ ├── analytics_tcp_profile.conf │ │ ├── analytics_tcp_profile.json │ │ └── spec.js │ ├── as3Converter-spec.js │ ├── bandwidth_control_policy │ │ ├── bandwidth_control_policy.conf │ │ ├── bandwidth_control_policy.json │ │ └── spec.js │ ├── ca_bundle │ │ ├── ca_bundle.conf │ │ ├── ca_bundle.crt │ │ ├── ca_bundle.json │ │ └── spec.js │ ├── certificate │ │ ├── certificate-bundle.crt │ │ ├── certificate.conf │ │ ├── certificate.crt │ │ ├── certificate.json │ │ ├── certificate2.conf │ │ ├── certificate2.crt │ │ ├── certificate2.json │ │ └── spec.js │ ├── certificate_validator_ocsp │ │ ├── certificate_validator_ocsp.conf │ │ ├── certificate_validator_ocsp.json │ │ └── spec.js │ ├── cipher_group │ │ ├── cipher_group.conf │ │ ├── cipher_group.json │ │ └── spec.js │ ├── cipher_rule │ │ ├── cipher_rule.conf │ │ ├── cipher_rule.json │ │ └── spec.js │ ├── classification_profile │ │ ├── classification_profile.conf │ │ ├── classification_profile.json │ │ └── spec.js │ ├── compareDeclaration.js │ ├── data_group │ │ ├── data_group.conf │ │ ├── data_group.json │ │ ├── data_group2.conf │ │ ├── data_group2.json │ │ ├── data_group3.conf │ │ ├── data_group3.json │ │ ├── data_group4.conf │ │ ├── data_group4.json │ │ ├── data_group5.conf │ │ ├── data_group5.json │ │ ├── data_group6.conf │ │ ├── data_group6.json │ │ └── spec.js │ ├── dns_cache │ │ ├── dns_cache.conf │ │ ├── dns_cache.json │ │ └── spec.js │ ├── dns_nameserver │ │ ├── dns_nameserver.conf │ │ ├── dns_nameserver.json │ │ └── spec.js │ ├── dns_profile │ │ ├── dns_profile.conf │ │ ├── dns_profile.json │ │ ├── dns_profile2.conf │ │ ├── dns_profile2.json │ │ └── spec.js │ ├── dns_tsig_key │ │ ├── dns_tsig_key.conf │ │ ├── dns_tsig_key.json │ │ ├── dns_tsig_key2.conf │ │ ├── dns_tsig_key2.json │ │ └── spec.js │ ├── dns_zone │ │ ├── dns_zone.conf │ │ ├── dns_zone.json │ │ └── spec.js │ ├── dos_profile │ │ ├── dos_profile.conf │ │ ├── dos_profile.json │ │ ├── dos_profile2.conf │ │ ├── dos_profile2.json │ │ ├── dos_profile3.conf │ │ ├── dos_profile3.json │ │ ├── dos_profile4.conf │ │ ├── dos_profile4.json │ │ ├── dos_profile5.conf │ │ ├── dos_profile5.json │ │ └── spec.js │ ├── endpoint_policy │ │ ├── endpoint_policy.conf │ │ ├── endpoint_policy.json │ │ ├── endpoint_policy2.conf │ │ ├── endpoint_policy2.json │ │ ├── endpoint_policy3.conf │ │ ├── endpoint_policy3.json │ │ ├── endpoint_policy4.conf │ │ ├── endpoint_policy4.json │ │ ├── endpoint_policy5.conf │ │ ├── endpoint_policy5.json │ │ ├── endpoint_policy6.conf │ │ ├── endpoint_policy6.json │ │ ├── endpoint_policy7.conf │ │ ├── endpoint_policy7.json │ │ ├── endpoint_policy8.conf │ │ ├── endpoint_policy8.json │ │ └── spec.js │ ├── endpoint_strategy │ │ ├── endpoint_strategy.conf │ │ ├── endpoint_strategy.json │ │ └── spec.js │ ├── enforcement_diameter_endpoint_profile │ │ ├── enforcement_diameter_endpoint_profile.conf │ │ ├── enforcement_diameter_endpoint_profile.json │ │ └── spec.js │ ├── enforcement_format_script │ │ ├── enforcement_format_script.conf │ │ ├── enforcement_format_script.json │ │ └── spec.js │ ├── enforcement_forwarding_endpoint │ │ ├── enforcement_forwarding_endpoint.conf │ │ ├── enforcement_forwarding_endpoint.json │ │ └── spec.js │ ├── enforcement_interception_endpoint │ │ ├── enforcement_interception_endpoint.conf │ │ ├── enforcement_interception_endpoint.json │ │ └── spec.js │ ├── enforcement_irule │ │ ├── enforcement_irule1.conf │ │ ├── enforcement_irule1.json │ │ ├── enforcement_irule3.conf │ │ ├── enforcement_irule3.json │ │ ├── enforcement_irule4.conf │ │ ├── enforcement_irule4.json │ │ └── spec.js │ ├── enforcement_listener │ │ ├── enforcement_listener.conf │ │ ├── enforcement_listener.json │ │ └── spec.js │ ├── enforcement_policy │ │ ├── enforcement_policy.conf │ │ ├── enforcement_policy.json │ │ └── spec.js │ ├── enforcement_profile │ │ ├── enforcement_profile.conf │ │ ├── enforcement_profile.json │ │ └── spec.js │ ├── enforcement_radius_aaa_profile │ │ ├── enforcement_radius_aaa_profile.conf │ │ ├── enforcement_radius_aaa_profile.json │ │ └── spec.js │ ├── enforcement_service_chain_endpoint │ │ ├── enforcement_service_chain_endpoint.conf │ │ ├── enforcement_service_chain_endpoint.json │ │ └── spec.js │ ├── enforcement_subscriber_management_profile │ │ ├── enforcement_subscriber_management_profile.conf │ │ ├── enforcement_subscriber_management_profile.json │ │ └── spec.js │ ├── firewall_address_list │ │ ├── firewall_address_list.conf │ │ ├── firewall_address_list.json │ │ └── spec.js │ ├── firewall_policy │ │ ├── firewall_policy.conf │ │ ├── firewall_policy.json │ │ ├── firewall_policy2.conf │ │ ├── firewall_policy2.json │ │ └── spec.js │ ├── firewall_port_list │ │ ├── firewall_port_list.conf │ │ ├── firewall_port_list.json │ │ ├── firewall_port_list2.conf │ │ ├── firewall_port_list2.json │ │ └── spec.js │ ├── firewall_rule_list │ │ ├── firewall_rule_list.conf │ │ ├── firewall_rule_list.json │ │ ├── firewall_rule_list_autogen.conf │ │ ├── firewall_rule_list_inline.conf │ │ ├── firewall_rule_list_inline.json │ │ ├── firewall_rule_list_vlan.conf │ │ ├── firewall_rule_list_vlan.json │ │ └── spec.js │ ├── fix_profile │ │ ├── fix_profile.conf │ │ ├── fix_profile.json │ │ ├── fix_profile2.conf │ │ ├── fix_profile2.json │ │ └── spec.js │ ├── ftp_profile │ │ ├── ftp_profile.conf │ │ ├── ftp_profile.json │ │ └── spec.js │ ├── gslb_data_center │ │ ├── gslb_data_center.conf │ │ ├── gslb_data_center.json │ │ └── spec.js │ ├── gslb_domain │ │ ├── gslb_domain.conf │ │ ├── gslb_domain.json │ │ ├── gslb_domain2.conf │ │ ├── gslb_domain2.json │ │ ├── gslb_domain3.conf │ │ ├── gslb_domain3.json │ │ ├── gslb_domain4.conf │ │ ├── gslb_domain4.json │ │ ├── gslb_domain5.conf │ │ ├── gslb_domain5.json │ │ └── spec.js │ ├── gslb_irule │ │ ├── gslb_irule.conf │ │ ├── gslb_irule.json │ │ ├── gslb_irule2.conf │ │ ├── gslb_irule2.json │ │ └── spec.js │ ├── gslb_monitor │ │ ├── gslb_monitor-bundle.crt │ │ ├── gslb_monitor.conf │ │ ├── gslb_monitor.crt │ │ ├── gslb_monitor.json │ │ ├── gslb_monitor2.conf │ │ ├── gslb_monitor2.json │ │ └── spec.js │ ├── gslb_pool │ │ ├── gslb_pool.conf │ │ ├── gslb_pool.json │ │ └── spec.js │ ├── gslb_prober_pool │ │ ├── gslb_prober_pool.conf │ │ ├── gslb_prober_pool.json │ │ └── spec.js │ ├── gslb_server │ │ ├── gslb_server.conf │ │ ├── gslb_server.json │ │ ├── gslb_server2.conf │ │ ├── gslb_server2.json │ │ └── spec.js │ ├── gslb_topology_records │ │ ├── gslb_topology_records.conf │ │ ├── gslb_topology_records.json │ │ └── spec.js │ ├── gslb_topology_region │ │ ├── gslb_topology_region.conf │ │ ├── gslb_topology_region.json │ │ └── spec.js │ ├── html_profile │ │ ├── html_profile.conf │ │ ├── html_profile.json │ │ └── spec.js │ ├── html_rule │ │ ├── html_rule.conf │ │ ├── html_rule.json │ │ └── spec.js │ ├── http2_profile │ │ ├── http2_profile.conf │ │ ├── http2_profile.json │ │ └── spec.js │ ├── http_acceleration_profile │ │ ├── http_acceleration_profile.conf │ │ ├── http_acceleration_profile.json │ │ └── spec.js │ ├── http_compress │ │ ├── http_compress.conf │ │ ├── http_compress.json │ │ └── spec.js │ ├── http_profile │ │ ├── http_profile.conf │ │ ├── http_profile.json │ │ ├── http_profile2.conf │ │ ├── http_profile2.json │ │ ├── http_profile_explicit.conf │ │ ├── http_profile_explicit.json │ │ ├── http_profile_full.conf │ │ ├── http_profile_full.json │ │ └── spec.js │ ├── iapp │ │ ├── iapp.conf │ │ ├── iapp.json │ │ ├── iapp2.conf │ │ ├── iapp2.json │ │ ├── iapp3.conf │ │ ├── iapp3.json │ │ ├── iapp4.conf │ │ ├── iapp4.json │ │ ├── iapp5.conf │ │ ├── iapp5.json │ │ └── spec.js │ ├── icap_profile │ │ ├── icap_profile.conf │ │ ├── icap_profile.json │ │ └── spec.js │ ├── idle_timeout_policy │ │ ├── idle_timeout_policy.conf │ │ ├── idle_timeout_policy.json │ │ └── spec.js │ ├── ip_other_profile │ │ ├── ip_other_profile.conf │ │ ├── ip_other_profile.json │ │ └── spec.js │ ├── irule │ │ ├── irule.conf │ │ ├── irule.json │ │ ├── irule2.conf │ │ ├── irule2.json │ │ ├── irule3.conf │ │ ├── irule3.json │ │ ├── irule4.conf │ │ ├── irule4.json │ │ ├── irule5.conf │ │ ├── irule5.json │ │ └── spec.js │ ├── l4_profile │ │ ├── l4_profile.conf │ │ ├── l4_profile.json │ │ ├── l4_profile2.conf │ │ ├── l4_profile2.json │ │ └── spec.js │ ├── log_destination │ │ ├── log_destination.conf │ │ ├── log_destination.json │ │ ├── log_destination2.conf │ │ ├── log_destination2.json │ │ └── spec.js │ ├── log_publisher │ │ ├── log_publisher.conf │ │ ├── log_publisher.json │ │ ├── log_publisher2.conf │ │ ├── log_publisher2.json │ │ └── spec.js │ ├── misc │ │ ├── deduplicator │ │ │ ├── deduplicator-spec.js │ │ │ ├── duplicateNames.conf │ │ │ ├── duplicateNames.json │ │ │ ├── duplicateNames2.conf │ │ │ └── duplicateNames2.json │ │ └── defaultsFromInheritance │ │ │ ├── defaultsFrom.conf │ │ │ ├── defaultsFrom.json │ │ │ └── defaultsFromInheritance-spec.js │ ├── monitor_dns │ │ ├── monitor_dns.conf │ │ ├── monitor_dns.json │ │ └── spec.js │ ├── monitor_external │ │ ├── monitor_external.conf │ │ ├── monitor_external.json │ │ └── spec.js │ ├── monitor_ftp │ │ ├── monitor_ftp.conf │ │ ├── monitor_ftp.json │ │ └── spec.js │ ├── monitor_http │ │ ├── monitor_http.conf │ │ ├── monitor_http.json │ │ ├── monitor_http2.conf │ │ ├── monitor_http2.json │ │ ├── monitor_http3.conf │ │ ├── monitor_http3.json │ │ ├── monitor_http4.conf │ │ ├── monitor_http4.json │ │ └── spec.js │ ├── monitor_http2 │ │ ├── monitor_http2.conf │ │ ├── monitor_http2.json │ │ └── spec.js │ ├── monitor_https │ │ ├── monitor_https.conf │ │ ├── monitor_https.crt │ │ ├── monitor_https.json │ │ ├── monitor_https2.conf │ │ ├── monitor_https2.json │ │ └── spec.js │ ├── monitor_icmp │ │ ├── monitor_icmp.conf │ │ ├── monitor_icmp.json │ │ └── spec.js │ ├── monitor_ldap │ │ ├── monitor_ldap.conf │ │ ├── monitor_ldap.json │ │ └── spec.js │ ├── monitor_mysql │ │ ├── monitor_mysql.conf │ │ ├── monitor_mysql.json │ │ └── spec.js │ ├── monitor_postgresql │ │ ├── monitor_postgresql.conf │ │ ├── monitor_postgresql.json │ │ ├── monitor_postgresql2.conf │ │ ├── monitor_postgresql2.json │ │ └── spec.js │ ├── monitor_radius │ │ ├── monitor_radius.conf │ │ ├── monitor_radius.json │ │ └── spec.js │ ├── monitor_sip │ │ ├── monitor_sip.conf │ │ ├── monitor_sip.crt │ │ ├── monitor_sip.json │ │ └── spec.js │ ├── monitor_smtp │ │ ├── monitor_smtp.conf │ │ ├── monitor_smtp.json │ │ └── spec.js │ ├── monitor_tcp-half-open │ │ ├── monitor_tcp-half-open.conf │ │ ├── monitor_tcp-half-open.json │ │ └── spec.js │ ├── monitor_tcp │ │ ├── monitor_tcp.conf │ │ ├── monitor_tcp.json │ │ └── spec.js │ ├── monitor_udp │ │ ├── monitor_udp.conf │ │ ├── monitor_udp.json │ │ └── spec.js │ ├── multiplex_profile │ │ ├── multiplex_profile.conf │ │ ├── multiplex_profile.json │ │ ├── multiplex_profile_full.conf │ │ ├── multiplex_profile_full.json │ │ └── spec.js │ ├── nat_policy │ │ ├── nat_policy.conf │ │ ├── nat_policy.json │ │ ├── nat_policy2.conf │ │ ├── nat_policy2.json │ │ └── spec.js │ ├── nat_source_translation │ │ ├── nat_source_translation.conf │ │ ├── nat_source_translation.json │ │ ├── nat_source_translation_2.conf │ │ ├── nat_source_translation_2.json │ │ └── spec.js │ ├── net_address_list │ │ ├── net_address_list.conf │ │ ├── net_address_list.json │ │ └── spec.js │ ├── persist_cookie │ │ ├── persist_cookie.conf │ │ ├── persist_cookie.json │ │ └── spec.js │ ├── persist_dest-addr │ │ ├── persist_dest-addr.conf │ │ ├── persist_dest-addr.json │ │ └── spec.js │ ├── persist_hash │ │ ├── persist_hash.conf │ │ ├── persist_hash.json │ │ └── spec.js │ ├── persist_msrdp │ │ ├── persist_msrdp.conf │ │ ├── persist_msrdp.json │ │ └── spec.js │ ├── persist_sip-info │ │ ├── persist_sip-info.conf │ │ ├── persist_sip-info.json │ │ └── spec.js │ ├── persist_src-addr │ │ ├── persist_src-addr.conf │ │ ├── persist_src-addr.json │ │ └── spec.js │ ├── persist_tls-session-id │ │ ├── persist_tls-session-id.conf │ │ ├── persist_tls-session-id.json │ │ └── spec.js │ ├── persist_universal │ │ ├── persist_universal.conf │ │ ├── persist_universal.json │ │ ├── persist_universal2.conf │ │ ├── persist_universal2.json │ │ └── spec.js │ ├── pool │ │ ├── pool.conf │ │ ├── pool.json │ │ ├── pool10.conf │ │ ├── pool10.json │ │ ├── pool11.conf │ │ ├── pool11.json │ │ ├── pool12.conf │ │ ├── pool12.json │ │ ├── pool2.conf │ │ ├── pool2.json │ │ ├── pool3.conf │ │ ├── pool3.json │ │ ├── pool4.conf │ │ ├── pool4.json │ │ ├── pool5.conf │ │ ├── pool5.json │ │ ├── pool6.conf │ │ ├── pool6.json │ │ ├── pool7.conf │ │ ├── pool7.json │ │ ├── pool8.conf │ │ ├── pool8.json │ │ ├── pool9.conf │ │ ├── pool9.json │ │ └── spec.js │ ├── protocol_inspection_profile │ │ ├── protocol_inspection_profile.conf │ │ ├── protocol_inspection_profile.json │ │ ├── protocol_inspection_profile2.conf │ │ ├── protocol_inspection_profile2.json │ │ └── spec.js │ ├── radius_profile │ │ ├── radius_profile.conf │ │ ├── radius_profile.json │ │ └── spec.js │ ├── rewrite_profile │ │ ├── rewrite_profile-bundle.crt │ │ ├── rewrite_profile.conf │ │ ├── rewrite_profile.crt │ │ ├── rewrite_profile.json │ │ └── spec.js │ ├── security_log_profile │ │ ├── security_log_profile.conf │ │ ├── security_log_profile.json │ │ ├── security_log_profile2.conf │ │ ├── security_log_profile2.json │ │ ├── security_log_profile3.conf │ │ ├── security_log_profile3.json │ │ ├── security_log_profile4.conf │ │ ├── security_log_profile4.json │ │ ├── security_log_profile5.conf │ │ ├── security_log_profile5.json │ │ ├── security_log_profile6.conf │ │ ├── security_log_profile6.json │ │ ├── security_log_profile7.conf │ │ ├── security_log_profile7.json │ │ ├── security_log_profile8.conf │ │ ├── security_log_profile8.json │ │ └── spec.js │ ├── service_address │ │ ├── service_address.conf │ │ ├── service_address.json │ │ └── spec.js │ ├── service_forwarding │ │ ├── service_forwarding.conf │ │ ├── service_forwarding.json │ │ ├── service_forwarding2.conf │ │ ├── service_forwarding2.json │ │ └── spec.js │ ├── service_generic │ │ ├── service_generic.conf │ │ ├── service_generic.json │ │ ├── service_generic10.conf │ │ ├── service_generic10.json │ │ ├── service_generic11.conf │ │ ├── service_generic11.json │ │ ├── service_generic12.conf │ │ ├── service_generic12.json │ │ ├── service_generic2.conf │ │ ├── service_generic2.json │ │ ├── service_generic3.conf │ │ ├── service_generic3.json │ │ ├── service_generic4.conf │ │ ├── service_generic4.json │ │ ├── service_generic5.conf │ │ ├── service_generic5.json │ │ ├── service_generic6.conf │ │ ├── service_generic6.json │ │ ├── service_generic7.conf │ │ ├── service_generic7.json │ │ ├── service_generic8.conf │ │ ├── service_generic8.json │ │ ├── service_generic9.conf │ │ ├── service_generic9.json │ │ └── spec.js │ ├── service_http │ │ ├── service_http.conf │ │ ├── service_http.json │ │ ├── service_http10.conf │ │ ├── service_http10.json │ │ ├── service_http11.conf │ │ ├── service_http11.json │ │ ├── service_http12.conf │ │ ├── service_http12.json │ │ ├── service_http13.conf │ │ ├── service_http13.json │ │ ├── service_http14.conf │ │ ├── service_http14.json │ │ ├── service_http15.conf │ │ ├── service_http15.json │ │ ├── service_http16.conf │ │ ├── service_http16.json │ │ ├── service_http17.conf │ │ ├── service_http17.json │ │ ├── service_http18.conf │ │ ├── service_http18.json │ │ ├── service_http19.conf │ │ ├── service_http19.json │ │ ├── service_http2.conf │ │ ├── service_http2.json │ │ ├── service_http20.conf │ │ ├── service_http20.json │ │ ├── service_http21.conf │ │ ├── service_http21.json │ │ ├── service_http22.conf │ │ ├── service_http22.json │ │ ├── service_http23.conf │ │ ├── service_http23.json │ │ ├── service_http24.conf │ │ ├── service_http24.json │ │ ├── service_http25.conf │ │ ├── service_http25.json │ │ ├── service_http26.conf │ │ ├── service_http26.json │ │ ├── service_http3.conf │ │ ├── service_http3.json │ │ ├── service_http4.conf │ │ ├── service_http4.json │ │ ├── service_http5.conf │ │ ├── service_http5.json │ │ ├── service_http6.conf │ │ ├── service_http6.json │ │ ├── service_http7.conf │ │ ├── service_http7.json │ │ ├── service_http8.conf │ │ ├── service_http8.json │ │ ├── service_http9.conf │ │ ├── service_http9.json │ │ └── spec.js │ ├── service_https │ │ ├── service_https.conf │ │ ├── service_https.crt │ │ ├── service_https.json │ │ ├── service_https10.conf │ │ ├── service_https10.json │ │ ├── service_https11.conf │ │ ├── service_https11.json │ │ ├── service_https12.conf │ │ ├── service_https12.json │ │ ├── service_https13.conf │ │ ├── service_https13.json │ │ ├── service_https14.conf │ │ ├── service_https14.json │ │ ├── service_https15.conf │ │ ├── service_https15.json │ │ ├── service_https16.conf │ │ ├── service_https16.json │ │ ├── service_https2.conf │ │ ├── service_https2.crt │ │ ├── service_https2.json │ │ ├── service_https3-bundle.crt │ │ ├── service_https3.conf │ │ ├── service_https3.crt │ │ ├── service_https3.json │ │ ├── service_https4.conf │ │ ├── service_https4.crt │ │ ├── service_https4.json │ │ ├── service_https5.conf │ │ ├── service_https5.json │ │ ├── service_https6.conf │ │ ├── service_https6.json │ │ ├── service_https7.conf │ │ ├── service_https7.json │ │ ├── service_https8.conf │ │ ├── service_https8.json │ │ ├── service_https9-bundle.crt │ │ ├── service_https9.conf │ │ ├── service_https9.crt │ │ ├── service_https9.json │ │ └── spec.js │ ├── service_l4 │ │ ├── service_l4.2.conf │ │ ├── service_l4.2.json │ │ ├── service_l4.3.conf │ │ ├── service_l4.3.json │ │ ├── service_l4.conf │ │ ├── service_l4.json │ │ └── spec.js │ ├── service_sctp │ │ ├── service_sctp.conf │ │ ├── service_sctp.json │ │ └── spec.js │ ├── service_tcp │ │ ├── service_tcp.conf │ │ ├── service_tcp.json │ │ ├── service_tcp2.conf │ │ ├── service_tcp2.json │ │ ├── service_tcp3.conf │ │ ├── service_tcp3.json │ │ ├── service_tcp4.conf │ │ ├── service_tcp4.json │ │ ├── service_tcp5.conf │ │ ├── service_tcp5.json │ │ ├── service_tcp6.conf │ │ ├── service_tcp6.json │ │ ├── service_tcp7.conf │ │ ├── service_tcp7.json │ │ ├── service_tcp8.conf │ │ ├── service_tcp8.json │ │ ├── service_tcp9.conf │ │ ├── service_tcp9.json │ │ └── spec.js │ ├── service_udp │ │ ├── service_udp.conf │ │ ├── service_udp.json │ │ ├── service_udp2.conf │ │ ├── service_udp2.json │ │ └── spec.js │ ├── sip_profile │ │ ├── sip_profile.conf │ │ ├── sip_profile.json │ │ └── spec.js │ ├── snat_pool │ │ ├── snat_pool.conf │ │ ├── snat_pool.json │ │ ├── snat_pool2.conf │ │ ├── snat_pool2.json │ │ └── spec.js │ ├── ssh_proxy_profile │ │ ├── spec.js │ │ ├── ssh_proxy_profile.conf │ │ ├── ssh_proxy_profile.json │ │ ├── ssh_proxy_profile2.conf │ │ └── ssh_proxy_profile2.json │ ├── stream_profile │ │ ├── spec.js │ │ ├── stream_profile.conf │ │ └── stream_profile.json │ ├── tcp_profile │ │ ├── spec.js │ │ ├── tcp_profile.conf │ │ ├── tcp_profile.json │ │ ├── tcp_profile2.conf │ │ ├── tcp_profile2.json │ │ ├── tcp_profile3.conf │ │ ├── tcp_profile3.json │ │ ├── tcp_profile4.conf │ │ └── tcp_profile4.json │ ├── tls_client │ │ ├── spec.js │ │ ├── tls_client-bundle.crt │ │ ├── tls_client.conf │ │ ├── tls_client.crt │ │ ├── tls_client.json │ │ ├── tls_client2.conf │ │ ├── tls_client2.json │ │ ├── tls_client3.conf │ │ ├── tls_client3.json │ │ ├── tls_client4.conf │ │ ├── tls_client4.json │ │ ├── tls_client5.conf │ │ ├── tls_client5.json │ │ ├── tls_client6.conf │ │ ├── tls_client6.json │ │ ├── tls_client7.conf │ │ ├── tls_client7.json │ │ ├── tls_client8.conf │ │ └── tls_client8.json │ ├── tls_server │ │ ├── spec.js │ │ ├── tls_server-bundle.crt │ │ ├── tls_server.conf │ │ ├── tls_server.crt │ │ ├── tls_server.json │ │ ├── tls_server10.conf │ │ ├── tls_server10.json │ │ ├── tls_server11.conf │ │ ├── tls_server11.json │ │ ├── tls_server2.conf │ │ ├── tls_server2.crt │ │ ├── tls_server2.json │ │ ├── tls_server3.conf │ │ ├── tls_server3.json │ │ ├── tls_server4.conf │ │ ├── tls_server4.json │ │ ├── tls_server5.conf │ │ ├── tls_server5.json │ │ ├── tls_server6-bundle.crt │ │ ├── tls_server6.conf │ │ ├── tls_server6.crt │ │ ├── tls_server6.json │ │ ├── tls_server7.conf │ │ ├── tls_server7.json │ │ ├── tls_server8.conf │ │ ├── tls_server8.json │ │ ├── tls_server9.conf │ │ └── tls_server9.json │ ├── traffic_log_profile │ │ ├── spec.js │ │ ├── traffic_log_profile.conf │ │ └── traffic_log_profile.json │ ├── udp_profile │ │ ├── spec.js │ │ ├── udp_profile.conf │ │ ├── udp_profile.json │ │ ├── udp_profile_full.conf │ │ └── udp_profile_full.json │ └── websocket_profile │ │ ├── spec.js │ │ ├── websocket_profile.conf │ │ └── websocket_profile.json ├── as3ConverterNext │ ├── as3ConverterNext-spec.js │ ├── ex1.conf │ └── ex1.json ├── doConverter │ ├── analytics │ │ ├── analytics.conf │ │ ├── analytics.json │ │ └── spec.js │ ├── authentication │ │ ├── authentication.conf │ │ ├── authentication.json │ │ └── spec.js │ ├── configsync │ │ ├── configsync.conf │ │ ├── configsync.json │ │ └── spec.js │ ├── dagglobals │ │ ├── dagglobals.conf │ │ ├── dagglobals.json │ │ └── spec.js │ ├── dbvariables │ │ ├── dbvariables.conf │ │ ├── dbvariables.json │ │ └── spec.js │ ├── devicecertificate │ │ ├── devicecertificate.crt │ │ ├── devicecertificate.json │ │ └── spec.js │ ├── devicegroup │ │ ├── devicegroup.conf │ │ ├── devicegroup.json │ │ ├── devicegroup2.conf │ │ ├── devicegroup2.json │ │ ├── devicegroup3.conf │ │ ├── devicegroup3.json │ │ ├── devicegroup4.conf │ │ ├── devicegroup4.json │ │ ├── devicegroup5.conf │ │ ├── devicegroup5.json │ │ ├── devicegroup6.conf │ │ ├── devicegroup6.json │ │ └── spec.js │ ├── dns │ │ ├── dns.conf │ │ ├── dns.json │ │ └── spec.js │ ├── dns_resolver │ │ ├── dns_resolver.conf │ │ ├── dns_resolver.json │ │ ├── dns_resolver2.conf │ │ ├── dns_resolver2.json │ │ └── spec.js │ ├── doConverter-spec.js │ ├── failovermulticast │ │ ├── failovermulticast.conf │ │ ├── failovermulticast.json │ │ └── spec.js │ ├── failoverunicast │ │ ├── failoverunicast.conf │ │ ├── failoverunicast.json │ │ └── spec.js │ ├── firewalladdresslist │ │ ├── firewalladdresslist.conf │ │ ├── firewalladdresslist.json │ │ └── spec.js │ ├── firewallpolicy │ │ ├── firewallpolicy.conf │ │ ├── firewallpolicy.json │ │ └── spec.js │ ├── firewallportlist │ │ ├── firewallportlist.conf │ │ ├── firewallportlist.json │ │ ├── firewallportlist2.conf │ │ ├── firewallportlist2.json │ │ └── spec.js │ ├── gslbdatacenter │ │ ├── gslbdatacenter.conf │ │ ├── gslbdatacenter.json │ │ └── spec.js │ ├── gslbglobals │ │ ├── gslbglobals.conf │ │ ├── gslbglobals.json │ │ └── spec.js │ ├── gslbmonitor │ │ ├── gslbmonitor.conf │ │ ├── gslbmonitor.json │ │ └── spec.js │ ├── gslbproberpool │ │ ├── gslbproberpool.conf │ │ ├── gslbproberpool.json │ │ └── spec.js │ ├── gslbserver │ │ ├── gslbserver.conf │ │ ├── gslbserver.json │ │ └── spec.js │ ├── httpd │ │ ├── httpd.conf │ │ ├── httpd.json │ │ └── spec.js │ ├── license │ │ ├── license.json │ │ ├── license.ucs │ │ └── spec.js │ ├── managementip │ │ ├── managementip.conf │ │ ├── managementip.json │ │ ├── managementip2.conf │ │ ├── managementip2.json │ │ ├── managementip3.conf │ │ ├── managementip3.json │ │ └── spec.js │ ├── managementipfirewall │ │ ├── managementipfirewall.conf │ │ ├── managementipfirewall.json │ │ └── spec.js │ ├── managementroute │ │ ├── managementroute.conf │ │ ├── managementroute.json │ │ ├── managementroute2.conf │ │ ├── managementroute2.json │ │ └── spec.js │ ├── mirrorip │ │ ├── mirrorip.conf │ │ ├── mirrorip.json │ │ ├── mirrorip2.conf │ │ ├── mirrorip2.json │ │ └── spec.js │ ├── ntp │ │ ├── ntp.conf │ │ ├── ntp.json │ │ └── spec.js │ ├── provision │ │ ├── provision.conf │ │ ├── provision.json │ │ └── spec.js │ ├── remoteauthrole │ │ ├── remoteauthrole.conf │ │ ├── remoteauthrole.json │ │ └── spec.js │ ├── route │ │ ├── route.conf │ │ ├── route.json │ │ └── spec.js │ ├── routedomain │ │ ├── routedomain.conf │ │ ├── routedomain.json │ │ ├── routedomain2.conf │ │ ├── routedomain2.json │ │ └── spec.js │ ├── routemap │ │ ├── routemap.conf │ │ ├── routemap.json │ │ └── spec.js │ ├── routingaccesslist │ │ ├── routingaccesslist.conf │ │ ├── routingaccesslist.json │ │ └── spec.js │ ├── routingaspath │ │ ├── routingaspath.conf │ │ ├── routingaspath.json │ │ └── spec.js │ ├── routingbgp │ │ ├── routingbgp.conf │ │ ├── routingbgp.json │ │ └── spec.js │ ├── routingprefixlist │ │ ├── routingprefixlist.conf │ │ ├── routingprefixlist.json │ │ └── spec.js │ ├── selfip │ │ ├── selfip.conf │ │ ├── selfip.json │ │ ├── selfip2.conf │ │ ├── selfip2.json │ │ ├── selfip3.conf │ │ ├── selfip3.json │ │ ├── selfip4.conf │ │ ├── selfip4.json │ │ └── spec.js │ ├── snmpagent │ │ ├── snmpagent.conf │ │ ├── snmpagent.json │ │ └── spec.js │ ├── snmpcommunity │ │ ├── snmpcommunity.conf │ │ ├── snmpcommunity.json │ │ └── spec.js │ ├── snmptrapdestination │ │ ├── snmptrapdestination.conf │ │ ├── snmptrapdestination.json │ │ └── spec.js │ ├── snmptrapevents │ │ ├── snmptrapevents.conf │ │ ├── snmptrapevents.json │ │ └── spec.js │ ├── snmpuser │ │ ├── snmpuser.conf │ │ ├── snmpuser.json │ │ └── spec.js │ ├── sshd │ │ ├── spec.js │ │ ├── sshd.conf │ │ └── sshd.json │ ├── syslogremoteserver │ │ ├── spec.js │ │ ├── syslogremoteserver.conf │ │ └── syslogremoteserver.json │ ├── system │ │ ├── spec.js │ │ ├── system.conf │ │ └── system.json │ ├── trafficcontrol │ │ ├── spec.js │ │ ├── trafficcontrol.conf │ │ └── trafficcontrol.json │ ├── trafficgroup │ │ ├── spec.js │ │ ├── trafficgroup.conf │ │ └── trafficgroup.json │ ├── trunk │ │ ├── spec.js │ │ ├── trunk.conf │ │ └── trunk.json │ ├── tunnel │ │ ├── spec.js │ │ ├── tunnel.conf │ │ ├── tunnel.json │ │ ├── tunnel2.conf │ │ └── tunnel2.json │ ├── user │ │ ├── spec.js │ │ ├── user.conf │ │ └── user.json │ └── vlan │ │ ├── spec.js │ │ ├── vlan.conf │ │ └── vlan.json ├── parser │ ├── ex1.conf │ ├── ex1.json │ ├── ex10.conf │ ├── ex10.json │ ├── ex11.conf │ ├── ex11.json │ ├── ex12.conf │ ├── ex12.json │ ├── ex13.conf │ ├── ex13.json │ ├── ex14.conf │ ├── ex14.json │ ├── ex15.conf │ ├── ex15.json │ ├── ex16.conf │ ├── ex17.conf │ ├── ex2.conf │ ├── ex2.json │ ├── ex3.conf │ ├── ex3.json │ ├── ex4.conf │ ├── ex4.json │ ├── ex5.conf │ ├── ex5.json │ ├── ex6.conf │ ├── ex6.json │ ├── ex7.conf │ ├── ex7.json │ ├── ex8.conf │ ├── ex8.json │ ├── ex9.conf │ ├── ex9.json │ └── parser-spec.js └── validators │ ├── as3Adapter.js │ ├── as3NextAdapter.js │ └── doAdapter.js ├── logObjects ├── logObjects-spec.js └── logObjects.conf ├── main ├── encrypted.ucs ├── main-spec.js ├── main.conf └── main.json ├── postConverter ├── filterByApplication │ ├── filterByApplication-spec.js │ ├── filtered.json │ ├── filtered_only_vs.json │ ├── filtered_vs_and_application.json │ ├── filtered_vs_and_tenant.json │ └── full.json ├── removeDefaultValuesAS3-spec.js ├── removeDefaultValuesDO-spec.js └── removeInvalidRefs │ ├── removeInvalidRefs-spec.js │ ├── removeInvalidRefs.json │ ├── removeInvalidRefs2.json │ ├── removeInvalidRefs3.json │ └── removeInvalidRefs4.json ├── preConverter ├── extract-spec.js ├── filterConf-spec.js └── readFiles-spec.js ├── server ├── server-spec.js ├── server.conf ├── server2.conf └── server_base2.conf └── util ├── analytics-spec.js ├── convertUtil-spec.js ├── getBigipVersion ├── getBigipVersion-spec.js └── test.conf ├── log-spec.js └── parseUtils-spec.js /.dockerignore: -------------------------------------------------------------------------------- 1 | Dockerfile 2 | .* 3 | *.md 4 | contributing 5 | coverage 6 | dist 7 | docs 8 | public 9 | scripts 10 | test 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Request an enhancement or new feature 4 | title: '' 5 | labels: 'enhancement, untriaged' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | 12 | ### Is your feature request related to a problem? Please describe. 13 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 14 | 15 | ### Describe the solution you'd like 16 | A clear and concise description of what you want to happen. 17 | 18 | ### Describe alternatives you've considered 19 | A clear and concise description of any alternative solutions or features you've considered. 20 | 21 | ### Additional context 22 | Add any other context or screenshots about the feature request here. 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .nyc_output 3 | .vscode 4 | api-bundle.js 5 | bundle.js 6 | coverage 7 | dependencies 8 | docs/_build 9 | docs/_static/apidocs.html 10 | node_modules 11 | presentation 12 | rpmbuild 13 | venv 14 | # Specific to ACC 15 | *.ucs 16 | .f5-acc 17 | dist 18 | output.json 19 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .dockerignore 2 | .f5-acc 3 | .gitlab-ci.yml 4 | .nyc_output 5 | .vscode 6 | 7 | contributing 8 | docs 9 | scripts 10 | test 11 | 12 | Dockerfile 13 | *.ucs 14 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # syntax = docker/dockerfile:1.3 2 | FROM node:lts-alpine 3 | ENV DOCKER_CONTAINER true 4 | ARG TEEM_CONTEXT 5 | ENV TEEM_API_ENVIRONMENT $TEEM_CONTEXT 6 | 7 | RUN ls -als 8 | 9 | WORKDIR /app 10 | 11 | COPY . . 12 | RUN npm ci --omit=dev 13 | RUN --mount=type=secret,id=TEEM_KEY cp /run/secrets/TEEM_KEY . 14 | RUN chown -R node:node . 15 | 16 | USER node 17 | ENTRYPOINT [ "node", "init.js" ] 18 | -------------------------------------------------------------------------------- /F5_Contributor_License_Agreement.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f5devcentral/f5-automation-config-converter/e6f9fcec46f0cb2b366110bd9936c80568752ddc/F5_Contributor_License_Agreement.docx -------------------------------------------------------------------------------- /docs/_static/f5-logo-solid-rgb_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f5devcentral/f5-automation-config-converter/e6f9fcec46f0cb2b366110bd9936c80568752ddc/docs/_static/f5-logo-solid-rgb_small.png -------------------------------------------------------------------------------- /docs/images/ACC-POST1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f5devcentral/f5-automation-config-converter/e6f9fcec46f0cb2b366110bd9936c80568752ddc/docs/images/ACC-POST1.png -------------------------------------------------------------------------------- /docs/images/ACC-POST2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f5devcentral/f5-automation-config-converter/e6f9fcec46f0cb2b366110bd9936c80568752ddc/docs/images/ACC-POST2.png -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | f5-sphinx-theme>=2.0.8 2 | sphinx<2 3 | sphinxjp.themes.basicstrap 4 | cloud_sptheme 5 | sphinx-copybutton 6 | -------------------------------------------------------------------------------- /docs/userguide/ACC-POST1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f5devcentral/f5-automation-config-converter/e6f9fcec46f0cb2b366110bd9936c80568752ddc/docs/userguide/ACC-POST1.png -------------------------------------------------------------------------------- /docs/userguide/ACC-POST2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f5devcentral/f5-automation-config-converter/e6f9fcec46f0cb2b366110bd9936c80568752ddc/docs/userguide/ACC-POST2.png -------------------------------------------------------------------------------- /init.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | const getCliConfig = require('./src/preConverter/getCliConfig'); 20 | const main = require('./src/main').main; 21 | const server = require('./src/server'); 22 | 23 | if (process.argv[2] === 'serve') { 24 | return server(); 25 | } 26 | const config = getCliConfig(); 27 | return main(null, config); 28 | -------------------------------------------------------------------------------- /scripts/build/fetch-dependencies.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if [[ -z "$ARTIFACTORY_URL" ]]; then 6 | echo "ARTIFACTORY_URL is required" 7 | exit 1 8 | fi 9 | 10 | DEP_PATH=./dependencies 11 | NPM_INSTALL_OPTS=--no-save 12 | 13 | if [[ -z "$ACC_DEV_ENV" ]]; then 14 | echo "All packages from '${DEP_PATH}' will be added as dependencies to package.json and package-lock.json" 15 | NPM_INSTALL_OPTS= 16 | fi 17 | 18 | mkdir -p $DEP_PATH 19 | 20 | npm config set @automation-toolchain:registry https://${ARTIFACTORY_URL}/artifactory/api/npm/f5-automation-toolchain-npm 21 | npm pack --pack-destination $DEP_PATH @automation-toolchain/f5-appsvcs-schema 22 | 23 | npm install $NPM_INSTALL_OPTS $DEP_PATH/* 24 | -------------------------------------------------------------------------------- /scripts/build/pack-code.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # npm pack uses version from package.json 6 | PACKAGE_VERSION=$(node -p -e "require('./package.json').version") 7 | 8 | # Determine image tag 9 | if [[ ${CI_COMMIT_TAG} ]]; then 10 | IMAGE_TAG=$CI_COMMIT_TAG 11 | else 12 | IMAGE_TAG=$CI_COMMIT_REF_NAME 13 | fi 14 | 15 | npm pack 16 | 17 | mkdir -p dist 18 | cp $CI_PROJECT_NAME-$PACKAGE_VERSION.tgz dist/$CI_PROJECT_NAME-$IMAGE_TAG-source.tgz 19 | -------------------------------------------------------------------------------- /scripts/dev/copyright.txt: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright {} F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | -------------------------------------------------------------------------------- /scripts/dev/update-acc-deps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -x 3 | 4 | # shellcheck disable=SC1091 5 | source "$(dirname "${BASH_SOURCE[0]}")/update-util.sh" 6 | 7 | validate_env_vars 8 | 9 | # Update deps to latest using npm-check-updates 10 | # exlude ajv (version pinned by AS3/DO) 11 | npx npm-check-updates -u -x ajv 12 | npm i 13 | npm upgrade 14 | 15 | set_git_user_config 16 | 17 | git checkout "$CI_BRANCH_NAME" 18 | git remote set-url origin https://"$ACC_ACCESS_TOKEN"@"$CI_SERVER_HOST"/"$CI_PROJECT_PATH".git 19 | 20 | commit_changes "ACC" "$UPDATE_BRANCH_NAME" 21 | 22 | # Set context back to reference branch 23 | git checkout "$CI_BRANCH_NAME" 24 | -------------------------------------------------------------------------------- /src/util/convert/convertToNameValueObj.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | // '"foo: bar"' => {name: 'foo', value: 'bar'} 20 | module.exports = (str) => { 21 | const split = str.replace(/"/g, '').split(':'); 22 | return { 23 | name: split[0], 24 | value: split.slice(1).join(':').trim() 25 | }; 26 | }; 27 | -------------------------------------------------------------------------------- /src/util/convert/convertToNumberArray.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | // '"100 101 102 200"' => [ 100, 101, 102, 200 ] 20 | module.exports = (str) => str.trim().split(' ').map(Number); 21 | -------------------------------------------------------------------------------- /src/util/convert/enabledToEnable.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | // 'enabled' => 'enable' 20 | // 'disabled' => 'disable' 21 | // 'auto' => 'auto' 22 | 23 | module.exports = (val) => { 24 | if (val === 'enabled') return 'enable'; 25 | if (val === 'disabled') return 'disable'; 26 | return val; 27 | }; 28 | -------------------------------------------------------------------------------- /src/util/convert/hyphensToCamel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | // input: 'example-string-here' 20 | // output: 'exampleStringHere' 21 | 22 | module.exports = (str) => str.split('-') 23 | .reduce((a, b) => `${a}${b[0].toUpperCase()}${b.slice(1)}`); 24 | -------------------------------------------------------------------------------- /src/util/convert/isIPv4.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | module.exports = (str) => typeof str === 'string' 20 | && str.split('.').length >= 4 21 | && str.split(':').length <= 2; 22 | -------------------------------------------------------------------------------- /src/util/convert/isIPv6.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | module.exports = (str) => typeof str === 'string' 20 | && str.split(':').length >= 4 21 | && str.split('.').length <= 2; 22 | -------------------------------------------------------------------------------- /src/util/convert/isInteger.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | module.exports = (str) => { 20 | if (typeof str === 'number') return true; 21 | if (typeof str !== 'string') return false; 22 | if (!/^[0-9]+$/.test(str)) return false; 23 | return true; 24 | }; 25 | -------------------------------------------------------------------------------- /src/util/convert/prependObjProps.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | // {preload: false}, 'hsts' => {hstsPreload: false} 20 | module.exports = (obj, str) => Object.assign(...Object.keys(obj).map((key) => { 21 | const newKey = `${str}${key[0].toUpperCase()}${key.slice(1)}`; 22 | return { [newKey]: obj[`${key}`] }; 23 | })); 24 | -------------------------------------------------------------------------------- /src/util/convert/returnEmptyObjIfNone.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | module.exports = (val, confObj) => { 20 | if (val === 'none') return {}; 21 | return confObj; 22 | }; 23 | -------------------------------------------------------------------------------- /src/util/countObjects.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | module.exports = (json) => Object.keys(json).length; 20 | -------------------------------------------------------------------------------- /src/util/getBigipVersion.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | // find BIG-IP Version 20 | module.exports = (data) => { 21 | const dataStr = JSON.stringify(data); 22 | if (dataStr.includes('TMSH-VERSION')) { 23 | return dataStr.split('TMSH-VERSION: ')[1].split('\\n')[0]; 24 | } 25 | return ''; 26 | }; 27 | -------------------------------------------------------------------------------- /src/util/getKey.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | // input: 'ltm node /Web/10.1.1.1' 20 | // output: 'ltm node' 21 | 22 | module.exports = (val) => { 23 | if (val.includes('"')) { 24 | return val.split('"')[0].trim(); 25 | } 26 | 27 | const split = val.split(' '); 28 | split.pop(); 29 | return split.join(' '); 30 | }; 31 | -------------------------------------------------------------------------------- /src/util/parse/arrToMultilineStr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | module.exports = (arr) => { 20 | const split = arr[0].trim().split(' '); 21 | const key = split.shift(); 22 | arr[0] = split.join(' '); 23 | return { [key]: arr.join('\n') }; 24 | }; 25 | -------------------------------------------------------------------------------- /src/util/parse/countIndent.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | // return number of leading spaces 20 | module.exports = (str) => str.search(/\S/); 21 | -------------------------------------------------------------------------------- /src/util/parse/getTitle.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | // get title of root-level bigip-object 20 | module.exports = (str) => str.replace(/\s?\{\s?}?$/, '').trim(); 21 | -------------------------------------------------------------------------------- /src/util/parse/objToArr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | // for one-line arrays 20 | module.exports = (line) => { 21 | const split = line.split('{'); 22 | const arrBody = split[1].split('}').join('').trim(); 23 | return arrBody.split(' '); 24 | }; 25 | -------------------------------------------------------------------------------- /src/util/parse/removeIndent.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | const countIndent = require('./countIndent'); 20 | 21 | // remove first 4 whitespaces from each item in array 22 | module.exports = (arr) => arr.map((line) => (countIndent(line) > 1 ? line.slice(4) : line)); 23 | -------------------------------------------------------------------------------- /src/util/parse/strToObj.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | // for bigip-object properties 20 | module.exports = (line) => { 21 | const split = line.trim().split(' '); 22 | const key = split.shift(); 23 | return { [key]: split.join(' ') }; 24 | }; 25 | -------------------------------------------------------------------------------- /test/basic_install.ucs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f5devcentral/f5-automation-config-converter/e6f9fcec46f0cb2b366110bd9936c80568752ddc/test/basic_install.ucs -------------------------------------------------------------------------------- /test/engines/as3Converter/analytics_profile/analytics_profile2.conf: -------------------------------------------------------------------------------- 1 | ltm profile analytics /AS3_Tenant/AS3_Application/test_1 { 2 | app-service none 3 | collect-geo enabled 4 | countries-for-stat-collection none 5 | } 6 | ltm profile analytics /AS3_Tenant/AS3_Application/test_2 { 7 | app-service none 8 | collect-geo enabled 9 | countries-for-stat-collection { "New Zealand" } 10 | } 11 | ltm profile analytics /AS3_Tenant/AS3_Application/test_3 { 12 | app-service none 13 | collect-geo enabled 14 | countries-for-stat-collection { Vanuatu Zambia } 15 | } 16 | ltm profile analytics /AS3_Tenant/AS3_Application/test_4 { 17 | app-service none 18 | collect-geo enabled 19 | countries-for-stat-collection { Vanuatu Zambia Yemen "French Guiana" } 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/analytics_tcp_profile/analytics_tcp_profile.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.0 2 | 3 | ltm profile tcp-analytics /AS3_Tenant/AS3_Application/test_tcp_analytics_2 { 4 | app-service none 5 | collect-city enabled 6 | collect-continent enabled 7 | collect-country enabled 8 | collect-nexthop enabled 9 | collect-post-code enabled 10 | collect-region enabled 11 | collect-remote-host-ip enabled 12 | collect-remote-host-subnet enabled 13 | collected-by-client-side enabled 14 | collected-by-server-side enabled 15 | collected-stats-external-logging enabled 16 | collected-stats-internal-logging enabled 17 | defaults-from /Common/tcp-analytics 18 | description "TCP Analytics Profile Test" 19 | external-logging-publisher /Common/default-ipsec-log-publisher 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/ca_bundle/ca_bundle.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | sys file ssl-cert /AS3_Tenant/AS3_Application/testItem { 4 | cache-path /config/filestore/files_d/AS3_Tenant_d/certificate_d/:AS3_Tenant:AS3_Application:testItem_124192_1 5 | revision 1 6 | source-path file:/var/config/rest/downloads/_AS3_Tenant_AS3_Application_testItem 7 | } 8 | -------------------------------------------------------------------------------- /test/engines/as3Converter/certificate/certificate2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | sys file ssl-cert /AS3_Tenant/AS3_Application/testItem.crt { 4 | cache-path /config/filestore/files_d/AS3_Tenant_d/certificate_d/:AS3_Tenant:AS3_Application:testItem.crt_129337_1 5 | revision 1 6 | source-path file:/var/config/rest/downloads/_AS3_Tenant_AS3_Application_testItem.crt 7 | } 8 | -------------------------------------------------------------------------------- /test/engines/as3Converter/certificate_validator_ocsp/certificate_validator_ocsp.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm profile ocsp-stapling-params /AS3_Tenant/AS3_Application/testItem { 4 | dns-resolver /Common/10.2.3.4 5 | responder-url http://cert.ocsp1.test 6 | timeout 300 7 | } 8 | sys crypto cert-validator ocsp /AS3_Tenant/AS3_Application/testItem { 9 | dns-resolver /Common/10.2.3.4 10 | responder-url http://cert.ocsp1.test 11 | timeout 300 12 | } 13 | -------------------------------------------------------------------------------- /test/engines/as3Converter/certificate_validator_ocsp/certificate_validator_ocsp.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.10.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Certificate_Validator_OCSP", 15 | "dnsResolver": { 16 | "bigip": "/Common/10.2.3.4" 17 | }, 18 | "responderUrl": "http://cert.ocsp1.test", 19 | "timeout": 300 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /test/engines/as3Converter/cipher_rule/cipher_rule.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | ltm cipher rule /Common/testCipher { 4 | cipher ECDHE:RSA:ECDHE_ECDSA:!SSLV3:!RC4:!EXP:!DES:!3DES 5 | description "Cipher suites that maximize regulatory compliance." 6 | dh-groups P256:P384 7 | signature-algorithms DSA-SHA256:DSA-SHA512:ECDSA-SHA384 8 | } 9 | -------------------------------------------------------------------------------- /test/engines/as3Converter/classification_profile/classification_profile.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm profile classification /AS3_Tenant/AS3_Application/testItem { 4 | app-detection off 5 | avr-publisher /Common/default-ipsec-log-publisher 6 | avr-stat-collect on 7 | defaults-from /Common/classification_apm_swg 8 | description none 9 | irule-event on 10 | log-publisher /Common/default-ipsec-log-publisher 11 | log-unclassified-domain on 12 | preset /Common/ce_apm_swg 13 | urlcat on 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/as3Converter/data_group/data_group.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm data-group internal /AS3_Tenant/AS3_Application/testItem { 4 | records { 5 | 10 { 6 | data value 7 | } 8 | } 9 | type string 10 | } 11 | 12 | ltm data-group internal /Common/____appsvcs_request_a6da184d-52fb-4e4d-9a72-4a2147b19cc9 { 13 | records { 14 | response0 { 15 | data someRandomDataHere 16 | } 17 | status { 18 | data completed 19 | } 20 | timestamp { 21 | data 1553192994974 22 | } 23 | } 24 | type string 25 | } 26 | -------------------------------------------------------------------------------- /test/engines/as3Converter/data_group/data_group.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Data_Group", 15 | "keyDataType": "string", 16 | "records": [ 17 | { 18 | "key": "10", 19 | "value": "value" 20 | } 21 | ] 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /test/engines/as3Converter/data_group/data_group2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm data-group internal /AS3_Tenant/AS3_Application/testItem { 4 | description description 5 | records { 6 | 10.1.0.0/24 { } 7 | 10.10.0.0/16 { 8 | data meringue 9 | } 10 | 10.10.1.1/32 { } 11 | } 12 | type ip 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/as3Converter/data_group/data_group4.conf: -------------------------------------------------------------------------------- 1 | ltm data-group internal /AS3_Tenant/AS3_Application/string-datagroup { 2 | records { 3 | /api/test/app3 { 4 | data "strings some data with special !@#${}[]12345" 5 | } 6 | } 7 | type string 8 | } 9 | ltm data-group internal /AS3_Tenant/AS3_Application/address_datagroup { 10 | records { 11 | 10.2.2.2/32 { 12 | data "address some data with special !@#${}[]12345" 13 | } 14 | type ip 15 | } 16 | } 17 | ltm data-group internal /AS3_Tenant/AS3_Application/integer_datagroup { 18 | records { 19 | 96789 { 20 | data "integer some data with special !@#${}[]12345" 21 | } 22 | } 23 | type integer 24 | } -------------------------------------------------------------------------------- /test/engines/as3Converter/data_group/data_group5.conf: -------------------------------------------------------------------------------- 1 | ltm data-group internal /Common/regexp_restore_characters { 2 | records { 3 | BracketEnd { 4 | data } 5 | } 6 | BracketStart { 7 | data { 8 | } 9 | LostInSpace { 10 | data " " 11 | } 12 | } 13 | type string 14 | } 15 | ltm data-group internal /Common/regexp_special_characters { 16 | records { 17 | " " { 18 | data LostInSpace 19 | } 20 | "\\{" { 21 | data BracketStart 22 | } 23 | "\\}" { 24 | data BracketEnd 25 | } 26 | } 27 | type string 28 | } 29 | ltm data-group internal /Common/test_group { 30 | records { 31 | "Common/Users/{id}" { 32 | data "test data" 33 | } 34 | } 35 | type string 36 | } 37 | -------------------------------------------------------------------------------- /test/engines/as3Converter/dns_cache/dns_cache.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | ltm dns cache transparent /AS3_Tenant/AS3_Application/DNSCache_example { 4 | answer-default-zones yes 5 | description "DNS Cache" 6 | local-zones { 7 | { 8 | name norecords.test 9 | } 10 | { 11 | name onerecord.test 12 | records { "wiki.onerecord.test 300 IN A 10.10.10.124" } 13 | } 14 | { 15 | name tworecords.test 16 | records { "wiki.tworecords.test 300 IN A 10.10.10.125" "wiki.tworecords.test 300 IN A 10.10.10.126" } 17 | } 18 | } 19 | msg-cache-size 0 20 | rrset-cache-size 1bytes 21 | rrset-rotate query-id 22 | } 23 | -------------------------------------------------------------------------------- /test/engines/as3Converter/dns_nameserver/dns_nameserver.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm dns nameserver /AS3_Tenant/AS3_Application/testItem { 4 | address 10.13.13.13 5 | port 177 6 | route-domain /Common/0 7 | tsig-key /AS3_Tenant/AS3_Application/tsigKey 8 | } 9 | ltm dns tsig-key /AS3_Tenant/AS3_Application/tsigKey { 10 | secret f5f5 11 | } 12 | -------------------------------------------------------------------------------- /test/engines/as3Converter/dns_profile/dns_profile2.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.10.0", 4 | "id": "urn:uuid:52d9f3a1-c032-44c7-8b75-a7a8671e4bea", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "testItem": { 13 | "class": "DNS_Profile", 14 | "statisticsSampleRate": 20, 15 | "cache": { 16 | "bigip": "/Common/dnsCache" 17 | }, 18 | "loggingProfile": { 19 | "bigip": "/Common/dnsLogger" 20 | }, 21 | "securityProfile": { 22 | "bigip": "/Common/dnsSecProf" 23 | } 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/engines/as3Converter/dns_tsig_key/dns_tsig_key.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm dns tsig-key /AS3_Tenant/AS3_Application/testItem { 4 | secret f5f5 5 | } 6 | -------------------------------------------------------------------------------- /test/engines/as3Converter/dns_tsig_key/dns_tsig_key.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.9.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "DNS_TSIG_Key", 15 | "secret": { 16 | "ciphertext": "ZjVmNQ==", 17 | "protected": "eyJhbGciOiJkaXIiLCJlbmMiOiJub25lIn0=", 18 | "ignoreChanges": true 19 | } 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /test/engines/as3Converter/dns_tsig_key/dns_tsig_key2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm dns tsig-key /AS3_Tenant/AS3_Application/testItem { 4 | algorithm hmacsha1 5 | secret $M$03$z4CBvYqxc1XoUysJJWJWnw== 6 | } 7 | -------------------------------------------------------------------------------- /test/engines/as3Converter/dns_tsig_key/dns_tsig_key2.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.9.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "DNS_TSIG_Key", 15 | "algorithm": "hmacsha1", 16 | "secret": { 17 | "ciphertext": "ZjVmNQ==", 18 | "protected": "eyJhbGciOiJkaXIiLCJlbmMiOiJmNXN2In0=", 19 | "ignoreChanges": true 20 | } 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /test/engines/as3Converter/dns_zone/dns_zone.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm dns nameserver /AS3_Tenant/AS3_Application/nameServer { 4 | route-domain /Common/0 5 | } 6 | ltm dns nameserver /AS3_Tenant/AS3_Application/nameServer2 { 7 | route-domain /Common/0 8 | } 9 | ltm dns tsig-key /AS3_Tenant/AS3_Application/tsigKey { 10 | secret f5f5 11 | } 12 | ltm dns zone /AS3_Tenant/AS3_Application/testItem { 13 | dns-express-allow-notify { 10.1.1.1 } 14 | dns-express-enabled no 15 | dns-express-notify-action bypass 16 | dns-express-notify-tsig-verify no 17 | dns-express-server /AS3_Tenant/AS3_Application/nameServer 18 | response-policy yes 19 | server-tsig-key /AS3_Tenant/AS3_Application/tsigKey 20 | transfer-clients { 21 | /AS3_Tenant/AS3_Application/nameServer 22 | /AS3_Tenant/AS3_Application/nameServer2 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /test/engines/as3Converter/endpoint_policy/endpoint_policy.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm policy /AS3_Tenant/AS3_Application/testItem { 4 | requires { http } 5 | rules { 6 | ruleAlpha { 7 | ordinal 1 8 | } 9 | ruleBeta { } 10 | } 11 | strategy /Common/best-match 12 | } 13 | -------------------------------------------------------------------------------- /test/engines/as3Converter/endpoint_policy/endpoint_policy.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Endpoint_Policy", 15 | "rules": [ 16 | { 17 | "name": "ruleAlpha" 18 | }, 19 | { 20 | "name": "ruleBeta" 21 | } 22 | ] 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/as3Converter/endpoint_policy/endpoint_policy2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm policy /AS3_Tenant/AS3_Application/testItem { 4 | description "LTM Policy" 5 | requires { http } 6 | rules { 7 | rule { 8 | description example.test/foo 9 | } 10 | } 11 | strategy /Common/first-match 12 | } 13 | -------------------------------------------------------------------------------- /test/engines/as3Converter/endpoint_policy/endpoint_policy2.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Endpoint_Policy", 15 | "remark": "LTM Policy", 16 | "strategy": "first-match", 17 | "rules": [ 18 | { 19 | "name": "rule", 20 | "remark": "example.test/foo" 21 | } 22 | ] 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/as3Converter/endpoint_policy/endpoint_policy5.conf: -------------------------------------------------------------------------------- 1 | ltm policy /AS3_Tenant/AS3_Application/testItem { 2 | controls { forwarding } 3 | requires { http } 4 | rules { 5 | HomePage { 6 | actions { 7 | 0 { 8 | forward 9 | select 10 | pool /AS3_Tenant/AS3_Application/testPool 11 | } 12 | } 13 | conditions { 14 | 0 { 15 | http-uri 16 | path 17 | starts-with 18 | values { /HomePage } 19 | } 20 | } 21 | ordinal 5 22 | } 23 | } 24 | strategy /Common/first-match 25 | } 26 | ltm pool /AS3_Tenant/AS3_Application/testPool { } -------------------------------------------------------------------------------- /test/engines/as3Converter/endpoint_policy/endpoint_policy7.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 14.1.2 2 | 3 | ltm policy /AS3_Tenant/AS3_Application/testItem { 4 | controls { server-ssl } 5 | requires { http } 6 | rules { 7 | requestRule { 8 | actions { 9 | 0 { 10 | server-ssl 11 | enable 12 | } 13 | } 14 | } 15 | } 16 | strategy /Common/best-match 17 | } 18 | -------------------------------------------------------------------------------- /test/engines/as3Converter/endpoint_policy/endpoint_policy8.conf: -------------------------------------------------------------------------------- 1 | ltm policy /AS3_Tenant/AS3_Application/xyz { 2 | controls { asm } 3 | requires { http } 4 | rules { 5 | default { 6 | actions { 7 | 0 { 8 | asm 9 | enable 10 | policy /AS3_Tenant/AS3_Application/abc 11 | } 12 | } 13 | } 14 | } 15 | strategy /Common/first-match 16 | } 17 | asm policy /AS3_Tenant/AS3_Application/abc { 18 | active 19 | encoding utf-8 20 | policy-template POLICY_TEMPLATE_FUNDAMENTAL 21 | } 22 | -------------------------------------------------------------------------------- /test/engines/as3Converter/endpoint_strategy/endpoint_strategy.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm policy-strategy /AS3_Tenant/AS3_Application/testItem { 4 | operands { 5 | 0 { 6 | geoip 7 | country-code 8 | } 9 | } 10 | strategy best-match 11 | } 12 | -------------------------------------------------------------------------------- /test/engines/as3Converter/endpoint_strategy/endpoint_strategy.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.8.0", 4 | "id": "urn:uuid:cf2f490f-9279-49b0-9b2a-1fc2b65c385f", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "testItem": { 13 | "class": "Endpoint_Strategy", 14 | "matchMethod": "best-match", 15 | "operands": [ 16 | "geoip countryCode" 17 | ] 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_diameter_endpoint_profile/enforcement_diameter_endpoint_profile.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | pem profile diameter-endpoint /AS3_Tenant/AS3_Application/diamProf { 4 | defaults-from /Common/diameter-endpoint 5 | fatal-grace-time { 6 | enabled yes 7 | time 500 8 | } 9 | msg-max-retransmits 2 10 | msg-retransmit-delay 1500 11 | product-name BIG-IP 12 | supported-apps { Gy } 13 | } 14 | pem profile diameter-endpoint /AS3_Tenant/AS3_Application/testItem { 15 | defaults-from /AS3_Tenant/AS3_Application/diamProf 16 | destination-host pcrfdest.net.test 17 | destination-realm net.test 18 | fatal-grace-time { 19 | enabled yes 20 | time 120 21 | } 22 | msg-max-retransmits 5 23 | msg-retransmit-delay 1200 24 | origin-host pcrf.xnet.test 25 | origin-realm xnet.test 26 | product-name BIG-IP 27 | supported-apps { Sd } 28 | } 29 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_format_script/enforcement_format_script.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | pem reporting format-script /AS3_Tenant/AS3_Application/testItem { 4 | definition { 5 | set theString \"some string\" 6 | } 7 | description description 8 | } 9 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_format_script/enforcement_format_script.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.10.0", 4 | "id": "urn:uuid:081e0ad7-d830-40e3-84af-209748819896", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "testItem": { 13 | "class": "Enforcement_Format_Script", 14 | "remark": "description", 15 | "definition": "set theString \\\"some string\\\"" 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_interception_endpoint/enforcement_interception_endpoint.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm pool /AS3_Tenant/AS3_Application/thePool1 { 4 | min-active-members 1 5 | } 6 | ltm pool /AS3_Tenant/AS3_Application/thePool2 { 7 | min-active-members 1 8 | } 9 | pem interception-endpoint /AS3_Tenant/AS3_Application/testItem { 10 | persistence source-ip 11 | pool /AS3_Tenant/AS3_Application/thePool2 12 | } 13 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_interception_endpoint/enforcement_interception_endpoint.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.10.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Enforcement_Interception_Endpoint", 15 | "persistence": "source-ip", 16 | "pool": { 17 | "use": "/AS3_Tenant/AS3_Application/thePool2" 18 | } 19 | }, 20 | "thePool1": { 21 | "class": "Pool" 22 | }, 23 | "thePool2": { 24 | "class": "Pool" 25 | } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_irule/enforcement_irule1.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.2 2 | 3 | pem irule /Sample_pem_irule_01/testApp/pem_irule { 4 | when PEM_POLICY {PEM::session create 192.168.3.10 subscriber-id a123 subscriber-type e164} 5 | } 6 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_irule/enforcement_irule1.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.38.0", 4 | "id": "urn:uuid:92dc237d-4230-4275-81f9-567b522b831c", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "Sample_pem_irule_01": { 8 | "class": "Tenant", 9 | "testApp": { 10 | "class": "Application", 11 | "template": "shared", 12 | "pem_irule": { 13 | "class": "Enforcement_iRule", 14 | "iRule": { 15 | "base64": "d2hlbiBQRU1fUE9MSUNZIHtQRU06OnNlc3Npb24gY3JlYXRlIDE5Mi4xNjguMy4xMCBzdWJzY3JpYmVyLWlkIGExMjMgc3Vic2NyaWJlci10eXBlIGUxNjR9" 16 | } 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_irule/enforcement_irule3.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.2 2 | 3 | pem irule /Sample_pem_irule_01/comm_bracket { 4 | # Check if the IP address is within the defined list of addresses to throttle 5 | #fif { [class match [IP::client_addr] equals IP_Throttle_List ] } { 6 | when PEM_POLICY {PEM::session create 192.168.3.10 subscriber-id a123 subscriber-type e164} 7 | } 8 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_irule/enforcement_irule3.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.38.0", 4 | "id": "urn:uuid:92dc237d-4230-4275-81f9-567b522b831c", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "Sample_pem_irule_01": { 8 | "class": "Tenant", 9 | "Shared": { 10 | "class": "Application", 11 | "template": "shared", 12 | "comm_bracket": { 13 | "class": "Enforcement_iRule", 14 | "iRule": { 15 | "base64": "IyBDaGVjayBpZiB0aGUgSVAgYWRkcmVzcyBpcyB3aXRoaW4gdGhlIGRlZmluZWQgbGlzdCBvZiBhZGRyZXNzZXMgdG8gdGhyb3R0bGUKI2ZpZiB7IFtjbGFzcyBtYXRjaCBbSVA6OmNsaWVudF9hZGRyXSBlcXVhbHMgSVBfVGhyb3R0bGVfTGlzdCBdIH0gewp3aGVuIFBFTV9QT0xJQ1kge1BFTTo6c2Vzc2lvbiBjcmVhdGUgMTkyLjE2OC4zLjEwIHN1YnNjcmliZXItaWQgYTEyMyBzdWJzY3JpYmVyLXR5cGUgZTE2NH0=" 16 | } 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_irule/enforcement_irule4.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.2 2 | 3 | pem irule /Sample_pem_irule_01/escaped_brackets { 4 | when PEM_POLICY {PEM::session create 192.168.3.10 subscriber-id a123 subscriber-type e164 5 | if {[string tolower $payload] matches_regex {\$\{\s*(j|\$\{).+?\}}} { 6 | drop 7 | event disable all 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_irule/enforcement_irule4.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.38.0", 4 | "id": "urn:uuid:92dc237d-4230-4275-81f9-567b522b831c", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "Sample_pem_irule_01": { 8 | "class": "Tenant", 9 | "Shared": { 10 | "class": "Application", 11 | "template": "shared", 12 | "escaped_brackets": { 13 | "class": "Enforcement_iRule", 14 | "iRule": { 15 | "base64": "d2hlbiBQRU1fUE9MSUNZIHtQRU06OnNlc3Npb24gY3JlYXRlIDE5Mi4xNjguMy4xMCBzdWJzY3JpYmVyLWlkIGExMjMgc3Vic2NyaWJlci10eXBlIGUxNjQKICBpZiB7W3N0cmluZyB0b2xvd2VyICRwYXlsb2FkXSBtYXRjaGVzX3JlZ2V4IHtcJFx7XHMqKGp8XCRceykuKz9cfX19IHsKICAgIGRyb3AKICAgIGV2ZW50IGRpc2FibGUgYWxsCiAgfQp9" 16 | } 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_radius_aaa_profile/enforcement_radius_aaa_profile.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | pem profile radius-aaa /AS3_Tenant/AS3_Application/radaaa { 4 | app-service none 5 | defaults-from /Common/radiusaaa 6 | retransmission-timeout 5 7 | transaction-timeout 30 8 | } 9 | pem profile radius-aaa /AS3_Tenant/AS3_Application/testItem { 10 | app-service none 11 | defaults-from /AS3_Tenant/AS3_Application/radaaa 12 | description description 13 | password $M$0j$3KrXFNXmGV+1hCam/XTC+g== 14 | retransmission-timeout 50 15 | shared-secret $M$9K$WpPeyhtToqauORtQX60NQQ== 16 | transaction-timeout 100 17 | } 18 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_service_chain_endpoint/enforcement_service_chain_endpoint.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | pem service-chain-endpoint /AS3_Tenant/AS3_Application/servChain { } 4 | -------------------------------------------------------------------------------- /test/engines/as3Converter/enforcement_service_chain_endpoint/enforcement_service_chain_endpoint.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.10.0", 4 | "id": "urn:uuid:081e0ad7-d830-40e3-84af-209748819896", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "servChain": { 13 | "class": "Enforcement_Service_Chain_Endpoint" 14 | } 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/engines/as3Converter/firewall_policy/firewall_policy.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 12.1.0 2 | 3 | security firewall policy /AS3_Tenant/AS3_Application/testItem { 4 | description description 5 | rules { 6 | theRules { 7 | rule-list /AS3_Tenant/AS3_Application/theRules 8 | } 9 | theRules2 { 10 | rule-list /AS3_Tenant/AS3_Application/theRules2 11 | } 12 | } 13 | } 14 | security firewall rule-list /AS3_Tenant/AS3_Application/theRules { } 15 | security firewall rule-list /AS3_Tenant/AS3_Application/theRules2 { } 16 | -------------------------------------------------------------------------------- /test/engines/as3Converter/firewall_port_list/firewall_port_list.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 12.1.0 2 | 3 | security firewall port-list /AS3_Tenant/AS3_Application/portListChild { 4 | ports { 5 | 8100 { } 6 | } 7 | } 8 | security firewall port-list /AS3_Tenant/AS3_Application/portListChild2 { 9 | ports { 10 | 8150 { } 11 | } 12 | } 13 | security firewall port-list /AS3_Tenant/AS3_Application/testItemFwPorts { 14 | description "This is a port list" 15 | port-lists { 16 | /AS3_Tenant/AS3_Application/portListChild { } 17 | /AS3_Tenant/AS3_Application/portListChild2 { } 18 | } 19 | ports { 20 | 80 { } 21 | 90 { } 22 | 8080-8090 { } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /test/engines/as3Converter/firewall_port_list/firewall_port_list2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | security firewall port-list /AS3_Tenant/AS3_Application/custom_port_list { 4 | description "test port-list" 5 | ports { 6 | 22 { } 7 | 53 { } 8 | 80 { } 9 | "f5-iquery" { } 10 | 443 { } 11 | "cycleserv2" { } 12 | "domain" { } 13 | 8080-8090 { } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/engines/as3Converter/firewall_port_list/firewall_port_list2.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.30.0", 4 | "id": "urn:uuid:525b241a-90ab-4deb-9f21-91f3e991a1b7", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "custom_port_list": { 13 | "remark": "test port-list", 14 | "ports": [ 15 | 22, 16 | 53, 17 | 80, 18 | 443, 19 | "f5-iquery", 20 | "cycleserv2", 21 | "domain", 22 | "8080-8090" 23 | ], 24 | "class": "Firewall_Port_List" 25 | } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/engines/as3Converter/ftp_profile/ftp_profile.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 14.1.0 2 | 3 | ltm profile ftp /AS3_Tenant/AS3_Application/testItem { 4 | allow-active-mode disabled 5 | allow-ftps enabled 6 | app-service none 7 | description description 8 | enforce-tls-session-reuse enabled 9 | ftps-mode require 10 | inherit-parent-profile enabled 11 | port 300 12 | security enabled 13 | translate-extended disabled 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/as3Converter/ftp_profile/ftp_profile.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "FTP_Profile", 15 | "remark": "description", 16 | "port": 300, 17 | "ftpsMode": "require", 18 | "enforceTlsSessionReuseEnabled": true, 19 | "activeModeEnabled": false, 20 | "securityEnabled": true, 21 | "translateExtendedEnabled": false, 22 | "inheritParentProfileEnabled": true 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/as3Converter/gslb_data_center/gslb_data_center.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | gtm datacenter /Common/testDataCenter { 4 | metadata { 5 | as3 { } 6 | } 7 | } 8 | gtm global-settings metrics { 9 | metrics-collection-protocols { icmp } 10 | } 11 | gtm global-settings metrics-exclusions { 12 | addresses none 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/as3Converter/gslb_data_center/gslb_data_center.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "Common": { 9 | "class": "Tenant", 10 | "Shared": { 11 | "class": "Application", 12 | "template": "shared", 13 | "testDataCenter": { 14 | "class": "GSLB_Data_Center" 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/engines/as3Converter/gslb_domain/gslb_domain.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | gtm pool cname /AS3_Tenant/AS3_Application/pool1 { } 4 | gtm pool mx /AS3_Tenant/AS3_Application/pool2 { } 5 | gtm wideip mx /AS3_Tenant/AS3_Application/type.changes { 6 | aliases { 7 | \?.test.mx 8 | } 9 | last-resort-pool mx /AS3_Tenant/AS3_Application/pool2 10 | pool-lb-mode ratio 11 | } 12 | -------------------------------------------------------------------------------- /test/engines/as3Converter/gslb_domain/gslb_domain3.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | gtm wideip aaaa /AS3_Tenant/AS3_Application/test.wide.ip { 4 | pool-lb-mode global-availability 5 | pools { 6 | /AS3_Tenant/AS3_Application/gtm_pool_1 { 7 | order 0 8 | } 9 | /AS3_Tenant/AS3_Application/gtm_pool_2 { 10 | order 1 11 | } 12 | } 13 | } 14 | 15 | gtm pool aaaa /AS3_Tenant/AS3_Application/gtm_pool_1 { 16 | alternate-mode none 17 | load-balancing-mode global-availability 18 | ttl 180 19 | verify-member-availability disabled 20 | } 21 | 22 | gtm pool aaaa /AS3_Tenant/AS3_Application/gtm_pool_2 { 23 | alternate-mode none 24 | disabled 25 | load-balancing-mode global-availability 26 | ttl 180 27 | verify-member-availability disabled 28 | } 29 | 30 | gtm datacenter /Common/testDataCenter { 31 | metadata { 32 | as3 { } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /test/engines/as3Converter/gslb_domain/gslb_domain4.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | gtm wideip mx /AS3_Tenant/AS3_Application/test.wide.ip { 4 | pool-lb-mode global-availability 5 | pools { 6 | /AS3_Tenant/AS3_Application/gtm_pool_1 { 7 | order 0 8 | } 9 | /AS3_Tenant/AS3_Application/gtm_pool_2 { 10 | order 1 11 | } 12 | } 13 | } 14 | 15 | gtm pool mx /AS3_Tenant/AS3_Application/gtm_pool_1 { 16 | alternate-mode none 17 | load-balancing-mode global-availability 18 | ttl 180 19 | verify-member-availability disabled 20 | } 21 | 22 | gtm pool mx /AS3_Tenant/AS3_Application/gtm_pool_2 { 23 | alternate-mode none 24 | disabled 25 | load-balancing-mode global-availability 26 | ttl 180 27 | verify-member-availability disabled 28 | } 29 | 30 | gtm datacenter /Common/testDataCenter { 31 | metadata { 32 | as3 { } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /test/engines/as3Converter/gslb_prober_pool/gslb_prober_pool.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | gtm datacenter /Common/testDataCenter { 4 | metadata { 5 | as3 { } 6 | } 7 | } 8 | gtm prober-pool /Common/testItem { 9 | description "This object is managed by appsvcs, do not modify this description" 10 | load-balancing-mode round-robin 11 | members { 12 | /Common/testServer { 13 | order 0 14 | } 15 | } 16 | } 17 | gtm server /Common/testServer { 18 | datacenter /Common/testDataCenter 19 | devices { 20 | 0 { 21 | addresses { 22 | 10.2.3.7 { } 23 | } 24 | } 25 | } 26 | metadata { 27 | as3 { } 28 | } 29 | monitor /Common/bigip 30 | product bigip 31 | } 32 | gtm global-settings metrics { 33 | metrics-collection-protocols { icmp } 34 | } 35 | gtm global-settings metrics-exclusions { 36 | addresses none 37 | } 38 | -------------------------------------------------------------------------------- /test/engines/as3Converter/gslb_server/gslb_server.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | gtm datacenter /Common/testDataCenter { 4 | metadata { 5 | as3 { } 6 | } 7 | } 8 | gtm server /Common/testServer { 9 | datacenter /Common/testDataCenter 10 | devices { 11 | 0 { 12 | addresses { 13 | 10.2.3.7 { } 14 | } 15 | } 16 | } 17 | metadata { 18 | as3 { } 19 | } 20 | monitor /Common/bigip 21 | product bigip 22 | virtual-servers { 23 | 0 { 24 | destination 10.2.3.8:5050 25 | } 26 | 1 { 27 | destination 2001:db8:85a3::8a2e:370:7334.5051 28 | } 29 | } 30 | } 31 | gtm global-settings metrics { 32 | metrics-collection-protocols { icmp } 33 | } 34 | gtm global-settings metrics-exclusions { 35 | addresses none 36 | } 37 | gtm wideip a /Common/Shared/example.edu { } 38 | -------------------------------------------------------------------------------- /test/engines/as3Converter/gslb_server/gslb_server2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | gtm datacenter /Common/testDataCenter { 4 | metadata { 5 | as3 { } 6 | } 7 | } 8 | gtm server /Common/testServer { 9 | datacenter /Common/testDataCenter 10 | devices { 11 | 0 { 12 | addresses { 13 | 10.2.3.7 { } 14 | } 15 | } 16 | } 17 | metadata { 18 | as3 { } 19 | } 20 | monitor /Common/bigip 21 | product bigip 22 | virtual-servers { 23 | 0 { 24 | destination 10.2.3.9:5050 25 | } 26 | virtualAddress1 { 27 | destination 10.2.3.8:5050 28 | } 29 | 30 | } 31 | } 32 | gtm wideip a /Common/Shared/example.edu { } 33 | -------------------------------------------------------------------------------- /test/engines/as3Converter/gslb_topology_region/gslb_topology_region.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 12.1.0 2 | 3 | gtm region /Common/regionGSLB { 4 | description "This object is managed by appsvcs" 5 | region-members { 6 | continent SA { } 7 | isp /Common/Comcast { } 8 | not country DE { } 9 | not geoip-isp some-geolocation-isp-value { } 10 | not isp /Common/AOL { } 11 | state "US/New Hampshire" { } 12 | state US/Pennsylvania { } 13 | subnet 192.168.3.0/28 { } 14 | } 15 | } 16 | gtm region /Common/regionGSLBUnknown { 17 | description "This object is managed by appsvcs" 18 | region-members { 19 | continent -- { } 20 | } 21 | } 22 | gtm topology ldns: subnet 10.15.1.1/32 server: subnet 10.16.1.1/32 { 23 | order 1 24 | } 25 | gtm global-settings metrics { 26 | metrics-collection-protocols { icmp } 27 | } 28 | gtm global-settings metrics-exclusions { 29 | addresses none 30 | } -------------------------------------------------------------------------------- /test/engines/as3Converter/http_compress/http_compress.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm profile http-compression /AS3_Tenant/AS3_Application/testItem { 4 | allow-http-10 enabled 5 | app-service none 6 | buffer-size 27000 7 | content-type-exclude { exclude } 8 | content-type-include { include } 9 | cpu-saver disabled 10 | cpu-saver-high 73 11 | cpu-saver-low 13 12 | description description 13 | gzip-level 3 14 | gzip-memory-level 16k 15 | gzip-window-size 32k 16 | keep-accept-encoding enabled 17 | method-prefer deflate 18 | min-size 2300 19 | selective enabled 20 | uri-exclude { exclude } 21 | uri-include { include } 22 | vary-header disabled 23 | } 24 | -------------------------------------------------------------------------------- /test/engines/as3Converter/http_profile/http_profile2.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "pHttpProfile": { 14 | "class": "HTTP_Profile", 15 | "label": "HTTP profile", 16 | "knownMethods": [ 17 | "CONNECT", "DELETE", "GET", "HEAD", "LOCK", "OPTIONS", "POST", "PROPFIND", "PUT", "TRACE", "UNLOCK" 18 | ] 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /test/engines/as3Converter/icap_profile/icap_profile.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm profile icap /AS3_Tenant/AS3_Application/test_icap1 { 4 | app-service none 5 | defaults-from icap 6 | header-from
7 | host 10.7.7.7 8 | preview-length 3 9 | referer 10 | uri http://test.test:777 11 | user-agent user 12 | } 13 | 14 | ltm profile icap /AS3_Tenant/AS3_Application/test_icap2 { 15 | app-service none 16 | defaults-from icap 17 | header-from "ICAP header" 18 | host "ICAP header" 19 | preview-length 0 20 | referer "ICAP header" 21 | uri icap://10.8.3.4:1344/reqmod 22 | user-agent "ICAP header" 23 | } 24 | -------------------------------------------------------------------------------- /test/engines/as3Converter/ip_other_profile/ip_other_profile.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm profile ipother /AS3_Tenant/AS3_Application/ipothProf { 4 | app-service none 5 | defaults-from /Common/ipother 6 | description none 7 | idle-timeout 60 8 | } 9 | ltm profile ipother /AS3_Tenant/AS3_Application/testItem { 10 | app-service none 11 | defaults-from /AS3_Tenant/AS3_Application/ipothProf 12 | description description 13 | idle-timeout indefinite 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/as3Converter/ip_other_profile/ip_other_profile.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.25.0", 4 | "id": "urn:uuid:222f5682-f4e9-423b-b19b-e82cb8c9b22b", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "ipothProf": { 13 | "parentProfile": { 14 | "bigip": "/Common/ipother" 15 | }, 16 | "remark": "none", 17 | "idleTimeout": 60, 18 | "class": "IP_Other_Profile" 19 | }, 20 | "testItem": { 21 | "remark": "description", 22 | "idleTimeout": "indefinite", 23 | "class": "IP_Other_Profile" 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/engines/as3Converter/irule/irule3.conf: -------------------------------------------------------------------------------- 1 | ltm rule /Common/test_iRule { 2 | # Check if the IP address is within the defined list of addresses to throttle 3 | #fif { [class match [IP::client_addr] equals IP_Throttle_List ] } { 4 | 5 | when RULE_INIT { 6 | set static::timeout 5 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/engines/as3Converter/irule/irule3.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.33.0", 4 | "id": "urn:uuid:cfa1ee9f-2f8b-4610-b483-6478f3f77399", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "Common": { 8 | "class": "Tenant", 9 | "Shared": { 10 | "class": "Application", 11 | "template": "shared", 12 | "test_iRule": { 13 | "class": "iRule", 14 | "iRule": { 15 | "base64": "IyBDaGVjayBpZiB0aGUgSVAgYWRkcmVzcyBpcyB3aXRoaW4gdGhlIGRlZmluZWQgbGlzdCBvZiBhZGRyZXNzZXMgdG8gdGhyb3R0bGUKI2ZpZiB7IFtjbGFzcyBtYXRjaCBbSVA6OmNsaWVudF9hZGRyXSBlcXVhbHMgSVBfVGhyb3R0bGVfTGlzdCBdIH0gewp3aGVuIFJVTEVfSU5JVCB7CiAgICBzZXQgc3RhdGljOjp0aW1lb3V0IDUKfQ==" 16 | } 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/irule/irule4.conf: -------------------------------------------------------------------------------- 1 | ltm rule /Common/test_rule { 2 | when HTTP_REQUEST_DATA { 3 | set tmpPayload [HTTP::payload] 4 | set payload [URI::decode $tmpPayload] 5 | while { $payload ne $tmpPayload } { 6 | set tmpPayload $payload 7 | set payload [URI::decode $tmpPayload] 8 | } 9 | 10 | if {[string tolower $payload] matches_regex {\$\{\s*(j|\$\{).+?\}}} { 11 | drop 12 | event disable all 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/engines/as3Converter/irule/irule5.conf: -------------------------------------------------------------------------------- 1 | ltm rule /Common/test_rule { 2 | when CLIENT_ACCEPTED { 3 | # Use a regex so quoted instances don't match. 4 | STREAM::expression {@.*?-x(?=([^"]*"[^"]*")*[^"]*$)@IGNORED@} 5 | STREAM::enable 6 | } 7 | 8 | when STREAM_MATCHED { 9 | set client_ip [clientside {IP::remote_addr}] 10 | set replaced [regsub {(.*?)-x(?=([^"]*"[^"]*")*[^"]*$)} [STREAM::match] "\\1 -_xff$client_ip -x"] 11 | STREAM::replace $replaced 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/as3Converter/l4_profile/l4_profile.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm profile fastl4 /AS3_Tenant/AS3_Application/testItem { 4 | app-service none 5 | client-timeout 60 6 | idle-timeout 600 7 | loose-close enabled 8 | loose-initialization enabled 9 | mss-override 4096 10 | reset-on-timeout disabled 11 | tcp-close-timeout 43200 12 | tcp-handshake-timeout 43200 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/as3Converter/l4_profile/l4_profile.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "L4_Profile", 15 | "clientTimeout": 60, 16 | "idleTimeout": 600, 17 | "looseClose": true, 18 | "looseInitialization": true, 19 | "maxSegmentSize": 4096, 20 | "resetOnTimeout": false, 21 | "tcpCloseTimeout": 43200, 22 | "tcpHandshakeTimeout": 43200 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/as3Converter/l4_profile/l4_profile2.conf: -------------------------------------------------------------------------------- 1 | ltm profile fastl4 /AS3_Tenant/AS3_Application/testItem { 2 | app-service none 3 | defaults-from /Common/fastL4 4 | hardware-syn-cookie enabled 5 | idle-timeout 28800 6 | ip-tos-to-client pass-through 7 | ip-tos-to-server pass-through 8 | keep-alive-interval disabled 9 | } 10 | -------------------------------------------------------------------------------- /test/engines/as3Converter/l4_profile/l4_profile2.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.30.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "testItem": { 13 | "class": "L4_Profile", 14 | "idleTimeout": 28800, 15 | "keepAliveInterval": 0 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/engines/as3Converter/log_destination/log_destination.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm pool /AS3_Tenant/AS3_Application/pool1 { 4 | min-active-members 1 5 | } 6 | 7 | sys log-config destination remote-high-speed-log /AS3_Tenant/AS3_Application/testItem { 8 | description description 9 | distribution balanced 10 | pool-name /AS3_Tenant/AS3_Application/pool1 11 | protocol udp 12 | } 13 | -------------------------------------------------------------------------------- /test/engines/as3Converter/log_destination/log_destination.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Log_Destination", 15 | "remark": "description", 16 | "type": "remote-high-speed-log", 17 | "distribution": "balanced", 18 | "protocol": "udp", 19 | "pool": { 20 | "use": "/AS3_Tenant/AS3_Application/pool1" 21 | } 22 | }, 23 | "pool1": { 24 | "class": "Pool" 25 | } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/engines/as3Converter/log_destination/log_destination2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm pool /AS3_Tenant/AS3_Application/thePool { 4 | min-active-members 1 5 | } 6 | sys log-config destination remote-high-speed-log /AS3_Tenant/AS3_Application/highSpeedLog1 { 7 | pool-name /AS3_Tenant/AS3_Application/thePool 8 | } 9 | sys log-config destination remote-high-speed-log /AS3_Tenant/AS3_Application/highSpeedLog2 { 10 | pool-name /AS3_Tenant/AS3_Application/thePool 11 | } 12 | sys log-config destination remote-syslog /AS3_Tenant/AS3_Application/testItem { 13 | default-facility local1 14 | default-severity alert 15 | description description 16 | format rfc5424 17 | remote-high-speed-log /AS3_Tenant/AS3_Application/highSpeedLog2 18 | } 19 | -------------------------------------------------------------------------------- /test/engines/as3Converter/log_publisher/log_publisher.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm pool /AS3_Tenant/AS3_Application/thePool { 4 | min-active-members 1 5 | } 6 | sys log-config publisher /AS3_Tenant/AS3_Application/testItem { 7 | description description 8 | destinations { 9 | /AS3_Tenant/AS3_Application/logDest { } 10 | } 11 | } 12 | sys log-config destination remote-high-speed-log /AS3_Tenant/AS3_Application/highSpeedLog { 13 | pool-name /AS3_Tenant/AS3_Application/thePool 14 | } 15 | sys log-config destination remote-syslog /AS3_Tenant/AS3_Application/logDest { 16 | remote-high-speed-log /AS3_Tenant/AS3_Application/highSpeedLog 17 | } 18 | -------------------------------------------------------------------------------- /test/engines/as3Converter/log_publisher/log_publisher2.conf: -------------------------------------------------------------------------------- 1 | sys log-config publisher /AS3_Tenant/AS3_Application/testItem { } 2 | -------------------------------------------------------------------------------- /test/engines/as3Converter/log_publisher/log_publisher2.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Log_Publisher", 15 | "destinations": [] 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/engines/as3Converter/monitor_external/monitor_external.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm monitor external /AS3_Tenant/AS3_Application/testItem { 4 | defaults-from /Common/external 5 | destination *:* 6 | interval 5 7 | run /Common/arg_example 8 | time-until-up 0 9 | timeout 16 10 | } 11 | -------------------------------------------------------------------------------- /test/engines/as3Converter/monitor_external/monitor_external.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Monitor", 15 | "monitorType": "external", 16 | "pathname": "/Common/arg_example" 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/monitor_ftp/monitor_ftp.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 14.1.0 2 | 3 | ltm monitor ftp /AS3_Tenant/AS3_Application/testItem { 4 | debug no 5 | defaults-from /Common/ftp 6 | description "This is a remark" 7 | destination *:* 8 | filename testpath/test/ 9 | interval 5 10 | mode port 11 | password $M$Sg$tvUGVOL70onBl1COILqjaw== 12 | time-until-up 0 13 | timeout 16 14 | username testUser 15 | } 16 | -------------------------------------------------------------------------------- /test/engines/as3Converter/monitor_ftp/monitor_ftp.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.10.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Monitor", 15 | "monitorType": "ftp", 16 | "mode": "port", 17 | "username": "testUser", 18 | "passphrase": { 19 | "ciphertext": "ZjVmNQ==", 20 | "protected": "eyJhbGciOiJkaXIiLCJlbmMiOiJub25lIn0=", 21 | "ignoreChanges": true 22 | }, 23 | "filename": "testpath/test/" 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/engines/as3Converter/monitor_http/monitor_http2.conf: -------------------------------------------------------------------------------- 1 | ltm monitor http /Common/Shared/testItem { 2 | adaptive disabled 3 | defaults-from http 4 | destination *:http 5 | interval 15 6 | ip-dscp 0 7 | recv 200 8 | recv-disable none 9 | send "GET /healthcheck/healthcheckservice/deploymentstatus HTTP/1.1\r\nHost: localhost\r\nConnection: Close\r\n\r\n" 10 | time-until-up 0 11 | timeout 46 12 | } 13 | 14 | ltm monitor http /Common/mon1 { 15 | adaptive disabled 16 | defaults-from /Common/http 17 | interval 5 18 | ip-dscp 0 19 | recv none 20 | recv-disable none 21 | send "GET 123/\r\n" 22 | time-until-up 0 23 | timeout 16 24 | } 25 | -------------------------------------------------------------------------------- /test/engines/as3Converter/monitor_http/monitor_http4.conf: -------------------------------------------------------------------------------- 1 | ltm monitor http /Common/default-http-probe { 2 | adaptive disabled 3 | defaults-from /Common/http 4 | destination *:* 5 | interval 5 6 | ip-dscp 0 7 | password qwerty 8 | recv OK 9 | recv-disable none 10 | send "GET /ping\r\n" 11 | time-until-up 0 12 | timeout 16 13 | username changedname 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/as3Converter/monitor_postgresql/monitor_postgresql.conf: -------------------------------------------------------------------------------- 1 | ltm pool /AS3_Tenant/AS3_Application/testPool { 2 | min-active-members 1 3 | monitor min 1 of { /AS3_Tenant/AS3_Application/monitorPostgresql_simple } 4 | } 5 | 6 | ltm monitor postgresql /AS3_Tenant/AS3_Application/monitorPostgresql_simple { 7 | count 0 8 | database pgdb_db 9 | debug no 10 | defaults-from /Common/postgresql 11 | destination *:* 12 | interval 5 13 | recv f 14 | send "select pg_is_in_recovery()" 15 | time-until-up 0 16 | timeout 10 17 | } 18 | -------------------------------------------------------------------------------- /test/engines/as3Converter/monitor_postgresql/monitor_postgresql2.conf: -------------------------------------------------------------------------------- 1 | ltm monitor postgresql /Common/testMonitor { 2 | count 0 3 | debug no 4 | defaults-from postgresql 5 | interval 30 6 | password $M$W5$GbtAp5E0sMeQkodzFg1Kdw== 7 | recv none 8 | send none 9 | time-until-up 0 10 | timeout 91 11 | username user 12 | } 13 | -------------------------------------------------------------------------------- /test/engines/as3Converter/monitor_radius/monitor_radius.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.0.0 2 | 3 | ltm monitor radius /AS3_Tenant/AS3_Application/testItem_1 { 4 | debug no 5 | defaults-from /Common/radius 6 | destination 192.168.192.17:1812 7 | interval 10 8 | nas-ip-address 192.168.192.20 9 | password $M$a3$AaJVhEocDFjBfovmAPp2Sw== 10 | secret $M$W1$4BCeJXyF/Q7AO/Tus3WXcA== 11 | time-until-up 20 12 | timeout 46 13 | up-interval 15 14 | username Adm-nM+nkey 15 | } 16 | 17 | ltm monitor radius /AS3_Tenant/AS3_Application/testItem_2 { 18 | debug no 19 | defaults-from /Common/radius 20 | destination *:* 21 | interval 10 22 | time-until-up 0 23 | timeout 31 24 | } 25 | -------------------------------------------------------------------------------- /test/engines/as3Converter/monitor_smtp/monitor_smtp.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm monitor smtp /AS3_Tenant/AS3_Application/testItem { 4 | debug no 5 | defaults-from /Common/smtp 6 | destination *:* 7 | domain smtp2.test 8 | interval 5 9 | time-until-up 0 10 | timeout 16 11 | } 12 | -------------------------------------------------------------------------------- /test/engines/as3Converter/monitor_smtp/monitor_smtp.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "label": "simplest declaration", 13 | "template": "generic", 14 | "testItem": { 15 | "class": "Monitor", 16 | "monitorType": "smtp", 17 | "domain": "smtp2.test" 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/engines/as3Converter/multiplex_profile/multiplex_profile_full.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm profile one-connect /AS3_Tenant/AS3_Application/testItem { 4 | app-service none 5 | description none 6 | idle-timeout-override disabled 7 | limit-type none 8 | max-age 86400 9 | max-reuse 1000 10 | max-size 10000 11 | share-pools disabled 12 | source-mask any 13 | } -------------------------------------------------------------------------------- /test/engines/as3Converter/multiplex_profile/multiplex_profile_full.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Multiplex_Profile", 15 | "connectionLimitEnforcement": "none", 16 | "idleTimeoutOverride": 0, 17 | "maxConnectionAge": 86400, 18 | "maxConnectionReuse": 1000, 19 | "maxConnections": 10000, 20 | "sharePools": false 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /test/engines/as3Converter/nat_policy/nat_policy2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm virtual /AS3_Tenant/AS3_Application/testItem { 4 | description AS3_Application 5 | destination /AS3_Tenant/10.30.30.30:200 6 | mask 255.255.255.255 7 | profiles { 8 | /Common/ipother { } 9 | } 10 | security-nat-policy { 11 | policy /AS3_Tenant/AS3_Application/natPolicy2 12 | } 13 | source 0.0.0.0/0 14 | translate-address enabled 15 | translate-port enabled 16 | } 17 | ltm virtual-address /AS3_Tenant/10.30.30.30 { 18 | address 10.30.30.30 19 | arp enabled 20 | inherited-traffic-group true 21 | mask 255.255.255.255 22 | traffic-group /Common/traffic-group-1 23 | } 24 | 25 | 26 | security nat policy /AS3_Tenant/AS3_Application/natPolicy1 { 27 | traffic-group /Common/traffic-group-1 28 | } 29 | security nat policy /AS3_Tenant/AS3_Application/natPolicy2 { 30 | traffic-group /Common/traffic-group-1 31 | } 32 | -------------------------------------------------------------------------------- /test/engines/as3Converter/net_address_list/net_address_list.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | security dos profile /Common/test_dos_profile { 4 | app-service none 5 | creation-time 2022-07-24:13:20:10 6 | creation-user root 7 | description description 8 | last-modified-time 2022-07-21:13:20:10 9 | modify-user root 10 | whitelist /Common/main_list 11 | } 12 | net address-list /Common/additional_list { 13 | description list_one 14 | addresses { 15 | 10.20.100.0 { } 16 | } 17 | } 18 | net address-list /Common/main_list { 19 | address-lists { 20 | /Common/additional_list { } 21 | } 22 | addresses { 23 | 10.10.1.0 { } 24 | 10.10.2.0 { } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/as3Converter/persist_hash/persist_hash.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm rule /AS3_Tenant/AS3_Application/theRule { 4 | when HTTP_REQUEST { 5 | persist hash [HTTP::header myheader] 6 | } 7 | } 8 | ltm persistence hash /AS3_Tenant/AS3_Application/testItem { 9 | app-service none 10 | description none 11 | hash-algorithm default 12 | hash-buffer-limit 40000 13 | hash-end-pattern "(^|[ \\t])([-+]\?(\\d+|\\.\\d+|\\d+\\.\\d*))($|[^+-.])" 14 | hash-length 0 15 | hash-offset 0 16 | hash-start-pattern "/Chapter (\\d+)\\.\\d*/" 17 | match-across-pools disabled 18 | match-across-services disabled 19 | match-across-virtuals disabled 20 | mirror disabled 21 | override-connection-limit disabled 22 | rule /AS3_Tenant/AS3_Application/theRule 23 | timeout 180 24 | } 25 | -------------------------------------------------------------------------------- /test/engines/as3Converter/persist_msrdp/persist_msrdp.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm persistence msrdp /AS3_Tenant/AS3_Application/testItem { 4 | app-service none 5 | description none 6 | has-session-dir no 7 | match-across-pools disabled 8 | match-across-services disabled 9 | match-across-virtuals disabled 10 | mirror disabled 11 | override-connection-limit disabled 12 | timeout 300 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/as3Converter/persist_msrdp/persist_msrdp.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.9.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Persist", 15 | "persistenceMethod": "msrdp", 16 | "sessionBroker": false 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/persist_sip-info/persist_sip-info.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm persistence sip /AS3_Tenant/AS3_Application/testItem { 4 | app-service none 5 | description none 6 | match-across-pools disabled 7 | match-across-services disabled 8 | match-across-virtuals disabled 9 | mirror disabled 10 | override-connection-limit disabled 11 | sip-info newHeader 12 | timeout 180 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/as3Converter/persist_sip-info/persist_sip-info.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.9.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Persist", 15 | "persistenceMethod": "sip-info", 16 | "header": "newHeader" 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/persist_tls-session-id/persist_tls-session-id.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm persistence ssl /AS3_Tenant/AS3_Application/testItem { 4 | app-service none 5 | description none 6 | match-across-pools disabled 7 | match-across-services disabled 8 | match-across-virtuals disabled 9 | mirror disabled 10 | override-connection-limit disabled 11 | timeout 300 12 | } 13 | -------------------------------------------------------------------------------- /test/engines/as3Converter/persist_tls-session-id/persist_tls-session-id.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.9.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Persist", 15 | "label": "simple declaration", 16 | "persistenceMethod": "tls-session-id", 17 | "duration": 300 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/engines/as3Converter/persist_universal/persist_universal.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm rule /AS3_Tenant/AS3_Application/theRule { 4 | when HTTP_REQUEST { 5 | persist hash [HTTP::header myheader] 6 | } 7 | } 8 | ltm persistence universal /AS3_Tenant/AS3_Application/testItem { 9 | app-service none 10 | description none 11 | match-across-pools disabled 12 | match-across-services disabled 13 | match-across-virtuals disabled 14 | mirror disabled 15 | override-connection-limit disabled 16 | rule /AS3_Tenant/AS3_Application/theRule 17 | timeout 300 18 | } 19 | -------------------------------------------------------------------------------- /test/engines/as3Converter/persist_universal/persist_universal2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm rule /Common/theRule { 4 | when HTTP_REQUEST { 5 | persist hash [HTTP::header myheader] 6 | } 7 | } 8 | ltm persistence universal /Common/testItem { 9 | app-service none 10 | description none 11 | match-across-pools disabled 12 | match-across-services disabled 13 | match-across-virtuals disabled 14 | mirror disabled 15 | override-connection-limit disabled 16 | rule /Common/theRule 17 | timeout 300 18 | } 19 | -------------------------------------------------------------------------------- /test/engines/as3Converter/pool/pool11.conf: -------------------------------------------------------------------------------- 1 | # TMSH-VERSION: 15.1.3 2 | 3 | ltm node /Common/test_node { 4 | fqdn { 5 | name we.we.test 6 | } 7 | monitor /Common/https_443 8 | } 9 | ltm node /Common/test_node2 { 10 | fqdn { 11 | name we2.we.test 12 | } 13 | monitor /Common/icmp 14 | } 15 | ltm pool /Common/test_fqdn_pool { 16 | members { 17 | /Common/test_node:80 { 18 | fqdn { 19 | name we.we.test 20 | } 21 | } 22 | /Common/test_node2:80 { 23 | fqdn { 24 | name we2.we.test 25 | } 26 | } 27 | } 28 | monitor /Common/tcp 29 | } 30 | -------------------------------------------------------------------------------- /test/engines/as3Converter/pool/pool4.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm pool /AS3_Tenant/AS3_Application/testItem1 { 4 | min-active-members 1 5 | monitor min 1 of { /AS3_Tenant/AS3_Application/testItem } 6 | } 7 | ltm monitor http /AS3_Tenant/AS3_Application/testItem { 8 | adaptive disabled 9 | adaptive-limit 1000 10 | adaptive-sampling-timespan 180 11 | defaults-from /Common/http 12 | destination *:* 13 | interval 5 14 | ip-dscp 0 15 | recv HTTP/1. 16 | recv-disable none 17 | send "HEAD / HTTP/1.0\r\n\r\n" 18 | time-until-up 0 19 | timeout 16 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/pool/pool4.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "testItem": { 14 | "class": "Monitor", 15 | "monitorType": "http" 16 | }, 17 | "testItem1": { 18 | "class": "Pool", 19 | "monitors": [ 20 | { 21 | "use": "/AS3_Tenant/AS3_Application/testItem" 22 | } 23 | ] 24 | } 25 | } 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /test/engines/as3Converter/pool/pool7.conf: -------------------------------------------------------------------------------- 1 | ltm pool /AS3_Tenant/AS3_Application/testItem { 2 | load-balancing-mode least-connections-node 3 | members { 4 | /AS3_Tenant/named.item.test:443 { 5 | address 192.168.192.118 6 | monitor min 1 of { /Common/gateway_icmp /Common/tcp_half_open } 7 | metadata { 8 | source { 9 | value declaration 10 | } 11 | } 12 | } 13 | } 14 | min-active-members 1 15 | } 16 | -------------------------------------------------------------------------------- /test/engines/as3Converter/pool/pool8.conf: -------------------------------------------------------------------------------- 1 | ltm pool /Common/Shared/pool1 { 2 | members { 3 | /Common/Shared/10.1.1.1:80 { 4 | address 10.1.1.1 5 | metadata { 6 | source { 7 | value declaration 8 | } 9 | } 10 | } 11 | } 12 | min-active-members 1 13 | monitor min 1 of { /Common/Shared/http1 } 14 | } 15 | ltm monitor http /Common/Shared/http1 { 16 | adaptive disabled 17 | adaptive-limit 1000 18 | adaptive-sampling-timespan 180 19 | defaults-from /Common/http 20 | destination *:* 21 | interval 5 22 | ip-dscp 0 23 | recv HTTP/1 24 | recv-disable none 25 | send "HEAD / HTTP/1.0\r\n\r\n" 26 | time-until-up 0 27 | timeout 16 28 | } -------------------------------------------------------------------------------- /test/engines/as3Converter/pool/pool9.conf: -------------------------------------------------------------------------------- 1 | ltm node /AS3_Tenant/AS3_Application/10.130.31.4 { 2 | address 10.130.31.4 3 | } 4 | ltm node /AS3_Tenant/AS3_Application/10.134.31.4 { 5 | address 10.134.31.4 6 | } 7 | ltm node /AS3_Tenant/AS3_Application/10.140.112.18 { 8 | address 10.140.112.18 9 | } 10 | ltm node2 /AS3_Tenant/AS3_Application/10.140.112.16 { 11 | address 10.140.112.16 12 | } 13 | ltm pool /AS3_Tenant/AS3_Application/pool_1 { 14 | members { 15 | /AS3_Tenant/AS3_Application/10.130.31.4:80 { 16 | address 10.130.31.4 17 | } 18 | /AS3_Tenant/AS3_Application/10.134.31.4:80 { 19 | address 10.134.31.4 20 | } 21 | /AS3_Tenant/AS3_Application/10.140.112.16:80 { 22 | address 10.140.112.16 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /test/engines/as3Converter/radius_profile/radius_profile.conf: -------------------------------------------------------------------------------- 1 | ltm profile radius /AS3_Tenant/AS3_Application/testItem { 2 | app-service none 3 | defaults-from /Common/radiusLB 4 | description none 5 | pem-protocol-profile-radius /Common/_sys_radius_proto_all 6 | persist-avp User-Name 7 | subscriber-discovery enabled 8 | } 9 | -------------------------------------------------------------------------------- /test/engines/as3Converter/radius_profile/radius_profile.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.8.0", 4 | "id": "urn:uuid:7a50f5a4-7242-4225-8eb2-f01f0b4010ca", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "testItem": { 13 | "class": "Radius_Profile", 14 | "parentProfile": { 15 | "bigip": "/Common/radiusLB" 16 | }, 17 | "persistAttribute": "User-Name", 18 | "subscriberDiscoveryEnabled": true, 19 | "protocolProfile": { 20 | "bigip": "/Common/_sys_radius_proto_all" 21 | } 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /test/engines/as3Converter/security_log_profile/security_log_profile3.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | security log profile /AS3_Tenant/AS3_Application/testItem { 4 | application { 5 | undefined { 6 | filter { 7 | request-type { 8 | values { all } 9 | } 10 | search-in-headers { 11 | values { Test-string } 12 | } 13 | } 14 | logic-operation and 15 | } 16 | } 17 | dos-application { 18 | undefined { 19 | local-publisher local-db-publisher 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /test/engines/as3Converter/security_log_profile/security_log_profile4.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | security log profile /AS3_Tenant/AS3_Application/testItem { 4 | application { 5 | undefined { 6 | filter { 7 | request-type { 8 | values { all } 9 | } 10 | search-in-headers { 11 | values { Test-string } 12 | } 13 | } 14 | logic-operation and 15 | } 16 | } 17 | dos-application { 18 | undefined { } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/security_log_profile/security_log_profile5.conf: -------------------------------------------------------------------------------- 1 | security log profile /Common/TestItem1 { 2 | application { 3 | undefined { 4 | filter { 5 | request-type { 6 | values { all } 7 | } 8 | search-in-headers { 9 | values { Test-string } 10 | } 11 | } 12 | logic-operation and 13 | } 14 | } 15 | dos-application { 16 | "/Common/Log Bot Defense Locally" { 17 | local-publisher /Common/local-db-publisher 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /test/engines/as3Converter/security_log_profile/security_log_profile8.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 14.1.2 2 | 3 | security log profile /AS3_Tenant/AS3_Application/secLogRemote { 4 | network { 5 | undefined { 6 | format { 7 | type user-defined 8 | user-defined "${date_time},${bigip_hostname},${src_ip},${src_port},${action}" 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /test/engines/as3Converter/security_log_profile/security_log_profile8.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.10.0", 4 | "id": "Security_Log_Profile", 5 | "AS3_Tenant": { 6 | "class": "Tenant", 7 | "AS3_Application": { 8 | "class": "Application", 9 | "template": "generic", 10 | "secLogRemote": { 11 | "class": "Security_Log_Profile", 12 | "network": { 13 | "storageFormat": "${date_time},${bigip_hostname},${src_ip},${src_port},${action}" 14 | } 15 | } 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /test/engines/as3Converter/service_forwarding/service_forwarding.conf: -------------------------------------------------------------------------------- 1 | ltm virtual /AS3_Tenant/AS3_Application/myService { 2 | creation-time 2020-05-21:11:25:20 3 | description "Example Forwarding Virtual Server" 4 | destination /AS3_Tenant/192.168.1.11:0 5 | ip-forward 6 | ip-protocol tcp 7 | last-modified-time 2020-05-21:11:25:20 8 | mask 255.255.255.255 9 | profiles { 10 | /Common/fastL4 { } 11 | } 12 | source 10.2.3.4/32 13 | source-address-translation { 14 | type automap 15 | } 16 | translate-address disabled 17 | translate-port disabled 18 | } 19 | ltm virtual-address /AS3_Tenant/192.168.1.11 { 20 | address 192.168.1.11 21 | arp enabled 22 | inherited-traffic-group true 23 | mask 255.255.255.255 24 | traffic-group /Common/traffic-group-1 25 | } 26 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_forwarding/service_forwarding.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.18.0", 4 | "id": "TEST_Service_Forwarding", 5 | "remark": "Demo Forwarding Virtual Server", 6 | "AS3_Tenant": { 7 | "class": "Tenant", 8 | "AS3_Application": { 9 | "class": "Application", 10 | "template": "generic", 11 | "myService": { 12 | "class": "Service_Forwarding", 13 | "remark": "Example Forwarding Virtual Server", 14 | "virtualAddresses": [ 15 | [ 16 | "192.168.1.11", 17 | "10.2.3.4/32" 18 | ] 19 | ], 20 | "virtualPort": 0, 21 | "forwardingType": "ip", 22 | "layer4": "tcp", 23 | "profileL4": { "bigip": "/Common/fastL4" } 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_forwarding/service_forwarding2.conf: -------------------------------------------------------------------------------- 1 | ltm virtual /AS3_Tenant/AS3_Application/myService { 2 | creation-time 2020-05-21:11:25:20 3 | description "Example Forwarding Virtual Server" 4 | destination /AS3_Tenant/192.168.1.11:0 5 | l2-forward 6 | ip-protocol tcp 7 | last-modified-time 2020-05-21:11:25:20 8 | mask 255.255.255.255 9 | profiles { 10 | /Common/fastL4 { } 11 | } 12 | source 10.2.3.4/32 13 | source-address-translation { 14 | type automap 15 | } 16 | translate-address disabled 17 | translate-port disabled 18 | } 19 | ltm virtual-address /AS3_Tenant/192.168.1.11 { 20 | address 192.168.1.11 21 | arp enabled 22 | inherited-traffic-group true 23 | mask 255.255.255.255 24 | traffic-group /Common/traffic-group-1 25 | } 26 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_forwarding/service_forwarding2.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.18.0", 4 | "id": "TEST_Service_Forwarding", 5 | "remark": "Demo Forwarding Virtual Server", 6 | "AS3_Tenant": { 7 | "class": "Tenant", 8 | "AS3_Application": { 9 | "class": "Application", 10 | "template": "generic", 11 | "myService": { 12 | "class": "Service_Forwarding", 13 | "remark": "Example Forwarding Virtual Server", 14 | "virtualAddresses": [ 15 | [ 16 | "192.168.1.11", 17 | "10.2.3.4/32" 18 | ] 19 | ], 20 | "virtualPort": 0, 21 | "forwardingType": "l2", 22 | "layer4": "tcp", 23 | "profileL4": { "bigip": "/Common/fastL4" } 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_generic/service_generic12.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | ltm virtual /AS3_Tenant/AS3_Application/test_vs_1 { 4 | address-status no 5 | description AS3_Application 6 | destination /AS3_Tenant/10.20.30.11:80 7 | ip-protocol tcp 8 | last-modified-time 2020-11-05:09:20:12 9 | mask 255.255.255.255 10 | profiles { 11 | /Common/f5-tcp-progressive { } 12 | /Common/http { } 13 | } 14 | source 0.0.0.0/0 15 | translate-address disabled 16 | translate-port enabled 17 | vlans-enabled 18 | } 19 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_generic/service_generic2.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.9.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "generic", 13 | "service1": { 14 | "class": "Service_Generic", 15 | "virtualAddresses": [ 16 | "10.2.3.3" 17 | ], 18 | "virtualPort": 111 19 | }, 20 | "service2": { 21 | "class": "Service_Generic", 22 | "virtualAddresses": [ 23 | "10.2.3.4" 24 | ], 25 | "virtualPort": 112 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_generic/service_generic9.conf: -------------------------------------------------------------------------------- 1 | ltm virtual /AS3_Tenant/AS3_Application/myService { 2 | bwc-policy /AS3_Tenant/AS3_Application/bwcPolicy 3 | creation-time 2020-05-26:15:03:42 4 | description AS3_Application 5 | destination /AS3_Tenant/10.1.1.1:1000 6 | last-modified-time 2020-05-26:15:03:42 7 | mask 255.255.255.255 8 | profiles { 9 | /Common/ipother { } 10 | } 11 | source 0.0.0.0/0 12 | source-address-translation { 13 | type automap 14 | } 15 | translate-address enabled 16 | translate-port enabled 17 | } 18 | ltm virtual-address /AS3_Tenant/10.1.1.1 { 19 | address 10.1.1.1 20 | arp enabled 21 | inherited-traffic-group true 22 | mask 255.255.255.255 23 | traffic-group /Common/traffic-group-1 24 | } 25 | net bwc policy /AS3_Tenant/AS3_Application/bwcPolicy { 26 | max-rate 10mbps 27 | partition AS3_Tenant 28 | } 29 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_generic/service_generic9.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.19.0", 4 | "id": "declarationId", 5 | "AS3_Tenant": { 6 | "class": "Tenant", 7 | "AS3_Application": { 8 | "class": "Application", 9 | "template": "generic", 10 | 11 | "myService": { 12 | "class": "Service_Generic", 13 | "virtualAddresses": [ 14 | "10.1.1.1" 15 | ], 16 | "virtualPort": 1000, 17 | "policyBandwidthControl": { 18 | "use": "/AS3_Tenant/AS3_Application/bwcPolicy" 19 | } 20 | }, 21 | "bwcPolicy": { 22 | "class": "Bandwidth_Control_Policy", 23 | "maxBandwidth": 10 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http11.conf: -------------------------------------------------------------------------------- 1 | ltm virtual /AS3_Tenant/AS3_Application/test.item-foo { 2 | description Application 3 | destination /AS3_Tenant/10.2.3.4:8080 4 | ip-protocol tcp 5 | last-modified-time 2020-05-15:13:09:14 6 | mask 255.255.255.255 7 | persist { 8 | /Common/cookie { 9 | default yes 10 | } 11 | } 12 | profiles { 13 | /Common/bot-defense { } 14 | /Common/f5-tcp-progressive { } 15 | /Common/http { } 16 | } 17 | source 0.0.0.0/0 18 | source-address-translation { 19 | type automap 20 | } 21 | translate-address enabled 22 | translate-port enabled 23 | } 24 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http11.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.17.0", 4 | "id": "Service_HTTP", 5 | "AS3_Tenant": { 6 | "class": "Tenant", 7 | "AS3_Application": { 8 | "class": "Application", 9 | "template": "generic", 10 | "test.item-foo": { 11 | "class": "Service_HTTP", 12 | "virtualPort": 8080, 13 | "virtualAddresses": [ 14 | "10.2.3.4" 15 | ], 16 | "profileBotDefense": { 17 | "bigip": "/Common/bot-defense" 18 | } 19 | } 20 | } 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http12.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 14.1.2 2 | ltm virtual /AS3_Tenant/AS3_Application/vip { 3 | creation-time 2020-06-29:15:50:08 4 | description Application 5 | destination /AS3_Tenant/192.168.2.0:8080 6 | last-modified-time 2020-06-29:15:50:08 7 | mask 255.255.255.255 8 | profiles { 9 | /Common/ipother { } 10 | } 11 | source 0.0.0.0/0 12 | source-address-translation { 13 | type automap 14 | } 15 | throughput-capacity 10 16 | translate-address enabled 17 | translate-port enabled 18 | } 19 | ltm virtual-address /AS3_Tenant/192.168.2.0 { 20 | address 192.168.2.0 21 | arp enabled 22 | inherited-traffic-group true 23 | mask 255.255.255.255 24 | traffic-group /Common/traffic-group-1 25 | } 26 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http12.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.19.0", 4 | "AS3_Tenant": { 5 | "class": "Tenant", 6 | "AS3_Application": { 7 | "class": "Application", 8 | "template": "generic", 9 | "vip": { 10 | "class": "Service_Generic", 11 | "virtualPort": 8080, 12 | "virtualAddresses": [ 13 | "192.168.2.0" 14 | ], 15 | "maximumBandwidth": 10 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http13.conf: -------------------------------------------------------------------------------- 1 | ltm virtual /AS3_Tenant/AS3_Application/test-https-web { 2 | destination /Common/0.0.0.0:2405 3 | ip-protocol tcp 4 | mask any 5 | profiles { 6 | /AS3_Tenant/AS3_Application/test-default-tcp-profile { 7 | context clientside 8 | } 9 | /AS3_Tenant/AS3_Application/test-default-tcpserver-profile { 10 | context serverside 11 | } 12 | } 13 | } 14 | 15 | ltm profile tcp /AS3_Tenant/AS3_Application/test-default-tcp-profile { 16 | app-service none 17 | defaults-from /Common/tcp-legacy 18 | idle-timeout 180 19 | keep-alive-interval 60 20 | slow-start disabled 21 | } 22 | 23 | ltm profile tcp /AS3_Tenant/AS3_Application/test-default-tcpserver-profile { 24 | app-service none 25 | defaults-from /Common/tcp-legacy 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http15.conf: -------------------------------------------------------------------------------- 1 | ltm virtual /AS3_Tenant/AS3_Application/service1 { 2 | creation-time 2020-09-09:15:28:46 3 | description A1 4 | destination /AS3_Tenant/10.0.3.10:80 5 | ip-protocol tcp 6 | last-modified-time 2020-09-09:15:28:46 7 | mask 255.255.255.255 8 | profiles { 9 | /Common/f5-tcp-progressive { } 10 | /Common/http { } 11 | /Common/httpcompression { } 12 | } 13 | 14 | source 0.0.0.0/0 15 | source-address-translation { 16 | type automap 17 | } 18 | translate-address enabled 19 | translate-port enabled 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http16.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | ltm virtual /AS3_Tenant/AS3_Application/test_vs_1 { 4 | address-status no 5 | creation-time 2020-07-13:10:57:03 6 | destination /AS3_Tenant/10.20.30.11:80 7 | ip-protocol tcp 8 | last-modified-time 2020-07-13:10:57:03 9 | mask 255.255.255.255 10 | profiles { 11 | /Common/http { } 12 | /Common/mptcp-mobile-optimized { } 13 | } 14 | source 0.0.0.0/0 15 | translate-address enabled 16 | translate-port enabled 17 | } 18 | ltm virtual-address /AS3_Tenant/10.20.30.11 { 19 | address 10.20.30.11 20 | arp enabled 21 | mask 255.255.255.255 22 | traffic-group /Common/traffic-group-1 23 | } 24 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http18.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | ltm virtual /AS3_Tenant/AS3_Application/test_vs_1 { 4 | address-status no 5 | description AS3_Application 6 | destination /AS3_Tenant/10.20.30.11:80 7 | ip-protocol tcp 8 | last-modified-time 2020-11-05:09:20:12 9 | mask 255.255.255.255 10 | profiles { 11 | /Common/f5-tcp-progressive { } 12 | /Common/http { } 13 | } 14 | source 0.0.0.0/0 15 | translate-address enabled 16 | translate-port enabled 17 | vlans { 18 | /Common/vlan_1 19 | /Common/vlan_2 20 | } 21 | vlans-enabled 22 | } 23 | ltm virtual-address /AS3_Tenant/10.20.30.11 { 24 | address 10.20.30.11 25 | arp enabled 26 | mask 255.255.255.255 27 | traffic-group /Common/traffic-group-1 28 | } 29 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http21.conf: -------------------------------------------------------------------------------- 1 | ltm virtual /test/http/serviceMain { 2 | description http 3 | destination /test/serviceAddress:80 4 | ip-protocol tcp 5 | mask any 6 | persist { 7 | /Common/cookie { 8 | default yes 9 | } 10 | } 11 | profiles { 12 | /Common/f5-tcp-progressive { } 13 | /Common/http { } 14 | /Common/websecurity { } 15 | } 16 | source 0.0.0.0/0 17 | source-address-translation { 18 | type automap 19 | } 20 | translate-address enabled 21 | translate-port enabled 22 | } 23 | ltm virtual-address /test/serviceAddress { 24 | arp enabled 25 | address 10.123.123.123 26 | icmp-echo disabled 27 | inherited-traffic-group true 28 | mask 255.255.255.255 29 | partition test 30 | traffic-group /Common/traffic-group-1 31 | } 32 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http22.conf: -------------------------------------------------------------------------------- 1 | ltm virtual /test/http/serviceMain { 2 | description http 3 | destination /test/serviceAddress:80 4 | ip-protocol tcp 5 | mask 255.255.255.255 6 | partition test 7 | persist { 8 | /Common/cookie { 9 | default yes 10 | } 11 | } 12 | profiles { 13 | /Common/f5-tcp-progressive { } 14 | /Common/http { } 15 | } 16 | serverssl-use-sni disabled 17 | source 10.12.12.0/24 18 | source-address-translation { 19 | type automap 20 | } 21 | translate-address enabled 22 | translate-port enabled 23 | } 24 | ltm virtual-address /test/serviceAddress { 25 | address 10.123.123.123 26 | icmp-echo disabled 27 | mask 255.255.255.255 28 | partition test 29 | traffic-group /Common/traffic-group-1 30 | } 31 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http23.conf: -------------------------------------------------------------------------------- 1 | ltm virtual /Common/transit/test { 2 | app-service /Common/transit/test_app 3 | creation-time 2021-12-07:16:30:41 4 | destination /Common/10.12.11.23:80 5 | ip-protocol tcp 6 | last-modified-time 2021-12-08:08:42:28 7 | mask 255.255.255.255 8 | profiles { 9 | /Common/tcp { } 10 | } 11 | source 0.0.0.0/0 12 | translate-address enabled 13 | translate-port enabled 14 | } 15 | ltm virtual /Common/test_2 { 16 | destination /Common/10.20.3.100:80 17 | ip-protocol tcp 18 | mask 255.255.255.255 19 | profiles { 20 | /Common/http { } 21 | /Common/tcp { } 22 | } 23 | rules { 24 | /Common/_sys_https_redirect 25 | } 26 | source 0.0.0.0/0 27 | translate-address enabled 28 | translate-port enabled 29 | } 30 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http24.conf: -------------------------------------------------------------------------------- 1 | ltm virtual /Common/vs_http { 2 | destination /Common/10.0.0.12:80 3 | ip-protocol tcp 4 | mask 255.255.255.255 5 | pool /Common/pool_http 6 | profiles { 7 | /Common/f5-tcp-lan { 8 | context serverside 9 | } 10 | /Common/f5-tcp-wan { 11 | context clientside 12 | } 13 | /Common/http { } 14 | } 15 | source 0.0.0.0/0 16 | translate-address enabled 17 | translate-port enabled 18 | vlans { 19 | /Common/internal 20 | } 21 | vlans-enabled 22 | } 23 | ltm pool /Common/pool_http { 24 | members { 25 | /Common/10.20.10.100:80 { 26 | address 10.20.10.100 27 | } 28 | } 29 | monitor /Common/http 30 | } 31 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http3.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "http", 13 | "serviceMain": { 14 | "class": "Service_HTTP", 15 | "virtualAddresses": [ 16 | "10.0.1.10", 17 | "10.0.1.11" 18 | ], 19 | "persistenceMethods": [ 20 | "cookie" 21 | ], 22 | "pool": "web_pool" 23 | }, 24 | "web_pool": { 25 | "class": "Pool" 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http8.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.0 2 | 3 | ltm virtual /AS3_Tenant/Test_virtual.Test-2.server.x-10 { 4 | destination /AS3_Tenant/10.40.5.37:80 5 | ip-protocol tcp 6 | mask 255.255.255.255 7 | profiles { 8 | /Common/tcp { } 9 | } 10 | source 0.0.0.0/0 11 | source-address-translation { 12 | type automap 13 | } 14 | translate-address enabled 15 | translate-port enabled 16 | } 17 | ltm virtual-address /AS3_Tenant/10.40.5.37 { 18 | address 10.40.5.37 19 | arp enabled 20 | mask 255.255.255.255 21 | traffic-group /AS3_Tenant/traffic-group-1 22 | } 23 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_http/service_http9.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 14.1.0 2 | 3 | ltm node /Common/10.1.10.100 { 4 | address 10.1.10.100 5 | } 6 | ltm pool /Common/ApplicationPool { 7 | members { 8 | /Common/10.1.10.100:443 { 9 | address 10.1.10.100 10 | } 11 | } 12 | min-active-members 1 13 | } 14 | ltm virtual /Common/Application_VS { 15 | destination /Common/10.1.10.121:80 16 | ip-protocol tcp 17 | mask 255.255.255.255 18 | persist { 19 | /Common/cookie { 20 | default yes 21 | } 22 | } 23 | pool /Common/ApplicationPool 24 | profiles { 25 | /Common/http { } 26 | /Common/tcp { } 27 | } 28 | source 0.0.0.0/0 29 | source-address-translation { 30 | type automap 31 | } 32 | translate-address enabled 33 | translate-port enabled 34 | } -------------------------------------------------------------------------------- /test/engines/as3Converter/service_https/service_https5.conf: -------------------------------------------------------------------------------- 1 | ltm virtual /AS3_Tenant/AS3_Application/test-https-web { 2 | creation-time 2020-07-08:11:37:21 3 | destination /AS3_Tenant/0.0.0.0:2405 4 | ip-protocol tcp 5 | last-modified-time 2020-07-08:15:19:51 6 | mask any 7 | pool /AS3_Tenant/AS3_Application/test-pool 8 | profiles { 9 | /Common/clientssl { 10 | context clientside 11 | } 12 | /Common/clientssl-secure { 13 | context clientside 14 | } 15 | /Common/serverssl { 16 | context serverside 17 | } 18 | /Common/serverssl-secure { 19 | context serverside 20 | } 21 | /Common/tcp { } 22 | /Common/http { } 23 | } 24 | source 0.0.0.0/0 25 | source-address-translation { 26 | type automap 27 | } 28 | translate-address enabled 29 | translate-port enabled 30 | } 31 | ltm pool /AS3_Tenant/AS3_Application/test-pool {} 32 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_sctp/service_sctp.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.2 2 | 3 | ltm virtual /Sample_sctp_01/mySCTP/service { 4 | creation-time 2022-07-12:11:35:42 5 | description mySCTP 6 | destination /Sample_sctp_01/10.0.1.10:132 7 | ip-protocol sctp 8 | last-modified-time 2022-07-12:11:35:42 9 | mask 255.255.255.255 10 | profiles { 11 | /Common/sctp { } 12 | } 13 | serverssl-use-sni disabled 14 | source 0.0.0.0/0 15 | source-address-translation { 16 | type automap 17 | } 18 | translate-address enabled 19 | translate-port enabled 20 | } 21 | ltm virtual-address /Sample_sctp_01/10.0.1.10 { 22 | address 10.0.1.10 23 | arp enabled 24 | icmp-echo enabled 25 | inherited-traffic-group true 26 | mask 255.255.255.255 27 | traffic-group /Common/traffic-group-1 28 | } 29 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_sctp/service_sctp.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.15.0", 4 | "id": "service-sctp", 5 | "label": "Sample Service_SCTP", 6 | "remark": "Simple SCTP application reference", 7 | "Sample_sctp_01": { 8 | "class": "Tenant", 9 | "mySCTP": { 10 | "class": "Application", 11 | "service": { 12 | "class": "Service_SCTP", 13 | "virtualAddresses": [ 14 | "10.0.1.10" 15 | ], 16 | "virtualPort": 132, 17 | "profileSCTP": { 18 | "bigip": "/Common/sctp" 19 | } 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_tcp/service_tcp3.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "tcp", 13 | "serviceMain": { 14 | "class": "Service_TCP", 15 | "virtualPort": 2, 16 | "virtualAddresses": [ 17 | "10.1.1.1", 18 | [ 19 | "10.21.21.16/28", 20 | "10.12.12.0/28" 21 | ] 22 | ] 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_tcp/service_tcp4.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm virtual /AS3_Tenant/AS3_Application/vs_internal { 4 | destination 0.0.0.0:any 5 | internal 6 | ip-protocol tcp 7 | mask any 8 | profiles { 9 | /Common/tcp { } 10 | } 11 | serverssl-use-sni disabled 12 | source 10.0.20.0/24 13 | translate-address enabled 14 | translate-port enabled 15 | vlans-enabled 16 | } 17 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_tcp/service_tcp4.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.16.0", 4 | "id": "urn:uuid:6db0b2b0-2ae8-4aee-8124-1a6272b4c506", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "vs_internal": { 13 | "layer4": "tcp", 14 | "translateServerAddress": true, 15 | "translateServerPort": true, 16 | "class": "Service_TCP", 17 | "profileTCP": { 18 | "bigip": "/Common/tcp" 19 | }, 20 | "sourceAddress": "10.0.20.0/24", 21 | "virtualType": "internal", 22 | "snat": "none" 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_tcp/service_tcp5.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.3 2 | 3 | ltm virtual /AS3_Tenant/AS3_Application/icap_virtual { 4 | description AS3_Application 5 | destination 0.0.0.0:any 6 | internal 7 | ip-protocol tcp 8 | mask any 9 | profiles { 10 | /AS3_Tenant/AS3_Application/test_icap { } 11 | tcp { } 12 | } 13 | source 10.20.30.0/24 14 | translate-address enabled 15 | translate-port enabled 16 | vs-index 45 17 | } 18 | 19 | ltm profile icap /AS3_Tenant/AS3_Application/test_icap { 20 | app-service none 21 | defaults-from icap 22 | header-from
23 | host 10.7.7.7 24 | preview-length 3 25 | referer 26 | uri http://test.test:777 27 | user-agent user 28 | } 29 | 30 | -------------------------------------------------------------------------------- /test/engines/as3Converter/service_tcp/service_tcp9.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.0 2 | 3 | ltm virtual /Test_partition/sample { 4 | creation-time 2021-09-21:03:26:25 5 | destination /Common/10.10.10.10:80 6 | ip-protocol tcp 7 | last-modified-time 2021-09-21:03:26:25 8 | mask 255.255.255.255 9 | profiles { 10 | /Common/tcp { } 11 | } 12 | source 0.0.0.0/0 13 | translate-address enabled 14 | translate-port enabled 15 | } 16 | ltm virtual-address /Common/10.10.10.10 { 17 | address 10.10.10.10 18 | arp enabled 19 | inherited-traffic-group true 20 | mask 255.255.255.255 21 | traffic-group /Common/traffic-group-1 22 | } 23 | -------------------------------------------------------------------------------- /test/engines/as3Converter/sip_profile/sip_profile.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm profile sip /AS3_Tenant/AS3_Application/testItem { 4 | app-service none 5 | description "test description" 6 | } 7 | -------------------------------------------------------------------------------- /test/engines/as3Converter/sip_profile/sip_profile.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.27.0", 4 | "id": "urn:uuid:c633e2ee-7259-4a9b-9a5d-6a7c3105b080", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "testItem": { 13 | "remark": "test description", 14 | "class": "SIP_Profile" 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/engines/as3Converter/snat_pool/snat_pool2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.3 2 | 3 | ltm virtual /AS3_Tenant/AS3_Application/cgnat_vs { 4 | creation-time 2020-11-26:03:52:47 5 | destination /Common/10.144.18.44:0 6 | ip-protocol tcp 7 | last-modified-time 2020-11-26:03:52:47 8 | mask 255.255.255.255 9 | profiles { 10 | /Common/tcp { } 11 | } 12 | source 0.0.0.0/24 13 | source-address-translation { 14 | pool /AS3_Tenant/AS3_Application/lsn_pool_test 15 | type lsn 16 | } 17 | translate-address disabled 18 | translate-port disabled 19 | } 20 | 21 | ltm lsn-pool /AS3_Tenant/AS3_Application/lsn_pool_test { 22 | egress-interfaces { 23 | /Common/vlan2 24 | } 25 | egress-interfaces-disabled 26 | members { 27 | 10.10.10.0/23 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/engines/as3Converter/tcp_profile/tcp_profile4.conf: -------------------------------------------------------------------------------- 1 | ltm profile tcp /Common/testProfile { 2 | abc enabled 3 | app-service none 4 | defaults-from /Common/tcp 5 | md5-signature disabled 6 | md5-signature-passphrase none 7 | } 8 | -------------------------------------------------------------------------------- /test/engines/as3Converter/tcp_profile/tcp_profile4.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.30.0", 4 | "id": "urn:uuid:7008f826-5edc-4686-b0a5-9f7494f95aa4", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "Common": { 8 | "class": "Tenant", 9 | "Shared": { 10 | "class": "Application", 11 | "template": "shared", 12 | "testProfile": { 13 | "abc": true, 14 | "md5Signature": false, 15 | "class": "TCP_Profile" 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/engines/as3Converter/tls_client/tls_client2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | ltm profile server-ssl /AS3_Tenant/AS3_Application/test_serverssl { 4 | app-service none 5 | cert /Common/default.crt 6 | defaults-from /Common/serverssl 7 | key /Common/default.key 8 | } 9 | -------------------------------------------------------------------------------- /test/engines/as3Converter/tls_client/tls_client2.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.17.0", 4 | "id": "urn:uuid:a3b10954-7fd2-4046-ac40-bc437e066318", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "certificate_default": { 13 | "class": "Certificate", 14 | "certificate": { 15 | "bigip": "/Common/default.crt" 16 | }, 17 | "privateKey": { 18 | "bigip": "/Common/default.key" 19 | } 20 | }, 21 | "test_serverssl": { 22 | "clientCertificate": "certificate_default", 23 | "class": "TLS_Client" 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/engines/as3Converter/tls_client/tls_client4.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | ltm profile server-ssl /AS3_Tenant/AS3_Application/serverssl_profile_cache_timeout { 4 | app-service none 5 | cache-timeout 85298 6 | defaults-from /Common/serverssl 7 | } 8 | -------------------------------------------------------------------------------- /test/engines/as3Converter/tls_client/tls_client4.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.21.0", 4 | "id": "urn:uuid:33aba331-d0e5-4d0d-a233-40aa3b08a34d", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "serverssl_profile_cache_timeout": { 13 | "cacheTimeout": 85298, 14 | "class": "TLS_Client", 15 | "tls1_0Enabled": true, 16 | "tls1_1Enabled": true, 17 | "tls1_2Enabled": true, 18 | "tls1_3Enabled": false, 19 | "singleUseDhEnabled": false, 20 | "insertEmptyFragmentsEnabled": true 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /test/engines/as3Converter/tls_client/tls_client7.conf: -------------------------------------------------------------------------------- 1 | ltm profile server-ssl /AS3_Tenant/AS3_Application/server_ssl_test { 2 | app-service none 3 | cert /Common/custom_ssl_cert_key 4 | defaults-from /Common/serverssl 5 | key /Common/custom_ssl_cert_key 6 | options { dont-insert-empty-fragments passive-close no-tlsv1.3 } 7 | passphrase super_secret_password 8 | } 9 | -------------------------------------------------------------------------------- /test/engines/as3Converter/tls_client/tls_client8.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.30.0", 4 | "id": "urn:uuid:1546e6d1-4b54-4b0f-99f3-be21d174836a", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "serverssl": { 13 | "alertTimeout": 10, 14 | "ciphers": "ECDHE+AES:ECDHE+3DES:RSA+3DES:!NONE:!SSLv3:!MD5:!EXPORT:!RC4", 15 | "renegotiationEnabled": false, 16 | "class": "TLS_Client" 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/as3Converter/tls_server/tls_server10.conf: -------------------------------------------------------------------------------- 1 | ltm profile client-ssl /AS3_Tenant/AS3_Application/client_ssl_test { 2 | app-service none 3 | cert-key-chain { 4 | custom_ssl_cert_key_0 { 5 | cert /Common/custom_ssl_cert_key 6 | key /Common/custom_ssl_cert_key 7 | passphrase super_secret_password 8 | } 9 | custom_ssl_cert_key_1 { 10 | cert /Common/custom_ssl_cert_key2 11 | key /Common/custom_ssl_cert_key2 12 | passphrase super_secret_password2 13 | } 14 | } 15 | defaults-from /Common/clientssl 16 | inherit-ca-certkeychain true 17 | inherit-certkeychain false 18 | options { dont-insert-empty-fragments no-tlsv1.3 tls-rollback-bug } 19 | } 20 | -------------------------------------------------------------------------------- /test/engines/as3Converter/tls_server/tls_server11.conf: -------------------------------------------------------------------------------- 1 | ltm profile client-ssl /Common/clientssl_asm_prof { 2 | app-service none 3 | cert /Common/default.crt 4 | cert-key-chain { 5 | default { 6 | cert /Common/default.crt 7 | key /Common/default.key 8 | } 9 | } 10 | cert-lifespan 365 11 | defaults-from /Common/clientssl 12 | forward-proxy-bypass-default-action intercept 13 | inherit-ca-certkeychain false 14 | inherit-certkeychain true 15 | key /Common/default.key 16 | passphrase none 17 | proxy-ca-cert /Common/default.crt 18 | proxy-ca-key /Common/default.key 19 | ssl-forward-proxy enabled 20 | ssl-forward-proxy-bypass enabled 21 | } 22 | -------------------------------------------------------------------------------- /test/engines/as3Converter/tls_server/tls_server3.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | ltm profile client-ssl /AS3_Tenant/AS3_Application/test_clientssl { 4 | app-service none 5 | cert-key-chain { 6 | set0 { 7 | cert /Common/default.crt 8 | key /Common/default.key 9 | } 10 | } 11 | defaults-from /Common/clientssl 12 | inherit-ca-certkeychain true 13 | inherit-certkeychain false 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/as3Converter/tls_server/tls_server5.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.0.1 2 | 3 | ltm profile client-ssl /AS3_Tenant/AS3_Application/clientssl_profile_cache_timeout { 4 | app-service none 5 | cache-timeout 86247 6 | cert-key-chain { 7 | default { 8 | cert /Common/default.crt 9 | key /Common/default.key 10 | } 11 | } 12 | defaults-from /Common/clientssl 13 | inherit-ca-certkeychain true 14 | inherit-certkeychain true 15 | } 16 | -------------------------------------------------------------------------------- /test/engines/as3Converter/tls_server/tls_server9.conf: -------------------------------------------------------------------------------- 1 | ltm profile client-ssl /AS3_Tenant/AS3_Application/tlsServer { 2 | cert-key-chain { 3 | set0 { 4 | cert /Common/default.crt 5 | key /Common/default.key 6 | } 7 | } 8 | ciphers DEFAULT 9 | mode enabled 10 | options { dont-insert-empty-fragments no-tlsv1.3 } 11 | hostname-whitelist none 12 | } 13 | -------------------------------------------------------------------------------- /test/engines/as3Converter/udp_profile/udp_profile_full.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm profile udp /AS3_Tenant/AS3_Application/testItem { 4 | allow-no-payload enabled 5 | app-service none 6 | buffer-max-bytes 12599295 7 | buffer-max-packets 192 8 | datagram-load-balancing enabled 9 | description none 10 | idle-timeout indefinite 11 | ip-df-mode preserve 12 | ip-tos-to-client 240 13 | ip-ttl-mode decrement 14 | ip-ttl-v4 200 15 | ip-ttl-v6 255 16 | link-qos-to-client 3 17 | no-checksum disabled 18 | proxy-mss enabled 19 | } 20 | -------------------------------------------------------------------------------- /test/engines/as3Converter/websocket_profile/websocket_profile.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.1 2 | 3 | ltm profile websocket /AS3_Tenant/AS3_Application/testWebSocketProfile { 4 | app-service none 5 | compress-mode preserved 6 | compression enabled 7 | masking preserve 8 | no-delay enabled 9 | window-bits 20 10 | } 11 | ltm profile websocket /AS3_Tenant/AS3_Application/testWebSocketProfile2 { 12 | app-service none 13 | compress-mode preserved 14 | compression enabled 15 | masking selective 16 | no-delay enabled 17 | window-bits 20 18 | } 19 | -------------------------------------------------------------------------------- /test/engines/as3Converter/websocket_profile/websocket_profile.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.34.0", 4 | "id": "declarationId", 5 | "label": "theDeclaration", 6 | "remark": "All properties declaration", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "testWebSocketProfile": { 13 | "webSocketMasking": "preserve", 14 | "class": "HTTP_Profile", 15 | "webSocketsEnabled": true 16 | }, 17 | "testWebSocketProfile2": { 18 | "webSocketMasking": "selective", 19 | "class": "HTTP_Profile", 20 | "webSocketsEnabled": true 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /test/engines/doConverter/analytics/analytics.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.0 2 | 3 | analytics global-settings { 4 | avrd-debug-mode enabled 5 | avrd-interval 60 6 | ecm-port 80 7 | offbox-protocol tcp 8 | offbox-tcp-addresses { 192.168.2.1 } 9 | offbox-tcp-port 80 10 | use-offbox enabled 11 | } 12 | -------------------------------------------------------------------------------- /test/engines/doConverter/analytics/analytics.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "Analytics": { 8 | "class": "Analytics", 9 | "debugEnabled": true, 10 | "interval": 60, 11 | "offboxProtocol": "tcp", 12 | "offboxTcpAddresses": [ 13 | "192.168.2.1" 14 | ], 15 | "offboxTcpPort": 80, 16 | "offboxEnabled": true 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/engines/doConverter/dagglobals/dagglobals.conf: -------------------------------------------------------------------------------- 1 | net dag-globals { 2 | dag-ipv6-prefix-len 101 3 | icmp-hash ipicmp 4 | round-robin-mode local 5 | } 6 | -------------------------------------------------------------------------------- /test/engines/doConverter/dagglobals/dagglobals.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "DagGlobals": { 8 | "class": "DagGlobals", 9 | "icmpHash": "ipicmp", 10 | "ipv6PrefixLength": 101, 11 | "roundRobinMode": "local" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/doConverter/dbvariables/dbvariables.conf: -------------------------------------------------------------------------------- 1 | sys db ui.advisory.color { 2 | value "green" 3 | } 4 | sys db ui.advisory.enabled { 5 | value "true" 6 | } 7 | sys db ui.advisory.text { 8 | value "/Common/hostname" 9 | } 10 | -------------------------------------------------------------------------------- /test/engines/doConverter/dbvariables/dbvariables.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "DbVariables": { 8 | "class": "DbVariables", 9 | "ui.advisory.enabled": "true", 10 | "ui.advisory.color": "green", 11 | "ui.advisory.text": "/Common/hostname" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/doConverter/devicecertificate/devicecertificate.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | TestCrtTestCrtTestCrtTestCrtTestCrtTestCrtTestCrtTestCrtTestCrt 3 | TestCrtTestCrtTestCrtTestCrtTestCrtTestCrtTestCrtTestCrtTestCrt 4 | TestCrtTestCrtTestCrtTestCrtTestCrtTestCrtTestCrtTestCrtTestCrt 5 | TestCrtTestCrtTestCrtTestCrtTestCrtTestCrtTestCrtTestCrtTestCrt 6 | TestCrtTestCrtTestCrtTestCrt= 7 | -----END CERTIFICATE----- 8 | -------------------------------------------------------------------------------- /test/engines/doConverter/devicecertificate/devicecertificate.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "deviceCertificate": { 8 | "class": "DeviceCertificate", 9 | "certificate": { 10 | "base64": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tClRlc3RDcnRUZXN0Q3J0VGVzdENydFRlc3RDcnRUZXN0Q3J0VGVzdENydFRlc3RDcnRUZXN0Q3J0VGVzdENydApUZXN0Q3J0VGVzdENydFRlc3RDcnRUZXN0Q3J0VGVzdENydFRlc3RDcnRUZXN0Q3J0VGVzdENydFRlc3RDcnQKVGVzdENydFRlc3RDcnRUZXN0Q3J0VGVzdENydFRlc3RDcnRUZXN0Q3J0VGVzdENydFRlc3RDcnRUZXN0Q3J0ClRlc3RDcnRUZXN0Q3J0VGVzdENydFRlc3RDcnRUZXN0Q3J0VGVzdENydFRlc3RDcnRUZXN0Q3J0VGVzdENydApUZXN0Q3J0VGVzdENydFRlc3RDcnRUZXN0Q3J0PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" 11 | }, 12 | "privateKey": { 13 | "base64": "" 14 | } 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /test/engines/doConverter/devicegroup/devicegroup4.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/engines/doConverter/dns/dns.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.0 2 | 3 | sys dns { 4 | description configured-by-dhcp 5 | name-servers { 10.8.8.8 } 6 | } 7 | -------------------------------------------------------------------------------- /test/engines/doConverter/dns/dns.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "DNS": { 8 | "class": "DNS", 9 | "nameServers": [ 10 | "10.8.8.8" 11 | ] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/doConverter/dns_resolver/dns_resolver.conf: -------------------------------------------------------------------------------- 1 | net dns-resolver /Common/customDnsResolver { 2 | answer-default-zones yes 3 | cache-size 12000bytes 4 | forward-zones { 5 | testZone1 { 6 | nameservers { 7 | 10.184.216.34:44 { } 8 | 10.184.216.34:48 { } 9 | 10.184.216.34:52 { } 10 | } 11 | } 12 | testZone2 { 13 | nameservers { 14 | 10.231.210.103:53 { } 15 | 10.231.210.103:77 { } 16 | } 17 | } 18 | } 19 | randomize-query-name-case no 20 | route-domain /Common/rd_56 21 | use-ipv6 no 22 | use-udp no 23 | } 24 | net route-domain /Common/rd_56 { 25 | id 56 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/doConverter/dns_resolver/dns_resolver2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.0 2 | 3 | net dns-resolver /Common/custom { 4 | forward-zones { 5 | example.test { 6 | nameservers { 7 | 10.8.8.8:53 { } 8 | } 9 | } 10 | idservice.test { 11 | nameservers { 12 | 10.8.8.8:53 { } 13 | } 14 | } 15 | } 16 | route-domain /Common/0 17 | } 18 | -------------------------------------------------------------------------------- /test/engines/doConverter/dns_resolver/dns_resolver2.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "custom": { 8 | "class": "DNS_Resolver", 9 | "routeDomain": "0", 10 | "forwardZones": [ 11 | { 12 | "name": "example.test", 13 | "nameservers": [ 14 | "10.8.8.8:53" 15 | ] 16 | }, 17 | { 18 | "name": "idservice.test", 19 | "nameservers": [ 20 | "10.8.8.8:53" 21 | ] 22 | } 23 | ] 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/doConverter/firewalladdresslist/firewalladdresslist.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.0 2 | 3 | security firewall address-list firewallAddressList1 { 4 | addresses { 5 | 192.168.2.10 { } 6 | 192.168.2.0/24 { } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/engines/doConverter/firewalladdresslist/firewalladdresslist.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "firewallAddressList1": { 8 | "class": "FirewallAddressList", 9 | "addresses": [ 10 | "192.168.2.10", 11 | "192.168.2.0/24" 12 | ] 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/engines/doConverter/firewallportlist/firewallportlist.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.0 2 | 3 | security firewall port-list firewallPortList1 { 4 | ports { 5 | 8888 { } 6 | webcache { } 7 | } 8 | } 9 | security firewall port-list firewallPortList2 { 10 | ports { 11 | 8123 { } 12 | 8234 { } 13 | 8300-8350 { } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/engines/doConverter/firewallportlist/firewallportlist.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "firewallPortList1": { 8 | "class": "FirewallPortList", 9 | "ports": [ 10 | "8888", 11 | "webcache" 12 | ] 13 | }, 14 | "firewallPortList2": { 15 | "class": "FirewallPortList", 16 | "ports": [ 17 | "8123", 18 | "8234", 19 | "8300-8350" 20 | ] 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /test/engines/doConverter/firewallportlist/firewallportlist2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.0 2 | 3 | security firewall port-list /Common/_sys_self_allow_tcp_defaults { 4 | ports { 5 | 22 { } 6 | 53 { } 7 | 161 { } 8 | 443 { } 9 | 1029-1043 { } 10 | 4353 { } 11 | } 12 | } 13 | security firewall port-list /Common/_sys_self_allow_udp_defaults { 14 | ports { 15 | 53 { } 16 | 161 { } 17 | 520 { } 18 | 1026 { } 19 | 4353 { } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/engines/doConverter/firewallportlist/firewallportlist2.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/engines/doConverter/gslbdatacenter/gslbdatacenter.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.0 2 | 3 | gtm datacenter /Common/test_datacenter_1 { 4 | contact "no contact" 5 | description "test string" 6 | location "45672 34567 345347" 7 | prober-fallback none 8 | prober-preference outside-datacenter 9 | } 10 | gtm datacenter /Common/test_datacenter_2 { 11 | contact "main contact" 12 | description description 13 | location ss.example.test 14 | prober-fallback outside-datacenter 15 | prober-pool /Common/test_prober_pool 16 | prober-preference pool 17 | } 18 | gtm prober-pool /Common/test_prober_pool { 19 | description "test description" 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/doConverter/gslbglobals/gslbglobals.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.0 2 | 3 | gtm global-settings general { 4 | synchronization yes 5 | synchronization-group-name test_sync_group 6 | synchronization-time-tolerance 123 7 | synchronization-timeout 1234 8 | } 9 | gtm global-settings metrics { 10 | metrics-collection-protocols { icmp } 11 | } 12 | gtm global-settings metrics-exclusions { 13 | addresses none 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/doConverter/gslbglobals/gslbglobals.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "GSLBGlobals": { 8 | "class": "GSLBGlobals", 9 | "general": { 10 | "synchronizationEnabled": true, 11 | "synchronizationGroupName": "test_sync_group", 12 | "synchronizationTimeTolerance": 123, 13 | "synchronizationTimeout": 1234 14 | } 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/engines/doConverter/httpd/httpd.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.0 2 | 3 | sys httpd { 4 | allow { 10.10.0.0/24 10.11.1.2 } 5 | auth-pam-idle-timeout 86400 6 | ssl-ciphersuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES128-SHA256 7 | ssl-protocol "all -SSLv3 -TLSv1" 8 | } 9 | -------------------------------------------------------------------------------- /test/engines/doConverter/license/license.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "License": { 8 | "class": "License", 9 | "licenseType": "regKey", 10 | "regKey": "A1234-00000-00000-00000-0000000" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/doConverter/license/license.ucs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f5devcentral/f5-automation-config-converter/e6f9fcec46f0cb2b366110bd9936c80568752ddc/test/engines/doConverter/license/license.ucs -------------------------------------------------------------------------------- /test/engines/doConverter/managementip/managementip.conf: -------------------------------------------------------------------------------- 1 | sys management-ip 10.144.110.50/22 { 2 | description configured-by-dhcp 3 | } 4 | -------------------------------------------------------------------------------- /test/engines/doConverter/managementip/managementip.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "ManagementIp_IPv4": { 8 | "class": "ManagementIp", 9 | "address": "10.144.110.50/22", 10 | "remark": "configured-by-dhcp" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/doConverter/managementip/managementip2.conf: -------------------------------------------------------------------------------- 1 | sys management-ip 2001:db8::77/64 { 2 | description configured-by-dhcp 3 | } 4 | -------------------------------------------------------------------------------- /test/engines/doConverter/managementip/managementip2.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "ManagementIp_IPv6": { 8 | "class": "ManagementIp", 9 | "address": "2001:db8::77/64", 10 | "remark": "configured-by-dhcp" 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /test/engines/doConverter/managementip/managementip3.conf: -------------------------------------------------------------------------------- 1 | sys management-ip 10.144.110.50/22 { 2 | description configured-statically 3 | } 4 | sys management-ip 2001:db8::77/64 { 5 | description configured-statically 6 | } 7 | -------------------------------------------------------------------------------- /test/engines/doConverter/managementip/managementip3.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "ManagementIp_IPv4": { 8 | "class": "ManagementIp", 9 | "remark": "configured-statically", 10 | "address": "10.144.110.50/22" 11 | }, 12 | "ManagementIp_IPv6": { 13 | "class": "ManagementIp", 14 | "remark": "configured-statically", 15 | "address": "2001:db8::77/64" 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /test/engines/doConverter/managementroute/managementroute.conf: -------------------------------------------------------------------------------- 1 | sys management-route mgmtRoute { 2 | gateway 10.2.3.4 3 | mtu 1501 4 | network 10.3.2.1/32 5 | } 6 | -------------------------------------------------------------------------------- /test/engines/doConverter/managementroute/managementroute.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "mgmtRoute": { 8 | "class": "ManagementRoute", 9 | "gw": "10.2.3.4", 10 | "network": "10.3.2.1/32", 11 | "mtu": 1501 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/doConverter/managementroute/managementroute2.conf: -------------------------------------------------------------------------------- 1 | sys management-route /Common/default { 2 | description "test route" 3 | gateway 10.144.111.254 4 | network default 5 | } 6 | sys management-route /Common/default-inet6 { 7 | description "ipv6 route" 8 | gateway 2001:db8::2 9 | mtu 1500 10 | network default-inet6 11 | } 12 | -------------------------------------------------------------------------------- /test/engines/doConverter/managementroute/managementroute2.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "default": { 8 | "class": "ManagementRoute", 9 | "remark": "test route", 10 | "gw": "10.144.111.254", 11 | "network": "default" 12 | }, 13 | "default-inet6": { 14 | "class": "ManagementRoute", 15 | "remark": "ipv6 route", 16 | "gw": "2001:db8::2", 17 | "network": "default-inet6", 18 | "mtu": 1500 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/engines/doConverter/ntp/ntp.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.0 2 | 3 | sys ntp { 4 | servers { time.nist.gov } 5 | } 6 | -------------------------------------------------------------------------------- /test/engines/doConverter/ntp/ntp.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "NTP": { 8 | "class": "NTP", 9 | "servers": [ 10 | "time.nist.gov" 11 | ] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/doConverter/provision/provision.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.0 2 | 3 | sys provision afm { 4 | level nominal 5 | } 6 | sys provision am { } 7 | sys provision apm { 8 | level nominal 9 | } 10 | sys provision asm { 11 | level nominal 12 | } 13 | sys provision avr { 14 | level nominal 15 | } 16 | sys provision cgnat { } 17 | sys provision dos { } 18 | sys provision fps { } 19 | sys provision gtm { 20 | level nominal 21 | } 22 | sys provision ilx { } 23 | sys provision lc { } 24 | sys provision ltm { 25 | level nominal 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/doConverter/provision/provision.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "Provision": { 8 | "class": "Provision", 9 | "afm": "nominal", 10 | "apm": "nominal", 11 | "asm": "nominal", 12 | "avr": "nominal", 13 | "gtm": "nominal", 14 | "ltm": "nominal" 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/engines/doConverter/remoteauthrole/remoteauthrole.conf: -------------------------------------------------------------------------------- 1 | auth remote-role { 2 | role-info { 3 | TEAM1 { 4 | attribute memberOF=CN=Team-1,add-ldap-path 5 | console tmsh 6 | deny enabled 7 | line-order 925 8 | role admin 9 | user-partition all 10 | } 11 | TEAM2 { 12 | attribute memberOF=CN=Team-2,add-ldap-path 13 | console tmsh 14 | line-order 940 15 | role guest 16 | user-partition all 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/engines/doConverter/remoteauthrole/remoteauthrole.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "TEAM1": { 8 | "class": "RemoteAuthRole", 9 | "attribute": "memberOF=CN=Team-1,add-ldap-path", 10 | "console": "tmsh", 11 | "lineOrder": 925, 12 | "role": "admin", 13 | "remoteAccess": false, 14 | "userPartition": "all" 15 | }, 16 | "TEAM2": { 17 | "class": "RemoteAuthRole", 18 | "attribute": "memberOF=CN=Team-2,add-ldap-path", 19 | "console": "tmsh", 20 | "lineOrder": 940, 21 | "role": "guest", 22 | "remoteAccess": true, 23 | "userPartition": "all" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/doConverter/route/route.conf: -------------------------------------------------------------------------------- 1 | net route /Common/external_default_gateway { 2 | description "test gw" 3 | gw 10.30.0.101 4 | mtu 1501 5 | network default 6 | } 7 | -------------------------------------------------------------------------------- /test/engines/doConverter/route/route.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "schemaVersion": "1.0.0", 4 | "class": "Device", 5 | "async": true, 6 | "Common": { 7 | "class": "Tenant", 8 | "external_default_gateway": { 9 | "class": "Route", 10 | "gw": "10.30.0.101", 11 | "network": "default", 12 | "mtu": 1501 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/engines/doConverter/routedomain/routedomain2.conf: -------------------------------------------------------------------------------- 1 | net route-domain /Common/0 { 2 | id 0 3 | vlans { 4 | /Common/http-tunnel 5 | /Common/socks-tunnel 6 | } 7 | } 8 | net vlan /Common/test_vlan { 9 | interfaces { 10 | 1.3 { } 11 | } 12 | tag 4093 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/doConverter/routedomain/routedomain2.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "test_vlan": { 8 | "class": "VLAN", 9 | "tag": 4093, 10 | "interfaces": [ 11 | { 12 | "name": "1.3", 13 | "tagged": false 14 | } 15 | ] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/engines/doConverter/routemap/routemap.conf: -------------------------------------------------------------------------------- 1 | net routing route-map exampleRouteMap1 { 2 | entries { 3 | 33 { 4 | action permit 5 | match { 6 | as-path exampleRoutingAsPath1 7 | ipv4 { 8 | address { 9 | prefix-list exampleRoutingPrefixList1 10 | } 11 | } 12 | } 13 | } 14 | } 15 | route-domain 0 16 | } 17 | net routing route-map exampleRouteMap2 { 18 | entries { 19 | 44 { 20 | action deny 21 | match { 22 | as-path exampleRoutingAsPath2 23 | ipv4 { 24 | address { 25 | prefix-list exampleRoutingPrefixList2 26 | } 27 | } 28 | } 29 | } 30 | } 31 | route-domain 0 32 | } 33 | -------------------------------------------------------------------------------- /test/engines/doConverter/routingaccesslist/routingaccesslist.conf: -------------------------------------------------------------------------------- 1 | net routing access-list exampleRoutingAccessList1 { 2 | entries { 3 | 11 { 4 | action permit 5 | destination 10.10.0.0/16 6 | source 10.11.0.0/16 7 | } 8 | 22 { 9 | action deny 10 | destination 10.12.13.14/32 11 | source 10.13.14.15/32 12 | } 13 | } 14 | route-domain 0 15 | } 16 | net routing access-list exampleRoutingAccessList2 { 17 | entries { 18 | 33 { 19 | action permit 20 | exact-match enabled 21 | source 2001:db8:2222::/64 22 | } 23 | 44 { 24 | action permit 25 | source 2001:db8:3333::/64 26 | } 27 | } 28 | route-domain 0 29 | } 30 | -------------------------------------------------------------------------------- /test/engines/doConverter/routingaspath/routingaspath.conf: -------------------------------------------------------------------------------- 1 | net routing as-path exampleRoutingAsPath1 { 2 | entries { 3 | 10 { 4 | action permit 5 | regex "^165001 *" 6 | } 7 | } 8 | route-domain 0 9 | } 10 | net routing as-path exampleRoutingAsPath2 { 11 | entries { 12 | 20 { 13 | action permit 14 | regex ^165005$ 15 | } 16 | } 17 | route-domain 0 18 | } 19 | -------------------------------------------------------------------------------- /test/engines/doConverter/routingaspath/routingaspath.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "exampleRoutingAsPath1": { 8 | "class": "RoutingAsPath", 9 | "entries": [ 10 | { 11 | "name": 10, 12 | "regex": "^165001 *" 13 | } 14 | ] 15 | }, 16 | "exampleRoutingAsPath2": { 17 | "class": "RoutingAsPath", 18 | "entries": [ 19 | { 20 | "name": 20, 21 | "regex": "^165005$" 22 | } 23 | ] 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/doConverter/routingprefixlist/routingprefixlist.conf: -------------------------------------------------------------------------------- 1 | net routing prefix-list exampleRoutingPrefixList1 { 2 | entries { 3 | 10 { 4 | action permit 5 | prefix 2001:db8:2222::/127 6 | prefix-len-range 128 7 | } 8 | 15 { 9 | action deny 10 | prefix 2001:db8:f5f5::/64 11 | prefix-len-range 80:0 12 | } 13 | } 14 | route-domain 0 15 | } 16 | net routing prefix-list exampleRoutingPrefixList2 { 17 | entries { 18 | 20 { 19 | action permit 20 | prefix 10.3.3.0/24 21 | prefix-len-range 0:30 22 | } 23 | 30 { 24 | action deny 25 | prefix 10.4.4.0/22 26 | prefix-len-range 23:25 27 | } 28 | } 29 | route-domain 0 30 | } 31 | -------------------------------------------------------------------------------- /test/engines/doConverter/selfip/selfip.conf: -------------------------------------------------------------------------------- 1 | net vlan internal { 2 | fwd-mode l3 3 | if-index 144 4 | interfaces { 5 | 1.1 { } 6 | } 7 | mtu 1501 8 | tag 4093 9 | } 10 | net self internal-self { 11 | address 10.10.0.100/24 12 | allow-service { 13 | default 14 | } 15 | traffic-group traffic-group-local-only 16 | vlan internal 17 | } -------------------------------------------------------------------------------- /test/engines/doConverter/selfip/selfip.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "internal": { 8 | "class": "VLAN", 9 | "tag": 4093, 10 | "mtu": 1501, 11 | "interfaces": [ 12 | { 13 | "name": "1.1", 14 | "tagged": false 15 | } 16 | ] 17 | }, 18 | "SelfIp_internal-self": { 19 | "class": "SelfIp", 20 | "address": "10.10.0.100/24", 21 | "vlan": "internal", 22 | "allowService": "default", 23 | "trafficGroup": "traffic-group-local-only" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/doConverter/selfip/selfip3.conf: -------------------------------------------------------------------------------- 1 | net self /Common/10.30.0.48 { 2 | address 10.30.0.48/16 3 | allow-service { 4 | tcp:443 5 | } 6 | traffic-group /Common/traffic-group-local-only 7 | vlan /Common/external 8 | } 9 | net self /Common/10.30.0.51 { 10 | address 10.30.0.51/16 11 | allow-service { 12 | tcp:433 13 | tcp:472 14 | default 15 | } 16 | traffic-group /Common/traffic-group-1 17 | vlan /Common/external 18 | } 19 | net self /Common/external { 20 | address 10.40.0.44/16 21 | allow-service all 22 | traffic-group /Common/traffic-group-local-only 23 | vlan /Common/external 24 | } 25 | net vlan /Common/external { 26 | interfaces { 27 | 1.2 { } 28 | } 29 | tag 4093 30 | } 31 | -------------------------------------------------------------------------------- /test/engines/doConverter/selfip/selfip4.conf: -------------------------------------------------------------------------------- 1 | cm traffic-group /Common/traffic-group-1 { 2 | unit-id 1 3 | } 4 | cm traffic-group /Common/traffic-group-local-only { } 5 | net self-allow { 6 | defaults { 7 | igmp:0 8 | ospf:0 9 | pim:0 10 | tcp:161 11 | tcp:22 12 | tcp:4353 13 | tcp:443 14 | tcp:53 15 | udp:1026 16 | udp:161 17 | udp:4353 18 | udp:520 19 | udp:53 20 | } 21 | } 22 | net tunnels tunnel /Common/http-tunnel { 23 | description "Tunnel for http-explicit profile" 24 | profile /Common/tcp-forward 25 | } 26 | net tunnels tunnel /Common/socks-tunnel { 27 | description "Tunnel for socks profile" 28 | profile /Common/tcp-forward 29 | } 30 | -------------------------------------------------------------------------------- /test/engines/doConverter/selfip/selfip4.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /test/engines/doConverter/snmpagent/snmpagent.conf: -------------------------------------------------------------------------------- 1 | sys snmp { 2 | allowed-addresses { 10.30.100.0/23 10.40.100.0/23 10.8.100.0/32 10.30.10.100 10.30.10.200 } 3 | sys-contact "Support " 4 | sys-location "Seattle, WA" 5 | } 6 | -------------------------------------------------------------------------------- /test/engines/doConverter/snmpagent/snmpagent.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "SnmpAgent": { 8 | "class": "SnmpAgent", 9 | "contact": "Support ", 10 | "location": "Seattle, WA", 11 | "allowList": [ 12 | "10.30.100.0/23", 13 | "10.40.100.0/23", 14 | "10.8.100.0/32", 15 | "10.30.10.100", 16 | "10.30.10.200" 17 | ] 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/engines/doConverter/snmpcommunity/snmpcommunity.conf: -------------------------------------------------------------------------------- 1 | sys snmp { 2 | agent-addresses { tcp6:161 udp6:161 } 3 | communities { 4 | comm-public { 5 | community-name comm-public 6 | source default 7 | } 8 | public { 9 | community-name public 10 | oid-subset .1 11 | source all 12 | } 13 | snmpCommunityWithSpecialChar { 14 | access rw 15 | community-name special!community 16 | ipv6 enabled 17 | oid-subset .1 18 | source all 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/engines/doConverter/snmpcommunity/snmpcommunity.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "public": { 8 | "class": "SnmpCommunity", 9 | "name": "public", 10 | "source": "all", 11 | "oid": ".1" 12 | }, 13 | "snmpCommunityWithSpecialChar": { 14 | "class": "SnmpCommunity", 15 | "name": "special!community", 16 | "ipv6": true, 17 | "source": "all", 18 | "oid": ".1", 19 | "access": "rw" 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /test/engines/doConverter/snmptrapdestination/snmptrapdestination.conf: -------------------------------------------------------------------------------- 1 | sys snmp { 2 | traps { 3 | myV2SnmpDestination { 4 | community my_snmp_community 5 | host 10.0.10.100 6 | network other 7 | port 80 8 | } 9 | myV3SnmpDestination { 10 | auth-password $M$SX$08B3ndnAWBxdWuXiCdXD7A== 11 | auth-password-encrypted b]kX>gqG\\bdRNbH`R0YNSgnZ[hYV\?hl_\?QbGdXs+Ytk4cZQ 12 | auth-protocol sha 13 | engine-id 0x80001f8880c6b6067fdacfb558 14 | host 10.0.10.1 15 | network other 16 | port 80 17 | privacy-password $M$Nl$YWwMiAuWFQ0pHmD8Y6Ho2Q== 18 | privacy-password-encrypted "I3;tJ*6El=J0L]C.Y:FXHZC_)F4:M@8iY6SM[^896.7PQU4" 19 | privacy-protocol aes 20 | security-level auth-privacy 21 | security-name someSnmpUser 22 | version 3 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /test/engines/doConverter/snmptrapevents/snmptrapevents.conf: -------------------------------------------------------------------------------- 1 | sys snmp { 2 | agent-addresses { tcp6:161 udp6:161 } 3 | agent-trap disabled 4 | auth-trap enabled 5 | bigip-traps disabled 6 | } 7 | -------------------------------------------------------------------------------- /test/engines/doConverter/snmptrapevents/snmptrapevents.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "SnmpTrapEvents": { 8 | "class": "SnmpTrapEvents", 9 | "agentStartStop": false, 10 | "authentication": true, 11 | "device": false 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/doConverter/snmpuser/snmpuser.conf: -------------------------------------------------------------------------------- 1 | sys snmp { 2 | users { 3 | snmpUser1 { 4 | access rw 5 | auth-password $M$4h$/6WKBwg3QXnQXJFL4uxlTA== 6 | auth-password-encrypted "\\SCWRNET,K;92V@Npc4:_]\?Uid8^MJ:;PFH6I,\?GB2U5-VK" 7 | auth-protocol sha 8 | oid-subset .1 9 | privacy-password $M$6U$WptUGltgxB6GOUwl98NcXw== 10 | privacy-password-encrypted "K\?9mkL[rHmJ6f]QYDEA:e\?KP3:DTFObWgaATL0T,;m5IV]V" 11 | privacy-protocol aes 12 | username snmpUser1 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/engines/doConverter/snmpuser/snmpuser.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "snmpUser1": { 8 | "class": "SnmpUser", 9 | "authentication": { 10 | "protocol": "sha", 11 | "password": "pass1W0rd!" 12 | }, 13 | "privacy": { 14 | "protocol": "aes", 15 | "password": "P@ssW0rd" 16 | }, 17 | "oid": ".1", 18 | "access": "rw" 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/engines/doConverter/sshd/sshd.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.0 2 | 3 | sys sshd { 4 | allow { 10.0.0.1 10.0.1.0/28 192.168.1.* } 5 | banner enabled 6 | banner-text "Banner to display" 7 | inactivity-timeout 123 8 | include "Ciphers aes128-ctr,aes192-ctr,aes256-ctr 9 | LoginGraceTime 100 10 | MACs hmac-sha1,hmac-ripemd160,hmac-md5 11 | MaxAuthTries 10 12 | MaxStartups 5 13 | Protocol 1 14 | " 15 | } -------------------------------------------------------------------------------- /test/engines/doConverter/sshd/sshd.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "SSHD": { 8 | "class": "SSHD", 9 | "allow": [ 10 | "10.0.0.1", 11 | "10.0.1.0/28", 12 | "192.168.1.*" 13 | ], 14 | "banner": "Banner to display", 15 | "inactivityTimeout": 123, 16 | "ciphers": [ 17 | "aes128-ctr", 18 | "aes192-ctr", 19 | "aes256-ctr" 20 | ], 21 | "loginGraceTime": 100, 22 | "MACS": [ 23 | "hmac-sha1", 24 | "hmac-ripemd160", 25 | "hmac-md5" 26 | ], 27 | "maxAuthTries": 10, 28 | "maxStartups": 5, 29 | "protocol": 1 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /test/engines/doConverter/syslogremoteserver/syslogremoteserver.conf: -------------------------------------------------------------------------------- 1 | sys syslog { 2 | remote-servers { 3 | DRDCSyslog { 4 | host dr-ip 5 | local-ip 172.28.68.42 6 | remote-port printer 7 | } 8 | LocalDCSyslog { 9 | host local-ip 10 | local-ip 172.28.68.42 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/doConverter/syslogremoteserver/syslogremoteserver.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "LocalDCSyslog": { 8 | "class": "SyslogRemoteServer", 9 | "host": "local-ip", 10 | "localIp": "172.28.68.42" 11 | }, 12 | "DRDCSyslog": { 13 | "class": "SyslogRemoteServer", 14 | "host": "dr-ip", 15 | "localIp": "172.28.68.42", 16 | "remotePort": 515 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/engines/doConverter/system/system.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.0 2 | 3 | sys software update { 4 | auto-check enabled 5 | auto-phonehome disabled 6 | frequency weekly 7 | } 8 | sys global-settings { 9 | gui-setup disabled 10 | hostname test.acc 11 | mgmt-dhcp dhcpv6 12 | } 13 | -------------------------------------------------------------------------------- /test/engines/doConverter/system/system.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "System": { 8 | "class": "System", 9 | "hostname": "test.acc", 10 | "autoCheck": true, 11 | "autoPhonehome": false, 12 | "mgmtDhcpEnabled": true 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /test/engines/doConverter/trafficcontrol/trafficcontrol.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.0 2 | 3 | ltm global-settings traffic-control { 4 | accept-ip-options enabled 5 | accept-ip-source-route enabled 6 | allow-ip-source-route enabled 7 | continue-matching enabled 8 | max-icmp-rate 867 9 | max-reject-rate 867 10 | max-reject-rate-timeout 200 11 | min-path-mtu 867 12 | path-mtu-discovery disabled 13 | port-find-linear 867 14 | port-find-random 867 15 | port-find-threshold-timeout 200 16 | port-find-threshold-trigger 10 17 | port-find-threshold-warning disabled 18 | reject-unmatched disabled 19 | } 20 | -------------------------------------------------------------------------------- /test/engines/doConverter/trafficcontrol/trafficcontrol.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "TrafficControl": { 8 | "class": "TrafficControl", 9 | "acceptIpOptions": true, 10 | "acceptIpSourceRoute": true, 11 | "allowIpSourceRoute": true, 12 | "continueMatching": true, 13 | "maxIcmpRate": 867, 14 | "maxPortFindLinear": 867, 15 | "maxPortFindRandom": 867, 16 | "maxRejectRate": 867, 17 | "maxRejectRateTimeout": 200, 18 | "minPathMtu": 867, 19 | "pathMtuDiscovery": false, 20 | "portFindThresholdWarning": false, 21 | "portFindThresholdTrigger": 10, 22 | "portFindThresholdTimeout": 200, 23 | "rejectUnmatched": false 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/engines/doConverter/trafficgroup/trafficgroup.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.0 2 | 3 | cm traffic-group testTrafficGroup { 4 | auto-failback-enabled true 5 | auto-failback-time 50 6 | ha-load-factor 2 7 | ha-order { 8 | do.example.test 9 | } 10 | unit-id 2 11 | } 12 | -------------------------------------------------------------------------------- /test/engines/doConverter/trafficgroup/trafficgroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "testTrafficGroup": { 8 | "class": "TrafficGroup", 9 | "autoFailbackEnabled": true, 10 | "autoFailbackTime": 50, 11 | "haLoadFactor": 2, 12 | "haOrder": [ 13 | "do.example.test" 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/engines/doConverter/trunk/trunk.conf: -------------------------------------------------------------------------------- 1 | net trunk testTrunk { 2 | bandwidth 10000 3 | cfg-mbr-count 1 4 | id 0 5 | interfaces { 6 | 1.1 7 | } 8 | link-select-policy maximum-bandwidth 9 | mac-address fa:16:3e:15:0d:91 10 | media 10000 11 | working-mbr-count 1 12 | } 13 | -------------------------------------------------------------------------------- /test/engines/doConverter/trunk/trunk.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "Device", 3 | "schemaVersion": "1.0.0", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "testTrunk": { 8 | "class": "Trunk", 9 | "interfaces": ["1.1"], 10 | "linkSelectPolicy": "maximum-bandwidth" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/doConverter/tunnel/tunnel.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.0 2 | 3 | net tunnels tunnel tcpForwardTunnel { 4 | auto-lasthop enabled 5 | if-index 112 6 | mtu 2000 7 | profile tcp-forward 8 | tos 123 9 | use-pmtu disabled 10 | } 11 | -------------------------------------------------------------------------------- /test/engines/doConverter/tunnel/tunnel.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "Device", 3 | "schemaVersion": "1.0.0", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "tcpForwardTunnel": { 8 | "class": "Tunnel", 9 | "tunnelType": "tcp-forward", 10 | "mtu": 2000, 11 | "usePmtu": false, 12 | "typeOfService": 123, 13 | "autoLastHop": "enabled" 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /test/engines/doConverter/tunnel/tunnel2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.0 2 | 3 | net tunnels tunnel tcpTest { 4 | auto-lasthop enabled 5 | if-index 192 6 | mtu 1700 7 | profile tcp-forward 8 | tos 0 9 | use-pmtu disabled 10 | } 11 | -------------------------------------------------------------------------------- /test/engines/doConverter/tunnel/tunnel2.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "tcpTest": { 8 | "class": "Tunnel", 9 | "autoLastHop": "enabled", 10 | "mtu": 1700, 11 | "tunnelType": "tcp-forward", 12 | "typeOfService": 0, 13 | "usePmtu": false 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /test/engines/doConverter/user/user.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.0 2 | 3 | auth user admin { 4 | description admin 5 | encrypted-password !! 6 | partition Common 7 | partition-access { 8 | all-partitions { 9 | role admin 10 | } 11 | } 12 | shell bash 13 | } 14 | auth user avgJoe { 15 | description avgJoe 16 | encrypted-password !! 17 | partition Common 18 | partition-access { 19 | all-partitions { 20 | role guest 21 | } 22 | } 23 | shell none 24 | } -------------------------------------------------------------------------------- /test/engines/doConverter/user/user.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "admin": { 8 | "class": "User", 9 | "userType": "regular", 10 | "shell": "bash", 11 | "partitionAccess": { 12 | "all-partitions": { 13 | "role": "admin" 14 | } 15 | } 16 | }, 17 | "avgJoe": { 18 | "class": "User", 19 | "userType": "regular", 20 | "shell": "none", 21 | "partitionAccess": { 22 | "all-partitions": { 23 | "role": "guest" 24 | } 25 | } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/engines/doConverter/vlan/vlan.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 15.1.0 2 | 3 | net vlan newVlan { 4 | fwd-mode l3 5 | if-index 128 6 | interfaces { 7 | 1.1 { 8 | tagged 9 | } 10 | } 11 | tag 100 12 | } 13 | -------------------------------------------------------------------------------- /test/engines/doConverter/vlan/vlan.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "class": "Device", 4 | "async": true, 5 | "Common": { 6 | "class": "Tenant", 7 | "newVlan": { 8 | "class": "VLAN", 9 | "tag": 100, 10 | "interfaces": [ 11 | { 12 | "name": "1.1", 13 | "tagged": true 14 | } 15 | ] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/engines/parser/ex1.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | apm oauth db-instance /Common/oauthdb { 4 | description "Default OAuth DB." 5 | } 6 | apm report default-report { 7 | report-name sessionReports/sessionSummary 8 | user /Common/admin 9 | } 10 | sys software update { 11 | auto-check enabled 12 | auto-phonehome enabled 13 | frequency weekly 14 | } 15 | wom endpoint-discovery { } 16 | -------------------------------------------------------------------------------- /test/engines/parser/ex1.json: -------------------------------------------------------------------------------- 1 | { 2 | "apm oauth db-instance /Common/oauthdb": { 3 | "description": "\"Default OAuth DB.\"" 4 | }, 5 | "apm report default-report": { 6 | "report-name": "sessionReports/sessionSummary", 7 | "user": "/Common/admin" 8 | }, 9 | "sys software update": { 10 | "auto-check": "enabled", 11 | "auto-phonehome": "enabled", 12 | "frequency": "weekly" 13 | }, 14 | "wom endpoint-discovery": {} 15 | } 16 | -------------------------------------------------------------------------------- /test/engines/parser/ex10.json: -------------------------------------------------------------------------------- 1 | { 2 | "apm oauth db-instance /Common/oauthdb": { 3 | "description": "\"Default OAuth DB.\"" 4 | }, 5 | "apm report default-report": { 6 | "report-name": "sessionReports/sessionSummary", 7 | "user": "/Common/admin" 8 | }, 9 | "cli script /Common/__appsvcs_update": {}, 10 | "sys crypto cert-order-manager /Common/www.test.com-cert-order": {}, 11 | "sys software update": { 12 | "auto-check": "enabled", 13 | "auto-phonehome": "enabled", 14 | "frequency": "weekly" 15 | }, 16 | "wom endpoint-discovery": {} 17 | } 18 | -------------------------------------------------------------------------------- /test/engines/parser/ex11.conf: -------------------------------------------------------------------------------- 1 | ltm data-group internal /partition_1/string-datagroup { 2 | records { 3 | /api/test/app1 {} 4 | } 5 | type string 6 | } 7 | ltm data-group internal /partition_2/address_datagroup { 8 | records { 9 | 10.1.1.1/28 { 10 | data / 11 | } 12 | 10.2.2.2/32 { 13 | data / 14 | } 15 | 10.3.3.3/24 { 16 | data / 17 | } 18 | type ip 19 | } 20 | } 21 | 22 | ltm data-group internal /partition_2/integer_datagroup { 23 | records { 24 | 1 { 25 | data 1 26 | } 27 | 4 { 28 | data xxx 29 | } 30 | 5 { 31 | data 5000 32 | } 33 | 777 { 34 | data 7 35 | } 36 | 96789 { 37 | data "some data with special !@#${}[]12345" 38 | } 39 | } 40 | type integer 41 | } -------------------------------------------------------------------------------- /test/engines/parser/ex12.conf: -------------------------------------------------------------------------------- 1 | ltm data-group internal /AS3_Tenant/AS3_Application/string-datagroup { 2 | records { 3 | /api/test/app3 { 4 | data "quoted data with special chars !@#${}[]12345" 5 | } 6 | } 7 | type string 8 | } 9 | ltm data-group internal /AS3_Tenant/AS3_Application/address_datagroup { 10 | records { 11 | 10.2.2.2/32 { 12 | data "quoted data with special chars !@#${}[]12345" 13 | } 14 | 15 | type ip 16 | } 17 | } 18 | ltm data-group internal /AS3_Tenant/AS3_Application/integer_datagroup { 19 | records { 20 | 2 { 21 | data "quoted data with special chars !@#${}[]12345" 22 | } 23 | } 24 | type integer 25 | } -------------------------------------------------------------------------------- /test/engines/parser/ex12.json: -------------------------------------------------------------------------------- 1 | { 2 | "ltm data-group internal /AS3_Tenant/AS3_Application/string-datagroup": { 3 | "records": { 4 | "/api/test/app3": { 5 | "data": "\"quoted data with special chars !@#${}[]12345\"" 6 | } 7 | }, 8 | "type": "string" 9 | }, 10 | "ltm data-group internal /AS3_Tenant/AS3_Application/address_datagroup": { 11 | "records": { 12 | "10.2.2.2/32": { 13 | "data": "\"quoted data with special chars !@#${}[]12345\"" 14 | } 15 | } 16 | }, 17 | "ltm data-group internal /AS3_Tenant/AS3_Application/integer_datagroup": { 18 | "records": { 19 | "2": { 20 | "data": "\"quoted data with special chars !@#${}[]12345\"" 21 | } 22 | }, 23 | "type": "integer" 24 | } 25 | } -------------------------------------------------------------------------------- /test/engines/parser/ex13.conf: -------------------------------------------------------------------------------- 1 | security bot-defense profile /Common/bot_with_css { 2 | api-access-strict-mitigation disabled 3 | app-service none 4 | blocking-page { 5 | body " 6 | 11 | " 12 | status-code 200 13 | type custom 14 | } 15 | } -------------------------------------------------------------------------------- /test/engines/parser/ex13.json: -------------------------------------------------------------------------------- 1 | { 2 | "security bot-defense profile /Common/bot_with_css": { 3 | "api-access-strict-mitigation": "disabled", 4 | "app-service": "none", 5 | "blocking-page": { 6 | "body": "\"\n\n\"", 7 | "status-code": "200", 8 | "type": "custom" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /test/engines/parser/ex15.conf: -------------------------------------------------------------------------------- 1 | ltm profile fix /AS3_Tenant/AS3_Application/profileFIXcustom { 2 | response-parsing true 3 | sender-tag-class { 4 | { 5 | sender-id RefInternalDG 6 | tag-map-class /Common/dataGroupRefInternal 7 | } 8 | { 9 | sender-id RefExternalDG 10 | tag-map-class /Common/dataGroupRefExternal 11 | } 12 | } 13 | statistics-sample-interval 45 14 | } 15 | -------------------------------------------------------------------------------- /test/engines/parser/ex15.json: -------------------------------------------------------------------------------- 1 | { 2 | "ltm profile fix /AS3_Tenant/AS3_Application/profileFIXcustom": { 3 | "response-parsing": "true", 4 | "sender-tag-class": { 5 | "0": { 6 | "sender-id": "RefInternalDG", 7 | "tag-map-class": "/Common/dataGroupRefInternal" 8 | }, 9 | "1": { 10 | "sender-id": "RefExternalDG", 11 | "tag-map-class": "/Common/dataGroupRefExternal" 12 | } 13 | }, 14 | "statistics-sample-interval": "45" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /test/engines/parser/ex16.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | cm device-group /Common/device_trust_group { 4 | auto-sync enabled 5 | devices { 6 | /Common/example { } 7 | } 8 | hidden true 9 | network-failover disabled 10 | } 11 | -------------------------------------------------------------------------------- /test/engines/parser/ex17.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | cm device-group /Common/device_trust_group { 4 | auto-sync enabled 5 | devices { 6 | /Common/example { } 7 | } 8 | hidden true 9 | network-failover disabled 10 | } 11 | -------------------------------------------------------------------------------- /test/engines/parser/ex2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | cm device-group /Common/device_trust_group { 4 | auto-sync enabled 5 | devices { 6 | /Common/example { } 7 | } 8 | hidden true 9 | network-failover disabled 10 | } 11 | -------------------------------------------------------------------------------- /test/engines/parser/ex2.json: -------------------------------------------------------------------------------- 1 | { 2 | "cm device-group /Common/device_trust_group": { 3 | "auto-sync": "enabled", 4 | "devices": { 5 | "/Common/example": {} 6 | }, 7 | "hidden": "true", 8 | "network-failover": "disabled" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /test/engines/parser/ex4.conf: -------------------------------------------------------------------------------- 1 | # unique pattern for iRules 2 | 3 | ltm rule /Sample_04/A1/Maintenance_iRule { 4 | when HTTP_REQUEST { 5 | HTTP::respond 200 content { 6 | 7 | 8 | Blocked Page 9 | 10 | 11 | We are sorry, but the site you are looking for is currently under Maintenance
12 | If you feel you have reached this page in error, please try again. Thanks for coming 13 | 14 | 15 | } noserver Cache-Control no-cache Connection Close 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/engines/parser/ex4.json: -------------------------------------------------------------------------------- 1 | { 2 | "ltm rule /Sample_04/A1/Maintenance_iRule": 3 | "when HTTP_REQUEST {\n HTTP::respond 200 content {\n \n \n Blocked Page\n \n \n We are sorry, but the site you are looking for is currently under Maintenance
\n If you feel you have reached this page in error, please try again. Thanks for coming\n \n \n } noserver Cache-Control no-cache Connection Close\n}" 4 | } 5 | -------------------------------------------------------------------------------- /test/engines/parser/ex5.conf: -------------------------------------------------------------------------------- 1 | ltm rule /Common/example1 { 2 | when HTTP_REQUEST priority 1 { 3 | if {[POLICY::targets http-reply] } { 4 | TCP::close 5 | event disable all 6 | return 7 | } 8 | } 9 | when HTTPS_REQUEST priority 2 { 10 | if {[POLICY::targets https-reply] } { 11 | TCP::close 12 | event disable all 13 | return 14 | } 15 | } 16 | when HTTP_RESPONSE { 17 | HTTP::header remove Server 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/engines/parser/ex5.json: -------------------------------------------------------------------------------- 1 | { 2 | "ltm rule /Common/example1": 3 | "when HTTP_REQUEST priority 1 {\n if {[POLICY::targets http-reply] } {\n TCP::close\n event disable all\n return\n }\n}\nwhen HTTPS_REQUEST priority 2 {\n if {[POLICY::targets https-reply] } {\n TCP::close\n event disable all\n return\n }\n}\nwhen HTTP_RESPONSE {\n HTTP::header remove Server\n}" 4 | } 5 | -------------------------------------------------------------------------------- /test/engines/parser/ex6.conf: -------------------------------------------------------------------------------- 1 | # irule is user defined and cannot be trusted to be indented correctly 2 | # line 18 3 | 4 | ltm rule /Common/example1 { 5 | when HTTP_REQUEST priority 1 { 6 | if {[POLICY::targets http-reply] } { 7 | TCP::close 8 | event disable all 9 | return 10 | } 11 | } 12 | when HTTPS_REQUEST priority 2 { 13 | if {[POLICY::targets https-reply] } { 14 | TCP::close 15 | event disable all 16 | return 17 | } 18 | } 19 | } 20 | 21 | ltm rule /Common/example2 { 22 | when HTTP_RESPONSE { 23 | HTTP::header remove Server 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /test/engines/parser/ex6.json: -------------------------------------------------------------------------------- 1 | { 2 | "ltm rule /Common/example1": 3 | "when HTTP_REQUEST priority 1 {\n if {[POLICY::targets http-reply] } {\n TCP::close\n event disable all\n return\n }\n}\nwhen HTTPS_REQUEST priority 2 {\n if {[POLICY::targets https-reply] } {\n TCP::close\n event disable all\n return\n }\n }", 4 | 5 | "ltm rule /Common/example2": 6 | "when HTTP_RESPONSE {\n HTTP::header remove Server\n}" 7 | } 8 | -------------------------------------------------------------------------------- /test/engines/parser/ex7.conf: -------------------------------------------------------------------------------- 1 | # Bracket on line 5 is throwing things off 2 | 3 | security dos bot-signature "/Common/Bash Shellshock" { 4 | category "/Common/Exploit Tool" 5 | rule "headercontent:\"() {\"; useragentonly; nocase;" 6 | user-defined false 7 | } 8 | security dos bot-signature "/Common/Bichoo Spider" { 9 | category "/Common/Web Spider" 10 | risk high 11 | rule "headercontent:\"Bichoo Spider\"; useragentonly; nocase;" 12 | user-defined false 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/parser/ex7.json: -------------------------------------------------------------------------------- 1 | { 2 | "security dos bot-signature \"/Common/Bash Shellshock\"": { 3 | "category": "\"/Common/Exploit Tool\"", 4 | "rule": "\"headercontent:\\\"() {\\\"; useragentonly; nocase;\"", 5 | "user-defined": "false" 6 | }, 7 | "security dos bot-signature \"/Common/Bichoo Spider\"": { 8 | "category": "\"/Common/Web Spider\"", 9 | "risk": "high", 10 | "rule": "\"headercontent:\\\"Bichoo Spider\\\"; useragentonly; nocase;\"", 11 | "user-defined": "false" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /test/engines/validators/as3NextAdapter.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | const f5AppSvcsSchema = require('@automation-toolchain/f5-appsvcs-schema'); 20 | 21 | module.exports = (declaration) => f5AppSvcsSchema.validate(declaration, { mode: 'strict', runtime: 'next' }); 22 | -------------------------------------------------------------------------------- /test/engines/validators/doAdapter.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2022 F5 Networks, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | const AjvValidator = require('../../../autotoolDeps/DO/src/lib/ajvValidator'); 20 | 21 | const doValidator = new AjvValidator(); 22 | 23 | module.exports = (declaration) => doValidator.validate({ class: 'DO', declaration }); 24 | -------------------------------------------------------------------------------- /test/main/encrypted.ucs: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP MESSAGE----- 2 | Version: GnuPG v1.4.5 (GNU/Linux) 3 | Encrypted: yes 4 | Product: BIG-IP 5 | Version: 14.1.2 6 | Build: 2.0.196 7 | BaseBuild: 0.0.163 8 | Date: Mon Sep 21 13:59:37 PDT 2015 9 | Built: 150921135937 10 | Changelist: 1505421 11 | JobID: 549027 12 | -------------------------------------------------------------------------------- /test/main/main.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm pool /AS3_Tenant/AS3_Application/web_pool { 4 | min-active-members 1 5 | } 6 | ltm virtual /AS3_Tenant/AS3_Application/serviceMain { 7 | description AS3_Application 8 | destination /AS3_Tenant/10.0.1.10:80 9 | ip-protocol tcp 10 | mask 255.255.255.255 11 | persist { 12 | /Common/cookie { 13 | default yes 14 | } 15 | } 16 | pool /AS3_Tenant/AS3_Application/web_pool 17 | profiles { 18 | /Common/f5-tcp-progressive { } 19 | /Common/http { } 20 | } 21 | source 0.0.0.0/0 22 | source-address-translation { 23 | type automap 24 | } 25 | translate-address enabled 26 | translate-port enabled 27 | } 28 | ltm virtual-address /AS3_Tenant/10.0.1.10 { 29 | address 10.0.1.10 30 | arp enabled 31 | inherited-traffic-group true 32 | mask 255.255.255.255 33 | traffic-group /Common/traffic-group-1 34 | } 35 | -------------------------------------------------------------------------------- /test/main/main.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "updateMode": "selective", 4 | "schemaVersion": "3.8.0", 5 | "id": "declarationId", 6 | "label": "theDeclaration", 7 | "remark": "All properties declaration", 8 | "AS3_Tenant": { 9 | "class": "Tenant", 10 | "AS3_Application": { 11 | "class": "Application", 12 | "template": "http", 13 | "serviceMain": { 14 | "class": "Service_HTTP", 15 | "virtualAddresses": [ 16 | "10.0.1.10" 17 | ], 18 | "pool": "web_pool" 19 | }, 20 | "web_pool": { 21 | "class": "Pool" 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /test/postConverter/removeInvalidRefs/removeInvalidRefs2.json: -------------------------------------------------------------------------------- 1 | { 2 | "class": "ADC", 3 | "schemaVersion": "3.30.0", 4 | "id": "urn:uuid:1874dcae-276d-4a18-a684-d6d2a264a552", 5 | "label": "Converted Declaration", 6 | "remark": "Generated by Automation Config Converter", 7 | "AS3_Tenant": { 8 | "class": "Tenant", 9 | "AS3_Application": { 10 | "class": "Application", 11 | "template": "generic", 12 | "httpService": { 13 | "class": "Service_HTTP", 14 | "virtualAddresses": [ 15 | "10.10.10.1" 16 | ], 17 | "policyEndpoint": "/Common/Shared/policy_internal" 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /test/server/server_base2.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 16.1.1 2 | 3 | net vlan internal { 4 | fwd-mode l3 5 | if-index 144 6 | interfaces { 7 | 1.2 { } 8 | } 9 | mtu 1501 10 | tag 4093 11 | } 12 | net self internalSelf { 13 | address 10.10.0.100/24 14 | allow-service { 15 | default 16 | } 17 | traffic-group traffic-group-local-only 18 | vlan internal 19 | } 20 | -------------------------------------------------------------------------------- /test/util/getBigipVersion/test.conf: -------------------------------------------------------------------------------- 1 | #TMSH-VERSION: 13.1.1 2 | 3 | ltm pool /AS3_Tenant/AS3_Application/_web_pool { 4 | min-active-members 1 5 | } --------------------------------------------------------------------------------