# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities

__all__ = [
    'CpsDvEnrollmentAdminContactArgs',
    'CpsDvEnrollmentCsrArgs',
    'CpsDvEnrollmentDnsChallengeArgs',
    'CpsDvEnrollmentHttpChallengeArgs',
    'CpsDvEnrollmentNetworkConfigurationArgs',
    'CpsDvEnrollmentNetworkConfigurationClientMutualAuthenticationArgs',
    'CpsDvEnrollmentOrganizationArgs',
    'CpsDvEnrollmentTechContactArgs',
    'DnsZoneTsigKeyArgs',
    'GtmAsmapAssignmentArgs',
    'GtmAsmapDefaultDatacenterArgs',
    'GtmCidrmapAssignmentArgs',
    'GtmCidrmapDefaultDatacenterArgs',
    'GtmDatacenterDefaultLoadObjectArgs',
    'GtmGeomapAssignmentArgs',
    'GtmGeomapDefaultDatacenterArgs',
    'GtmPropertyLivenessTestArgs',
    'GtmPropertyLivenessTestHttpHeaderArgs',
    'GtmPropertyStaticRrSetArgs',
    'GtmPropertyTrafficTargetArgs',
    'GtmResourceResourceInstanceArgs',
    'PropertyActivationRuleErrorArgs',
    'PropertyActivationRuleWarningArgs',
    'PropertyHostnameArgs',
    'PropertyHostnameCertStatusArgs',
    'PropertyOriginArgs',
    'PropertyRuleErrorArgs',
    'PropertyRuleWarningArgs',
    'PropertyVariablesVariableArgs',
    'PropertyVariablesVariableVariableArgs',
    'ProviderAppsecArgs',
    'ProviderConfigArgs',
    'ProviderDnsArgs',
    'ProviderGtmArgs',
    'ProviderNetworkArgs',
    'ProviderPropertyArgs',
    'GetPropertyRulesTemplateVariableArgs',
]

@pulumi.input_type
class CpsDvEnrollmentAdminContactArgs:
    def __init__(__self__, *,
                 address_line_one: pulumi.Input[str],
                 city: pulumi.Input[str],
                 country_code: pulumi.Input[str],
                 email: pulumi.Input[str],
                 first_name: pulumi.Input[str],
                 last_name: pulumi.Input[str],
                 organization: pulumi.Input[str],
                 phone: pulumi.Input[str],
                 postal_code: pulumi.Input[str],
                 region: pulumi.Input[str],
                 address_line_two: Optional[pulumi.Input[str]] = None,
                 title: Optional[pulumi.Input[str]] = None):
        pulumi.set(__self__, "address_line_one", address_line_one)
        pulumi.set(__self__, "city", city)
        pulumi.set(__self__, "country_code", country_code)
        pulumi.set(__self__, "email", email)
        pulumi.set(__self__, "first_name", first_name)
        pulumi.set(__self__, "last_name", last_name)
        pulumi.set(__self__, "organization", organization)
        pulumi.set(__self__, "phone", phone)
        pulumi.set(__self__, "postal_code", postal_code)
        pulumi.set(__self__, "region", region)
        if address_line_two is not None:
            pulumi.set(__self__, "address_line_two", address_line_two)
        if title is not None:
            pulumi.set(__self__, "title", title)

    @property
    @pulumi.getter(name="addressLineOne")
    def address_line_one(self) -> pulumi.Input[str]:
        return pulumi.get(self, "address_line_one")

    @address_line_one.setter
    def address_line_one(self, value: pulumi.Input[str]):
        pulumi.set(self, "address_line_one", value)

    @property
    @pulumi.getter
    def city(self) -> pulumi.Input[str]:
        return pulumi.get(self, "city")

    @city.setter
    def city(self, value: pulumi.Input[str]):
        pulumi.set(self, "city", value)

    @property
    @pulumi.getter(name="countryCode")
    def country_code(self) -> pulumi.Input[str]:
        return pulumi.get(self, "country_code")

    @country_code.setter
    def country_code(self, value: pulumi.Input[str]):
        pulumi.set(self, "country_code", value)

    @property
    @pulumi.getter
    def email(self) -> pulumi.Input[str]:
        return pulumi.get(self, "email")

    @email.setter
    def email(self, value: pulumi.Input[str]):
        pulumi.set(self, "email", value)

    @property
    @pulumi.getter(name="firstName")
    def first_name(self) -> pulumi.Input[str]:
        return pulumi.get(self, "first_name")

    @first_name.setter
    def first_name(self, value: pulumi.Input[str]):
        pulumi.set(self, "first_name", value)

    @property
    @pulumi.getter(name="lastName")
    def last_name(self) -> pulumi.Input[str]:
        return pulumi.get(self, "last_name")

    @last_name.setter
    def last_name(self, value: pulumi.Input[str]):
        pulumi.set(self, "last_name", value)

    @property
    @pulumi.getter
    def organization(self) -> pulumi.Input[str]:
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[str]):
        pulumi.set(self, "organization", value)

    @property
    @pulumi.getter
    def phone(self) -> pulumi.Input[str]:
        return pulumi.get(self, "phone")

    @phone.setter
    def phone(self, value: pulumi.Input[str]):
        pulumi.set(self, "phone", value)

    @property
    @pulumi.getter(name="postalCode")
    def postal_code(self) -> pulumi.Input[str]:
        return pulumi.get(self, "postal_code")

    @postal_code.setter
    def postal_code(self, value: pulumi.Input[str]):
        pulumi.set(self, "postal_code", value)

    @property
    @pulumi.getter
    def region(self) -> pulumi.Input[str]:
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: pulumi.Input[str]):
        pulumi.set(self, "region", value)

    @property
    @pulumi.getter(name="addressLineTwo")
    def address_line_two(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "address_line_two")

    @address_line_two.setter
    def address_line_two(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "address_line_two", value)

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "title")

    @title.setter
    def title(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "title", value)


@pulumi.input_type
class CpsDvEnrollmentCsrArgs:
    def __init__(__self__, *,
                 city: pulumi.Input[str],
                 country_code: pulumi.Input[str],
                 organization: pulumi.Input[str],
                 organizational_unit: pulumi.Input[str],
                 state: pulumi.Input[str]):
        pulumi.set(__self__, "city", city)
        pulumi.set(__self__, "country_code", country_code)
        pulumi.set(__self__, "organization", organization)
        pulumi.set(__self__, "organizational_unit", organizational_unit)
        pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter
    def city(self) -> pulumi.Input[str]:
        return pulumi.get(self, "city")

    @city.setter
    def city(self, value: pulumi.Input[str]):
        pulumi.set(self, "city", value)

    @property
    @pulumi.getter(name="countryCode")
    def country_code(self) -> pulumi.Input[str]:
        return pulumi.get(self, "country_code")

    @country_code.setter
    def country_code(self, value: pulumi.Input[str]):
        pulumi.set(self, "country_code", value)

    @property
    @pulumi.getter
    def organization(self) -> pulumi.Input[str]:
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[str]):
        pulumi.set(self, "organization", value)

    @property
    @pulumi.getter(name="organizationalUnit")
    def organizational_unit(self) -> pulumi.Input[str]:
        return pulumi.get(self, "organizational_unit")

    @organizational_unit.setter
    def organizational_unit(self, value: pulumi.Input[str]):
        pulumi.set(self, "organizational_unit", value)

    @property
    @pulumi.getter
    def state(self) -> pulumi.Input[str]:
        return pulumi.get(self, "state")

    @state.setter
    def state(self, value: pulumi.Input[str]):
        pulumi.set(self, "state", value)


@pulumi.input_type
class CpsDvEnrollmentDnsChallengeArgs:
    def __init__(__self__, *,
                 domain: Optional[pulumi.Input[str]] = None,
                 full_path: Optional[pulumi.Input[str]] = None,
                 response_body: Optional[pulumi.Input[str]] = None):
        if domain is not None:
            pulumi.set(__self__, "domain", domain)
        if full_path is not None:
            pulumi.set(__self__, "full_path", full_path)
        if response_body is not None:
            pulumi.set(__self__, "response_body", response_body)

    @property
    @pulumi.getter
    def domain(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "domain")

    @domain.setter
    def domain(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "domain", value)

    @property
    @pulumi.getter(name="fullPath")
    def full_path(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "full_path")

    @full_path.setter
    def full_path(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "full_path", value)

    @property
    @pulumi.getter(name="responseBody")
    def response_body(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "response_body")

    @response_body.setter
    def response_body(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "response_body", value)


