def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions]=None, address_space: Optional[pulumi.Input[pulumi.InputType['AddressSpaceArgs']]]=None, bgp_properties: Optional[pulumi.Input[pulumi.InputType['BgpSettingsArgs']]]=None, device_properties: Optional[pulumi.Input[pulumi.InputType['DevicePropertiesArgs']]]=None, id: Optional[pulumi.Input[str]]=None, ip_address: Optional[pulumi.Input[str]]=None, is_security_site: Optional[pulumi.Input[bool]]=None, location: Optional[pulumi.Input[str]]=None, resource_group_name: Optional[pulumi.Input[str]]=None, site_key: Optional[pulumi.Input[str]]=None, tags: Optional[pulumi.Input[Mapping[(str, pulumi.Input[str])]]]=None, virtual_wan: Optional[pulumi.Input[pulumi.InputType['SubResourceArgs']]]=None, vpn_site_links: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpnSiteLinkArgs']]]]]=None, vpn_site_name: Optional[pulumi.Input[str]]=None, __props__=None):
    if (opts is None):
        opts = pulumi.ResourceOptions()
    if (not isinstance(opts, pulumi.ResourceOptions)):
        raise TypeError('Expected resource options to be a ResourceOptions instance')
    if (opts.version is None):
        opts.version = _utilities.get_version()
    if (opts.id is None):
        if (__props__ is not None):
            raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
        __props__ = VpnSiteArgs.__new__(VpnSiteArgs)
        __props__.__dict__['address_space'] = address_space
        __props__.__dict__['bgp_properties'] = bgp_properties
        __props__.__dict__['device_properties'] = device_properties
        __props__.__dict__['id'] = id
        __props__.__dict__['ip_address'] = ip_address
        __props__.__dict__['is_security_site'] = is_security_site
        __props__.__dict__['location'] = location
        if ((resource_group_name is None) and (not opts.urn)):
            raise TypeError("Missing required property 'resource_group_name'")
        __props__.__dict__['resource_group_name'] = resource_group_name
        __props__.__dict__['site_key'] = site_key
        __props__.__dict__['tags'] = tags
        __props__.__dict__['virtual_wan'] = virtual_wan
        __props__.__dict__['vpn_site_links'] = vpn_site_links
        __props__.__dict__['vpn_site_name'] = vpn_site_name
        __props__.__dict__['etag'] = None
        __props__.__dict__['name'] = None
        __props__.__dict__['provisioning_state'] = None
        __props__.__dict__['type'] = None
    alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_='azure-nextgen:network/v20200301:VpnSite'), pulumi.Alias(type_='azure-native:network:VpnSite'), pulumi.Alias(type_='azure-nextgen:network:VpnSite'), pulumi.Alias(type_='azure-native:network/v20180401:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20180401:VpnSite'), pulumi.Alias(type_='azure-native:network/v20180601:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20180601:VpnSite'), pulumi.Alias(type_='azure-native:network/v20180701:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20180701:VpnSite'), pulumi.Alias(type_='azure-native:network/v20180801:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20180801:VpnSite'), pulumi.Alias(type_='azure-native:network/v20181001:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20181001:VpnSite'), pulumi.Alias(type_='azure-native:network/v20181101:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20181101:VpnSite'), pulumi.Alias(type_='azure-native:network/v20181201:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20181201:VpnSite'), pulumi.Alias(type_='azure-native:network/v20190201:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20190201:VpnSite'), pulumi.Alias(type_='azure-native:network/v20190401:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20190401:VpnSite'), pulumi.Alias(type_='azure-native:network/v20190601:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20190601:VpnSite'), pulumi.Alias(type_='azure-native:network/v20190701:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20190701:VpnSite'), pulumi.Alias(type_='azure-native:network/v20190801:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20190801:VpnSite'), pulumi.Alias(type_='azure-native:network/v20190901:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20190901:VpnSite'), pulumi.Alias(type_='azure-native:network/v20191101:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20191101:VpnSite'), pulumi.Alias(type_='azure-native:network/v20191201:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20191201:VpnSite'), pulumi.Alias(type_='azure-native:network/v20200401:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20200401:VpnSite'), pulumi.Alias(type_='azure-native:network/v20200501:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20200501:VpnSite'), pulumi.Alias(type_='azure-native:network/v20200601:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20200601:VpnSite'), pulumi.Alias(type_='azure-native:network/v20200701:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20200701:VpnSite'), pulumi.Alias(type_='azure-native:network/v20200801:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20200801:VpnSite'), pulumi.Alias(type_='azure-native:network/v20201101:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20201101:VpnSite')])
    opts = pulumi.ResourceOptions.merge(opts, alias_opts)
    super(VpnSite, __self__).__init__('azure-native:network/v20200301:VpnSite', resource_name, __props__, opts)
