from __future__ import annotations

from pyvenafi.tpp.attributes._helper import (
    IterableMeta,
    Attribute,
)
from pyvenafi.tpp.attributes.application_base import ApplicationBaseAttributes

class F5LTMAdvancedAttributes(ApplicationBaseAttributes, metaclass=IterableMeta):
    __config_class__ = "F5 LTM Advanced"
    advanced_settings_bundle_name = Attribute('Advanced Settings Bundle Name', min_version='21.4')
    advertised_ca = Attribute('Advertised CA', min_version='21.4')
    archive_location = Attribute('Archive Location', min_version='21.4')
    associate_ssl_profile_to = Attribute('Associate SSL Profile To', min_version='22.2')
    authentication_frequency = Attribute('Authentication Frequency', min_version='21.4')
    build = Attribute('Build', min_version='21.4')
    bundle_certificate = Attribute('Bundle Certificate', min_version='21.4')
    bundle_certificate_collection = Attribute('Bundle Certificate Collection', min_version='21.4')
    crl = Attribute('CRL', min_version='21.4')
    certificate_chain_name = Attribute('Certificate Chain Name', min_version='21.4')
    certificate_name = Attribute('Certificate Name', min_version='21.4')
    chain_traversal_depth = Attribute('Chain Traversal Depth', min_version='21.4')
    client_authentication_certificate = Attribute('Client Authentication Certificate', min_version='21.4')
    config_sync = Attribute('Config Sync', min_version='21.4')
    connection_attempts = Attribute('Connection Attempts', min_version='21.4')
    delete_previous_cert_and_key = Attribute('Delete Previous Cert And Key', min_version='21.4')
    device_certificate = Attribute('Device Certificate', min_version='21.4')
    file_validation_disabled = Attribute('File Validation Disabled', min_version='21.4')
    fips_key = Attribute('Fips Key', min_version='21.4')
    force_profile_update = Attribute('Force Profile Update', min_version='21.4')
    install_chain_file = Attribute('Install Chain File', min_version='21.4')
    last_used_host = Attribute('Last Used Host', min_version='21.4')
    monitor_name = Attribute('Monitor Name', min_version='22.2')
    monitor_partition = Attribute('Monitor Partition', min_version='22.2')
    network_validation_disabled = Attribute('Network Validation Disabled', min_version='21.4')
    overwrite_certificate = Attribute('Overwrite Certificate', min_version='21.4')
    overwrite_existing_chain = Attribute('Overwrite Existing Chain', min_version='21.4')
    parent_ssl_profile_name = Attribute('Parent SSL Profile Name', min_version='21.4')
    partition = Attribute('Partition', min_version='21.4')
    previous_certificate = Attribute('Previous Certificate', min_version='21.4')
    previous_key = Attribute('Previous Key', min_version='21.4')
    provisioning_to = Attribute('Provisioning To', min_version='21.4')
    sni_default = Attribute('SNI Default', min_version='21.4')
    sni_server_name = Attribute('SNI Server Name', min_version='21.4')
    ssh_port = Attribute('SSH Port', min_version='21.4')
    ssl_profile_name = Attribute('SSL Profile Name', min_version='21.4')
    ssl_profile_type = Attribute('SSL Profile Type', min_version='21.4')
    server_authentication_certificate = Attribute('Server Authentication Certificate', min_version='21.4')
    server_authentication_name = Attribute('Server Authentication Name', min_version='21.4')
    system_id = Attribute('System Id', min_version='21.4')
    trusted_ca = Attribute('Trusted CA', min_version='21.4')
    use_advanced_settings = Attribute('Use Advanced Settings', min_version='21.4')
    use_basic_provisioning = Attribute('Use Basic Provisioning', min_version='21.4')
    use_rest_api = Attribute('Use REST API', min_version='21.4')
    version = Attribute('Version', min_version='21.4')
    virtual_server_name = Attribute('Virtual Server Name', min_version='21.4')
    virtual_server_partition = Attribute('Virtual Server Partition', min_version='21.4')