@pulumi.input_type
class CpsDvEnrollmentHttpChallengeArgs:
    def __init__(__self__, *,
                 domain: Optional[pulumi.Input[str]] = None,
                 full_path: Optional[pulumi.Input[str]] = None,
                 response_body: Optional[pulumi.Input[str]] = None):
        if domain is not None:
            pulumi.set(__self__, "domain", domain)
        if full_path is not None:
            pulumi.set(__self__, "full_path", full_path)
        if response_body is not None:
            pulumi.set(__self__, "response_body", response_body)

    @property
    @pulumi.getter
    def domain(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "domain")

    @domain.setter
    def domain(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "domain", value)

    @property
    @pulumi.getter(name="fullPath")
    def full_path(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "full_path")

    @full_path.setter
    def full_path(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "full_path", value)

    @property
    @pulumi.getter(name="responseBody")
    def response_body(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "response_body")

    @response_body.setter
    def response_body(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "response_body", value)


@pulumi.input_type
class CpsDvEnrollmentNetworkConfigurationArgs:
    def __init__(__self__, *,
                 geography: pulumi.Input[str],
                 client_mutual_authentication: Optional[pulumi.Input['CpsDvEnrollmentNetworkConfigurationClientMutualAuthenticationArgs']] = None,
                 clone_dns_names: Optional[pulumi.Input[bool]] = None,
                 disallowed_tls_versions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 must_have_ciphers: Optional[pulumi.Input[str]] = None,
                 ocsp_stapling: Optional[pulumi.Input[str]] = None,
                 preferred_ciphers: Optional[pulumi.Input[str]] = None,
                 quic_enabled: Optional[pulumi.Input[bool]] = None):
        pulumi.set(__self__, "geography", geography)
        if client_mutual_authentication is not None:
            pulumi.set(__self__, "client_mutual_authentication", client_mutual_authentication)
        if clone_dns_names is not None:
            pulumi.set(__self__, "clone_dns_names", clone_dns_names)
        if disallowed_tls_versions is not None:
            pulumi.set(__self__, "disallowed_tls_versions", disallowed_tls_versions)
        if must_have_ciphers is not None:
            pulumi.set(__self__, "must_have_ciphers", must_have_ciphers)
        if ocsp_stapling is not None:
            pulumi.set(__self__, "ocsp_stapling", ocsp_stapling)
        if preferred_ciphers is not None:
            pulumi.set(__self__, "preferred_ciphers", preferred_ciphers)
        if quic_enabled is not None:
            pulumi.set(__self__, "quic_enabled", quic_enabled)

    @property
    @pulumi.getter
    def geography(self) -> pulumi.Input[str]:
        return pulumi.get(self, "geography")

    @geography.setter
    def geography(self, value: pulumi.Input[str]):
        pulumi.set(self, "geography", value)

    @property
    @pulumi.getter(name="clientMutualAuthentication")
    def client_mutual_authentication(self) -> Optional[pulumi.Input['CpsDvEnrollmentNetworkConfigurationClientMutualAuthenticationArgs']]:
        return pulumi.get(self, "client_mutual_authentication")

    @client_mutual_authentication.setter
    def client_mutual_authentication(self, value: Optional[pulumi.Input['CpsDvEnrollmentNetworkConfigurationClientMutualAuthenticationArgs']]):
        pulumi.set(self, "client_mutual_authentication", value)

    @property
    @pulumi.getter(name="cloneDnsNames")
    def clone_dns_names(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "clone_dns_names")

    @clone_dns_names.setter
    def clone_dns_names(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "clone_dns_names", value)

    @property
    @pulumi.getter(name="disallowedTlsVersions")
    def disallowed_tls_versions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "disallowed_tls_versions")

    @disallowed_tls_versions.setter
    def disallowed_tls_versions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "disallowed_tls_versions", value)

    @property
    @pulumi.getter(name="mustHaveCiphers")
    def must_have_ciphers(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "must_have_ciphers")

    @must_have_ciphers.setter
    def must_have_ciphers(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "must_have_ciphers", value)

    @property
    @pulumi.getter(name="ocspStapling")
    def ocsp_stapling(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "ocsp_stapling")

    @ocsp_stapling.setter
    def ocsp_stapling(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "ocsp_stapling", value)

    @property
    @pulumi.getter(name="preferredCiphers")
    def preferred_ciphers(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "preferred_ciphers")

    @preferred_ciphers.setter
    def preferred_ciphers(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "preferred_ciphers", value)

    @property
    @pulumi.getter(name="quicEnabled")
    def quic_enabled(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "quic_enabled")

    @quic_enabled.setter
    def quic_enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "quic_enabled", value)


@pulumi.input_type
class CpsDvEnrollmentNetworkConfigurationClientMutualAuthenticationArgs:
    def __init__(__self__, *,
                 ocsp_enabled: Optional[pulumi.Input[bool]] = None,
                 send_ca_list_to_client: Optional[pulumi.Input[bool]] = None,
                 set_id: Optional[pulumi.Input[str]] = None):
        if ocsp_enabled is not None:
            pulumi.set(__self__, "ocsp_enabled", ocsp_enabled)
        if send_ca_list_to_client is not None:
            pulumi.set(__self__, "send_ca_list_to_client", send_ca_list_to_client)
        if set_id is not None:
            pulumi.set(__self__, "set_id", set_id)

    @property
    @pulumi.getter(name="ocspEnabled")
    def ocsp_enabled(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "ocsp_enabled")

    @ocsp_enabled.setter
    def ocsp_enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "ocsp_enabled", value)

    @property
    @pulumi.getter(name="sendCaListToClient")
    def send_ca_list_to_client(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "send_ca_list_to_client")

    @send_ca_list_to_client.setter
    def send_ca_list_to_client(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "send_ca_list_to_client", value)

    @property
    @pulumi.getter(name="setId")
    def set_id(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "set_id")

    @set_id.setter
    def set_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "set_id", value)


@pulumi.input_type
class CpsDvEnrollmentOrganizationArgs:
    def __init__(__self__, *,
                 address_line_one: pulumi.Input[str],
                 city: pulumi.Input[str],
                 country_code: pulumi.Input[str],
                 name: pulumi.Input[str],
                 phone: pulumi.Input[str],
                 postal_code: pulumi.Input[str],
                 region: pulumi.Input[str],
                 address_line_two: Optional[pulumi.Input[str]] = None):
        pulumi.set(__self__, "address_line_one", address_line_one)
        pulumi.set(__self__, "city", city)
        pulumi.set(__self__, "country_code", country_code)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "phone", phone)
        pulumi.set(__self__, "postal_code", postal_code)
        pulumi.set(__self__, "region", region)
        if address_line_two is not None:
            pulumi.set(__self__, "address_line_two", address_line_two)

    @property
    @pulumi.getter(name="addressLineOne")
    def address_line_one(self) -> pulumi.Input[str]:
        return pulumi.get(self, "address_line_one")

    @address_line_one.setter
    def address_line_one(self, value: pulumi.Input[str]):
        pulumi.set(self, "address_line_one", value)

    @property
    @pulumi.getter
    def city(self) -> pulumi.Input[str]:
        return pulumi.get(self, "city")

    @city.setter
    def city(self, value: pulumi.Input[str]):
        pulumi.set(self, "city", value)

    @property
    @pulumi.getter(name="countryCode")
    def country_code(self) -> pulumi.Input[str]:
        return pulumi.get(self, "country_code")

    @country_code.setter
    def country_code(self, value: pulumi.Input[str]):
        pulumi.set(self, "country_code", value)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def phone(self) -> pulumi.Input[str]:
        return pulumi.get(self, "phone")

    @phone.setter
    def phone(self, value: pulumi.Input[str]):
        pulumi.set(self, "phone", value)

    @property
    @pulumi.getter(name="postalCode")
    def postal_code(self) -> pulumi.Input[str]:
        return pulumi.get(self, "postal_code")

    @postal_code.setter
    def postal_code(self, value: pulumi.Input[str]):
        pulumi.set(self, "postal_code", value)

    @property
    @pulumi.getter
    def region(self) -> pulumi.Input[str]:
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: pulumi.Input[str]):
        pulumi.set(self, "region", value)

    @property
    @pulumi.getter(name="addressLineTwo")
    def address_line_two(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "address_line_two")

    @address_line_two.setter
    def address_line_two(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "address_line_two", value)


