// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

package devicesettingspolicy

import (
	"reflect"

	_jsii_ "github.com/aws/jsii-runtime-go/runtime"
)

func init() {
	_jsii_.RegisterClass(
		"@cdktf/provider-cloudflare.deviceSettingsPolicy.DeviceSettingsPolicy",
		reflect.TypeOf((*DeviceSettingsPolicy)(nil)).Elem(),
		[]_jsii_.Member{
			_jsii_.MemberProperty{JsiiProperty: "accountId", GoGetter: "AccountId"},
			_jsii_.MemberProperty{JsiiProperty: "accountIdInput", GoGetter: "AccountIdInput"},
			_jsii_.MemberMethod{JsiiMethod: "addMoveTarget", GoMethod: "AddMoveTarget"},
			_jsii_.MemberMethod{JsiiMethod: "addOverride", GoMethod: "AddOverride"},
			_jsii_.MemberProperty{JsiiProperty: "allowedToLeave", GoGetter: "AllowedToLeave"},
			_jsii_.MemberProperty{JsiiProperty: "allowedToLeaveInput", GoGetter: "AllowedToLeaveInput"},
			_jsii_.MemberProperty{JsiiProperty: "allowModeSwitch", GoGetter: "AllowModeSwitch"},
			_jsii_.MemberProperty{JsiiProperty: "allowModeSwitchInput", GoGetter: "AllowModeSwitchInput"},
			_jsii_.MemberProperty{JsiiProperty: "allowUpdates", GoGetter: "AllowUpdates"},
			_jsii_.MemberProperty{JsiiProperty: "allowUpdatesInput", GoGetter: "AllowUpdatesInput"},
			_jsii_.MemberProperty{JsiiProperty: "autoConnect", GoGetter: "AutoConnect"},
			_jsii_.MemberProperty{JsiiProperty: "autoConnectInput", GoGetter: "AutoConnectInput"},
			_jsii_.MemberProperty{JsiiProperty: "captivePortal", GoGetter: "CaptivePortal"},
			_jsii_.MemberProperty{JsiiProperty: "captivePortalInput", GoGetter: "CaptivePortalInput"},
			_jsii_.MemberProperty{JsiiProperty: "cdktfStack", GoGetter: "CdktfStack"},
			_jsii_.MemberProperty{JsiiProperty: "connection", GoGetter: "Connection"},
			_jsii_.MemberProperty{JsiiProperty: "constructNodeMetadata", GoGetter: "ConstructNodeMetadata"},
			_jsii_.MemberProperty{JsiiProperty: "count", GoGetter: "Count"},
			_jsii_.MemberProperty{JsiiProperty: "default", GoGetter: "Default"},
			_jsii_.MemberProperty{JsiiProperty: "defaultInput", GoGetter: "DefaultInput"},
			_jsii_.MemberProperty{JsiiProperty: "dependsOn", GoGetter: "DependsOn"},
			_jsii_.MemberProperty{JsiiProperty: "description", GoGetter: "Description"},
			_jsii_.MemberProperty{JsiiProperty: "descriptionInput", GoGetter: "DescriptionInput"},
			_jsii_.MemberProperty{JsiiProperty: "disableAutoFallback", GoGetter: "DisableAutoFallback"},
			_jsii_.MemberProperty{JsiiProperty: "disableAutoFallbackInput", GoGetter: "DisableAutoFallbackInput"},
			_jsii_.MemberProperty{JsiiProperty: "enabled", GoGetter: "Enabled"},
			_jsii_.MemberProperty{JsiiProperty: "enabledInput", GoGetter: "EnabledInput"},
			_jsii_.MemberProperty{JsiiProperty: "excludeOfficeIps", GoGetter: "ExcludeOfficeIps"},
			_jsii_.MemberProperty{JsiiProperty: "excludeOfficeIpsInput", GoGetter: "ExcludeOfficeIpsInput"},
			_jsii_.MemberProperty{JsiiProperty: "forEach", GoGetter: "ForEach"},
			_jsii_.MemberProperty{JsiiProperty: "fqn", GoGetter: "Fqn"},
			_jsii_.MemberProperty{JsiiProperty: "friendlyUniqueId", GoGetter: "FriendlyUniqueId"},
			_jsii_.MemberMethod{JsiiMethod: "getAnyMapAttribute", GoMethod: "GetAnyMapAttribute"},
			_jsii_.MemberMethod{JsiiMethod: "getBooleanAttribute", GoMethod: "GetBooleanAttribute"},
			_jsii_.MemberMethod{JsiiMethod: "getBooleanMapAttribute", GoMethod: "GetBooleanMapAttribute"},
			_jsii_.MemberMethod{JsiiMethod: "getListAttribute", GoMethod: "GetListAttribute"},
			_jsii_.MemberMethod{JsiiMethod: "getNumberAttribute", GoMethod: "GetNumberAttribute"},
			_jsii_.MemberMethod{JsiiMethod: "getNumberListAttribute", GoMethod: "GetNumberListAttribute"},
			_jsii_.MemberMethod{JsiiMethod: "getNumberMapAttribute", GoMethod: "GetNumberMapAttribute"},
			_jsii_.MemberMethod{JsiiMethod: "getStringAttribute", GoMethod: "GetStringAttribute"},
			_jsii_.MemberMethod{JsiiMethod: "getStringMapAttribute", GoMethod: "GetStringMapAttribute"},
			_jsii_.MemberMethod{JsiiMethod: "hasResourceMove", GoMethod: "HasResourceMove"},
			_jsii_.MemberProperty{JsiiProperty: "id", GoGetter: "Id"},
			_jsii_.MemberProperty{JsiiProperty: "idInput", GoGetter: "IdInput"},
			_jsii_.MemberMethod{JsiiMethod: "importFrom", GoMethod: "ImportFrom"},
			_jsii_.MemberMethod{JsiiMethod: "interpolationForAttribute", GoMethod: "InterpolationForAttribute"},
			_jsii_.MemberProperty{JsiiProperty: "lifecycle", GoGetter: "Lifecycle"},
			_jsii_.MemberProperty{JsiiProperty: "match", GoGetter: "Match"},
			_jsii_.MemberProperty{JsiiProperty: "matchInput", GoGetter: "MatchInput"},
			_jsii_.MemberMethod{JsiiMethod: "moveFromId", GoMethod: "MoveFromId"},
			_jsii_.MemberMethod{JsiiMethod: "moveTo", GoMethod: "MoveTo"},
			_jsii_.MemberMethod{JsiiMethod: "moveToId", GoMethod: "MoveToId"},
			_jsii_.MemberProperty{JsiiProperty: "name", GoGetter: "Name"},
			_jsii_.MemberProperty{JsiiProperty: "nameInput", GoGetter: "NameInput"},
			_jsii_.MemberProperty{JsiiProperty: "node", GoGetter: "Node"},
			_jsii_.MemberMethod{JsiiMethod: "overrideLogicalId", GoMethod: "OverrideLogicalId"},
			_jsii_.MemberProperty{JsiiProperty: "precedence", GoGetter: "Precedence"},
			_jsii_.MemberProperty{JsiiProperty: "precedenceInput", GoGetter: "PrecedenceInput"},
			_jsii_.MemberProperty{JsiiProperty: "provider", GoGetter: "Provider"},
			_jsii_.MemberProperty{JsiiProperty: "provisioners", GoGetter: "Provisioners"},
			_jsii_.MemberProperty{JsiiProperty: "rawOverrides", GoGetter: "RawOverrides"},
			_jsii_.MemberMethod{JsiiMethod: "resetAllowedToLeave", GoMethod: "ResetAllowedToLeave"},
			_jsii_.MemberMethod{JsiiMethod: "resetAllowModeSwitch", GoMethod: "ResetAllowModeSwitch"},
			_jsii_.MemberMethod{JsiiMethod: "resetAllowUpdates", GoMethod: "ResetAllowUpdates"},
			_jsii_.MemberMethod{JsiiMethod: "resetAutoConnect", GoMethod: "ResetAutoConnect"},
			_jsii_.MemberMethod{JsiiMethod: "resetCaptivePortal", GoMethod: "ResetCaptivePortal"},
			_jsii_.MemberMethod{JsiiMethod: "resetDefault", GoMethod: "ResetDefault"},
			_jsii_.MemberMethod{JsiiMethod: "resetDisableAutoFallback", GoMethod: "ResetDisableAutoFallback"},
			_jsii_.MemberMethod{JsiiMethod: "resetEnabled", GoMethod: "ResetEnabled"},
			_jsii_.MemberMethod{JsiiMethod: "resetExcludeOfficeIps", GoMethod: "ResetExcludeOfficeIps"},
			_jsii_.MemberMethod{JsiiMethod: "resetId", GoMethod: "ResetId"},
			_jsii_.MemberMethod{JsiiMethod: "resetMatch", GoMethod: "ResetMatch"},
			_jsii_.MemberMethod{JsiiMethod: "resetOverrideLogicalId", GoMethod: "ResetOverrideLogicalId"},
			_jsii_.MemberMethod{JsiiMethod: "resetPrecedence", GoMethod: "ResetPrecedence"},
			_jsii_.MemberMethod{JsiiMethod: "resetServiceModeV2Mode", GoMethod: "ResetServiceModeV2Mode"},
			_jsii_.MemberMethod{JsiiMethod: "resetServiceModeV2Port", GoMethod: "ResetServiceModeV2Port"},
			_jsii_.MemberMethod{JsiiMethod: "resetSupportUrl", GoMethod: "ResetSupportUrl"},
			_jsii_.MemberMethod{JsiiMethod: "resetSwitchLocked", GoMethod: "ResetSwitchLocked"},
			_jsii_.MemberMethod{JsiiMethod: "resetTunnelProtocol", GoMethod: "ResetTunnelProtocol"},
			_jsii_.MemberProperty{JsiiProperty: "serviceModeV2Mode", GoGetter: "ServiceModeV2Mode"},
			_jsii_.MemberProperty{JsiiProperty: "serviceModeV2ModeInput", GoGetter: "ServiceModeV2ModeInput"},
			_jsii_.MemberProperty{JsiiProperty: "serviceModeV2Port", GoGetter: "ServiceModeV2Port"},
			_jsii_.MemberProperty{JsiiProperty: "serviceModeV2PortInput", GoGetter: "ServiceModeV2PortInput"},
			_jsii_.MemberProperty{JsiiProperty: "supportUrl", GoGetter: "SupportUrl"},
			_jsii_.MemberProperty{JsiiProperty: "supportUrlInput", GoGetter: "SupportUrlInput"},
			_jsii_.MemberProperty{JsiiProperty: "switchLocked", GoGetter: "SwitchLocked"},
			_jsii_.MemberProperty{JsiiProperty: "switchLockedInput", GoGetter: "SwitchLockedInput"},
			_jsii_.MemberMethod{JsiiMethod: "synthesizeAttributes", GoMethod: "SynthesizeAttributes"},
			_jsii_.MemberMethod{JsiiMethod: "synthesizeHclAttributes", GoMethod: "SynthesizeHclAttributes"},
			_jsii_.MemberProperty{JsiiProperty: "terraformGeneratorMetadata", GoGetter: "TerraformGeneratorMetadata"},
			_jsii_.MemberProperty{JsiiProperty: "terraformMetaArguments", GoGetter: "TerraformMetaArguments"},
			_jsii_.MemberProperty{JsiiProperty: "terraformResourceType", GoGetter: "TerraformResourceType"},
			_jsii_.MemberMethod{JsiiMethod: "toHclTerraform", GoMethod: "ToHclTerraform"},
			_jsii_.MemberMethod{JsiiMethod: "toMetadata", GoMethod: "ToMetadata"},
			_jsii_.MemberMethod{JsiiMethod: "toString", GoMethod: "ToString"},
			_jsii_.MemberMethod{JsiiMethod: "toTerraform", GoMethod: "ToTerraform"},
			_jsii_.MemberProperty{JsiiProperty: "tunnelProtocol", GoGetter: "TunnelProtocol"},
			_jsii_.MemberProperty{JsiiProperty: "tunnelProtocolInput", GoGetter: "TunnelProtocolInput"},
		},
		func() interface{} {
			j := jsiiProxy_DeviceSettingsPolicy{}
			_jsii_.InitJsiiProxy(&j.Type__cdktfTerraformResource)
			return &j
		},
	)
	_jsii_.RegisterStruct(
		"@cdktf/provider-cloudflare.deviceSettingsPolicy.DeviceSettingsPolicyConfig",
		reflect.TypeOf((*DeviceSettingsPolicyConfig)(nil)).Elem(),
	)
}