def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions]=None, address_space: Optional[pulumi.Input[pulumi.InputType['AddressSpaceArgs']]]=None, bgp_properties: Optional[pulumi.Input[pulumi.InputType['BgpSettingsArgs']]]=None, device_properties: Optional[pulumi.Input[pulumi.InputType['DevicePropertiesArgs']]]=None, id: Optional[pulumi.Input[str]]=None, ip_address: Optional[pulumi.Input[str]]=None, is_security_site: Optional[pulumi.Input[bool]]=None, location: Optional[pulumi.Input[str]]=None, resource_group_name: Optional[pulumi.Input[str]]=None, site_key: Optional[pulumi.Input[str]]=None, tags: Optional[pulumi.Input[Mapping[(str, pulumi.Input[str])]]]=None, virtual_wan: Optional[pulumi.Input[pulumi.InputType['SubResourceArgs']]]=None, vpn_site_links: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpnSiteLinkArgs']]]]]=None, vpn_site_name: Optional[pulumi.Input[str]]=None, __props__=None):
    if (opts is None):
        opts = pulumi.ResourceOptions()
    if (not isinstance(opts, pulumi.ResourceOptions)):
        raise TypeError('Expected resource options to be a ResourceOptions instance')
    if (opts.version is None):
        opts.version = _utilities.get_version()
    if (opts.id is None):
        if (__props__ is not None):
            raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
        __props__ = VpnSiteArgs.__new__(VpnSiteArgs)
        __props__.__dict__['address_space'] = address_space
        __props__.__dict__['bgp_properties'] = bgp_properties
        __props__.__dict__['device_properties'] = device_properties
        __props__.__dict__['id'] = id
        __props__.__dict__['ip_address'] = ip_address
        __props__.__dict__['is_security_site'] = is_security_site
        __props__.__dict__['location'] = location
        if ((resource_group_name is None) and (not opts.urn)):
            raise TypeError("Missing required property 'resource_group_name'")
        __props__.__dict__['resource_group_name'] = resource_group_name
        __props__.__dict__['site_key'] = site_key
        __props__.__dict__['tags'] = tags
        __props__.__dict__['virtual_wan'] = virtual_wan
        __props__.__dict__['vpn_site_links'] = vpn_site_links
        __props__.__dict__['vpn_site_name'] = vpn_site_name
        __props__.__dict__['etag'] = None
        __props__.__dict__['name'] = None
        __props__.__dict__['provisioning_state'] = None
        __props__.__dict__['type'] = None
    alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_='azure-nextgen:network/v20200301:VpnSite'), pulumi.Alias(type_='azure-native:network:VpnSite'), pulumi.Alias(type_='azure-nextgen:network:VpnSite'), pulumi.Alias(type_='azure-native:network/v20180401:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20180401:VpnSite'), pulumi.Alias(type_='azure-native:network/v20180601:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20180601:VpnSite'), pulumi.Alias(type_='azure-native:network/v20180701:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20180701:VpnSite'), pulumi.Alias(type_='azure-native:network/v20180801:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20180801:VpnSite'), pulumi.Alias(type_='azure-native:network/v20181001:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20181001:VpnSite'), pulumi.Alias(type_='azure-native:network/v20181101:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20181101:VpnSite'), pulumi.Alias(type_='azure-native:network/v20181201:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20181201:VpnSite'), pulumi.Alias(type_='azure-native:network/v20190201:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20190201:VpnSite'), pulumi.Alias(type_='azure-native:network/v20190401:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20190401:VpnSite'), pulumi.Alias(type_='azure-native:network/v20190601:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20190601:VpnSite'), pulumi.Alias(type_='azure-native:network/v20190701:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20190701:VpnSite'), pulumi.Alias(type_='azure-native:network/v20190801:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20190801:VpnSite'), pulumi.Alias(type_='azure-native:network/v20190901:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20190901:VpnSite'), pulumi.Alias(type_='azure-native:network/v20191101:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20191101:VpnSite'), pulumi.Alias(type_='azure-native:network/v20191201:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20191201:VpnSite'), pulumi.Alias(type_='azure-native:network/v20200401:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20200401:VpnSite'), pulumi.Alias(type_='azure-native:network/v20200501:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20200501:VpnSite'), pulumi.Alias(type_='azure-native:network/v20200601:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20200601:VpnSite'), pulumi.Alias(type_='azure-native:network/v20200701:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20200701:VpnSite'), pulumi.Alias(type_='azure-native:network/v20200801:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20200801:VpnSite'), pulumi.Alias(type_='azure-native:network/v20201101:VpnSite'), pulumi.Alias(type_='azure-nextgen:network/v20201101:VpnSite')])
    opts = pulumi.ResourceOptions.merge(opts, alias_opts)
    super(VpnSite, __self__).__init__('azure-native:network/v20200301:VpnSite', resource_name, __props__, opts)