@pulumi.input_type
class CpsDvEnrollmentTechContactArgs:
    def __init__(__self__, *,
                 address_line_one: pulumi.Input[str],
                 city: pulumi.Input[str],
                 country_code: pulumi.Input[str],
                 email: pulumi.Input[str],
                 first_name: pulumi.Input[str],
                 last_name: pulumi.Input[str],
                 organization: pulumi.Input[str],
                 phone: pulumi.Input[str],
                 postal_code: pulumi.Input[str],
                 region: pulumi.Input[str],
                 address_line_two: Optional[pulumi.Input[str]] = None,
                 title: Optional[pulumi.Input[str]] = None):
        pulumi.set(__self__, "address_line_one", address_line_one)
        pulumi.set(__self__, "city", city)
        pulumi.set(__self__, "country_code", country_code)
        pulumi.set(__self__, "email", email)
        pulumi.set(__self__, "first_name", first_name)
        pulumi.set(__self__, "last_name", last_name)
        pulumi.set(__self__, "organization", organization)
        pulumi.set(__self__, "phone", phone)
        pulumi.set(__self__, "postal_code", postal_code)
        pulumi.set(__self__, "region", region)
        if address_line_two is not None:
            pulumi.set(__self__, "address_line_two", address_line_two)
        if title is not None:
            pulumi.set(__self__, "title", title)

    @property
    @pulumi.getter(name="addressLineOne")
    def address_line_one(self) -> pulumi.Input[str]:
        return pulumi.get(self, "address_line_one")

    @address_line_one.setter
    def address_line_one(self, value: pulumi.Input[str]):
        pulumi.set(self, "address_line_one", value)

    @property
    @pulumi.getter
    def city(self) -> pulumi.Input[str]:
        return pulumi.get(self, "city")

    @city.setter
    def city(self, value: pulumi.Input[str]):
        pulumi.set(self, "city", value)

    @property
    @pulumi.getter(name="countryCode")
    def country_code(self) -> pulumi.Input[str]:
        return pulumi.get(self, "country_code")

    @country_code.setter
    def country_code(self, value: pulumi.Input[str]):
        pulumi.set(self, "country_code", value)

    @property
    @pulumi.getter
    def email(self) -> pulumi.Input[str]:
        return pulumi.get(self, "email")

    @email.setter
    def email(self, value: pulumi.Input[str]):
        pulumi.set(self, "email", value)

    @property
    @pulumi.getter(name="firstName")
    def first_name(self) -> pulumi.Input[str]:
        return pulumi.get(self, "first_name")

    @first_name.setter
    def first_name(self, value: pulumi.Input[str]):
        pulumi.set(self, "first_name", value)

    @property
    @pulumi.getter(name="lastName")
    def last_name(self) -> pulumi.Input[str]:
        return pulumi.get(self, "last_name")

    @last_name.setter
    def last_name(self, value: pulumi.Input[str]):
        pulumi.set(self, "last_name", value)

    @property
    @pulumi.getter
    def organization(self) -> pulumi.Input[str]:
        return pulumi.get(self, "organization")

    @organization.setter
    def organization(self, value: pulumi.Input[str]):
        pulumi.set(self, "organization", value)

    @property
    @pulumi.getter
    def phone(self) -> pulumi.Input[str]:
        return pulumi.get(self, "phone")

    @phone.setter
    def phone(self, value: pulumi.Input[str]):
        pulumi.set(self, "phone", value)

    @property
    @pulumi.getter(name="postalCode")
    def postal_code(self) -> pulumi.Input[str]:
        return pulumi.get(self, "postal_code")

    @postal_code.setter
    def postal_code(self, value: pulumi.Input[str]):
        pulumi.set(self, "postal_code", value)

    @property
    @pulumi.getter
    def region(self) -> pulumi.Input[str]:
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: pulumi.Input[str]):
        pulumi.set(self, "region", value)

    @property
    @pulumi.getter(name="addressLineTwo")
    def address_line_two(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "address_line_two")

    @address_line_two.setter
    def address_line_two(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "address_line_two", value)

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "title")

    @title.setter
    def title(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "title", value)


@pulumi.input_type
class DnsZoneTsigKeyArgs:
    def __init__(__self__, *,
                 algorithm: pulumi.Input[str],
                 name: pulumi.Input[str],
                 secret: pulumi.Input[str]):
        pulumi.set(__self__, "algorithm", algorithm)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "secret", secret)

    @property
    @pulumi.getter
    def algorithm(self) -> pulumi.Input[str]:
        return pulumi.get(self, "algorithm")

    @algorithm.setter
    def algorithm(self, value: pulumi.Input[str]):
        pulumi.set(self, "algorithm", value)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def secret(self) -> pulumi.Input[str]:
        return pulumi.get(self, "secret")

    @secret.setter
    def secret(self, value: pulumi.Input[str]):
        pulumi.set(self, "secret", value)


@pulumi.input_type
class GtmAsmapAssignmentArgs:
    def __init__(__self__, *,
                 as_numbers: pulumi.Input[Sequence[pulumi.Input[int]]],
                 datacenter_id: pulumi.Input[int],
                 nickname: pulumi.Input[str]):
        pulumi.set(__self__, "as_numbers", as_numbers)
        pulumi.set(__self__, "datacenter_id", datacenter_id)
        pulumi.set(__self__, "nickname", nickname)

    @property
    @pulumi.getter(name="asNumbers")
    def as_numbers(self) -> pulumi.Input[Sequence[pulumi.Input[int]]]:
        return pulumi.get(self, "as_numbers")

    @as_numbers.setter
    def as_numbers(self, value: pulumi.Input[Sequence[pulumi.Input[int]]]):
        pulumi.set(self, "as_numbers", value)

    @property
    @pulumi.getter(name="datacenterId")
    def datacenter_id(self) -> pulumi.Input[int]:
        return pulumi.get(self, "datacenter_id")

    @datacenter_id.setter
    def datacenter_id(self, value: pulumi.Input[int]):
        pulumi.set(self, "datacenter_id", value)

    @property
    @pulumi.getter
    def nickname(self) -> pulumi.Input[str]:
        return pulumi.get(self, "nickname")

    @nickname.setter
    def nickname(self, value: pulumi.Input[str]):
        pulumi.set(self, "nickname", value)


@pulumi.input_type
class GtmAsmapDefaultDatacenterArgs:
    def __init__(__self__, *,
                 datacenter_id: pulumi.Input[int],
                 nickname: Optional[pulumi.Input[str]] = None):
        pulumi.set(__self__, "datacenter_id", datacenter_id)
        if nickname is not None:
            pulumi.set(__self__, "nickname", nickname)

    @property
    @pulumi.getter(name="datacenterId")
    def datacenter_id(self) -> pulumi.Input[int]:
        return pulumi.get(self, "datacenter_id")

    @datacenter_id.setter
    def datacenter_id(self, value: pulumi.Input[int]):
        pulumi.set(self, "datacenter_id", value)

    @property
    @pulumi.getter
    def nickname(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "nickname")

    @nickname.setter
    def nickname(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "nickname", value)


@pulumi.input_type
class GtmCidrmapAssignmentArgs:
    def __init__(__self__, *,
                 datacenter_id: pulumi.Input[int],
                 nickname: pulumi.Input[str],
                 blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        pulumi.set(__self__, "datacenter_id", datacenter_id)
        pulumi.set(__self__, "nickname", nickname)
        if blocks is not None:
            pulumi.set(__self__, "blocks", blocks)

    @property
    @pulumi.getter(name="datacenterId")
    def datacenter_id(self) -> pulumi.Input[int]:
        return pulumi.get(self, "datacenter_id")

    @datacenter_id.setter
    def datacenter_id(self, value: pulumi.Input[int]):
        pulumi.set(self, "datacenter_id", value)

    @property
    @pulumi.getter
    def nickname(self) -> pulumi.Input[str]:
        return pulumi.get(self, "nickname")

    @nickname.setter
    def nickname(self, value: pulumi.Input[str]):
        pulumi.set(self, "nickname", value)

    @property
    @pulumi.getter
    def blocks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "blocks")

    @blocks.setter
    def blocks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "blocks", value)


@pulumi.input_type
class GtmCidrmapDefaultDatacenterArgs:
    def __init__(__self__, *,
                 datacenter_id: pulumi.Input[int],
                 nickname: Optional[pulumi.Input[str]] = None):
        pulumi.set(__self__, "datacenter_id", datacenter_id)
        if nickname is not None:
            pulumi.set(__self__, "nickname", nickname)

    @property
    @pulumi.getter(name="datacenterId")
    def datacenter_id(self) -> pulumi.Input[int]:
        return pulumi.get(self, "datacenter_id")

    @datacenter_id.setter
    def datacenter_id(self, value: pulumi.Input[int]):
        pulumi.set(self, "datacenter_id", value)

    @property
    @pulumi.getter
    def nickname(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "nickname")

    @nickname.setter
    def nickname(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "nickname", value)


@pulumi.input_type
class GtmDatacenterDefaultLoadObjectArgs:
    def __init__(__self__, *,
                 load_object: Optional[pulumi.Input[str]] = None,
                 load_object_port: Optional[pulumi.Input[int]] = None,
                 load_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        if load_object is not None:
            pulumi.set(__self__, "load_object", load_object)
        if load_object_port is not None:
            pulumi.set(__self__, "load_object_port", load_object_port)
        if load_servers is not None:
            pulumi.set(__self__, "load_servers", load_servers)

    @property
    @pulumi.getter(name="loadObject")
    def load_object(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "load_object")

    @load_object.setter
    def load_object(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "load_object", value)

    @property
    @pulumi.getter(name="loadObjectPort")
    def load_object_port(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "load_object_port")

    @load_object_port.setter
    def load_object_port(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "load_object_port", value)

    @property
    @pulumi.getter(name="loadServers")
    def load_servers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "load_servers")

    @load_servers.setter
    def load_servers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "load_servers", value)


@pulumi.input_type
class GtmGeomapAssignmentArgs:
    def __init__(__self__, *,
                 datacenter_id: pulumi.Input[int],
                 nickname: pulumi.Input[str],
                 countries: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        pulumi.set(__self__, "datacenter_id", datacenter_id)
        pulumi.set(__self__, "nickname", nickname)
        if countries is not None:
            pulumi.set(__self__, "countries", countries)

    @property
    @pulumi.getter(name="datacenterId")
    def datacenter_id(self) -> pulumi.Input[int]:
        return pulumi.get(self, "datacenter_id")

    @datacenter_id.setter
    def datacenter_id(self, value: pulumi.Input[int]):
        pulumi.set(self, "datacenter_id", value)

    @property
    @pulumi.getter
    def nickname(self) -> pulumi.Input[str]:
        return pulumi.get(self, "nickname")

    @nickname.setter
    def nickname(self, value: pulumi.Input[str]):
        pulumi.set(self, "nickname", value)

    @property
    @pulumi.getter
    def countries(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "countries")

    @countries.setter
    def countries(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "countries", value)


@pulumi.input_type
class GtmGeomapDefaultDatacenterArgs:
    def __init__(__self__, *,
                 datacenter_id: pulumi.Input[int],
                 nickname: Optional[pulumi.Input[str]] = None):
        pulumi.set(__self__, "datacenter_id", datacenter_id)
        if nickname is not None:
            pulumi.set(__self__, "nickname", nickname)

    @property
    @pulumi.getter(name="datacenterId")
    def datacenter_id(self) -> pulumi.Input[int]:
        return pulumi.get(self, "datacenter_id")

    @datacenter_id.setter
    def datacenter_id(self, value: pulumi.Input[int]):
        pulumi.set(self, "datacenter_id", value)

    @property
    @pulumi.getter
    def nickname(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "nickname")

    @nickname.setter
    def nickname(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "nickname", value)


@pulumi.input_type
class GtmPropertyLivenessTestArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[str],
                 test_interval: pulumi.Input[int],
                 test_object: pulumi.Input[str],
                 test_object_protocol: pulumi.Input[str],
                 test_timeout: pulumi.Input[float],
                 answers_required: Optional[pulumi.Input[bool]] = None,
                 disable_nonstandard_port_warning: Optional[pulumi.Input[bool]] = None,
                 disabled: Optional[pulumi.Input[bool]] = None,
                 error_penalty: Optional[pulumi.Input[float]] = None,
                 http_error3xx: Optional[pulumi.Input[bool]] = None,
                 http_error4xx: Optional[pulumi.Input[bool]] = None,
                 http_error5xx: Optional[pulumi.Input[bool]] = None,
                 http_headers: Optional[pulumi.Input[Sequence[pulumi.Input['GtmPropertyLivenessTestHttpHeaderArgs']]]] = None,
                 peer_certificate_verification: Optional[pulumi.Input[bool]] = None,
                 recursion_requested: Optional[pulumi.Input[bool]] = None,
                 request_string: Optional[pulumi.Input[str]] = None,
                 resource_type: Optional[pulumi.Input[str]] = None,
                 response_string: Optional[pulumi.Input[str]] = None,
                 ssl_client_certificate: Optional[pulumi.Input[str]] = None,
                 ssl_client_private_key: Optional[pulumi.Input[str]] = None,
                 test_object_password: Optional[pulumi.Input[str]] = None,
                 test_object_port: Optional[pulumi.Input[int]] = None,
                 test_object_username: Optional[pulumi.Input[str]] = None,
                 timeout_penalty: Optional[pulumi.Input[float]] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "test_interval", test_interval)
        pulumi.set(__self__, "test_object", test_object)
        pulumi.set(__self__, "test_object_protocol", test_object_protocol)
        pulumi.set(__self__, "test_timeout", test_timeout)
        if answers_required is not None:
            pulumi.set(__self__, "answers_required", answers_required)
        if disable_nonstandard_port_warning is not None:
            pulumi.set(__self__, "disable_nonstandard_port_warning", disable_nonstandard_port_warning)
        if disabled is not None:
            pulumi.set(__self__, "disabled", disabled)
        if error_penalty is not None:
            pulumi.set(__self__, "error_penalty", error_penalty)
        if http_error3xx is not None:
            pulumi.set(__self__, "http_error3xx", http_error3xx)
        if http_error4xx is not None:
            pulumi.set(__self__, "http_error4xx", http_error4xx)
        if http_error5xx is not None:
            pulumi.set(__self__, "http_error5xx", http_error5xx)
        if http_headers is not None:
            pulumi.set(__self__, "http_headers", http_headers)
        if peer_certificate_verification is not None:
            pulumi.set(__self__, "peer_certificate_verification", peer_certificate_verification)
        if recursion_requested is not None:
            pulumi.set(__self__, "recursion_requested", recursion_requested)
        if request_string is not None:
            pulumi.set(__self__, "request_string", request_string)
        if resource_type is not None:
            pulumi.set(__self__, "resource_type", resource_type)
        if response_string is not None:
            pulumi.set(__self__, "response_string", response_string)
        if ssl_client_certificate is not None:
            pulumi.set(__self__, "ssl_client_certificate", ssl_client_certificate)
        if ssl_client_private_key is not None:
            pulumi.set(__self__, "ssl_client_private_key", ssl_client_private_key)
        if test_object_password is not None:
            pulumi.set(__self__, "test_object_password", test_object_password)
        if test_object_port is not None:
            pulumi.set(__self__, "test_object_port", test_object_port)
        if test_object_username is not None:
            pulumi.set(__self__, "test_object_username", test_object_username)
        if timeout_penalty is not None:
            pulumi.set(__self__, "timeout_penalty", timeout_penalty)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="testInterval")
    def test_interval(self) -> pulumi.Input[int]:
        return pulumi.get(self, "test_interval")

    @test_interval.setter
    def test_interval(self, value: pulumi.Input[int]):
        pulumi.set(self, "test_interval", value)

    @property
    @pulumi.getter(name="testObject")
    def test_object(self) -> pulumi.Input[str]:
        return pulumi.get(self, "test_object")

    @test_object.setter
    def test_object(self, value: pulumi.Input[str]):
        pulumi.set(self, "test_object", value)

    @property
    @pulumi.getter(name="testObjectProtocol")
    def test_object_protocol(self) -> pulumi.Input[str]:
        return pulumi.get(self, "test_object_protocol")

    @test_object_protocol.setter
    def test_object_protocol(self, value: pulumi.Input[str]):
        pulumi.set(self, "test_object_protocol", value)

    @property
    @pulumi.getter(name="testTimeout")
    def test_timeout(self) -> pulumi.Input[float]:
        return pulumi.get(self, "test_timeout")

    @test_timeout.setter
    def test_timeout(self, value: pulumi.Input[float]):
        pulumi.set(self, "test_timeout", value)

    @property
    @pulumi.getter(name="answersRequired")
    def answers_required(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "answers_required")

    @answers_required.setter
    def answers_required(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "answers_required", value)

    @property
    @pulumi.getter(name="disableNonstandardPortWarning")
    def disable_nonstandard_port_warning(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "disable_nonstandard_port_warning")

    @disable_nonstandard_port_warning.setter
    def disable_nonstandard_port_warning(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disable_nonstandard_port_warning", value)

    @property
    @pulumi.getter
    def disabled(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "disabled")

    @disabled.setter
    def disabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "disabled", value)

    @property
    @pulumi.getter(name="errorPenalty")
    def error_penalty(self) -> Optional[pulumi.Input[float]]:
        return pulumi.get(self, "error_penalty")

    @error_penalty.setter
    def error_penalty(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "error_penalty", value)

    @property
    @pulumi.getter(name="httpError3xx")
    def http_error3xx(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "http_error3xx")

    @http_error3xx.setter
    def http_error3xx(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "http_error3xx", value)

    @property
    @pulumi.getter(name="httpError4xx")
    def http_error4xx(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "http_error4xx")

    @http_error4xx.setter
    def http_error4xx(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "http_error4xx", value)

    @property
    @pulumi.getter(name="httpError5xx")
    def http_error5xx(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "http_error5xx")

    @http_error5xx.setter
    def http_error5xx(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "http_error5xx", value)

    @property
    @pulumi.getter(name="httpHeaders")
    def http_headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GtmPropertyLivenessTestHttpHeaderArgs']]]]:
        return pulumi.get(self, "http_headers")

    @http_headers.setter
    def http_headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GtmPropertyLivenessTestHttpHeaderArgs']]]]):
        pulumi.set(self, "http_headers", value)

    @property
    @pulumi.getter(name="peerCertificateVerification")
    def peer_certificate_verification(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "peer_certificate_verification")

    @peer_certificate_verification.setter
    def peer_certificate_verification(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "peer_certificate_verification", value)

    @property
    @pulumi.getter(name="recursionRequested")
    def recursion_requested(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "recursion_requested")

    @recursion_requested.setter
    def recursion_requested(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "recursion_requested", value)

    @property
    @pulumi.getter(name="requestString")
    def request_string(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "request_string")

    @request_string.setter
    def request_string(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "request_string", value)

    @property
    @pulumi.getter(name="resourceType")
    def resource_type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "resource_type")

    @resource_type.setter
    def resource_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "resource_type", value)

    @property
    @pulumi.getter(name="responseString")
    def response_string(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "response_string")

    @response_string.setter
    def response_string(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "response_string", value)

    @property
    @pulumi.getter(name="sslClientCertificate")
    def ssl_client_certificate(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "ssl_client_certificate")

    @ssl_client_certificate.setter
    def ssl_client_certificate(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "ssl_client_certificate", value)

    @property
    @pulumi.getter(name="sslClientPrivateKey")
    def ssl_client_private_key(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "ssl_client_private_key")

    @ssl_client_private_key.setter
    def ssl_client_private_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "ssl_client_private_key", value)

    @property
    @pulumi.getter(name="testObjectPassword")
    def test_object_password(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "test_object_password")

    @test_object_password.setter
    def test_object_password(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "test_object_password", value)

    @property
    @pulumi.getter(name="testObjectPort")
    def test_object_port(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "test_object_port")

    @test_object_port.setter
    def test_object_port(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "test_object_port", value)

    @property
    @pulumi.getter(name="testObjectUsername")
    def test_object_username(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "test_object_username")

    @test_object_username.setter
    def test_object_username(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "test_object_username", value)

    @property
    @pulumi.getter(name="timeoutPenalty")
    def timeout_penalty(self) -> Optional[pulumi.Input[float]]:
        return pulumi.get(self, "timeout_penalty")

    @timeout_penalty.setter
    def timeout_penalty(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "timeout_penalty", value)


@pulumi.input_type
class GtmPropertyLivenessTestHttpHeaderArgs:
    def __init__(__self__, *,
                 name: Optional[pulumi.Input[str]] = None,
                 value: Optional[pulumi.Input[str]] = None):
        if name is not None:
            pulumi.set(__self__, "name", name)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "value", value)


@pulumi.input_type
class GtmPropertyStaticRrSetArgs:
    def __init__(__self__, *,
                 rdatas: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 ttl: Optional[pulumi.Input[int]] = None,
                 type: Optional[pulumi.Input[str]] = None):
        if rdatas is not None:
            pulumi.set(__self__, "rdatas", rdatas)
        if ttl is not None:
            pulumi.set(__self__, "ttl", ttl)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def rdatas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "rdatas")

    @rdatas.setter
    def rdatas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "rdatas", value)

    @property
    @pulumi.getter
    def ttl(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "ttl")

    @ttl.setter
    def ttl(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "ttl", value)

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "type", value)


@pulumi.input_type
class GtmPropertyTrafficTargetArgs:
    def __init__(__self__, *,
                 datacenter_id: Optional[pulumi.Input[int]] = None,
                 enabled: Optional[pulumi.Input[bool]] = None,
                 handout_cname: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 weight: Optional[pulumi.Input[float]] = None):
        if datacenter_id is not None:
            pulumi.set(__self__, "datacenter_id", datacenter_id)
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if handout_cname is not None:
            pulumi.set(__self__, "handout_cname", handout_cname)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if servers is not None:
            pulumi.set(__self__, "servers", servers)
        if weight is not None:
            pulumi.set(__self__, "weight", weight)

    @property
    @pulumi.getter(name="datacenterId")
    def datacenter_id(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "datacenter_id")

    @datacenter_id.setter
    def datacenter_id(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "datacenter_id", value)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "enabled")

    @enabled.setter
    def enabled(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enabled", value)

    @property
    @pulumi.getter(name="handoutCname")
    def handout_cname(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "handout_cname")

    @handout_cname.setter
    def handout_cname(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "handout_cname", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def servers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "servers")

    @servers.setter
    def servers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "servers", value)

    @property
    @pulumi.getter
    def weight(self) -> Optional[pulumi.Input[float]]:
        return pulumi.get(self, "weight")

    @weight.setter
    def weight(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "weight", value)


@pulumi.input_type
class GtmResourceResourceInstanceArgs:
    def __init__(__self__, *,
                 datacenter_id: pulumi.Input[int],
                 load_object: Optional[pulumi.Input[str]] = None,
                 load_object_port: Optional[pulumi.Input[int]] = None,
                 load_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 use_default_load_object: Optional[pulumi.Input[bool]] = None):
        pulumi.set(__self__, "datacenter_id", datacenter_id)
        if load_object is not None:
            pulumi.set(__self__, "load_object", load_object)
        if load_object_port is not None:
            pulumi.set(__self__, "load_object_port", load_object_port)
        if load_servers is not None:
            pulumi.set(__self__, "load_servers", load_servers)
        if use_default_load_object is not None:
            pulumi.set(__self__, "use_default_load_object", use_default_load_object)

    @property
    @pulumi.getter(name="datacenterId")
    def datacenter_id(self) -> pulumi.Input[int]:
        return pulumi.get(self, "datacenter_id")

    @datacenter_id.setter
    def datacenter_id(self, value: pulumi.Input[int]):
        pulumi.set(self, "datacenter_id", value)

    @property
    @pulumi.getter(name="loadObject")
    def load_object(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "load_object")

    @load_object.setter
    def load_object(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "load_object", value)

    @property
    @pulumi.getter(name="loadObjectPort")
    def load_object_port(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "load_object_port")

    @load_object_port.setter
    def load_object_port(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "load_object_port", value)

    @property
    @pulumi.getter(name="loadServers")
    def load_servers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        return pulumi.get(self, "load_servers")

    @load_servers.setter
    def load_servers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "load_servers", value)

    @property
    @pulumi.getter(name="useDefaultLoadObject")
    def use_default_load_object(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "use_default_load_object")

    @use_default_load_object.setter
    def use_default_load_object(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "use_default_load_object", value)


@pulumi.input_type
class PropertyActivationRuleErrorArgs:
    def __init__(__self__, *,
                 behavior_name: Optional[pulumi.Input[str]] = None,
                 detail: Optional[pulumi.Input[str]] = None,
                 error_location: Optional[pulumi.Input[str]] = None,
                 instance: Optional[pulumi.Input[str]] = None,
                 status_code: Optional[pulumi.Input[int]] = None,
                 title: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None):
        if behavior_name is not None:
            pulumi.set(__self__, "behavior_name", behavior_name)
        if detail is not None:
            pulumi.set(__self__, "detail", detail)
        if error_location is not None:
            pulumi.set(__self__, "error_location", error_location)
        if instance is not None:
            pulumi.set(__self__, "instance", instance)
        if status_code is not None:
            pulumi.set(__self__, "status_code", status_code)
        if title is not None:
            pulumi.set(__self__, "title", title)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="behaviorName")
    def behavior_name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "behavior_name")

    @behavior_name.setter
    def behavior_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "behavior_name", value)

    @property
    @pulumi.getter
    def detail(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "detail")

    @detail.setter
    def detail(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "detail", value)

    @property
    @pulumi.getter(name="errorLocation")
    def error_location(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "error_location")

    @error_location.setter
    def error_location(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "error_location", value)

    @property
    @pulumi.getter
    def instance(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "instance")

    @instance.setter
    def instance(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "instance", value)

    @property
    @pulumi.getter(name="statusCode")
    def status_code(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "status_code")

    @status_code.setter
    def status_code(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "status_code", value)

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "title")

    @title.setter
    def title(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "title", value)

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "type", value)


@pulumi.input_type
class PropertyActivationRuleWarningArgs:
    def __init__(__self__, *,
                 behavior_name: Optional[pulumi.Input[str]] = None,
                 detail: Optional[pulumi.Input[str]] = None,
                 error_location: Optional[pulumi.Input[str]] = None,
                 instance: Optional[pulumi.Input[str]] = None,
                 status_code: Optional[pulumi.Input[int]] = None,
                 title: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None):
        if behavior_name is not None:
            pulumi.set(__self__, "behavior_name", behavior_name)
        if detail is not None:
            pulumi.set(__self__, "detail", detail)
        if error_location is not None:
            pulumi.set(__self__, "error_location", error_location)
        if instance is not None:
            pulumi.set(__self__, "instance", instance)
        if status_code is not None:
            pulumi.set(__self__, "status_code", status_code)
        if title is not None:
            pulumi.set(__self__, "title", title)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="behaviorName")
    def behavior_name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "behavior_name")

    @behavior_name.setter
    def behavior_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "behavior_name", value)

    @property
    @pulumi.getter
    def detail(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "detail")

    @detail.setter
    def detail(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "detail", value)

    @property
    @pulumi.getter(name="errorLocation")
    def error_location(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "error_location")

    @error_location.setter
    def error_location(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "error_location", value)

    @property
    @pulumi.getter
    def instance(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "instance")

    @instance.setter
    def instance(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "instance", value)

    @property
    @pulumi.getter(name="statusCode")
    def status_code(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "status_code")

    @status_code.setter
    def status_code(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "status_code", value)

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "title")

    @title.setter
    def title(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "title", value)

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "type", value)


@pulumi.input_type
class PropertyHostnameArgs:
    def __init__(__self__, *,
                 cert_provisioning_type: pulumi.Input[str],
                 cname_from: pulumi.Input[str],
                 cname_to: pulumi.Input[str],
                 cert_statuses: Optional[pulumi.Input[Sequence[pulumi.Input['PropertyHostnameCertStatusArgs']]]] = None,
                 cname_type: Optional[pulumi.Input[str]] = None,
                 edge_hostname_id: Optional[pulumi.Input[str]] = None):
        pulumi.set(__self__, "cert_provisioning_type", cert_provisioning_type)
        pulumi.set(__self__, "cname_from", cname_from)
        pulumi.set(__self__, "cname_to", cname_to)
        if cert_statuses is not None:
            pulumi.set(__self__, "cert_statuses", cert_statuses)
        if cname_type is not None:
            pulumi.set(__self__, "cname_type", cname_type)
        if edge_hostname_id is not None:
            pulumi.set(__self__, "edge_hostname_id", edge_hostname_id)

    @property
    @pulumi.getter(name="certProvisioningType")
    def cert_provisioning_type(self) -> pulumi.Input[str]:
        return pulumi.get(self, "cert_provisioning_type")

    @cert_provisioning_type.setter
    def cert_provisioning_type(self, value: pulumi.Input[str]):
        pulumi.set(self, "cert_provisioning_type", value)

    @property
    @pulumi.getter(name="cnameFrom")
    def cname_from(self) -> pulumi.Input[str]:
        return pulumi.get(self, "cname_from")

    @cname_from.setter
    def cname_from(self, value: pulumi.Input[str]):
        pulumi.set(self, "cname_from", value)

    @property
    @pulumi.getter(name="cnameTo")
    def cname_to(self) -> pulumi.Input[str]:
        return pulumi.get(self, "cname_to")

    @cname_to.setter
    def cname_to(self, value: pulumi.Input[str]):
        pulumi.set(self, "cname_to", value)

    @property
    @pulumi.getter(name="certStatuses")
    def cert_statuses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PropertyHostnameCertStatusArgs']]]]:
        return pulumi.get(self, "cert_statuses")

    @cert_statuses.setter
    def cert_statuses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PropertyHostnameCertStatusArgs']]]]):
        pulumi.set(self, "cert_statuses", value)

    @property
    @pulumi.getter(name="cnameType")
    def cname_type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "cname_type")

    @cname_type.setter
    def cname_type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "cname_type", value)

    @property
    @pulumi.getter(name="edgeHostnameId")
    def edge_hostname_id(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "edge_hostname_id")

    @edge_hostname_id.setter
    def edge_hostname_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "edge_hostname_id", value)


@pulumi.input_type
class PropertyHostnameCertStatusArgs:
    def __init__(__self__, *,
                 hostname: Optional[pulumi.Input[str]] = None,
                 production_status: Optional[pulumi.Input[str]] = None,
                 staging_status: Optional[pulumi.Input[str]] = None,
                 target: Optional[pulumi.Input[str]] = None):
        if hostname is not None:
            pulumi.set(__self__, "hostname", hostname)
        if production_status is not None:
            pulumi.set(__self__, "production_status", production_status)
        if staging_status is not None:
            pulumi.set(__self__, "staging_status", staging_status)
        if target is not None:
            pulumi.set(__self__, "target", target)

    @property
    @pulumi.getter
    def hostname(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "hostname")

    @hostname.setter
    def hostname(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "hostname", value)

    @property
    @pulumi.getter(name="productionStatus")
    def production_status(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "production_status")

    @production_status.setter
    def production_status(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "production_status", value)

    @property
    @pulumi.getter(name="stagingStatus")
    def staging_status(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "staging_status")

    @staging_status.setter
    def staging_status(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "staging_status", value)

    @property
    @pulumi.getter
    def target(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "target")

    @target.setter
    def target(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "target", value)


@pulumi.input_type
class PropertyOriginArgs:
    def __init__(__self__, *,
                 cache_key_hostname: Optional[pulumi.Input[str]] = None,
                 compress: Optional[pulumi.Input[bool]] = None,
                 enable_true_client_ip: Optional[pulumi.Input[bool]] = None,
                 forward_hostname: Optional[pulumi.Input[str]] = None,
                 hostname: Optional[pulumi.Input[str]] = None,
                 port: Optional[pulumi.Input[int]] = None):
        if cache_key_hostname is not None:
            pulumi.set(__self__, "cache_key_hostname", cache_key_hostname)
        if compress is not None:
            pulumi.set(__self__, "compress", compress)
        if enable_true_client_ip is not None:
            pulumi.set(__self__, "enable_true_client_ip", enable_true_client_ip)
        if forward_hostname is not None:
            pulumi.set(__self__, "forward_hostname", forward_hostname)
        if hostname is not None:
            pulumi.set(__self__, "hostname", hostname)
        if port is not None:
            pulumi.set(__self__, "port", port)

    @property
    @pulumi.getter(name="cacheKeyHostname")
    def cache_key_hostname(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "cache_key_hostname")

    @cache_key_hostname.setter
    def cache_key_hostname(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "cache_key_hostname", value)

    @property
    @pulumi.getter
    def compress(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "compress")

    @compress.setter
    def compress(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "compress", value)

    @property
    @pulumi.getter(name="enableTrueClientIp")
    def enable_true_client_ip(self) -> Optional[pulumi.Input[bool]]:
        return pulumi.get(self, "enable_true_client_ip")

    @enable_true_client_ip.setter
    def enable_true_client_ip(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "enable_true_client_ip", value)

    @property
    @pulumi.getter(name="forwardHostname")
    def forward_hostname(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "forward_hostname")

    @forward_hostname.setter
    def forward_hostname(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "forward_hostname", value)

    @property
    @pulumi.getter
    def hostname(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "hostname")

    @hostname.setter
    def hostname(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "hostname", value)

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "port")

    @port.setter
    def port(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "port", value)


@pulumi.input_type
class PropertyRuleErrorArgs:
    def __init__(__self__, *,
                 behavior_name: Optional[pulumi.Input[str]] = None,
                 detail: Optional[pulumi.Input[str]] = None,
                 error_location: Optional[pulumi.Input[str]] = None,
                 instance: Optional[pulumi.Input[str]] = None,
                 status_code: Optional[pulumi.Input[int]] = None,
                 title: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None):
        if behavior_name is not None:
            pulumi.set(__self__, "behavior_name", behavior_name)
        if detail is not None:
            pulumi.set(__self__, "detail", detail)
        if error_location is not None:
            pulumi.set(__self__, "error_location", error_location)
        if instance is not None:
            pulumi.set(__self__, "instance", instance)
        if status_code is not None:
            pulumi.set(__self__, "status_code", status_code)
        if title is not None:
            pulumi.set(__self__, "title", title)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="behaviorName")
    def behavior_name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "behavior_name")

    @behavior_name.setter
    def behavior_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "behavior_name", value)

    @property
    @pulumi.getter
    def detail(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "detail")

    @detail.setter
    def detail(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "detail", value)

    @property
    @pulumi.getter(name="errorLocation")
    def error_location(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "error_location")

    @error_location.setter
    def error_location(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "error_location", value)

    @property
    @pulumi.getter
    def instance(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "instance")

    @instance.setter
    def instance(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "instance", value)

    @property
    @pulumi.getter(name="statusCode")
    def status_code(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "status_code")

    @status_code.setter
    def status_code(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "status_code", value)

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "title")

    @title.setter
    def title(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "title", value)

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "type", value)


@pulumi.input_type
class PropertyRuleWarningArgs:
    def __init__(__self__, *,
                 behavior_name: Optional[pulumi.Input[str]] = None,
                 detail: Optional[pulumi.Input[str]] = None,
                 error_location: Optional[pulumi.Input[str]] = None,
                 instance: Optional[pulumi.Input[str]] = None,
                 status_code: Optional[pulumi.Input[int]] = None,
                 title: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None):
        if behavior_name is not None:
            pulumi.set(__self__, "behavior_name", behavior_name)
        if detail is not None:
            pulumi.set(__self__, "detail", detail)
        if error_location is not None:
            pulumi.set(__self__, "error_location", error_location)
        if instance is not None:
            pulumi.set(__self__, "instance", instance)
        if status_code is not None:
            pulumi.set(__self__, "status_code", status_code)
        if title is not None:
            pulumi.set(__self__, "title", title)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="behaviorName")
    def behavior_name(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "behavior_name")

    @behavior_name.setter
    def behavior_name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "behavior_name", value)

    @property
    @pulumi.getter
    def detail(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "detail")

    @detail.setter
    def detail(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "detail", value)

    @property
    @pulumi.getter(name="errorLocation")
    def error_location(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "error_location")

    @error_location.setter
    def error_location(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "error_location", value)

    @property
    @pulumi.getter
    def instance(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "instance")

    @instance.setter
    def instance(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "instance", value)

    @property
    @pulumi.getter(name="statusCode")
    def status_code(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "status_code")

    @status_code.setter
    def status_code(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "status_code", value)

    @property
    @pulumi.getter
    def title(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "title")

    @title.setter
    def title(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "title", value)

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "type", value)


@pulumi.input_type
class PropertyVariablesVariableArgs:
    def __init__(__self__, *,
                 variables: Optional[pulumi.Input[Sequence[pulumi.Input['PropertyVariablesVariableVariableArgs']]]] = None):
        if variables is not None:
            pulumi.set(__self__, "variables", variables)

    @property
    @pulumi.getter
    def variables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PropertyVariablesVariableVariableArgs']]]]:
        return pulumi.get(self, "variables")

    @variables.setter
    def variables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PropertyVariablesVariableVariableArgs']]]]):
        pulumi.set(self, "variables", value)


@pulumi.input_type
class PropertyVariablesVariableVariableArgs:
    def __init__(__self__, *,
                 hidden: pulumi.Input[bool],
                 name: pulumi.Input[str],
                 sensitive: pulumi.Input[bool],
                 description: Optional[pulumi.Input[str]] = None,
                 value: Optional[pulumi.Input[str]] = None):
        pulumi.set(__self__, "hidden", hidden)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "sensitive", sensitive)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def hidden(self) -> pulumi.Input[bool]:
        return pulumi.get(self, "hidden")

    @hidden.setter
    def hidden(self, value: pulumi.Input[bool]):
        pulumi.set(self, "hidden", value)

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[str]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def sensitive(self) -> pulumi.Input[bool]:
        return pulumi.get(self, "sensitive")

    @sensitive.setter
    def sensitive(self, value: pulumi.Input[bool]):
        pulumi.set(self, "sensitive", value)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", value)

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "value", value)


@pulumi.input_type
class ProviderAppsecArgs:
    def __init__(__self__, *,
                 access_token: Optional[pulumi.Input[str]] = None,
                 account_key: Optional[pulumi.Input[str]] = None,
                 client_secret: Optional[pulumi.Input[str]] = None,
                 client_token: Optional[pulumi.Input[str]] = None,
                 host: Optional[pulumi.Input[str]] = None,
                 max_body: Optional[pulumi.Input[int]] = None):
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if account_key is not None:
            pulumi.set(__self__, "account_key", account_key)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if client_token is not None:
            pulumi.set(__self__, "client_token", client_token)
        if host is not None:
            pulumi.set(__self__, "host", host)
        if max_body is not None:
            pulumi.set(__self__, "max_body", max_body)

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "access_token")

    @access_token.setter
    def access_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "access_token", value)

    @property
    @pulumi.getter(name="accountKey")
    def account_key(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "account_key")

    @account_key.setter
    def account_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "account_key", value)

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_secret")

    @client_secret.setter
    def client_secret(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_secret", value)

    @property
    @pulumi.getter(name="clientToken")
    def client_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_token")

    @client_token.setter
    def client_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_token", value)

    @property
    @pulumi.getter
    def host(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "host")

    @host.setter
    def host(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "host", value)

    @property
    @pulumi.getter(name="maxBody")
    def max_body(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "max_body")

    @max_body.setter
    def max_body(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_body", value)


@pulumi.input_type
class ProviderConfigArgs:
    def __init__(__self__, *,
                 access_token: Optional[pulumi.Input[str]] = None,
                 account_key: Optional[pulumi.Input[str]] = None,
                 client_secret: Optional[pulumi.Input[str]] = None,
                 client_token: Optional[pulumi.Input[str]] = None,
                 host: Optional[pulumi.Input[str]] = None,
                 max_body: Optional[pulumi.Input[int]] = None):
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if account_key is not None:
            pulumi.set(__self__, "account_key", account_key)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if client_token is not None:
            pulumi.set(__self__, "client_token", client_token)
        if host is not None:
            pulumi.set(__self__, "host", host)
        if max_body is not None:
            pulumi.set(__self__, "max_body", max_body)

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "access_token")

    @access_token.setter
    def access_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "access_token", value)

    @property
    @pulumi.getter(name="accountKey")
    def account_key(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "account_key")

    @account_key.setter
    def account_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "account_key", value)

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_secret")

    @client_secret.setter
    def client_secret(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_secret", value)

    @property
    @pulumi.getter(name="clientToken")
    def client_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_token")

    @client_token.setter
    def client_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_token", value)

    @property
    @pulumi.getter
    def host(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "host")

    @host.setter
    def host(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "host", value)

    @property
    @pulumi.getter(name="maxBody")
    def max_body(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "max_body")

    @max_body.setter
    def max_body(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_body", value)


@pulumi.input_type
class ProviderDnsArgs:
    def __init__(__self__, *,
                 access_token: Optional[pulumi.Input[str]] = None,
                 account_key: Optional[pulumi.Input[str]] = None,
                 client_secret: Optional[pulumi.Input[str]] = None,
                 client_token: Optional[pulumi.Input[str]] = None,
                 host: Optional[pulumi.Input[str]] = None,
                 max_body: Optional[pulumi.Input[int]] = None):
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if account_key is not None:
            pulumi.set(__self__, "account_key", account_key)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if client_token is not None:
            pulumi.set(__self__, "client_token", client_token)
        if host is not None:
            pulumi.set(__self__, "host", host)
        if max_body is not None:
            pulumi.set(__self__, "max_body", max_body)

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "access_token")

    @access_token.setter
    def access_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "access_token", value)

    @property
    @pulumi.getter(name="accountKey")
    def account_key(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "account_key")

    @account_key.setter
    def account_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "account_key", value)

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_secret")

    @client_secret.setter
    def client_secret(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_secret", value)

    @property
    @pulumi.getter(name="clientToken")
    def client_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_token")

    @client_token.setter
    def client_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_token", value)

    @property
    @pulumi.getter
    def host(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "host")

    @host.setter
    def host(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "host", value)

    @property
    @pulumi.getter(name="maxBody")
    def max_body(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "max_body")

    @max_body.setter
    def max_body(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_body", value)


@pulumi.input_type
class ProviderGtmArgs:
    def __init__(__self__, *,
                 access_token: Optional[pulumi.Input[str]] = None,
                 account_key: Optional[pulumi.Input[str]] = None,
                 client_secret: Optional[pulumi.Input[str]] = None,
                 client_token: Optional[pulumi.Input[str]] = None,
                 host: Optional[pulumi.Input[str]] = None,
                 max_body: Optional[pulumi.Input[int]] = None):
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if account_key is not None:
            pulumi.set(__self__, "account_key", account_key)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if client_token is not None:
            pulumi.set(__self__, "client_token", client_token)
        if host is not None:
            pulumi.set(__self__, "host", host)
        if max_body is not None:
            pulumi.set(__self__, "max_body", max_body)

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "access_token")

    @access_token.setter
    def access_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "access_token", value)

    @property
    @pulumi.getter(name="accountKey")
    def account_key(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "account_key")

    @account_key.setter
    def account_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "account_key", value)

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_secret")

    @client_secret.setter
    def client_secret(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_secret", value)

    @property
    @pulumi.getter(name="clientToken")
    def client_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_token")

    @client_token.setter
    def client_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_token", value)

    @property
    @pulumi.getter
    def host(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "host")

    @host.setter
    def host(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "host", value)

    @property
    @pulumi.getter(name="maxBody")
    def max_body(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "max_body")

    @max_body.setter
    def max_body(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_body", value)


@pulumi.input_type
class ProviderNetworkArgs:
    def __init__(__self__, *,
                 access_token: Optional[pulumi.Input[str]] = None,
                 account_key: Optional[pulumi.Input[str]] = None,
                 client_secret: Optional[pulumi.Input[str]] = None,
                 client_token: Optional[pulumi.Input[str]] = None,
                 host: Optional[pulumi.Input[str]] = None,
                 max_body: Optional[pulumi.Input[int]] = None):
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if account_key is not None:
            pulumi.set(__self__, "account_key", account_key)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if client_token is not None:
            pulumi.set(__self__, "client_token", client_token)
        if host is not None:
            pulumi.set(__self__, "host", host)
        if max_body is not None:
            pulumi.set(__self__, "max_body", max_body)

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "access_token")

    @access_token.setter
    def access_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "access_token", value)

    @property
    @pulumi.getter(name="accountKey")
    def account_key(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "account_key")

    @account_key.setter
    def account_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "account_key", value)

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_secret")

    @client_secret.setter
    def client_secret(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_secret", value)

    @property
    @pulumi.getter(name="clientToken")
    def client_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_token")

    @client_token.setter
    def client_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_token", value)

    @property
    @pulumi.getter
    def host(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "host")

    @host.setter
    def host(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "host", value)

    @property
    @pulumi.getter(name="maxBody")
    def max_body(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "max_body")

    @max_body.setter
    def max_body(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_body", value)


@pulumi.input_type
class ProviderPropertyArgs:
    def __init__(__self__, *,
                 access_token: Optional[pulumi.Input[str]] = None,
                 account_key: Optional[pulumi.Input[str]] = None,
                 client_secret: Optional[pulumi.Input[str]] = None,
                 client_token: Optional[pulumi.Input[str]] = None,
                 host: Optional[pulumi.Input[str]] = None,
                 max_body: Optional[pulumi.Input[int]] = None):
        if access_token is not None:
            pulumi.set(__self__, "access_token", access_token)
        if account_key is not None:
            pulumi.set(__self__, "account_key", account_key)
        if client_secret is not None:
            pulumi.set(__self__, "client_secret", client_secret)
        if client_token is not None:
            pulumi.set(__self__, "client_token", client_token)
        if host is not None:
            pulumi.set(__self__, "host", host)
        if max_body is not None:
            pulumi.set(__self__, "max_body", max_body)

    @property
    @pulumi.getter(name="accessToken")
    def access_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "access_token")

    @access_token.setter
    def access_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "access_token", value)

    @property
    @pulumi.getter(name="accountKey")
    def account_key(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "account_key")

    @account_key.setter
    def account_key(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "account_key", value)

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_secret")

    @client_secret.setter
    def client_secret(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_secret", value)

    @property
    @pulumi.getter(name="clientToken")
    def client_token(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "client_token")

    @client_token.setter
    def client_token(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "client_token", value)

    @property
    @pulumi.getter
    def host(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "host")

    @host.setter
    def host(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "host", value)

    @property
    @pulumi.getter(name="maxBody")
    def max_body(self) -> Optional[pulumi.Input[int]]:
        return pulumi.get(self, "max_body")

    @max_body.setter
    def max_body(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "max_body", value)


@pulumi.input_type
class GetPropertyRulesTemplateVariableArgs:
    def __init__(__self__, *,
                 name: str,
                 value: str,
                 type: Optional[str] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def name(self) -> str:
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter
    def value(self) -> str:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: str):
        pulumi.set(self, "value", value)

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        return pulumi.get(self, "type")

    @type.setter
    def type(self, value: Optional[str]):
        pulumi.set(self, "type", value)


