[
  {
    "path": ".github/dependabot.yml",
    "content": "version: 2\nupdates:\n  - package-ecosystem: \"gomod\"\n    directory: \"/\"\n    schedule:\n      interval: \"daily\"\n    commit-message:\n      prefix: \"fix\"\n      include: \"scope\"\n    open-pull-requests-limit: 20\n\n  - package-ecosystem: \"docker\"\n    directory: \"/\"\n    schedule:\n      interval: \"daily\"\n    commit-message:\n      prefix: \"fix\"\n      include: \"scope\"\n    open-pull-requests-limit: 20\n\n  - package-ecosystem: \"github-actions\"\n    directory: \"/\"\n    schedule:\n      interval: \"daily\"\n    commit-message:\n      prefix: \"fix\"\n      include: \"scope\"\n    open-pull-requests-limit: 20\n"
  },
  {
    "path": ".github/workflows/release.yml",
    "content": "name: Release\n\non:\n  push:\n    tags:\n      - \"*\"\n\njobs:\n  docker:\n    runs-on: ubuntu-24.04\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v6.0.1\n        with:\n          token: ${{ secrets.API_GITHUB_TOKEN }}\n\n      - name: Docker meta\n        id: docker_meta\n        uses: docker/metadata-action@v5.10.0\n        with:\n          images: ${{ github.repository }}\n          tags: |\n            type=semver,pattern={{major}}\n            type=semver,pattern={{major}}.{{minor}}\n            type=semver,pattern={{major}}.{{minor}}.{{patch}}\n            type=semver,pattern={{version}}\n      - name: Set up QEMU\n        uses: docker/setup-qemu-action@v3.7.0\n\n      - name: Set up Docker Buildx\n        uses: docker/setup-buildx-action@v3.12.0\n\n      - name: Login to DockerHub\n        uses: docker/login-action@v3.6.0\n        with:\n          username: ${{ secrets.DOCKER_USERNAME }}\n          password: ${{ secrets.DOCKER_PASSWORD }}\n\n      - name: Build and push\n        uses: docker/build-push-action@v6.18.0\n        with:\n          push: true\n          platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64\n          tags: ${{ steps.docker_meta.outputs.tags }}\n          labels: ${{ steps.docker_meta.outputs.labels }}\n\n  binaries:\n    runs-on: ubuntu-24.04\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v6.0.1\n        with:\n          token: ${{ secrets.API_GITHUB_TOKEN }}\n\n      - name: Fetch Go version\n        run: |\n          GO_VERSION=$(perl -ne 'print \"$1\\n\" if /FROM golang:([0-9.]+)/' Dockerfile | head -n1)\n          [ -n \"$GO_VERSION\" ] || exit 1\n          echo \"go_version=$GO_VERSION\" >> $GITHUB_ENV\n\n      - name: Setup Go environment\n        uses: actions/setup-go@v6.1.0\n        with:\n          go-version: \"${{ env.go_version }}\"\n\n      - name: Binaries Release\n        uses: goreleaser/goreleaser-action@v6.4.0\n        with:\n          version: ~> 2.7.0\n          args: release --clean\n        env:\n          GITHUB_TOKEN: ${{ secrets.API_GITHUB_TOKEN }}\n"
  },
  {
    "path": ".github/workflows/test.yml",
    "content": "name: Test\n\non:\n  push:\n    branches: [master, develop]\n  pull_request:\n    branches: [master, develop]\n\njobs:\n  build:\n    runs-on: ubuntu-24.04\n\n    steps:\n      - name: Checkout with token\n        if: github.event_name != 'pull_request'\n        uses: actions/checkout@v6.0.1\n        with:\n          token: ${{ secrets.API_GITHUB_TOKEN }}\n\n      - name: Checkout without token\n        if: github.event_name == 'pull_request'\n        uses: actions/checkout@v6.0.1\n\n      - name: Fetch Go version\n        run: |\n          GO_VERSION=$(perl -ne 'print \"$1\\n\" if /FROM golang:([0-9.]+)/' Dockerfile | head -n1)\n          [ -n \"$GO_VERSION\" ] || exit 1\n          echo \"go_version=$GO_VERSION\" >> $GITHUB_ENV\n\n      - name: Setup Go environment\n        uses: actions/setup-go@v6.1.0\n        with:\n          go-version: \"${{ env.go_version }}\"\n\n      - name: Program Test\n        run: go test ./...\n\n      - name: Set up Docker Buildx\n        uses: docker/setup-buildx-action@v3.12.0\n\n      - name: Docker Build Test\n        run: docker buildx build --load --tag test:test --file ./Dockerfile ./\n\n      - name: Version\n        if: github.event_name != 'pull_request'\n        uses: cycjimmy/semantic-release-action@v6.0.0\n        with:\n          semantic_version: 24.2.3\n        env:\n          GITHUB_TOKEN: ${{ secrets.API_GITHUB_TOKEN }}\n"
  },
  {
    "path": ".gitignore",
    "content": "/.optic/captures/\n/.optic/generated/\n/*.toml\n/*.conf\n/*.pcapng\n/wgcf\n.DS_Store\n\n# Created by https://www.gitignore.io/api/go,intellij+all,visualstudiocode\n# Edit at https://www.gitignore.io/?templates=go,intellij+all,visualstudiocode\n\n### Go ###\n# Binaries for programs and plugins\n*.exe\n*.exe~\n*.dll\n*.so\n*.dylib\n\n# Test binary, built with `go test -c`\n*.test\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\n\n# Dependency directories (remove the comment below to include it)\n# vendor/\n\n### Go Patch ###\n/vendor/\n/Godeps/\n\n### Intellij+all ###\n# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm\n# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839\n\n# User-specific stuff\n.idea/**/workspace.xml\n.idea/**/tasks.xml\n.idea/**/usage.statistics.xml\n.idea/**/dictionaries\n.idea/**/shelf\n\n# Generated files\n.idea/**/contentModel.xml\n\n# Sensitive or high-churn files\n.idea/**/dataSources/\n.idea/**/dataSources.ids\n.idea/**/dataSources.local.xml\n.idea/**/sqlDataSources.xml\n.idea/**/dynamic.xml\n.idea/**/uiDesigner.xml\n.idea/**/dbnavigator.xml\n\n# Gradle\n.idea/**/gradle.xml\n.idea/**/libraries\n\n# Gradle and Maven with auto-import\n# When using Gradle or Maven with auto-import, you should exclude module files,\n# since they will be recreated, and may cause churn.  Uncomment if using\n# auto-import.\n# .idea/modules.xml\n# .idea/*.iml\n# .idea/modules\n# *.iml\n# *.ipr\n\n# CMake\ncmake-build-*/\n\n# Mongo Explorer plugin\n.idea/**/mongoSettings.xml\n\n# File-based project format\n*.iws\n\n# IntelliJ\nout/\n\n# mpeltonen/sbt-idea plugin\n.idea_modules/\n\n# JIRA plugin\natlassian-ide-plugin.xml\n\n# Cursive Clojure plugin\n.idea/replstate.xml\n\n# Crashlytics plugin (for Android Studio and IntelliJ)\ncom_crashlytics_export_strings.xml\ncrashlytics.properties\ncrashlytics-build.properties\nfabric.properties\n\n# Editor-based Rest Client\n.idea/httpRequests\n\n# Android studio 3.1+ serialized cache file\n.idea/caches/build_file_checksums.ser\n\n### Intellij+all Patch ###\n# Ignores the whole .idea folder and all .iml files\n# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360\n\n.idea/\n\n# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023\n\n*.iml\nmodules.xml\n.idea/misc.xml\n*.ipr\n\n# Sonarlint plugin\n.idea/sonarlint\n\n### VisualStudioCode ###\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n\n### VisualStudioCode Patch ###\n# Ignore all local history of files\n.history\n\n# End of https://www.gitignore.io/api/go,intellij+all,visualstudiocode\n"
  },
  {
    "path": ".goreleaser.yml",
    "content": "before:\nbuilds:\n  - env:\n      - CGO_ENABLED=0\n    ldflags:\n      - -s -w\n    flags:\n      - -trimpath\n    goos:\n      - linux\n      - windows\n      - darwin\n      - freebsd\n    goarch:\n      - 386\n      - amd64\n      - arm\n      - arm64\n      - mips\n      - mipsle\n      - mips64\n      - mips64le\n      - s390x\n    goarm:\n      - 5\n      - 6\n      - 7\n    gomips:\n      - softfloat\narchives:\n  - format: binary\nchecksum:\n  name_template: \"checksums.txt\"\n"
  },
  {
    "path": ".releaserc.json",
    "content": "{\n  \"branches\": [\n    {\n      \"name\": \"master\"\n    },\n    {\n      \"name\": \"develop\",\n      \"prerelease\": true\n    }\n  ],\n  \"plugins\": [\n    \"@semantic-release/commit-analyzer\",\n    \"@semantic-release/release-notes-generator\",\n    [\n      \"@semantic-release/github\",\n      {\n        \"successComment\": false,\n        \"failComment\": false\n      }\n    ]\n  ]\n}\n"
  },
  {
    "path": "Dockerfile",
    "content": "FROM golang:1.25.5-alpine AS builder\n\nWORKDIR /src\nCOPY . .\n\nRUN apk add --no-cache git && \\\n    go mod download && \\\n    CGO_ENABLED=0 go build -ldflags=\"-s -w\" -o \"wgcf\"\n\nFROM alpine:3.23.2\n\nWORKDIR /\n\nCOPY --from=builder \"/src/wgcf\" \"/\"\n\nENTRYPOINT [\"/wgcf\"]\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2020 ViRb3\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# wgcf\n> wgcf is an unofficial, cross-platform CLI for [Cloudflare Warp](https://1.1.1.1/)\n\n![](https://img.shields.io/drone/build/ViRb3/wgcf)\n![](https://img.shields.io/github/issues/ViRb3/wgcf)\n![](https://img.shields.io/github/downloads/ViRb3/wgcf/total)\n![](https://img.shields.io/github/languages/code-size/ViRb3/wgcf)\n\n## Features\n- Register new account\n- Change license key to use existing Warp+ subscription\n- Generate WireGuard profile\n- Check account status\n- Print trace information to debug Warp/Warp+ status\n\n## Download\nYou can find pre-compiled binaries on the [releases page](https://github.com/ViRb3/wgcf/releases).\n\n## Usage\nRun `wgcf` in a terminal without any arguments to display the help screen. All commands and parameters are documented.\n\n### Register new account\nRun the following command in a terminal:\n```bash\nwgcf register\n```\nThe new account will be saved under `wgcf-account.toml`\n\n### Generate WireGuard profile\nRun the following command in a terminal:\n```bash\nwgcf generate\n```\nThe WireGuard profile will be saved under `wgcf-profile.conf`. For more information on how to use it, please check the official [WireGuard Quick Start](https://www.wireguard.com/quickstart/).\n\n#### Maximum transmission unit (MTU)\nTo ensure maximum compatibility, the generated profile will have a MTU of 1280, just like the official Android app. If you are experiencing performance issues, you may be able to improve your speed by increasing this value. For more information, please check [#40](https://github.com/ViRb3/wgcf/issues/40).\n\n### Add a license key\n\nIf you have an existing Warp+ subscription, for example on your phone, you can bind the account generated by this tool to your phone's account, sharing its Warp+ status. Please note that there is a limit of 5 maximum devices linked at a time. You can remove linked devices from the 1.1.1.1 app on your phone.\n\n> [!CAUTION]\n> Only subscriptions purchased directly from the official 1.1.1.1 app are supported. Keys obtained by any other means, including referrals, will not work and will not be supported.\n\nFirst, get your Warp+ account license key. To view it on Android:\n1. Open the `1.1.1.1` app\n2. Click on the hamburger menu button in the top-right corner \n3. Navigate to: `Account` > `Key`\n\nNow, back to wgcf.\n\n> [!WARNING]\n> There's a bug on Cloudflare's side that prevents existing accounts from getting Warp+ even after you bind a correct license key. If you have ever connected to Warp VPN, then your account is affected. You will need to make a new account via:\n>\n> ```wgcf register\n> wgcf register\n> ```\n> Then immediately proceed with the steps below, without running any other commands. For more details, check [!85](https://github.com/ViRb3/wgcf/issues/85)\n\nRun the following commands:\n\n```bash\nwgcf update --license-key \"YOUR_LICENSE_KEY_GOES_HERE\"\nwgcf generate\n```\n\n\n### Check device status\nRun the following command in a terminal:\n```bash\nwgcf status\n```\n\n### Verify Warp/Warp+ works\nConnect to the WireGuard profile [generated](#generate-wireguard-profile) by this tool, then run:\n```bash\nwgcf trace\n```\nIf you look at the last line, it should say `warp=on` or `warp=plus`, depending on whether you have Warp or Warp+ respectively.\n\n> [!WARNING]\n> If you're seeing `warp=on` even after you bound a Warp+ license key, you are likely experiencing a known bug, please refer to the [Add a license key](#add-a-license-key) section.\n\n## Development\nThe API client code is auto-generated from the OpenAPI spec [openapi-spec.yml](openapi-spec.yml) and stored under the [openapi/](openapi/) package. Do not touch any code under that package, instead, change the spec file and regenerate the API client code. To do this, [install openapi-generator](https://openapi-generator.tech/docs/installation), then run:\n\n```bash\ngo generate\n```\n## Notice of Non-Affiliation and Disclaimer\nWe are not affiliated, associated, authorized, endorsed by, or in any way officially connected with Cloudflare, or any of its subsidiaries or its affiliates. The official Cloudflare website can be found at https://www.cloudflare.com/.\n\nThe names Cloudflare Warp and Cloudflare as well as related names, marks, emblems and images are registered trademarks of their respective owners.\n"
  },
  {
    "path": "cloudflare/api.go",
    "content": "package cloudflare\n\nimport (\n\t\"crypto/tls\"\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/ViRb3/wgcf/v2/config\"\n\t\"github.com/ViRb3/wgcf/v2/openapi\"\n\t\"github.com/ViRb3/wgcf/v2/util\"\n\t\"github.com/ViRb3/wgcf/v2/wireguard\"\n\t\"github.com/cockroachdb/errors\"\n)\n\nconst (\n\tApiUrl     = \"https://api.cloudflareclient.com\"\n\tApiVersion = \"v0a1922\"\n)\n\nvar (\n\tDefaultHeaders = map[string]string{\n\t\t\"User-Agent\":        \"okhttp/3.12.1\",\n\t\t\"CF-Client-Version\": \"a-6.3-1922\",\n\t}\n\tDefaultTransport = &http.Transport{\n\t\t// Match app's TLS config or API will reject us with code 403 error 1020\n\t\tTLSClientConfig: &tls.Config{\n\t\t\tMinVersion: tls.VersionTLS12,\n\t\t\tMaxVersion: tls.VersionTLS12},\n\t\tForceAttemptHTTP2: false,\n\t\t// From http.DefaultTransport\n\t\tProxy:                 http.ProxyFromEnvironment,\n\t\tMaxIdleConns:          100,\n\t\tIdleConnTimeout:       90 * time.Second,\n\t\tTLSHandshakeTimeout:   10 * time.Second,\n\t\tExpectContinueTimeout: 1 * time.Second,\n\t}\n)\n\nvar apiClient = MakeApiClient(nil)\nvar apiClientAuth *openapi.APIClient\n\nfunc MakeApiClient(authToken *string) *openapi.APIClient {\n\thttpClient := http.Client{Transport: DefaultTransport}\n\tapiClient := openapi.NewAPIClient(&openapi.Configuration{\n\t\tDefaultHeader: DefaultHeaders,\n\t\tUserAgent:     DefaultHeaders[\"User-Agent\"],\n\t\tDebug:         false,\n\t\tServers: []openapi.ServerConfiguration{\n\t\t\t{URL: ApiUrl},\n\t\t},\n\t\tHTTPClient: &httpClient,\n\t})\n\tif authToken != nil {\n\t\tapiClient.GetConfig().DefaultHeader[\"Authorization\"] = \"Bearer \" + *authToken\n\t}\n\treturn apiClient\n}\n\nfunc Register(publicKey *wireguard.Key, deviceModel string) (*openapi.Register200Response, error) {\n\ttimestamp := util.GetTimestamp()\n\tresult, _, err := apiClient.DefaultAPI.\n\t\tRegister(nil, ApiVersion).\n\t\tRegisterRequest(openapi.RegisterRequest{\n\t\t\tFcmToken:  \"\", // not empty on actual client\n\t\t\tInstallId: \"\", // not empty on actual client\n\t\t\tKey:       publicKey.String(),\n\t\t\tLocale:    \"en_US\",\n\t\t\tModel:     deviceModel,\n\t\t\tTos:       timestamp,\n\t\t\tType:      \"Android\",\n\t\t}).Execute()\n\treturn result, errors.WithStack(err)\n}\n\ntype SourceDevice openapi.GetSourceDevice200Response\n\nfunc GetSourceDevice(ctx *config.Context) (*SourceDevice, error) {\n\tresult, _, err := globalClientAuth(ctx.AccessToken).DefaultAPI.\n\t\tGetSourceDevice(nil, ApiVersion, ctx.DeviceId).\n\t\tExecute()\n\treturn (*SourceDevice)(result), errors.WithStack(err)\n}\n\nfunc globalClientAuth(authToken string) *openapi.APIClient {\n\tif apiClientAuth == nil {\n\t\tapiClientAuth = MakeApiClient(&authToken)\n\t}\n\treturn apiClientAuth\n}\n\ntype Account openapi.Account\n\nfunc GetAccount(ctx *config.Context) (*Account, error) {\n\tresult, _, err := globalClientAuth(ctx.AccessToken).DefaultAPI.\n\t\tGetAccount(nil, ctx.DeviceId, ApiVersion).\n\t\tExecute()\n\tcastResult := (*Account)(result)\n\treturn castResult, errors.WithStack(err)\n}\n\nfunc UpdateLicenseKey(ctx *config.Context) (*openapi.UpdateAccount200Response, error) {\n\tresult, _, err := globalClientAuth(ctx.AccessToken).DefaultAPI.\n\t\tUpdateAccount(nil, ctx.DeviceId, ApiVersion).\n\t\tUpdateAccountRequest(openapi.UpdateAccountRequest{License: ctx.LicenseKey}).\n\t\tExecute()\n\tif err != nil {\n\t\treturn nil, errors.WithStack(err)\n\t}\n\n\treturn result, nil\n}\n\ntype BoundDevice openapi.BoundDevice\n\nfunc GetBoundDevices(ctx *config.Context) ([]BoundDevice, error) {\n\tresult, _, err := globalClientAuth(ctx.AccessToken).DefaultAPI.\n\t\tGetBoundDevices(nil, ctx.DeviceId, ApiVersion).\n\t\tExecute()\n\tif err != nil {\n\t\treturn nil, errors.WithStack(err)\n\t}\n\tvar castResult []BoundDevice\n\tfor _, device := range result {\n\t\tcastResult = append(castResult, BoundDevice(device))\n\t}\n\treturn castResult, nil\n}\n\nfunc GetSourceBoundDevice(ctx *config.Context) (*BoundDevice, error) {\n\tresult, err := GetBoundDevices(ctx)\n\tif err != nil {\n\t\treturn nil, errors.WithStack(err)\n\t}\n\treturn FindDevice(result, ctx.DeviceId)\n}\n\nfunc UpdateSourceBoundDeviceName(ctx *config.Context, targetDeviceId string, newName string) (*BoundDevice, error) {\n\treturn updateSourceBoundDevice(ctx, targetDeviceId, openapi.UpdateBoundDeviceRequest{\n\t\tName: &newName,\n\t})\n}\n\nfunc UpdateSourceBoundDeviceActive(ctx *config.Context, targetDeviceId string, active bool) (*BoundDevice, error) {\n\treturn updateSourceBoundDevice(ctx, targetDeviceId, openapi.UpdateBoundDeviceRequest{\n\t\tActive: &active,\n\t})\n}\n\nfunc updateSourceBoundDevice(ctx *config.Context, targetDeviceId string, data openapi.UpdateBoundDeviceRequest) (*BoundDevice, error) {\n\tresult, _, err := globalClientAuth(ctx.AccessToken).DefaultAPI.\n\t\tUpdateBoundDevice(nil, ctx.DeviceId, ApiVersion, targetDeviceId).\n\t\tUpdateBoundDeviceRequest(data).\n\t\tExecute()\n\tif err != nil {\n\t\treturn nil, errors.WithStack(err)\n\t}\n\tvar castResult []BoundDevice\n\tfor _, device := range result {\n\t\tcastResult = append(castResult, BoundDevice(device))\n\t}\n\treturn FindDevice(castResult, ctx.DeviceId)\n}\n\nfunc DeleteBoundDevice(ctx *config.Context, targetDeviceId string) error {\n\tif _, err := globalClientAuth(ctx.AccessToken).DefaultAPI.\n\t\tDeleteBoundDevice(nil, ctx.DeviceId, ApiVersion, targetDeviceId).\n\t\tExecute(); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "cloudflare/util.go",
    "content": "package cloudflare\n\nimport (\n\t\"github.com/cockroachdb/errors\"\n)\n\nfunc FindDevice(devices []BoundDevice, deviceId string) (*BoundDevice, error) {\n\tfor _, device := range devices {\n\t\tif device.Id == deviceId {\n\t\t\treturn &device, nil\n\t\t}\n\t}\n\treturn nil, errors.New(\"device not found in list\")\n}\n"
  },
  {
    "path": "cmd/generate/generate.go",
    "content": "package generate\n\nimport (\n\t\"log\"\n\n\t\"github.com/ViRb3/wgcf/v2/cloudflare\"\n\t. \"github.com/ViRb3/wgcf/v2/cmd/shared\"\n\t\"github.com/ViRb3/wgcf/v2/config\"\n\t\"github.com/ViRb3/wgcf/v2/wireguard\"\n\t\"github.com/cockroachdb/errors\"\n\t\"github.com/spf13/cobra\"\n\t\"github.com/spf13/viper\"\n)\n\nvar profileFile string\nvar shortMsg = \"Generates a WireGuard profile from the current Cloudflare Warp account\"\n\nvar Cmd = &cobra.Command{\n\tUse:   \"generate\",\n\tShort: shortMsg,\n\tLong:  FormatMessage(shortMsg, ``),\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tRunCommandFatal(generateProfile)\n\t},\n}\n\nfunc init() {\n\tCmd.PersistentFlags().StringVarP(&profileFile, \"profile\", \"p\", \"wgcf-profile.conf\", \"WireGuard profile file\")\n}\n\nfunc generateProfile() error {\n\tif err := EnsureConfigValidAccount(); err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tctx := CreateContext()\n\tthisDevice, err := cloudflare.GetSourceDevice(ctx)\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tprofile, err := wireguard.NewProfile(&wireguard.ProfileData{\n\t\tPrivateKey: viper.GetString(config.PrivateKey),\n\t\tAddress1:   thisDevice.Config.Interface.Addresses.V4,\n\t\tAddress2:   thisDevice.Config.Interface.Addresses.V6,\n\t\tPublicKey:  thisDevice.Config.Peers[0].PublicKey,\n\t\tEndpoint:   thisDevice.Config.Peers[0].Endpoint.Host,\n\t})\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\tif err := profile.Save(profileFile); err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tlog.Println(\"Successfully generated WireGuard profile:\", profileFile)\n\treturn nil\n}\n"
  },
  {
    "path": "cmd/register/register.go",
    "content": "package register\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\n\t\"github.com/ViRb3/wgcf/v2/cloudflare\"\n\t. \"github.com/ViRb3/wgcf/v2/cmd/shared\"\n\t\"github.com/ViRb3/wgcf/v2/config\"\n\t\"github.com/ViRb3/wgcf/v2/wireguard\"\n\t\"github.com/cockroachdb/errors\"\n\t\"github.com/manifoldco/promptui\"\n\t\"github.com/spf13/cobra\"\n\t\"github.com/spf13/viper\"\n)\n\nvar deviceName string\nvar deviceModel string\nvar existingKey string\nvar acceptedTOS = false\nvar shortMsg = \"Registers a new Cloudflare Warp device and creates a new account, preparing it for connection\"\n\nvar Cmd = &cobra.Command{\n\tUse:   \"register\",\n\tShort: shortMsg,\n\tLong:  FormatMessage(shortMsg, ``),\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tRunCommandFatal(registerAccount)\n\t},\n}\n\nfunc init() {\n\tCmd.PersistentFlags().StringVarP(&deviceName, \"name\", \"n\", \"\", \"Device name displayed under the 1.1.1.1 app (defaults to random)\")\n\tCmd.PersistentFlags().StringVarP(&deviceModel, \"model\", \"m\", \"PC\", \"Device model displayed under the 1.1.1.1 app\")\n\tCmd.PersistentFlags().StringVarP(&existingKey, \"key\", \"k\", \"\", \"Base64 private key used to authenticate your device over WireGuard (defaults to random)\")\n\tCmd.PersistentFlags().BoolVar(&acceptedTOS, \"accept-tos\", false, \"Accept Cloudflare's Terms of Service non-interactively\")\n}\n\nfunc registerAccount() error {\n\tif err := EnsureNoExistingAccount(); err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tif err := checkTOS(); err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tvar privateKey *wireguard.Key\n\tvar err error\n\n\tif existingKey != \"\" {\n\t\tprivateKey, err = wireguard.NewKey(existingKey)\n\t} else {\n\t\tprivateKey, err = wireguard.NewPrivateKey()\n\t}\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tdevice, err := cloudflare.Register(privateKey.Public(), deviceModel)\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tviper.Set(config.PrivateKey, privateKey.String())\n\tviper.Set(config.DeviceId, device.Id)\n\tviper.Set(config.AccessToken, device.Token)\n\tviper.Set(config.LicenseKey, device.Account.License)\n\tif err := viper.WriteConfig(); err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tctx := CreateContext()\n\tif _, err := SetDeviceName(ctx, deviceName); err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\taccount, err := cloudflare.GetAccount(ctx)\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\tboundDevices, err := cloudflare.GetBoundDevices(ctx)\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tPrintAccountDetails(account, boundDevices)\n\tlog.Println(\"Successfully created Cloudflare Warp account\")\n\treturn nil\n}\n\nfunc checkTOS() error {\n\tif !acceptedTOS {\n\t\tfmt.Println(\"This project is in no way affiliated with Cloudflare\")\n\t\tfmt.Println(\"Cloudflare's Terms of Service: https://www.cloudflare.com/application/terms/\")\n\t\tprompt := promptui.Select{\n\t\t\tLabel: \"Do you agree?\",\n\t\t\tItems: []string{\"Yes\", \"No\"},\n\t\t}\n\t\tif _, result, err := prompt.Run(); err != nil {\n\t\t\treturn errors.WithStack(err)\n\t\t} else if result != \"Yes\" {\n\t\t\treturn ErrTOSNotAccepted\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "cmd/root.go",
    "content": "package cmd\n\nimport (\n\t\"errors\"\n\t\"log\"\n\n\t\"github.com/ViRb3/wgcf/v2/cmd/generate\"\n\t\"github.com/ViRb3/wgcf/v2/cmd/register\"\n\t. \"github.com/ViRb3/wgcf/v2/cmd/shared\"\n\t\"github.com/ViRb3/wgcf/v2/cmd/status\"\n\t\"github.com/ViRb3/wgcf/v2/cmd/trace\"\n\t\"github.com/ViRb3/wgcf/v2/cmd/update\"\n\t\"github.com/ViRb3/wgcf/v2/config\"\n\t\"github.com/spf13/cobra\"\n\t\"github.com/spf13/viper\"\n)\n\nvar cfgFile string\n\nvar RootCmd = &cobra.Command{\n\tUse:   \"wgcf\",\n\tShort: \"WireGuard Cloudflare Warp utility\",\n\tLong: FormatMessage(\"\", `\nwgcf is a utility for Cloudflare Warp that allows you to create and\nmanage accounts, assign license keys, and generate WireGuard profiles.\nProject website: https://github.com/ViRb3/wgcf`),\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tif err := cmd.Help(); err != nil {\n\t\t\tlog.Fatalf(\"%+v\\n\", err)\n\t\t}\n\t},\n}\n\nfunc Execute() error {\n\treturn RootCmd.Execute()\n}\n\nfunc init() {\n\tcobra.OnInitialize(initConfig)\n\tRootCmd.PersistentFlags().StringVar(&cfgFile, \"config\", \"wgcf-account.toml\", \"Configuration file\")\n\tRootCmd.AddCommand(register.Cmd)\n\tRootCmd.AddCommand(update.Cmd)\n\tRootCmd.AddCommand(generate.Cmd)\n\tRootCmd.AddCommand(status.Cmd)\n\tRootCmd.AddCommand(trace.Cmd)\n}\n\nvar unsupportedConfigError viper.UnsupportedConfigError\n\nfunc initConfig() {\n\tinitConfigDefaults()\n\tviper.SetConfigFile(cfgFile)\n\tviper.SetEnvPrefix(\"WGCF\")\n\tviper.AutomaticEnv()\n\tif err := viper.ReadInConfig(); errors.As(err, &unsupportedConfigError) {\n\t\tlog.Fatal(err)\n\t} else {\n\t\tlog.Println(\"Using config file:\", viper.ConfigFileUsed())\n\t}\n}\n\nfunc initConfigDefaults() {\n\tviper.SetDefault(config.DeviceId, \"\")\n\tviper.SetDefault(config.AccessToken, \"\")\n\tviper.SetDefault(config.PrivateKey, \"\")\n\tviper.SetDefault(config.LicenseKey, \"\")\n}\n"
  },
  {
    "path": "cmd/shared/shared.go",
    "content": "package shared\n\nimport (\n\terrors2 \"errors\"\n\t\"fmt\"\n\t\"log\"\n\t\"slices\"\n\t\"strings\"\n\n\t\"github.com/ViRb3/wgcf/v2/cloudflare\"\n\t\"github.com/ViRb3/wgcf/v2/config\"\n\t\"github.com/ViRb3/wgcf/v2/util\"\n\t\"github.com/dustin/go-humanize\"\n\n\t\"github.com/cockroachdb/errors\"\n\t\"github.com/spf13/viper\"\n)\n\nvar ErrExistingAccount = errors2.New(\"existing account detected, refusing to overwrite\")\nvar ErrNoAccount = errors2.New(\"no account detected, register one first\")\nvar ErrTOSNotAccepted = errors2.New(\"TOS not accepted\")\n\nfunc RunCommandFatal(cmd func() error) {\n\tif err := cmd(); err != nil {\n\t\texpectedErrs := []error{ErrNoAccount, ErrExistingAccount, ErrTOSNotAccepted}\n\t\tif slices.ContainsFunc(expectedErrs, func(e error) bool { return errors.Is(err, e) }) {\n\t\t\tlog.Fatalln(err)\n\t\t} else {\n\t\t\tlog.Fatalf(\"%+v\\n\", err)\n\t\t}\n\t}\n}\n\nfunc FormatMessage(shortMessage string, longMessage string) string {\n\tif longMessage != \"\" {\n\t\tif strings.HasPrefix(longMessage, \"\\n\") {\n\t\t\tlongMessage = longMessage[1:]\n\t\t}\n\t\tlongMessage = strings.Replace(longMessage, \"\\n\", \" \", -1)\n\t}\n\tif shortMessage != \"\" && longMessage != \"\" {\n\t\treturn shortMessage + \". \" + longMessage\n\t} else if shortMessage != \"\" {\n\t\treturn shortMessage\n\t} else {\n\t\treturn longMessage\n\t}\n}\n\nfunc isConfigValidAccount() bool {\n\treturn viper.GetString(config.DeviceId) != \"\" &&\n\t\tviper.GetString(config.AccessToken) != \"\" &&\n\t\tviper.GetString(config.PrivateKey) != \"\"\n}\n\nfunc EnsureConfigValidAccount() error {\n\tif isConfigValidAccount() {\n\t\treturn nil\n\t} else {\n\t\treturn ErrNoAccount\n\t}\n}\n\nfunc EnsureNoExistingAccount() error {\n\tif isConfigValidAccount() {\n\t\treturn ErrExistingAccount\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc CreateContext() *config.Context {\n\tctx := config.Context{\n\t\tDeviceId:    viper.GetString(config.DeviceId),\n\t\tAccessToken: viper.GetString(config.AccessToken),\n\t\tLicenseKey:  viper.GetString(config.LicenseKey),\n\t}\n\treturn &ctx\n}\n\nfunc PrintAccountDetails(account *cloudflare.Account, boundDevices []cloudflare.BoundDevice) {\n\tlog.Println(\"Printing account details:\")\n\tfmt.Println()\n\tfmt.Println(\"================================================================\")\n\tfmt.Println(\"Account\")\n\tfmt.Println(\"================================================================\")\n\tfmt.Printf(\"%-12s : %s\\n\", \"Id\", account.Id)\n\tfmt.Printf(\"%-12s : %s\\n\", \"Account type\", account.AccountType)\n\tfmt.Printf(\"%-12s : %s\\n\", \"Created\", account.Created)\n\tfmt.Printf(\"%-12s : %s\\n\", \"Updated\", account.Updated)\n\tfmt.Printf(\"%-12s : %s\\n\", \"Premium data\", humanize.Bytes(uint64(account.PremiumData)))\n\tfmt.Printf(\"%-12s : %s\\n\", \"Quota\", humanize.Bytes(uint64(account.Quota)))\n\tfmt.Printf(\"%-12s : %s\\n\", \"Role\", account.Role)\n\tfmt.Println()\n\tfmt.Println(\"================================================================\")\n\tfmt.Println(\"Devices\")\n\tfmt.Println(\"================================================================\")\n\tfor _, device := range boundDevices {\n\t\tname := \"N/A\"\n\t\tif device.Name != nil {\n\t\t\tname = *device.Name\n\t\t}\n\t\tid := device.Id\n\t\tif device.Id == viper.GetString(config.DeviceId) {\n\t\t\tid += \" (current)\"\n\t\t}\n\t\tfmt.Printf(\"%-9s : %s\\n\", \"Id\", id)\n\t\tfmt.Printf(\"%-9s : %s\\n\", \"Type\", device.Type)\n\t\tfmt.Printf(\"%-9s : %s\\n\", \"Model\", device.Model)\n\t\tfmt.Printf(\"%-9s : %s\\n\", \"Name\", name)\n\t\tfmt.Printf(\"%-9s : %t\\n\", \"Active\", device.Active)\n\t\tfmt.Printf(\"%-9s : %s\\n\", \"Created\", device.Created)\n\t\tfmt.Printf(\"%-9s : %s\\n\", \"Activated\", device.Activated)\n\t\tfmt.Printf(\"%-9s : %s\\n\", \"Role\", device.Role)\n\t\tfmt.Println()\n\t}\n}\n\nfunc SetDeviceName(ctx *config.Context, deviceName string) (*cloudflare.BoundDevice, error) {\n\tif deviceName == \"\" {\n\t\tdeviceName += util.RandomHexString(3)\n\t}\n\tdevice, err := cloudflare.UpdateSourceBoundDeviceName(ctx, ctx.DeviceId, deviceName)\n\tif err == nil {\n\t\tif device.Name == nil || *device.Name != deviceName {\n\t\t\treturn nil, errors.New(\"could not update device name\")\n\t\t}\n\t} else if util.IsHttp500Error(err) {\n\t\t// server-side issue, but the operation still works\n\t} else {\n\t\treturn nil, errors.WithStack(err)\n\t}\n\n\treturn device, nil\n}\n"
  },
  {
    "path": "cmd/status/status.go",
    "content": "package status\n\nimport (\n\t\"github.com/ViRb3/wgcf/v2/cloudflare\"\n\t. \"github.com/ViRb3/wgcf/v2/cmd/shared\"\n\t\"github.com/cockroachdb/errors\"\n\t\"github.com/spf13/cobra\"\n)\n\nvar shortMsg = \"Prints the status of the current Cloudflare Warp device\"\n\nvar Cmd = &cobra.Command{\n\tUse:   \"status\",\n\tShort: shortMsg,\n\tLong:  FormatMessage(shortMsg, ``),\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tRunCommandFatal(status)\n\t},\n}\n\nfunc init() {\n}\n\nfunc status() error {\n\tif err := EnsureConfigValidAccount(); err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tctx := CreateContext()\n\n\taccount, err := cloudflare.GetAccount(ctx)\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\tboundDevices, err := cloudflare.GetBoundDevices(ctx)\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tPrintAccountDetails(account, boundDevices)\n\treturn nil\n}\n"
  },
  {
    "path": "cmd/trace/trace.go",
    "content": "package trace\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"net/http\"\n\t\"strings\"\n\n\t. \"github.com/ViRb3/wgcf/v2/cmd/shared\"\n\t\"github.com/cockroachdb/errors\"\n\t\"github.com/spf13/cobra\"\n)\n\nvar shortMsg = \"Prints trace information about the current internet connection\"\n\nvar Cmd = &cobra.Command{\n\tUse:   \"trace\",\n\tShort: shortMsg,\n\tLong: FormatMessage(shortMsg, `\nUseful for verifying if Warp and Warp+ are working.`),\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tif err := trace(); err != nil {\n\t\t\tlog.Fatalf(\"%+v\\n\", err)\n\t\t}\n\t},\n}\n\nfunc init() {\n}\n\nfunc trace() error {\n\tresponse, err := http.Get(\"https://cloudflare.com/cdn-cgi/trace\")\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\tbodyBytes, err := io.ReadAll(response.Body)\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\tlog.Println(\"Trace result:\")\n\tfmt.Println(strings.TrimSpace(string(bodyBytes)))\n\treturn nil\n}\n"
  },
  {
    "path": "cmd/update/update.go",
    "content": "package update\n\nimport (\n\t\"log\"\n\t\"slices\"\n\n\t\"github.com/ViRb3/wgcf/v2/cloudflare\"\n\t. \"github.com/ViRb3/wgcf/v2/cmd/shared\"\n\t\"github.com/ViRb3/wgcf/v2/config\"\n\t\"github.com/cockroachdb/errors\"\n\t\"github.com/spf13/cobra\"\n\t\"github.com/spf13/viper\"\n)\n\nvar deviceName string\nvar licenseKey string\nvar removeDevices []string\nvar deactivateDevices []string\nvar activateDevices []string\n\nvar shortMsg = \"Updates the current Cloudflare Warp account, preparing it for connection\"\n\nvar Cmd = &cobra.Command{\n\tUse:   \"update\",\n\tShort: shortMsg,\n\tLong: FormatMessage(shortMsg, `\nIf a new/different license key is provided, the current device will be bound to the new key and its parent account. \nPlease note that there is a maximum limit of 5 active devices linked to the same account at a given time.`),\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tRunCommandFatal(updateAccount)\n\t},\n}\n\nfunc init() {\n\tCmd.PersistentFlags().StringVarP(&deviceName, \"name\", \"n\", \"\", \"Update this device's name\")\n\tCmd.PersistentFlags().StringVarP(&licenseKey, \"license-key\", \"l\", \"\", \"Update this device's license key\")\n\tCmd.PersistentFlags().StringSliceVar(&removeDevices, \"remove\", []string{}, \"Remove devices by their ID (can be used multiple times)\")\n\tCmd.PersistentFlags().StringSliceVar(&deactivateDevices, \"deactivate\", []string{}, \"Deactivate devices by their ID (can be used multiple times)\")\n\tCmd.PersistentFlags().StringSliceVar(&activateDevices, \"activate\", []string{}, \"Activate devices by their ID (can be used multiple times)\")\n}\n\nfunc updateAccount() error {\n\tif err := EnsureConfigValidAccount(); err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tctx := CreateContext()\n\tif licenseKey != \"\" {\n\t\tctx.LicenseKey = licenseKey\n\t}\n\n\taccount, err := cloudflare.GetAccount(ctx)\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\tif account.License != ctx.LicenseKey {\n\t\tlog.Println(\"Updated license key detected, re-binding device to new account\")\n\t\tif _, err := cloudflare.UpdateLicenseKey(ctx); err != nil {\n\t\t\treturn errors.WithStack(err)\n\t\t}\n\t\tviper.Set(config.LicenseKey, ctx.LicenseKey)\n\t\tif err := viper.WriteConfig(); err != nil {\n\t\t\treturn errors.WithStack(err)\n\t\t}\n\t}\n\n\tboundDevice, err := cloudflare.GetSourceBoundDevice(ctx)\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\tif boundDevice.Name == nil || (deviceName != \"\" && deviceName != *boundDevice.Name) {\n\t\tlog.Println(\"Setting device name\")\n\t\tif _, err := SetDeviceName(ctx, deviceName); err != nil {\n\t\t\treturn errors.WithStack(err)\n\t\t}\n\t}\n\n\tdeviceActions := map[string]func() error{}\n\tfor _, deviceId := range removeDevices {\n\t\tdeviceActions[deviceId] = func() error {\n\t\t\tlog.Printf(\"Deleting device: %s\\n\", deviceId)\n\t\t\terr := cloudflare.DeleteBoundDevice(ctx, deviceId)\n\t\t\treturn errors.WithStack(err)\n\t\t}\n\t}\n\tfor _, deviceId := range deactivateDevices {\n\t\tdeviceActions[deviceId] = func() error {\n\t\t\tlog.Printf(\"Deactivating device: %s\\n\", deviceId)\n\t\t\tif _, err := cloudflare.UpdateSourceBoundDeviceActive(ctx, deviceId, false); err != nil {\n\t\t\t\treturn errors.WithStack(err)\n\t\t\t}\n\t\t\treturn errors.WithStack(err)\n\t\t}\n\t}\n\tfor _, deviceId := range activateDevices {\n\t\tdeviceActions[deviceId] = func() error {\n\t\t\tlog.Printf(\"Activating device: %s\\n\", deviceId)\n\t\t\t_, err := cloudflare.UpdateSourceBoundDeviceActive(ctx, deviceId, true)\n\t\t\treturn errors.WithStack(err)\n\t\t}\n\t}\n\n\tboundDevices, err := cloudflare.GetBoundDevices(ctx)\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tfor deviceId, action := range deviceActions {\n\t\tdeviceFound := slices.ContainsFunc(boundDevices, func(device cloudflare.BoundDevice) bool {\n\t\t\treturn device.Id == deviceId\n\t\t})\n\t\tif !deviceFound {\n\t\t\treturn errors.Newf(\"device not found: %s\", deviceId)\n\t\t}\n\t\tif err := action(); err != nil {\n\t\t\treturn errors.WithStack(err)\n\t\t}\n\t}\n\n\t// refresh in case e.g. account type changed\n\taccount, err = cloudflare.GetAccount(ctx)\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\tboundDevices, err = cloudflare.GetBoundDevices(ctx)\n\tif err != nil {\n\t\treturn errors.WithStack(err)\n\t}\n\n\tPrintAccountDetails(account, boundDevices)\n\n\tlog.Println(\"Successfully updated Cloudflare Warp account\")\n\treturn nil\n}\n"
  },
  {
    "path": "config/config.go",
    "content": "package config\n\nconst (\n\tDeviceId    = \"device_id\"\n\tAccessToken = \"access_token\"\n\tPrivateKey  = \"private_key\"\n\tLicenseKey  = \"license_key\"\n)\n\ntype Context struct {\n\tDeviceId    string\n\tAccessToken string\n\tPrivateKey  string\n\tLicenseKey  string\n}\n"
  },
  {
    "path": "go.mod",
    "content": "module github.com/ViRb3/wgcf/v2\n\ngo 1.24.0\n\ntoolchain go1.24.1\n\nrequire (\n\tgithub.com/ViRb3/wgcf/v2/openapi v0.0.0-00010101000000-000000000000\n\tgithub.com/cockroachdb/errors v1.12.0\n\tgithub.com/dustin/go-humanize v1.0.1\n\tgithub.com/manifoldco/promptui v0.9.0\n\tgithub.com/spf13/cobra v1.10.2\n\tgithub.com/spf13/viper v1.21.0\n\tgolang.org/x/crypto v0.46.0\n)\n\nrequire (\n\tgithub.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect\n\tgithub.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect\n\tgithub.com/cockroachdb/redact v1.1.5 // indirect\n\tgithub.com/fsnotify/fsnotify v1.9.0 // indirect\n\tgithub.com/getsentry/sentry-go v0.27.0 // indirect\n\tgithub.com/go-viper/mapstructure/v2 v2.4.0 // indirect\n\tgithub.com/gogo/protobuf v1.3.2 // indirect\n\tgithub.com/inconshreveable/mousetrap v1.1.0 // indirect\n\tgithub.com/kr/pretty v0.3.1 // indirect\n\tgithub.com/kr/text v0.2.0 // indirect\n\tgithub.com/pelletier/go-toml/v2 v2.2.4 // indirect\n\tgithub.com/pkg/errors v0.9.1 // indirect\n\tgithub.com/rogpeppe/go-internal v1.12.0 // indirect\n\tgithub.com/sagikazarmark/locafero v0.11.0 // indirect\n\tgithub.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect\n\tgithub.com/spf13/afero v1.15.0 // indirect\n\tgithub.com/spf13/cast v1.10.0 // indirect\n\tgithub.com/spf13/pflag v1.0.10 // indirect\n\tgithub.com/subosito/gotenv v1.6.0 // indirect\n\tgo.yaml.in/yaml/v3 v3.0.4 // indirect\n\tgolang.org/x/sys v0.39.0 // indirect\n\tgolang.org/x/text v0.32.0 // indirect\n)\n\nreplace github.com/ViRb3/wgcf/v2/openapi => ./openapi\n"
  },
  {
    "path": "go.sum",
    "content": "github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=\ngithub.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=\ngithub.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8=\ngithub.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=\ngithub.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8=\ngithub.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=\ngithub.com/cockroachdb/errors v1.12.0 h1:d7oCs6vuIMUQRVbi6jWWWEJZahLCfJpnJSVobd1/sUo=\ngithub.com/cockroachdb/errors v1.12.0/go.mod h1:SvzfYNNBshAVbZ8wzNc/UPK3w1vf0dKDUP41ucAIf7g=\ngithub.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE=\ngithub.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs=\ngithub.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30=\ngithub.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=\ngithub.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=\ngithub.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=\ngithub.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=\ngithub.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=\ngithub.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=\ngithub.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=\ngithub.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=\ngithub.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps=\ngithub.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY=\ngithub.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=\ngithub.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=\ngithub.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs=\ngithub.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=\ngithub.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=\ngithub.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=\ngithub.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=\ngithub.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=\ngithub.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=\ngithub.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=\ngithub.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=\ngithub.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=\ngithub.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=\ngithub.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=\ngithub.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=\ngithub.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA=\ngithub.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg=\ngithub.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=\ngithub.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=\ngithub.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4=\ngithub.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8=\ngithub.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=\ngithub.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=\ngithub.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=\ngithub.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=\ngithub.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=\ngithub.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=\ngithub.com/sagikazarmark/locafero v0.11.0 h1:1iurJgmM9G3PA/I+wWYIOw/5SyBtxapeHDcg+AAIFXc=\ngithub.com/sagikazarmark/locafero v0.11.0/go.mod h1:nVIGvgyzw595SUSUE6tvCp3YYTeHs15MvlmU87WwIik=\ngithub.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 h1:+jumHNA0Wrelhe64i8F6HNlS8pkoyMv5sreGx2Ry5Rw=\ngithub.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8/go.mod h1:3n1Cwaq1E1/1lhQhtRK2ts/ZwZEhjcQeJQ1RuC6Q/8U=\ngithub.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I=\ngithub.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg=\ngithub.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY=\ngithub.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=\ngithub.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=\ngithub.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=\ngithub.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=\ngithub.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU=\ngithub.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY=\ngithub.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=\ngithub.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=\ngithub.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=\ngithub.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=\ngithub.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=\ngithub.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=\ngo.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=\ngo.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\ngolang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU=\ngolang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0=\ngolang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=\ngolang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=\ngolang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=\ngolang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\n"
  },
  {
    "path": "main.go",
    "content": "//go:generate openapi-generator generate -i openapi-spec.yml -g go -o openapi --additional-properties=disallowAdditionalPropertiesIfNotPresent=false\n\npackage main\n\nimport (\n\t\"log\"\n\n\t\"github.com/ViRb3/wgcf/v2/cmd\"\n)\n\nfunc main() {\n\tif err := cmd.Execute(); err != nil {\n\t\tlog.Fatalf(\"%+v\\n\", err)\n\t}\n}\n"
  },
  {
    "path": "openapi/.gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n*.exe\n*.test\n*.prof\n"
  },
  {
    "path": "openapi/.openapi-generator/FILES",
    "content": ".gitignore\n.travis.yml\nREADME.md\napi/openapi.yaml\napi_default.go\nclient.go\nconfiguration.go\ndocs/Account.md\ndocs/BoundDevice.md\ndocs/Config.md\ndocs/ConfigInterface.md\ndocs/ConfigServices.md\ndocs/DefaultAPI.md\ndocs/Endpoint.md\ndocs/GetClientConfig200Response.md\ndocs/GetClientConfig200ResponseCaptivePortalInner.md\ndocs/GetClientConfig200ResponseCaptivePortalInnerNetworksInner.md\ndocs/GetClientConfig200ResponseDenylistInner.md\ndocs/GetClientConfig200ResponseDenylistInnerNetworks.md\ndocs/GetSourceDevice200Response.md\ndocs/IPv4Network.md\ndocs/IPv6Network.md\ndocs/NetworkAddress.md\ndocs/Peer.md\ndocs/Register200Response.md\ndocs/RegisterRequest.md\ndocs/ResetAccountLicense200Response.md\ndocs/SourceDevice.md\ndocs/UpdateAccount200Response.md\ndocs/UpdateAccountRequest.md\ndocs/UpdateBoundDeviceRequest.md\ndocs/UpdateSourceDevice200Response.md\ndocs/UpdateSourceDeviceRequest.md\ngit_push.sh\ngo.mod\ngo.sum\nmodel_account.go\nmodel_bound_device.go\nmodel_config.go\nmodel_config_interface.go\nmodel_config_services.go\nmodel_endpoint.go\nmodel_get_client_config_200_response.go\nmodel_get_client_config_200_response_captive_portal_inner.go\nmodel_get_client_config_200_response_captive_portal_inner_networks_inner.go\nmodel_get_client_config_200_response_denylist_inner.go\nmodel_get_client_config_200_response_denylist_inner_networks.go\nmodel_get_source_device_200_response.go\nmodel_ipv4_network.go\nmodel_ipv6_network.go\nmodel_network_address.go\nmodel_peer.go\nmodel_register_200_response.go\nmodel_register_request.go\nmodel_reset_account_license_200_response.go\nmodel_source_device.go\nmodel_update_account_200_response.go\nmodel_update_account_request.go\nmodel_update_bound_device_request.go\nmodel_update_source_device_200_response.go\nmodel_update_source_device_request.go\nresponse.go\nutils.go\n"
  },
  {
    "path": "openapi/.openapi-generator/VERSION",
    "content": "7.14.0\n"
  },
  {
    "path": "openapi/.openapi-generator-ignore",
    "content": "# OpenAPI Generator Ignore\n# Generated by openapi-generator https://github.com/openapitools/openapi-generator\n\n# Use this file to prevent files from being overwritten by the generator.\n# The patterns follow closely to .gitignore or .dockerignore.\n\n# As an example, the C# client generator defines ApiClient.cs.\n# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:\n#ApiClient.cs\n\n# You can match any string of characters against a directory, file or extension with a single asterisk (*):\n#foo/*/qux\n# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux\n\n# You can recursively match patterns against a directory, file or extension with a double asterisk (**):\n#foo/**/qux\n# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux\n\n# You can also negate patterns with an exclamation (!).\n# For example, you can ignore all files in a docs folder with the file extension .md:\n#docs/*.md\n# Then explicitly reverse the ignore rule for a single file:\n#!docs/README.md\n"
  },
  {
    "path": "openapi/.travis.yml",
    "content": "language: go\n\ninstall:\n  - go get -d -v .\n\nscript:\n  - go build -v ./\n\n"
  },
  {
    "path": "openapi/README.md",
    "content": "# Go API client for openapi\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\n## Overview\nThis API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project.  By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.\n\n- API version: 536\n- Package version: 1.0.0\n- Generator version: 7.14.0\n- Build package: org.openapitools.codegen.languages.GoClientCodegen\n\n## Installation\n\nInstall the following dependencies:\n\n```sh\ngo get github.com/stretchr/testify/assert\ngo get golang.org/x/net/context\n```\n\nPut the package under your project folder and add the following in import:\n\n```go\nimport openapi \"github.com/GIT_USER_ID/GIT_REPO_ID\"\n```\n\nTo use a proxy, set the environment variable `HTTP_PROXY`:\n\n```go\nos.Setenv(\"HTTP_PROXY\", \"http://proxy_name:proxy_port\")\n```\n\n## Configuration of Server URL\n\nDefault configuration comes with `Servers` field that contains server objects as defined in the OpenAPI specification.\n\n### Select Server Configuration\n\nFor using other server than the one defined on index 0 set context value `openapi.ContextServerIndex` of type `int`.\n\n```go\nctx := context.WithValue(context.Background(), openapi.ContextServerIndex, 1)\n```\n\n### Templated Server URL\n\nTemplated server URL is formatted using default variables from configuration or from context value `openapi.ContextServerVariables` of type `map[string]string`.\n\n```go\nctx := context.WithValue(context.Background(), openapi.ContextServerVariables, map[string]string{\n\t\"basePath\": \"v2\",\n})\n```\n\nNote, enum values are always validated and all unused variables are silently ignored.\n\n### URLs Configuration per Operation\n\nEach operation can use different server URL defined using `OperationServers` map in the `Configuration`.\nAn operation is uniquely identified by `\"{classname}Service.{nickname}\"` string.\nSimilar rules for overriding default operation server index and variables applies by using `openapi.ContextOperationServerIndices` and `openapi.ContextOperationServerVariables` context maps.\n\n```go\nctx := context.WithValue(context.Background(), openapi.ContextOperationServerIndices, map[string]int{\n\t\"{classname}Service.{nickname}\": 2,\n})\nctx = context.WithValue(context.Background(), openapi.ContextOperationServerVariables, map[string]map[string]string{\n\t\"{classname}Service.{nickname}\": {\n\t\t\"port\": \"8443\",\n\t},\n})\n```\n\n## Documentation for API Endpoints\n\nAll URIs are relative to *http://localhost*\n\nClass | Method | HTTP request | Description\n------------ | ------------- | ------------- | -------------\n*DefaultAPI* | [**DeleteBoundDevice**](docs/DefaultAPI.md#deletebounddevice) | **Delete** /{apiVersion}/reg/{sourceDeviceId}/account/reg/{boundDeviceId} | DeleteBoundDevice\n*DefaultAPI* | [**GetAccount**](docs/DefaultAPI.md#getaccount) | **Get** /{apiVersion}/reg/{sourceDeviceId}/account | GetAccount\n*DefaultAPI* | [**GetBoundDevices**](docs/DefaultAPI.md#getbounddevices) | **Get** /{apiVersion}/reg/{sourceDeviceId}/account/devices | GetBoundDevices\n*DefaultAPI* | [**GetClientConfig**](docs/DefaultAPI.md#getclientconfig) | **Get** /{apiVersion}/client_config | GetClientConfig\n*DefaultAPI* | [**GetSourceDevice**](docs/DefaultAPI.md#getsourcedevice) | **Get** /{apiVersion}/reg/{sourceDeviceId} | GetSourceDevice\n*DefaultAPI* | [**Register**](docs/DefaultAPI.md#register) | **Post** /{apiVersion}/reg | Register\n*DefaultAPI* | [**ResetAccountLicense**](docs/DefaultAPI.md#resetaccountlicense) | **Post** /{apiVersion}/reg/{sourceDeviceId}/account/license | ResetAccountLicense\n*DefaultAPI* | [**UpdateAccount**](docs/DefaultAPI.md#updateaccount) | **Put** /{apiVersion}/reg/{sourceDeviceId}/account | UpdateAccount\n*DefaultAPI* | [**UpdateBoundDevice**](docs/DefaultAPI.md#updatebounddevice) | **Patch** /{apiVersion}/reg/{sourceDeviceId}/account/reg/{boundDeviceId} | UpdateBoundDevice\n*DefaultAPI* | [**UpdateSourceDevice**](docs/DefaultAPI.md#updatesourcedevice) | **Patch** /{apiVersion}/reg/{sourceDeviceId} | UpdateSourceDevice\n\n\n## Documentation For Models\n\n - [Account](docs/Account.md)\n - [BoundDevice](docs/BoundDevice.md)\n - [Config](docs/Config.md)\n - [ConfigInterface](docs/ConfigInterface.md)\n - [ConfigServices](docs/ConfigServices.md)\n - [Endpoint](docs/Endpoint.md)\n - [GetClientConfig200Response](docs/GetClientConfig200Response.md)\n - [GetClientConfig200ResponseCaptivePortalInner](docs/GetClientConfig200ResponseCaptivePortalInner.md)\n - [GetClientConfig200ResponseCaptivePortalInnerNetworksInner](docs/GetClientConfig200ResponseCaptivePortalInnerNetworksInner.md)\n - [GetClientConfig200ResponseDenylistInner](docs/GetClientConfig200ResponseDenylistInner.md)\n - [GetClientConfig200ResponseDenylistInnerNetworks](docs/GetClientConfig200ResponseDenylistInnerNetworks.md)\n - [GetSourceDevice200Response](docs/GetSourceDevice200Response.md)\n - [IPv4Network](docs/IPv4Network.md)\n - [IPv6Network](docs/IPv6Network.md)\n - [NetworkAddress](docs/NetworkAddress.md)\n - [Peer](docs/Peer.md)\n - [Register200Response](docs/Register200Response.md)\n - [RegisterRequest](docs/RegisterRequest.md)\n - [ResetAccountLicense200Response](docs/ResetAccountLicense200Response.md)\n - [SourceDevice](docs/SourceDevice.md)\n - [UpdateAccount200Response](docs/UpdateAccount200Response.md)\n - [UpdateAccountRequest](docs/UpdateAccountRequest.md)\n - [UpdateBoundDeviceRequest](docs/UpdateBoundDeviceRequest.md)\n - [UpdateSourceDevice200Response](docs/UpdateSourceDevice200Response.md)\n - [UpdateSourceDeviceRequest](docs/UpdateSourceDeviceRequest.md)\n\n\n## Documentation For Authorization\n\nEndpoints do not require authorization.\n\n\n## Documentation for Utility Methods\n\nDue to the fact that model structure members are all pointers, this package contains\na number of utility functions to easily obtain pointers to values of basic types.\nEach of these functions takes a value of the given basic type and returns a pointer to it:\n\n* `PtrBool`\n* `PtrInt`\n* `PtrInt32`\n* `PtrInt64`\n* `PtrFloat`\n* `PtrFloat32`\n* `PtrFloat64`\n* `PtrString`\n* `PtrTime`\n\n## Author\n\n\n\n"
  },
  {
    "path": "openapi/api/openapi.yaml",
    "content": "openapi: 3.0.1\ninfo:\n  title: Cloudflare WARP API\n  version: \"536\"\nservers:\n- url: /\npaths:\n  /{apiVersion}/client_config:\n    get:\n      operationId: GetClientConfig\n      parameters:\n      - explode: false\n        in: path\n        name: apiVersion\n        required: true\n        schema:\n          type: string\n        style: simple\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/GetClientConfig_200_Response\"\n          description: \"\"\n      summary: GetClientConfig\n  /{apiVersion}/reg:\n    post:\n      operationId: Register\n      parameters:\n      - explode: false\n        in: path\n        name: apiVersion\n        required: true\n        schema:\n          type: string\n        style: simple\n      requestBody:\n        content:\n          application/json:\n            schema:\n              $ref: \"#/components/schemas/Register_Request\"\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/Register_200_Response\"\n          description: \"\"\n      summary: Register\n  /{apiVersion}/reg/{sourceDeviceId}:\n    get:\n      operationId: GetSourceDevice\n      parameters:\n      - explode: false\n        in: path\n        name: apiVersion\n        required: true\n        schema:\n          type: string\n        style: simple\n      - explode: false\n        in: path\n        name: sourceDeviceId\n        required: true\n        schema:\n          type: string\n        style: simple\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/GetSourceDevice_200_Response\"\n          description: \"\"\n      summary: GetSourceDevice\n    patch:\n      operationId: UpdateSourceDevice\n      parameters:\n      - explode: false\n        in: path\n        name: apiVersion\n        required: true\n        schema:\n          type: string\n        style: simple\n      - explode: false\n        in: path\n        name: sourceDeviceId\n        required: true\n        schema:\n          type: string\n        style: simple\n      requestBody:\n        content:\n          application/json:\n            schema:\n              $ref: \"#/components/schemas/UpdateSourceDevice_Request\"\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/UpdateSourceDevice_200_Response\"\n          description: \"\"\n      summary: UpdateSourceDevice\n  /{apiVersion}/reg/{sourceDeviceId}/account:\n    get:\n      operationId: GetAccount\n      parameters:\n      - explode: false\n        in: path\n        name: sourceDeviceId\n        required: true\n        schema:\n          type: string\n        style: simple\n      - explode: false\n        in: path\n        name: apiVersion\n        required: true\n        schema:\n          type: string\n        style: simple\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/GetAccount_200_Response\"\n          description: \"\"\n      summary: GetAccount\n    put:\n      operationId: UpdateAccount\n      parameters:\n      - explode: false\n        in: path\n        name: sourceDeviceId\n        required: true\n        schema:\n          type: string\n        style: simple\n      - explode: false\n        in: path\n        name: apiVersion\n        required: true\n        schema:\n          type: string\n        style: simple\n      requestBody:\n        content:\n          application/json:\n            schema:\n              $ref: \"#/components/schemas/UpdateAccount_Request\"\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/UpdateAccount_200_Response\"\n          description: \"\"\n      summary: UpdateAccount\n  /{apiVersion}/reg/{sourceDeviceId}/account/devices:\n    get:\n      operationId: GetBoundDevices\n      parameters:\n      - explode: false\n        in: path\n        name: sourceDeviceId\n        required: true\n        schema:\n          type: string\n        style: simple\n      - explode: false\n        in: path\n        name: apiVersion\n        required: true\n        schema:\n          type: string\n        style: simple\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                items:\n                  $ref: \"#/components/schemas/GetBoundDevices_200_Response\"\n                type: array\n          description: \"\"\n      summary: GetBoundDevices\n  /{apiVersion}/reg/{sourceDeviceId}/account/license:\n    post:\n      operationId: ResetAccountLicense\n      parameters:\n      - explode: false\n        in: path\n        name: sourceDeviceId\n        required: true\n        schema:\n          type: string\n        style: simple\n      - explode: false\n        in: path\n        name: apiVersion\n        required: true\n        schema:\n          type: string\n        style: simple\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/ResetAccountLicense_200_Response\"\n          description: \"\"\n      summary: ResetAccountLicense\n  /{apiVersion}/reg/{sourceDeviceId}/account/reg/{boundDeviceId}:\n    delete:\n      operationId: DeleteBoundDevice\n      parameters:\n      - explode: false\n        in: path\n        name: sourceDeviceId\n        required: true\n        schema:\n          type: string\n        style: simple\n      - explode: false\n        in: path\n        name: apiVersion\n        required: true\n        schema:\n          type: string\n        style: simple\n      - explode: false\n        in: path\n        name: boundDeviceId\n        required: true\n        schema:\n          type: string\n        style: simple\n      responses:\n        \"204\":\n          description: \"\"\n      summary: DeleteBoundDevice\n    patch:\n      operationId: UpdateBoundDevice\n      parameters:\n      - explode: false\n        in: path\n        name: sourceDeviceId\n        required: true\n        schema:\n          type: string\n        style: simple\n      - explode: false\n        in: path\n        name: apiVersion\n        required: true\n        schema:\n          type: string\n        style: simple\n      - explode: false\n        in: path\n        name: boundDeviceId\n        required: true\n        schema:\n          type: string\n        style: simple\n      requestBody:\n        content:\n          application/json:\n            schema:\n              $ref: \"#/components/schemas/UpdateBoundDevice_Request\"\n      responses:\n        \"200\":\n          content:\n            application/json:\n              schema:\n                items:\n                  $ref: \"#/components/schemas/UpdateBoundDevice_200_Response\"\n                type: array\n          description: \"\"\n      summary: UpdateBoundDevice\ncomponents:\n  schemas:\n    Account:\n      example:\n        license: license\n        referral_count: 5.962133916683182\n        account_type: account_type\n        role: role\n        referral_renewal_countdown: 5.637376656633329\n        created: created\n        quota: 1.4658129805029452\n        warp_plus: true\n        usage: 2.3021358869347655\n        premium_data: 6.027456183070403\n        id: id\n        updated: updated\n      properties:\n        account_type:\n          type: string\n        created:\n          type: string\n        id:\n          type: string\n        license:\n          type: string\n        premium_data:\n          type: number\n        quota:\n          type: number\n        referral_count:\n          type: number\n        referral_renewal_countdown:\n          type: number\n        role:\n          type: string\n        updated:\n          type: string\n        warp_plus:\n          type: boolean\n        usage:\n          type: number\n      required:\n      - account_type\n      - created\n      - id\n      - license\n      - premium_data\n      - quota\n      - referral_count\n      - referral_renewal_countdown\n      - role\n      - updated\n      - warp_plus\n      type: object\n    BoundDevice:\n      properties:\n        activated:\n          type: string\n        active:\n          type: boolean\n        created:\n          type: string\n        id:\n          type: string\n        model:\n          type: string\n        name:\n          type: string\n        role:\n          type: string\n        type:\n          type: string\n      required:\n      - activated\n      - active\n      - created\n      - id\n      - model\n      - role\n      - type\n      type: object\n    NetworkAddress:\n      example:\n        v6: v6\n        v4: v4\n      properties:\n        v4:\n          type: string\n        v6:\n          type: string\n      required:\n      - v4\n      - v6\n      type: object\n    Endpoint:\n      example:\n        v6: v6\n        host: host\n        v4: v4\n      properties:\n        host:\n          type: string\n        v4:\n          type: string\n        v6:\n          type: string\n      required:\n      - host\n      - v4\n      - v6\n      type: object\n    Peer:\n      example:\n        public_key: public_key\n        endpoint:\n          v6: v6\n          host: host\n          v4: v4\n      properties:\n        endpoint:\n          $ref: \"#/components/schemas/Endpoint\"\n        public_key:\n          type: string\n      required:\n      - endpoint\n      - public_key\n      type: object\n    Config:\n      example:\n        peers:\n        - public_key: public_key\n          endpoint:\n            v6: v6\n            host: host\n            v4: v4\n        - public_key: public_key\n          endpoint:\n            v6: v6\n            host: host\n            v4: v4\n        services:\n          http_proxy: http_proxy\n        interface:\n          addresses:\n            v6: v6\n            v4: v4\n        client_id: client_id\n      properties:\n        client_id:\n          type: string\n        interface:\n          $ref: \"#/components/schemas/Config_interface\"\n        peers:\n          items:\n            $ref: \"#/components/schemas/Peer\"\n          type: array\n        services:\n          $ref: \"#/components/schemas/Config_services\"\n      required:\n      - client_id\n      - interface\n      - peers\n      - services\n      type: object\n    SourceDevice:\n      properties:\n        created:\n          type: string\n        enabled:\n          type: boolean\n        fcm_token:\n          type: string\n        id:\n          type: string\n        install_id:\n          type: string\n        key:\n          type: string\n        locale:\n          type: string\n        model:\n          type: string\n        name:\n          type: string\n        place:\n          type: number\n        tos:\n          type: string\n        type:\n          type: string\n        updated:\n          type: string\n        waitlist_enabled:\n          type: boolean\n        warp_enabled:\n          type: boolean\n      required:\n      - created\n      - enabled\n      - fcm_token\n      - id\n      - install_id\n      - key\n      - locale\n      - model\n      - name\n      - place\n      - tos\n      - type\n      - updated\n      - waitlist_enabled\n      - warp_enabled\n      type: object\n    IPv4Network:\n      example:\n        address: address\n        netmask: netmask\n      properties:\n        address:\n          type: string\n        netmask:\n          type: string\n      required:\n      - address\n      - netmask\n      type: object\n    IPv6Network:\n      example:\n        address: address\n        prefix: 0.8008281904610115\n      properties:\n        address:\n          type: string\n        prefix:\n          type: number\n      required:\n      - address\n      - prefix\n      type: object\n    GetAccount_200_Response:\n      $ref: \"#/components/schemas/Account\"\n    GetBoundDevices_200_Response:\n      $ref: \"#/components/schemas/BoundDevice\"\n    GetClientConfig_200_Response:\n      example:\n        captive_portal:\n        - name: name\n          networks:\n          - address: address\n          - address: address\n        - name: name\n          networks:\n          - address: address\n          - address: address\n        denylist:\n        - visible: true\n          name: name\n          networks:\n            v6:\n            - address: address\n              prefix: 0.8008281904610115\n            - address: address\n              prefix: 0.8008281904610115\n            v4:\n            - address: address\n              netmask: netmask\n            - address: address\n              netmask: netmask\n          android-packages:\n          - android-packages\n          - android-packages\n        - visible: true\n          name: name\n          networks:\n            v6:\n            - address: address\n              prefix: 0.8008281904610115\n            - address: address\n              prefix: 0.8008281904610115\n            v4:\n            - address: address\n              netmask: netmask\n            - address: address\n              netmask: netmask\n          android-packages:\n          - android-packages\n          - android-packages\n        referral_reward_bytes: 1.4658129805029452\n        premium_data_bytes: 6.027456183070403\n      properties:\n        captive_portal:\n          items:\n            $ref: \"#/components/schemas/GetClientConfig_200_Response_captive_portal_inner\"\n          type: array\n        denylist:\n          items:\n            $ref: \"#/components/schemas/GetClientConfig_200_Response_denylist_inner\"\n          type: array\n        premium_data_bytes:\n          type: number\n        referral_reward_bytes:\n          type: number\n      required:\n      - captive_portal\n      - denylist\n      - premium_data_bytes\n      - referral_reward_bytes\n      type: object\n    GetSourceDevice_200_Response:\n      allOf:\n      - $ref: \"#/components/schemas/SourceDevice\"\n      - properties:\n          account:\n            $ref: \"#/components/schemas/Account\"\n          config:\n            $ref: \"#/components/schemas/Config\"\n        required:\n        - account\n        - config\n        type: object\n      example:\n        created: created\n        locale: locale\n        type: type\n        enabled: true\n        waitlist_enabled: true\n        install_id: install_id\n        warp_enabled: true\n        fcm_token: fcm_token\n        name: name\n        tos: tos\n        model: model\n        id: id\n        place: 0.8008281904610115\n        updated: updated\n        config:\n          peers:\n          - public_key: public_key\n            endpoint:\n              v6: v6\n              host: host\n              v4: v4\n          - public_key: public_key\n            endpoint:\n              v6: v6\n              host: host\n              v4: v4\n          services:\n            http_proxy: http_proxy\n          interface:\n            addresses:\n              v6: v6\n              v4: v4\n          client_id: client_id\n        key: key\n        account:\n          license: license\n          referral_count: 5.962133916683182\n          account_type: account_type\n          role: role\n          referral_renewal_countdown: 5.637376656633329\n          created: created\n          quota: 1.4658129805029452\n          warp_plus: true\n          usage: 2.3021358869347655\n          premium_data: 6.027456183070403\n          id: id\n          updated: updated\n    Register_200_Response:\n      allOf:\n      - $ref: \"#/components/schemas/SourceDevice\"\n      - properties:\n          account:\n            $ref: \"#/components/schemas/Account\"\n          config:\n            $ref: \"#/components/schemas/Config\"\n          token:\n            type: string\n        required:\n        - account\n        - config\n        - token\n        type: object\n      example:\n        created: created\n        locale: locale\n        type: type\n        enabled: true\n        token: token\n        waitlist_enabled: true\n        install_id: install_id\n        warp_enabled: true\n        fcm_token: fcm_token\n        name: name\n        tos: tos\n        model: model\n        id: id\n        place: 0.8008281904610115\n        updated: updated\n        config:\n          peers:\n          - public_key: public_key\n            endpoint:\n              v6: v6\n              host: host\n              v4: v4\n          - public_key: public_key\n            endpoint:\n              v6: v6\n              host: host\n              v4: v4\n          services:\n            http_proxy: http_proxy\n          interface:\n            addresses:\n              v6: v6\n              v4: v4\n          client_id: client_id\n        key: key\n        account:\n          license: license\n          referral_count: 5.962133916683182\n          account_type: account_type\n          role: role\n          referral_renewal_countdown: 5.637376656633329\n          created: created\n          quota: 1.4658129805029452\n          warp_plus: true\n          usage: 2.3021358869347655\n          premium_data: 6.027456183070403\n          id: id\n          updated: updated\n    Register_Request:\n      properties:\n        fcm_token:\n          type: string\n        install_id:\n          type: string\n        key:\n          type: string\n        locale:\n          type: string\n        model:\n          type: string\n        tos:\n          type: string\n        type:\n          type: string\n      required:\n      - fcm_token\n      - install_id\n      - key\n      - locale\n      - model\n      - tos\n      - type\n      type: object\n    ResetAccountLicense_200_Response:\n      example:\n        license: license\n      properties:\n        license:\n          type: string\n      required:\n      - license\n      type: object\n    UpdateAccount_200_Response:\n      example:\n        referral_count: 1.4658129805029452\n        role: role\n        referral_renewal_countdown: 5.962133916683182\n        created: created\n        quota: 6.027456183070403\n        warp_plus: true\n        premium_data: 0.8008281904610115\n        id: id\n        updated: updated\n      properties:\n        created:\n          type: string\n        id:\n          type: string\n        premium_data:\n          type: number\n        quota:\n          type: number\n        referral_count:\n          type: number\n        referral_renewal_countdown:\n          type: number\n        role:\n          type: string\n        updated:\n          type: string\n        warp_plus:\n          type: boolean\n      required:\n      - created\n      - id\n      - premium_data\n      - quota\n      - referral_count\n      - referral_renewal_countdown\n      - role\n      - updated\n      - warp_plus\n      type: object\n    UpdateAccount_Request:\n      properties:\n        license:\n          type: string\n      required:\n      - license\n      type: object\n    UpdateBoundDevice_200_Response:\n      $ref: \"#/components/schemas/BoundDevice\"\n    UpdateBoundDevice_Request:\n      properties:\n        active:\n          type: boolean\n        name:\n          type: string\n      type: object\n    UpdateSourceDevice_200_Response:\n      allOf:\n      - $ref: \"#/components/schemas/SourceDevice\"\n      - properties:\n          account:\n            $ref: \"#/components/schemas/Account\"\n          config:\n            $ref: \"#/components/schemas/Config\"\n        required:\n        - account\n        - config\n        type: object\n      example:\n        created: created\n        locale: locale\n        type: type\n        enabled: true\n        waitlist_enabled: true\n        install_id: install_id\n        warp_enabled: true\n        fcm_token: fcm_token\n        name: name\n        tos: tos\n        model: model\n        id: id\n        place: 0.8008281904610115\n        updated: updated\n        config:\n          peers:\n          - public_key: public_key\n            endpoint:\n              v6: v6\n              host: host\n              v4: v4\n          - public_key: public_key\n            endpoint:\n              v6: v6\n              host: host\n              v4: v4\n          services:\n            http_proxy: http_proxy\n          interface:\n            addresses:\n              v6: v6\n              v4: v4\n          client_id: client_id\n        key: key\n        account:\n          license: license\n          referral_count: 5.962133916683182\n          account_type: account_type\n          role: role\n          referral_renewal_countdown: 5.637376656633329\n          created: created\n          quota: 1.4658129805029452\n          warp_plus: true\n          usage: 2.3021358869347655\n          premium_data: 6.027456183070403\n          id: id\n          updated: updated\n    UpdateSourceDevice_Request:\n      properties:\n        key:\n          type: string\n      required:\n      - key\n      type: object\n    Config_interface:\n      example:\n        addresses:\n          v6: v6\n          v4: v4\n      properties:\n        addresses:\n          $ref: \"#/components/schemas/NetworkAddress\"\n      required:\n      - addresses\n      type: object\n    Config_services:\n      example:\n        http_proxy: http_proxy\n      properties:\n        http_proxy:\n          type: string\n      required:\n      - http_proxy\n      type: object\n    GetClientConfig_200_Response_captive_portal_inner_networks_inner:\n      example:\n        address: address\n      properties:\n        address:\n          type: string\n      required:\n      - address\n      type: object\n    GetClientConfig_200_Response_captive_portal_inner:\n      example:\n        name: name\n        networks:\n        - address: address\n        - address: address\n      properties:\n        name:\n          type: string\n        networks:\n          items:\n            $ref: \"#/components/schemas/GetClientConfig_200_Response_captive_portal_inner_networks_inner\"\n          type: array\n      required:\n      - name\n      - networks\n      type: object\n    GetClientConfig_200_Response_denylist_inner_networks:\n      example:\n        v6:\n        - address: address\n          prefix: 0.8008281904610115\n        - address: address\n          prefix: 0.8008281904610115\n        v4:\n        - address: address\n          netmask: netmask\n        - address: address\n          netmask: netmask\n      properties:\n        v4:\n          items:\n            $ref: \"#/components/schemas/IPv4Network\"\n          type: array\n        v6:\n          items:\n            $ref: \"#/components/schemas/IPv6Network\"\n          type: array\n      required:\n      - v4\n      - v6\n      type: object\n    GetClientConfig_200_Response_denylist_inner:\n      example:\n        visible: true\n        name: name\n        networks:\n          v6:\n          - address: address\n            prefix: 0.8008281904610115\n          - address: address\n            prefix: 0.8008281904610115\n          v4:\n          - address: address\n            netmask: netmask\n          - address: address\n            netmask: netmask\n        android-packages:\n        - android-packages\n        - android-packages\n      properties:\n        android-packages:\n          items:\n            type: string\n          type: array\n        name:\n          type: string\n        networks:\n          $ref: \"#/components/schemas/GetClientConfig_200_Response_denylist_inner_networks\"\n        visible:\n          type: boolean\n      required:\n      - name\n      - visible\n      type: object\n"
  },
  {
    "path": "openapi/api_default.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n)\n\n\n// DefaultAPIService DefaultAPI service\ntype DefaultAPIService service\n\ntype ApiDeleteBoundDeviceRequest struct {\n\tctx context.Context\n\tApiService *DefaultAPIService\n\tsourceDeviceId string\n\tapiVersion string\n\tboundDeviceId string\n}\n\nfunc (r ApiDeleteBoundDeviceRequest) Execute() (*http.Response, error) {\n\treturn r.ApiService.DeleteBoundDeviceExecute(r)\n}\n\n/*\nDeleteBoundDevice DeleteBoundDevice\n\n @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().\n @param sourceDeviceId\n @param apiVersion\n @param boundDeviceId\n @return ApiDeleteBoundDeviceRequest\n*/\nfunc (a *DefaultAPIService) DeleteBoundDevice(ctx context.Context, sourceDeviceId string, apiVersion string, boundDeviceId string) ApiDeleteBoundDeviceRequest {\n\treturn ApiDeleteBoundDeviceRequest{\n\t\tApiService: a,\n\t\tctx: ctx,\n\t\tsourceDeviceId: sourceDeviceId,\n\t\tapiVersion: apiVersion,\n\t\tboundDeviceId: boundDeviceId,\n\t}\n}\n\n// Execute executes the request\nfunc (a *DefaultAPIService) DeleteBoundDeviceExecute(r ApiDeleteBoundDeviceRequest) (*http.Response, error) {\n\tvar (\n\t\tlocalVarHTTPMethod   = http.MethodDelete\n\t\tlocalVarPostBody     interface{}\n\t\tformFiles            []formFile\n\t)\n\n\tlocalBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, \"DefaultAPIService.DeleteBoundDevice\")\n\tif err != nil {\n\t\treturn nil, &GenericOpenAPIError{error: err.Error()}\n\t}\n\n\tlocalVarPath := localBasePath + \"/{apiVersion}/reg/{sourceDeviceId}/account/reg/{boundDeviceId}\"\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"sourceDeviceId\"+\"}\", url.PathEscape(parameterValueToString(r.sourceDeviceId, \"sourceDeviceId\")), -1)\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"apiVersion\"+\"}\", url.PathEscape(parameterValueToString(r.apiVersion, \"apiVersion\")), -1)\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"boundDeviceId\"+\"}\", url.PathEscape(parameterValueToString(r.boundDeviceId, \"boundDeviceId\")), -1)\n\n\tlocalVarHeaderParams := make(map[string]string)\n\tlocalVarQueryParams := url.Values{}\n\tlocalVarFormParams := url.Values{}\n\n\t// to determine the Content-Type header\n\tlocalVarHTTPContentTypes := []string{}\n\n\t// set Content-Type header\n\tlocalVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)\n\tif localVarHTTPContentType != \"\" {\n\t\tlocalVarHeaderParams[\"Content-Type\"] = localVarHTTPContentType\n\t}\n\n\t// to determine the Accept header\n\tlocalVarHTTPHeaderAccepts := []string{}\n\n\t// set Accept header\n\tlocalVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)\n\tif localVarHTTPHeaderAccept != \"\" {\n\t\tlocalVarHeaderParams[\"Accept\"] = localVarHTTPHeaderAccept\n\t}\n\treq, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlocalVarHTTPResponse, err := a.client.callAPI(req)\n\tif err != nil || localVarHTTPResponse == nil {\n\t\treturn localVarHTTPResponse, err\n\t}\n\n\tlocalVarBody, err := io.ReadAll(localVarHTTPResponse.Body)\n\tlocalVarHTTPResponse.Body.Close()\n\tlocalVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))\n\tif err != nil {\n\t\treturn localVarHTTPResponse, err\n\t}\n\n\tif localVarHTTPResponse.StatusCode >= 300 {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: localVarHTTPResponse.Status,\n\t\t}\n\t\treturn localVarHTTPResponse, newErr\n\t}\n\n\treturn localVarHTTPResponse, nil\n}\n\ntype ApiGetAccountRequest struct {\n\tctx context.Context\n\tApiService *DefaultAPIService\n\tsourceDeviceId string\n\tapiVersion string\n}\n\nfunc (r ApiGetAccountRequest) Execute() (*Account, *http.Response, error) {\n\treturn r.ApiService.GetAccountExecute(r)\n}\n\n/*\nGetAccount GetAccount\n\n @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().\n @param sourceDeviceId\n @param apiVersion\n @return ApiGetAccountRequest\n*/\nfunc (a *DefaultAPIService) GetAccount(ctx context.Context, sourceDeviceId string, apiVersion string) ApiGetAccountRequest {\n\treturn ApiGetAccountRequest{\n\t\tApiService: a,\n\t\tctx: ctx,\n\t\tsourceDeviceId: sourceDeviceId,\n\t\tapiVersion: apiVersion,\n\t}\n}\n\n// Execute executes the request\n//  @return Account\nfunc (a *DefaultAPIService) GetAccountExecute(r ApiGetAccountRequest) (*Account, *http.Response, error) {\n\tvar (\n\t\tlocalVarHTTPMethod   = http.MethodGet\n\t\tlocalVarPostBody     interface{}\n\t\tformFiles            []formFile\n\t\tlocalVarReturnValue  *Account\n\t)\n\n\tlocalBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, \"DefaultAPIService.GetAccount\")\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}\n\t}\n\n\tlocalVarPath := localBasePath + \"/{apiVersion}/reg/{sourceDeviceId}/account\"\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"sourceDeviceId\"+\"}\", url.PathEscape(parameterValueToString(r.sourceDeviceId, \"sourceDeviceId\")), -1)\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"apiVersion\"+\"}\", url.PathEscape(parameterValueToString(r.apiVersion, \"apiVersion\")), -1)\n\n\tlocalVarHeaderParams := make(map[string]string)\n\tlocalVarQueryParams := url.Values{}\n\tlocalVarFormParams := url.Values{}\n\n\t// to determine the Content-Type header\n\tlocalVarHTTPContentTypes := []string{}\n\n\t// set Content-Type header\n\tlocalVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)\n\tif localVarHTTPContentType != \"\" {\n\t\tlocalVarHeaderParams[\"Content-Type\"] = localVarHTTPContentType\n\t}\n\n\t// to determine the Accept header\n\tlocalVarHTTPHeaderAccepts := []string{\"application/json\"}\n\n\t// set Accept header\n\tlocalVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)\n\tif localVarHTTPHeaderAccept != \"\" {\n\t\tlocalVarHeaderParams[\"Accept\"] = localVarHTTPHeaderAccept\n\t}\n\treq, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, err\n\t}\n\n\tlocalVarHTTPResponse, err := a.client.callAPI(req)\n\tif err != nil || localVarHTTPResponse == nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tlocalVarBody, err := io.ReadAll(localVarHTTPResponse.Body)\n\tlocalVarHTTPResponse.Body.Close()\n\tlocalVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))\n\tif err != nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tif localVarHTTPResponse.StatusCode >= 300 {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: localVarHTTPResponse.Status,\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\terr = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: err.Error(),\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\treturn localVarReturnValue, localVarHTTPResponse, nil\n}\n\ntype ApiGetBoundDevicesRequest struct {\n\tctx context.Context\n\tApiService *DefaultAPIService\n\tsourceDeviceId string\n\tapiVersion string\n}\n\nfunc (r ApiGetBoundDevicesRequest) Execute() ([]BoundDevice, *http.Response, error) {\n\treturn r.ApiService.GetBoundDevicesExecute(r)\n}\n\n/*\nGetBoundDevices GetBoundDevices\n\n @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().\n @param sourceDeviceId\n @param apiVersion\n @return ApiGetBoundDevicesRequest\n*/\nfunc (a *DefaultAPIService) GetBoundDevices(ctx context.Context, sourceDeviceId string, apiVersion string) ApiGetBoundDevicesRequest {\n\treturn ApiGetBoundDevicesRequest{\n\t\tApiService: a,\n\t\tctx: ctx,\n\t\tsourceDeviceId: sourceDeviceId,\n\t\tapiVersion: apiVersion,\n\t}\n}\n\n// Execute executes the request\n//  @return []BoundDevice\nfunc (a *DefaultAPIService) GetBoundDevicesExecute(r ApiGetBoundDevicesRequest) ([]BoundDevice, *http.Response, error) {\n\tvar (\n\t\tlocalVarHTTPMethod   = http.MethodGet\n\t\tlocalVarPostBody     interface{}\n\t\tformFiles            []formFile\n\t\tlocalVarReturnValue  []BoundDevice\n\t)\n\n\tlocalBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, \"DefaultAPIService.GetBoundDevices\")\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}\n\t}\n\n\tlocalVarPath := localBasePath + \"/{apiVersion}/reg/{sourceDeviceId}/account/devices\"\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"sourceDeviceId\"+\"}\", url.PathEscape(parameterValueToString(r.sourceDeviceId, \"sourceDeviceId\")), -1)\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"apiVersion\"+\"}\", url.PathEscape(parameterValueToString(r.apiVersion, \"apiVersion\")), -1)\n\n\tlocalVarHeaderParams := make(map[string]string)\n\tlocalVarQueryParams := url.Values{}\n\tlocalVarFormParams := url.Values{}\n\n\t// to determine the Content-Type header\n\tlocalVarHTTPContentTypes := []string{}\n\n\t// set Content-Type header\n\tlocalVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)\n\tif localVarHTTPContentType != \"\" {\n\t\tlocalVarHeaderParams[\"Content-Type\"] = localVarHTTPContentType\n\t}\n\n\t// to determine the Accept header\n\tlocalVarHTTPHeaderAccepts := []string{\"application/json\"}\n\n\t// set Accept header\n\tlocalVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)\n\tif localVarHTTPHeaderAccept != \"\" {\n\t\tlocalVarHeaderParams[\"Accept\"] = localVarHTTPHeaderAccept\n\t}\n\treq, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, err\n\t}\n\n\tlocalVarHTTPResponse, err := a.client.callAPI(req)\n\tif err != nil || localVarHTTPResponse == nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tlocalVarBody, err := io.ReadAll(localVarHTTPResponse.Body)\n\tlocalVarHTTPResponse.Body.Close()\n\tlocalVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))\n\tif err != nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tif localVarHTTPResponse.StatusCode >= 300 {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: localVarHTTPResponse.Status,\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\terr = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: err.Error(),\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\treturn localVarReturnValue, localVarHTTPResponse, nil\n}\n\ntype ApiGetClientConfigRequest struct {\n\tctx context.Context\n\tApiService *DefaultAPIService\n\tapiVersion string\n}\n\nfunc (r ApiGetClientConfigRequest) Execute() (*GetClientConfig200Response, *http.Response, error) {\n\treturn r.ApiService.GetClientConfigExecute(r)\n}\n\n/*\nGetClientConfig GetClientConfig\n\n @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().\n @param apiVersion\n @return ApiGetClientConfigRequest\n*/\nfunc (a *DefaultAPIService) GetClientConfig(ctx context.Context, apiVersion string) ApiGetClientConfigRequest {\n\treturn ApiGetClientConfigRequest{\n\t\tApiService: a,\n\t\tctx: ctx,\n\t\tapiVersion: apiVersion,\n\t}\n}\n\n// Execute executes the request\n//  @return GetClientConfig200Response\nfunc (a *DefaultAPIService) GetClientConfigExecute(r ApiGetClientConfigRequest) (*GetClientConfig200Response, *http.Response, error) {\n\tvar (\n\t\tlocalVarHTTPMethod   = http.MethodGet\n\t\tlocalVarPostBody     interface{}\n\t\tformFiles            []formFile\n\t\tlocalVarReturnValue  *GetClientConfig200Response\n\t)\n\n\tlocalBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, \"DefaultAPIService.GetClientConfig\")\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}\n\t}\n\n\tlocalVarPath := localBasePath + \"/{apiVersion}/client_config\"\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"apiVersion\"+\"}\", url.PathEscape(parameterValueToString(r.apiVersion, \"apiVersion\")), -1)\n\n\tlocalVarHeaderParams := make(map[string]string)\n\tlocalVarQueryParams := url.Values{}\n\tlocalVarFormParams := url.Values{}\n\n\t// to determine the Content-Type header\n\tlocalVarHTTPContentTypes := []string{}\n\n\t// set Content-Type header\n\tlocalVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)\n\tif localVarHTTPContentType != \"\" {\n\t\tlocalVarHeaderParams[\"Content-Type\"] = localVarHTTPContentType\n\t}\n\n\t// to determine the Accept header\n\tlocalVarHTTPHeaderAccepts := []string{\"application/json\"}\n\n\t// set Accept header\n\tlocalVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)\n\tif localVarHTTPHeaderAccept != \"\" {\n\t\tlocalVarHeaderParams[\"Accept\"] = localVarHTTPHeaderAccept\n\t}\n\treq, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, err\n\t}\n\n\tlocalVarHTTPResponse, err := a.client.callAPI(req)\n\tif err != nil || localVarHTTPResponse == nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tlocalVarBody, err := io.ReadAll(localVarHTTPResponse.Body)\n\tlocalVarHTTPResponse.Body.Close()\n\tlocalVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))\n\tif err != nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tif localVarHTTPResponse.StatusCode >= 300 {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: localVarHTTPResponse.Status,\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\terr = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: err.Error(),\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\treturn localVarReturnValue, localVarHTTPResponse, nil\n}\n\ntype ApiGetSourceDeviceRequest struct {\n\tctx context.Context\n\tApiService *DefaultAPIService\n\tapiVersion string\n\tsourceDeviceId string\n}\n\nfunc (r ApiGetSourceDeviceRequest) Execute() (*GetSourceDevice200Response, *http.Response, error) {\n\treturn r.ApiService.GetSourceDeviceExecute(r)\n}\n\n/*\nGetSourceDevice GetSourceDevice\n\n @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().\n @param apiVersion\n @param sourceDeviceId\n @return ApiGetSourceDeviceRequest\n*/\nfunc (a *DefaultAPIService) GetSourceDevice(ctx context.Context, apiVersion string, sourceDeviceId string) ApiGetSourceDeviceRequest {\n\treturn ApiGetSourceDeviceRequest{\n\t\tApiService: a,\n\t\tctx: ctx,\n\t\tapiVersion: apiVersion,\n\t\tsourceDeviceId: sourceDeviceId,\n\t}\n}\n\n// Execute executes the request\n//  @return GetSourceDevice200Response\nfunc (a *DefaultAPIService) GetSourceDeviceExecute(r ApiGetSourceDeviceRequest) (*GetSourceDevice200Response, *http.Response, error) {\n\tvar (\n\t\tlocalVarHTTPMethod   = http.MethodGet\n\t\tlocalVarPostBody     interface{}\n\t\tformFiles            []formFile\n\t\tlocalVarReturnValue  *GetSourceDevice200Response\n\t)\n\n\tlocalBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, \"DefaultAPIService.GetSourceDevice\")\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}\n\t}\n\n\tlocalVarPath := localBasePath + \"/{apiVersion}/reg/{sourceDeviceId}\"\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"apiVersion\"+\"}\", url.PathEscape(parameterValueToString(r.apiVersion, \"apiVersion\")), -1)\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"sourceDeviceId\"+\"}\", url.PathEscape(parameterValueToString(r.sourceDeviceId, \"sourceDeviceId\")), -1)\n\n\tlocalVarHeaderParams := make(map[string]string)\n\tlocalVarQueryParams := url.Values{}\n\tlocalVarFormParams := url.Values{}\n\n\t// to determine the Content-Type header\n\tlocalVarHTTPContentTypes := []string{}\n\n\t// set Content-Type header\n\tlocalVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)\n\tif localVarHTTPContentType != \"\" {\n\t\tlocalVarHeaderParams[\"Content-Type\"] = localVarHTTPContentType\n\t}\n\n\t// to determine the Accept header\n\tlocalVarHTTPHeaderAccepts := []string{\"application/json\"}\n\n\t// set Accept header\n\tlocalVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)\n\tif localVarHTTPHeaderAccept != \"\" {\n\t\tlocalVarHeaderParams[\"Accept\"] = localVarHTTPHeaderAccept\n\t}\n\treq, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, err\n\t}\n\n\tlocalVarHTTPResponse, err := a.client.callAPI(req)\n\tif err != nil || localVarHTTPResponse == nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tlocalVarBody, err := io.ReadAll(localVarHTTPResponse.Body)\n\tlocalVarHTTPResponse.Body.Close()\n\tlocalVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))\n\tif err != nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tif localVarHTTPResponse.StatusCode >= 300 {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: localVarHTTPResponse.Status,\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\terr = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: err.Error(),\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\treturn localVarReturnValue, localVarHTTPResponse, nil\n}\n\ntype ApiRegisterRequest struct {\n\tctx context.Context\n\tApiService *DefaultAPIService\n\tapiVersion string\n\tregisterRequest *RegisterRequest\n}\n\nfunc (r ApiRegisterRequest) RegisterRequest(registerRequest RegisterRequest) ApiRegisterRequest {\n\tr.registerRequest = &registerRequest\n\treturn r\n}\n\nfunc (r ApiRegisterRequest) Execute() (*Register200Response, *http.Response, error) {\n\treturn r.ApiService.RegisterExecute(r)\n}\n\n/*\nRegister Register\n\n @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().\n @param apiVersion\n @return ApiRegisterRequest\n*/\nfunc (a *DefaultAPIService) Register(ctx context.Context, apiVersion string) ApiRegisterRequest {\n\treturn ApiRegisterRequest{\n\t\tApiService: a,\n\t\tctx: ctx,\n\t\tapiVersion: apiVersion,\n\t}\n}\n\n// Execute executes the request\n//  @return Register200Response\nfunc (a *DefaultAPIService) RegisterExecute(r ApiRegisterRequest) (*Register200Response, *http.Response, error) {\n\tvar (\n\t\tlocalVarHTTPMethod   = http.MethodPost\n\t\tlocalVarPostBody     interface{}\n\t\tformFiles            []formFile\n\t\tlocalVarReturnValue  *Register200Response\n\t)\n\n\tlocalBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, \"DefaultAPIService.Register\")\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}\n\t}\n\n\tlocalVarPath := localBasePath + \"/{apiVersion}/reg\"\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"apiVersion\"+\"}\", url.PathEscape(parameterValueToString(r.apiVersion, \"apiVersion\")), -1)\n\n\tlocalVarHeaderParams := make(map[string]string)\n\tlocalVarQueryParams := url.Values{}\n\tlocalVarFormParams := url.Values{}\n\n\t// to determine the Content-Type header\n\tlocalVarHTTPContentTypes := []string{\"application/json\"}\n\n\t// set Content-Type header\n\tlocalVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)\n\tif localVarHTTPContentType != \"\" {\n\t\tlocalVarHeaderParams[\"Content-Type\"] = localVarHTTPContentType\n\t}\n\n\t// to determine the Accept header\n\tlocalVarHTTPHeaderAccepts := []string{\"application/json\"}\n\n\t// set Accept header\n\tlocalVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)\n\tif localVarHTTPHeaderAccept != \"\" {\n\t\tlocalVarHeaderParams[\"Accept\"] = localVarHTTPHeaderAccept\n\t}\n\t// body params\n\tlocalVarPostBody = r.registerRequest\n\treq, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, err\n\t}\n\n\tlocalVarHTTPResponse, err := a.client.callAPI(req)\n\tif err != nil || localVarHTTPResponse == nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tlocalVarBody, err := io.ReadAll(localVarHTTPResponse.Body)\n\tlocalVarHTTPResponse.Body.Close()\n\tlocalVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))\n\tif err != nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tif localVarHTTPResponse.StatusCode >= 300 {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: localVarHTTPResponse.Status,\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\terr = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: err.Error(),\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\treturn localVarReturnValue, localVarHTTPResponse, nil\n}\n\ntype ApiResetAccountLicenseRequest struct {\n\tctx context.Context\n\tApiService *DefaultAPIService\n\tsourceDeviceId string\n\tapiVersion string\n}\n\nfunc (r ApiResetAccountLicenseRequest) Execute() (*ResetAccountLicense200Response, *http.Response, error) {\n\treturn r.ApiService.ResetAccountLicenseExecute(r)\n}\n\n/*\nResetAccountLicense ResetAccountLicense\n\n @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().\n @param sourceDeviceId\n @param apiVersion\n @return ApiResetAccountLicenseRequest\n*/\nfunc (a *DefaultAPIService) ResetAccountLicense(ctx context.Context, sourceDeviceId string, apiVersion string) ApiResetAccountLicenseRequest {\n\treturn ApiResetAccountLicenseRequest{\n\t\tApiService: a,\n\t\tctx: ctx,\n\t\tsourceDeviceId: sourceDeviceId,\n\t\tapiVersion: apiVersion,\n\t}\n}\n\n// Execute executes the request\n//  @return ResetAccountLicense200Response\nfunc (a *DefaultAPIService) ResetAccountLicenseExecute(r ApiResetAccountLicenseRequest) (*ResetAccountLicense200Response, *http.Response, error) {\n\tvar (\n\t\tlocalVarHTTPMethod   = http.MethodPost\n\t\tlocalVarPostBody     interface{}\n\t\tformFiles            []formFile\n\t\tlocalVarReturnValue  *ResetAccountLicense200Response\n\t)\n\n\tlocalBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, \"DefaultAPIService.ResetAccountLicense\")\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}\n\t}\n\n\tlocalVarPath := localBasePath + \"/{apiVersion}/reg/{sourceDeviceId}/account/license\"\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"sourceDeviceId\"+\"}\", url.PathEscape(parameterValueToString(r.sourceDeviceId, \"sourceDeviceId\")), -1)\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"apiVersion\"+\"}\", url.PathEscape(parameterValueToString(r.apiVersion, \"apiVersion\")), -1)\n\n\tlocalVarHeaderParams := make(map[string]string)\n\tlocalVarQueryParams := url.Values{}\n\tlocalVarFormParams := url.Values{}\n\n\t// to determine the Content-Type header\n\tlocalVarHTTPContentTypes := []string{}\n\n\t// set Content-Type header\n\tlocalVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)\n\tif localVarHTTPContentType != \"\" {\n\t\tlocalVarHeaderParams[\"Content-Type\"] = localVarHTTPContentType\n\t}\n\n\t// to determine the Accept header\n\tlocalVarHTTPHeaderAccepts := []string{\"application/json\"}\n\n\t// set Accept header\n\tlocalVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)\n\tif localVarHTTPHeaderAccept != \"\" {\n\t\tlocalVarHeaderParams[\"Accept\"] = localVarHTTPHeaderAccept\n\t}\n\treq, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, err\n\t}\n\n\tlocalVarHTTPResponse, err := a.client.callAPI(req)\n\tif err != nil || localVarHTTPResponse == nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tlocalVarBody, err := io.ReadAll(localVarHTTPResponse.Body)\n\tlocalVarHTTPResponse.Body.Close()\n\tlocalVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))\n\tif err != nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tif localVarHTTPResponse.StatusCode >= 300 {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: localVarHTTPResponse.Status,\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\terr = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: err.Error(),\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\treturn localVarReturnValue, localVarHTTPResponse, nil\n}\n\ntype ApiUpdateAccountRequest struct {\n\tctx context.Context\n\tApiService *DefaultAPIService\n\tsourceDeviceId string\n\tapiVersion string\n\tupdateAccountRequest *UpdateAccountRequest\n}\n\nfunc (r ApiUpdateAccountRequest) UpdateAccountRequest(updateAccountRequest UpdateAccountRequest) ApiUpdateAccountRequest {\n\tr.updateAccountRequest = &updateAccountRequest\n\treturn r\n}\n\nfunc (r ApiUpdateAccountRequest) Execute() (*UpdateAccount200Response, *http.Response, error) {\n\treturn r.ApiService.UpdateAccountExecute(r)\n}\n\n/*\nUpdateAccount UpdateAccount\n\n @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().\n @param sourceDeviceId\n @param apiVersion\n @return ApiUpdateAccountRequest\n*/\nfunc (a *DefaultAPIService) UpdateAccount(ctx context.Context, sourceDeviceId string, apiVersion string) ApiUpdateAccountRequest {\n\treturn ApiUpdateAccountRequest{\n\t\tApiService: a,\n\t\tctx: ctx,\n\t\tsourceDeviceId: sourceDeviceId,\n\t\tapiVersion: apiVersion,\n\t}\n}\n\n// Execute executes the request\n//  @return UpdateAccount200Response\nfunc (a *DefaultAPIService) UpdateAccountExecute(r ApiUpdateAccountRequest) (*UpdateAccount200Response, *http.Response, error) {\n\tvar (\n\t\tlocalVarHTTPMethod   = http.MethodPut\n\t\tlocalVarPostBody     interface{}\n\t\tformFiles            []formFile\n\t\tlocalVarReturnValue  *UpdateAccount200Response\n\t)\n\n\tlocalBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, \"DefaultAPIService.UpdateAccount\")\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}\n\t}\n\n\tlocalVarPath := localBasePath + \"/{apiVersion}/reg/{sourceDeviceId}/account\"\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"sourceDeviceId\"+\"}\", url.PathEscape(parameterValueToString(r.sourceDeviceId, \"sourceDeviceId\")), -1)\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"apiVersion\"+\"}\", url.PathEscape(parameterValueToString(r.apiVersion, \"apiVersion\")), -1)\n\n\tlocalVarHeaderParams := make(map[string]string)\n\tlocalVarQueryParams := url.Values{}\n\tlocalVarFormParams := url.Values{}\n\n\t// to determine the Content-Type header\n\tlocalVarHTTPContentTypes := []string{\"application/json\"}\n\n\t// set Content-Type header\n\tlocalVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)\n\tif localVarHTTPContentType != \"\" {\n\t\tlocalVarHeaderParams[\"Content-Type\"] = localVarHTTPContentType\n\t}\n\n\t// to determine the Accept header\n\tlocalVarHTTPHeaderAccepts := []string{\"application/json\"}\n\n\t// set Accept header\n\tlocalVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)\n\tif localVarHTTPHeaderAccept != \"\" {\n\t\tlocalVarHeaderParams[\"Accept\"] = localVarHTTPHeaderAccept\n\t}\n\t// body params\n\tlocalVarPostBody = r.updateAccountRequest\n\treq, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, err\n\t}\n\n\tlocalVarHTTPResponse, err := a.client.callAPI(req)\n\tif err != nil || localVarHTTPResponse == nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tlocalVarBody, err := io.ReadAll(localVarHTTPResponse.Body)\n\tlocalVarHTTPResponse.Body.Close()\n\tlocalVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))\n\tif err != nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tif localVarHTTPResponse.StatusCode >= 300 {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: localVarHTTPResponse.Status,\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\terr = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: err.Error(),\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\treturn localVarReturnValue, localVarHTTPResponse, nil\n}\n\ntype ApiUpdateBoundDeviceRequest struct {\n\tctx context.Context\n\tApiService *DefaultAPIService\n\tsourceDeviceId string\n\tapiVersion string\n\tboundDeviceId string\n\tupdateBoundDeviceRequest *UpdateBoundDeviceRequest\n}\n\nfunc (r ApiUpdateBoundDeviceRequest) UpdateBoundDeviceRequest(updateBoundDeviceRequest UpdateBoundDeviceRequest) ApiUpdateBoundDeviceRequest {\n\tr.updateBoundDeviceRequest = &updateBoundDeviceRequest\n\treturn r\n}\n\nfunc (r ApiUpdateBoundDeviceRequest) Execute() ([]BoundDevice, *http.Response, error) {\n\treturn r.ApiService.UpdateBoundDeviceExecute(r)\n}\n\n/*\nUpdateBoundDevice UpdateBoundDevice\n\n @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().\n @param sourceDeviceId\n @param apiVersion\n @param boundDeviceId\n @return ApiUpdateBoundDeviceRequest\n*/\nfunc (a *DefaultAPIService) UpdateBoundDevice(ctx context.Context, sourceDeviceId string, apiVersion string, boundDeviceId string) ApiUpdateBoundDeviceRequest {\n\treturn ApiUpdateBoundDeviceRequest{\n\t\tApiService: a,\n\t\tctx: ctx,\n\t\tsourceDeviceId: sourceDeviceId,\n\t\tapiVersion: apiVersion,\n\t\tboundDeviceId: boundDeviceId,\n\t}\n}\n\n// Execute executes the request\n//  @return []BoundDevice\nfunc (a *DefaultAPIService) UpdateBoundDeviceExecute(r ApiUpdateBoundDeviceRequest) ([]BoundDevice, *http.Response, error) {\n\tvar (\n\t\tlocalVarHTTPMethod   = http.MethodPatch\n\t\tlocalVarPostBody     interface{}\n\t\tformFiles            []formFile\n\t\tlocalVarReturnValue  []BoundDevice\n\t)\n\n\tlocalBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, \"DefaultAPIService.UpdateBoundDevice\")\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}\n\t}\n\n\tlocalVarPath := localBasePath + \"/{apiVersion}/reg/{sourceDeviceId}/account/reg/{boundDeviceId}\"\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"sourceDeviceId\"+\"}\", url.PathEscape(parameterValueToString(r.sourceDeviceId, \"sourceDeviceId\")), -1)\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"apiVersion\"+\"}\", url.PathEscape(parameterValueToString(r.apiVersion, \"apiVersion\")), -1)\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"boundDeviceId\"+\"}\", url.PathEscape(parameterValueToString(r.boundDeviceId, \"boundDeviceId\")), -1)\n\n\tlocalVarHeaderParams := make(map[string]string)\n\tlocalVarQueryParams := url.Values{}\n\tlocalVarFormParams := url.Values{}\n\n\t// to determine the Content-Type header\n\tlocalVarHTTPContentTypes := []string{\"application/json\"}\n\n\t// set Content-Type header\n\tlocalVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)\n\tif localVarHTTPContentType != \"\" {\n\t\tlocalVarHeaderParams[\"Content-Type\"] = localVarHTTPContentType\n\t}\n\n\t// to determine the Accept header\n\tlocalVarHTTPHeaderAccepts := []string{\"application/json\"}\n\n\t// set Accept header\n\tlocalVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)\n\tif localVarHTTPHeaderAccept != \"\" {\n\t\tlocalVarHeaderParams[\"Accept\"] = localVarHTTPHeaderAccept\n\t}\n\t// body params\n\tlocalVarPostBody = r.updateBoundDeviceRequest\n\treq, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, err\n\t}\n\n\tlocalVarHTTPResponse, err := a.client.callAPI(req)\n\tif err != nil || localVarHTTPResponse == nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tlocalVarBody, err := io.ReadAll(localVarHTTPResponse.Body)\n\tlocalVarHTTPResponse.Body.Close()\n\tlocalVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))\n\tif err != nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tif localVarHTTPResponse.StatusCode >= 300 {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: localVarHTTPResponse.Status,\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\terr = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: err.Error(),\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\treturn localVarReturnValue, localVarHTTPResponse, nil\n}\n\ntype ApiUpdateSourceDeviceRequest struct {\n\tctx context.Context\n\tApiService *DefaultAPIService\n\tapiVersion string\n\tsourceDeviceId string\n\tupdateSourceDeviceRequest *UpdateSourceDeviceRequest\n}\n\nfunc (r ApiUpdateSourceDeviceRequest) UpdateSourceDeviceRequest(updateSourceDeviceRequest UpdateSourceDeviceRequest) ApiUpdateSourceDeviceRequest {\n\tr.updateSourceDeviceRequest = &updateSourceDeviceRequest\n\treturn r\n}\n\nfunc (r ApiUpdateSourceDeviceRequest) Execute() (*UpdateSourceDevice200Response, *http.Response, error) {\n\treturn r.ApiService.UpdateSourceDeviceExecute(r)\n}\n\n/*\nUpdateSourceDevice UpdateSourceDevice\n\n @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().\n @param apiVersion\n @param sourceDeviceId\n @return ApiUpdateSourceDeviceRequest\n*/\nfunc (a *DefaultAPIService) UpdateSourceDevice(ctx context.Context, apiVersion string, sourceDeviceId string) ApiUpdateSourceDeviceRequest {\n\treturn ApiUpdateSourceDeviceRequest{\n\t\tApiService: a,\n\t\tctx: ctx,\n\t\tapiVersion: apiVersion,\n\t\tsourceDeviceId: sourceDeviceId,\n\t}\n}\n\n// Execute executes the request\n//  @return UpdateSourceDevice200Response\nfunc (a *DefaultAPIService) UpdateSourceDeviceExecute(r ApiUpdateSourceDeviceRequest) (*UpdateSourceDevice200Response, *http.Response, error) {\n\tvar (\n\t\tlocalVarHTTPMethod   = http.MethodPatch\n\t\tlocalVarPostBody     interface{}\n\t\tformFiles            []formFile\n\t\tlocalVarReturnValue  *UpdateSourceDevice200Response\n\t)\n\n\tlocalBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, \"DefaultAPIService.UpdateSourceDevice\")\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}\n\t}\n\n\tlocalVarPath := localBasePath + \"/{apiVersion}/reg/{sourceDeviceId}\"\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"apiVersion\"+\"}\", url.PathEscape(parameterValueToString(r.apiVersion, \"apiVersion\")), -1)\n\tlocalVarPath = strings.Replace(localVarPath, \"{\"+\"sourceDeviceId\"+\"}\", url.PathEscape(parameterValueToString(r.sourceDeviceId, \"sourceDeviceId\")), -1)\n\n\tlocalVarHeaderParams := make(map[string]string)\n\tlocalVarQueryParams := url.Values{}\n\tlocalVarFormParams := url.Values{}\n\n\t// to determine the Content-Type header\n\tlocalVarHTTPContentTypes := []string{\"application/json\"}\n\n\t// set Content-Type header\n\tlocalVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)\n\tif localVarHTTPContentType != \"\" {\n\t\tlocalVarHeaderParams[\"Content-Type\"] = localVarHTTPContentType\n\t}\n\n\t// to determine the Accept header\n\tlocalVarHTTPHeaderAccepts := []string{\"application/json\"}\n\n\t// set Accept header\n\tlocalVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)\n\tif localVarHTTPHeaderAccept != \"\" {\n\t\tlocalVarHeaderParams[\"Accept\"] = localVarHTTPHeaderAccept\n\t}\n\t// body params\n\tlocalVarPostBody = r.updateSourceDeviceRequest\n\treq, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)\n\tif err != nil {\n\t\treturn localVarReturnValue, nil, err\n\t}\n\n\tlocalVarHTTPResponse, err := a.client.callAPI(req)\n\tif err != nil || localVarHTTPResponse == nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tlocalVarBody, err := io.ReadAll(localVarHTTPResponse.Body)\n\tlocalVarHTTPResponse.Body.Close()\n\tlocalVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))\n\tif err != nil {\n\t\treturn localVarReturnValue, localVarHTTPResponse, err\n\t}\n\n\tif localVarHTTPResponse.StatusCode >= 300 {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: localVarHTTPResponse.Status,\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\terr = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get(\"Content-Type\"))\n\tif err != nil {\n\t\tnewErr := &GenericOpenAPIError{\n\t\t\tbody:  localVarBody,\n\t\t\terror: err.Error(),\n\t\t}\n\t\treturn localVarReturnValue, localVarHTTPResponse, newErr\n\t}\n\n\treturn localVarReturnValue, localVarHTTPResponse, nil\n}\n"
  },
  {
    "path": "openapi/client.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"encoding/xml\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"mime/multipart\"\n\t\"net/http\"\n\t\"net/http/httputil\"\n\t\"net/url\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n\n)\n\nvar (\n\tJsonCheck       = regexp.MustCompile(`(?i:(?:application|text)/(?:[^;]+\\+)?json)`)\n\tXmlCheck        = regexp.MustCompile(`(?i:(?:application|text)/(?:[^;]+\\+)?xml)`)\n\tqueryParamSplit = regexp.MustCompile(`(^|&)([^&]+)`)\n\tqueryDescape    = strings.NewReplacer( \"%5B\", \"[\", \"%5D\", \"]\" )\n)\n\n// APIClient manages communication with the Cloudflare WARP API API v536\n// In most cases there should be only one, shared, APIClient.\ntype APIClient struct {\n\tcfg    *Configuration\n\tcommon service // Reuse a single struct instead of allocating one for each service on the heap.\n\n\t// API Services\n\n\tDefaultAPI *DefaultAPIService\n}\n\ntype service struct {\n\tclient *APIClient\n}\n\n// NewAPIClient creates a new API client. Requires a userAgent string describing your application.\n// optionally a custom http.Client to allow for advanced features such as caching.\nfunc NewAPIClient(cfg *Configuration) *APIClient {\n\tif cfg.HTTPClient == nil {\n\t\tcfg.HTTPClient = http.DefaultClient\n\t}\n\n\tc := &APIClient{}\n\tc.cfg = cfg\n\tc.common.client = c\n\n\t// API Services\n\tc.DefaultAPI = (*DefaultAPIService)(&c.common)\n\n\treturn c\n}\n\nfunc atoi(in string) (int, error) {\n\treturn strconv.Atoi(in)\n}\n\n// selectHeaderContentType select a content type from the available list.\nfunc selectHeaderContentType(contentTypes []string) string {\n\tif len(contentTypes) == 0 {\n\t\treturn \"\"\n\t}\n\tif contains(contentTypes, \"application/json\") {\n\t\treturn \"application/json\"\n\t}\n\treturn contentTypes[0] // use the first content type specified in 'consumes'\n}\n\n// selectHeaderAccept join all accept types and return\nfunc selectHeaderAccept(accepts []string) string {\n\tif len(accepts) == 0 {\n\t\treturn \"\"\n\t}\n\n\tif contains(accepts, \"application/json\") {\n\t\treturn \"application/json\"\n\t}\n\n\treturn strings.Join(accepts, \",\")\n}\n\n// contains is a case insensitive match, finding needle in a haystack\nfunc contains(haystack []string, needle string) bool {\n\tfor _, a := range haystack {\n\t\tif strings.EqualFold(a, needle) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Verify optional parameters are of the correct type.\nfunc typeCheckParameter(obj interface{}, expected string, name string) error {\n\t// Make sure there is an object.\n\tif obj == nil {\n\t\treturn nil\n\t}\n\n\t// Check the type is as expected.\n\tif reflect.TypeOf(obj).String() != expected {\n\t\treturn fmt.Errorf(\"expected %s to be of type %s but received %s\", name, expected, reflect.TypeOf(obj).String())\n\t}\n\treturn nil\n}\n\nfunc parameterValueToString( obj interface{}, key string ) string {\n\tif reflect.TypeOf(obj).Kind() != reflect.Ptr {\n\t\tif actualObj, ok := obj.(interface{ GetActualInstanceValue() interface{} }); ok {\n\t\t\treturn fmt.Sprintf(\"%v\", actualObj.GetActualInstanceValue())\n\t\t}\n\n\t\treturn fmt.Sprintf(\"%v\", obj)\n\t}\n\tvar param,ok = obj.(MappedNullable)\n\tif !ok {\n\t\treturn \"\"\n\t}\n\tdataMap,err := param.ToMap()\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\treturn fmt.Sprintf(\"%v\", dataMap[key])\n}\n\n// parameterAddToHeaderOrQuery adds the provided object to the request header or url query\n// supporting deep object syntax\nfunc parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, style string, collectionType string) {\n\tvar v = reflect.ValueOf(obj)\n\tvar value = \"\"\n\tif v == reflect.ValueOf(nil) {\n\t\tvalue = \"null\"\n\t} else {\n\t\tswitch v.Kind() {\n\t\t\tcase reflect.Invalid:\n\t\t\t\tvalue = \"invalid\"\n\n\t\t\tcase reflect.Struct:\n\t\t\t\tif t,ok := obj.(MappedNullable); ok {\n\t\t\t\t\tdataMap,err := t.ToMap()\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tparameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, style, collectionType)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif t, ok := obj.(time.Time); ok {\n\t\t\t\t\tparameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), style, collectionType)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tvalue = v.Type().String() + \" value\"\n\t\t\tcase reflect.Slice:\n\t\t\t\tvar indValue = reflect.ValueOf(obj)\n\t\t\t\tif indValue == reflect.ValueOf(nil) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tvar lenIndValue = indValue.Len()\n\t\t\t\tfor i:=0;i<lenIndValue;i++ {\n\t\t\t\t\tvar arrayValue = indValue.Index(i)\n\t\t\t\t\tvar keyPrefixForCollectionType = keyPrefix\n\t\t\t\t\tif style == \"deepObject\" {\n\t\t\t\t\t\tkeyPrefixForCollectionType = keyPrefix + \"[\" + strconv.Itoa(i) + \"]\"\n\t\t\t\t\t}\n\t\t\t\t\tparameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefixForCollectionType, arrayValue.Interface(), style, collectionType)\n\t\t\t\t}\n\t\t\t\treturn\n\n\t\t\tcase reflect.Map:\n\t\t\t\tvar indValue = reflect.ValueOf(obj)\n\t\t\t\tif indValue == reflect.ValueOf(nil) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\titer := indValue.MapRange()\n\t\t\t\tfor iter.Next() {\n\t\t\t\t\tk,v := iter.Key(), iter.Value()\n\t\t\t\t\tparameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf(\"%s[%s]\", keyPrefix, k.String()), v.Interface(), style, collectionType)\n\t\t\t\t}\n\t\t\t\treturn\n\n\t\t\tcase reflect.Interface:\n\t\t\t\tfallthrough\n\t\t\tcase reflect.Ptr:\n\t\t\t\tparameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), style, collectionType)\n\t\t\t\treturn\n\n\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16,\n\t\t\t\treflect.Int32, reflect.Int64:\n\t\t\t\tvalue = strconv.FormatInt(v.Int(), 10)\n\t\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16,\n\t\t\t\treflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\t\t\tvalue = strconv.FormatUint(v.Uint(), 10)\n\t\t\tcase reflect.Float32, reflect.Float64:\n\t\t\t\tvalue = strconv.FormatFloat(v.Float(), 'g', -1, 32)\n\t\t\tcase reflect.Bool:\n\t\t\t\tvalue = strconv.FormatBool(v.Bool())\n\t\t\tcase reflect.String:\n\t\t\t\tvalue = v.String()\n\t\t\tdefault:\n\t\t\t\tvalue = v.Type().String() + \" value\"\n\t\t}\n\t}\n\n\tswitch valuesMap := headerOrQueryParams.(type) {\n\t\tcase url.Values:\n\t\t\tif collectionType == \"csv\" && valuesMap.Get(keyPrefix) != \"\" {\n\t\t\t\tvaluesMap.Set(keyPrefix, valuesMap.Get(keyPrefix) + \",\" + value)\n\t\t\t} else {\n\t\t\t\tvaluesMap.Add(keyPrefix, value)\n\t\t\t}\n\t\t\tbreak\n\t\tcase map[string]string:\n\t\t\tvaluesMap[keyPrefix] = value\n\t\t\tbreak\n\t}\n}\n\n// helper for converting interface{} parameters to json strings\nfunc parameterToJson(obj interface{}) (string, error) {\n\tjsonBuf, err := json.Marshal(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn string(jsonBuf), err\n}\n\n// callAPI do the request.\nfunc (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {\n\tif c.cfg.Debug {\n\t\tdump, err := httputil.DumpRequestOut(request, true)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tlog.Printf(\"\\n%s\\n\", string(dump))\n\t}\n\n\tresp, err := c.cfg.HTTPClient.Do(request)\n\tif err != nil {\n\t\treturn resp, err\n\t}\n\n\tif c.cfg.Debug {\n\t\tdump, err := httputil.DumpResponse(resp, true)\n\t\tif err != nil {\n\t\t\treturn resp, err\n\t\t}\n\t\tlog.Printf(\"\\n%s\\n\", string(dump))\n\t}\n\treturn resp, err\n}\n\n// Allow modification of underlying config for alternate implementations and testing\n// Caution: modifying the configuration while live can cause data races and potentially unwanted behavior\nfunc (c *APIClient) GetConfig() *Configuration {\n\treturn c.cfg\n}\n\ntype formFile struct {\n\t\tfileBytes []byte\n\t\tfileName string\n\t\tformFileName string\n}\n\n// prepareRequest build the request\nfunc (c *APIClient) prepareRequest(\n\tctx context.Context,\n\tpath string, method string,\n\tpostBody interface{},\n\theaderParams map[string]string,\n\tqueryParams url.Values,\n\tformParams url.Values,\n\tformFiles []formFile) (localVarRequest *http.Request, err error) {\n\n\tvar body *bytes.Buffer\n\n\t// Detect postBody type and post.\n\tif postBody != nil {\n\t\tcontentType := headerParams[\"Content-Type\"]\n\t\tif contentType == \"\" {\n\t\t\tcontentType = detectContentType(postBody)\n\t\t\theaderParams[\"Content-Type\"] = contentType\n\t\t}\n\n\t\tbody, err = setBody(postBody, contentType)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// add form parameters and file if available.\n\tif strings.HasPrefix(headerParams[\"Content-Type\"], \"multipart/form-data\") && len(formParams) > 0 || (len(formFiles) > 0) {\n\t\tif body != nil {\n\t\t\treturn nil, errors.New(\"Cannot specify postBody and multipart form at the same time.\")\n\t\t}\n\t\tbody = &bytes.Buffer{}\n\t\tw := multipart.NewWriter(body)\n\n\t\tfor k, v := range formParams {\n\t\t\tfor _, iv := range v {\n\t\t\t\tif strings.HasPrefix(k, \"@\") { // file\n\t\t\t\t\terr = addFile(w, k[1:], iv)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t} else { // form value\n\t\t\t\t\tw.WriteField(k, iv)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor _, formFile := range formFiles {\n\t\t\tif len(formFile.fileBytes) > 0 && formFile.fileName != \"\" {\n\t\t\t\tw.Boundary()\n\t\t\t\tpart, err := w.CreateFormFile(formFile.formFileName, filepath.Base(formFile.fileName))\n\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\t_, err = part.Write(formFile.fileBytes)\n\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Set the Boundary in the Content-Type\n\t\theaderParams[\"Content-Type\"] = w.FormDataContentType()\n\n\t\t// Set Content-Length\n\t\theaderParams[\"Content-Length\"] = fmt.Sprintf(\"%d\", body.Len())\n\t\tw.Close()\n\t}\n\n\tif strings.HasPrefix(headerParams[\"Content-Type\"], \"application/x-www-form-urlencoded\") && len(formParams) > 0 {\n\t\tif body != nil {\n\t\t\treturn nil, errors.New(\"Cannot specify postBody and x-www-form-urlencoded form at the same time.\")\n\t\t}\n\t\tbody = &bytes.Buffer{}\n\t\tbody.WriteString(formParams.Encode())\n\t\t// Set Content-Length\n\t\theaderParams[\"Content-Length\"] = fmt.Sprintf(\"%d\", body.Len())\n\t}\n\n\t// Setup path and query parameters\n\turl, err := url.Parse(path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Override request host, if applicable\n\tif c.cfg.Host != \"\" {\n\t\turl.Host = c.cfg.Host\n\t}\n\n\t// Override request scheme, if applicable\n\tif c.cfg.Scheme != \"\" {\n\t\turl.Scheme = c.cfg.Scheme\n\t}\n\n\t// Adding Query Param\n\tquery := url.Query()\n\tfor k, v := range queryParams {\n\t\tfor _, iv := range v {\n\t\t\tquery.Add(k, iv)\n\t\t}\n\t}\n\n\t// Encode the parameters.\n\turl.RawQuery = queryParamSplit.ReplaceAllStringFunc(query.Encode(), func(s string) string {\n\t\tpieces := strings.Split(s, \"=\")\n\t\tpieces[0] = queryDescape.Replace(pieces[0])\n\t\treturn strings.Join(pieces, \"=\")\n\t})\n\n\t// Generate a new request\n\tif body != nil {\n\t\tlocalVarRequest, err = http.NewRequest(method, url.String(), body)\n\t} else {\n\t\tlocalVarRequest, err = http.NewRequest(method, url.String(), nil)\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// add header parameters, if any\n\tif len(headerParams) > 0 {\n\t\theaders := http.Header{}\n\t\tfor h, v := range headerParams {\n\t\t\theaders[h] = []string{v}\n\t\t}\n\t\tlocalVarRequest.Header = headers\n\t}\n\n\t// Add the user agent to the request.\n\tlocalVarRequest.Header.Add(\"User-Agent\", c.cfg.UserAgent)\n\n\tif ctx != nil {\n\t\t// add context to the request\n\t\tlocalVarRequest = localVarRequest.WithContext(ctx)\n\n\t\t// Walk through any authentication.\n\n\t}\n\n\tfor header, value := range c.cfg.DefaultHeader {\n\t\tlocalVarRequest.Header.Add(header, value)\n\t}\n\treturn localVarRequest, nil\n}\n\nfunc (c *APIClient) decode(v interface{}, b []byte, contentType string) (err error) {\n\tif len(b) == 0 {\n\t\treturn nil\n\t}\n\tif s, ok := v.(*string); ok {\n\t\t*s = string(b)\n\t\treturn nil\n\t}\n\tif f, ok := v.(*os.File); ok {\n\t\tf, err = os.CreateTemp(\"\", \"HttpClientFile\")\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\t_, err = f.Write(b)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\t_, err = f.Seek(0, io.SeekStart)\n\t\treturn\n\t}\n\tif f, ok := v.(**os.File); ok {\n\t\t*f, err = os.CreateTemp(\"\", \"HttpClientFile\")\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\t_, err = (*f).Write(b)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\t_, err = (*f).Seek(0, io.SeekStart)\n\t\treturn\n\t}\n\tif XmlCheck.MatchString(contentType) {\n\t\tif err = xml.Unmarshal(b, v); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\tif JsonCheck.MatchString(contentType) {\n\t\tif actualObj, ok := v.(interface{ GetActualInstance() interface{} }); ok { // oneOf, anyOf schemas\n\t\t\tif unmarshalObj, ok := actualObj.(interface{ UnmarshalJSON([]byte) error }); ok { // make sure it has UnmarshalJSON defined\n\t\t\t\tif err = unmarshalObj.UnmarshalJSON(b); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn errors.New(\"Unknown type with GetActualInstance but no unmarshalObj.UnmarshalJSON defined\")\n\t\t\t}\n\t\t} else if err = json.Unmarshal(b, v); err != nil { // simple model\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\treturn errors.New(\"undefined response type\")\n}\n\n// Add a file to the multipart request\nfunc addFile(w *multipart.Writer, fieldName, path string) error {\n\tfile, err := os.Open(filepath.Clean(path))\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = file.Close()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpart, err := w.CreateFormFile(fieldName, filepath.Base(path))\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = io.Copy(part, file)\n\n\treturn err\n}\n\n// Set request body from an interface{}\nfunc setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err error) {\n\tif bodyBuf == nil {\n\t\tbodyBuf = &bytes.Buffer{}\n\t}\n\n\tif reader, ok := body.(io.Reader); ok {\n\t\t_, err = bodyBuf.ReadFrom(reader)\n\t} else if fp, ok := body.(*os.File); ok {\n\t\t_, err = bodyBuf.ReadFrom(fp)\n\t} else if b, ok := body.([]byte); ok {\n\t\t_, err = bodyBuf.Write(b)\n\t} else if s, ok := body.(string); ok {\n\t\t_, err = bodyBuf.WriteString(s)\n\t} else if s, ok := body.(*string); ok {\n\t\t_, err = bodyBuf.WriteString(*s)\n\t} else if JsonCheck.MatchString(contentType) {\n\t\terr = json.NewEncoder(bodyBuf).Encode(body)\n\t} else if XmlCheck.MatchString(contentType) {\n\t\tvar bs []byte\n\t\tbs, err = xml.Marshal(body)\n\t\tif err == nil {\n\t\t\tbodyBuf.Write(bs)\n\t\t}\n\t}\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif bodyBuf.Len() == 0 {\n\t\terr = fmt.Errorf(\"invalid body type %s\\n\", contentType)\n\t\treturn nil, err\n\t}\n\treturn bodyBuf, nil\n}\n\n// detectContentType method is used to figure out `Request.Body` content type for request header\nfunc detectContentType(body interface{}) string {\n\tcontentType := \"text/plain; charset=utf-8\"\n\tkind := reflect.TypeOf(body).Kind()\n\n\tswitch kind {\n\tcase reflect.Struct, reflect.Map, reflect.Ptr:\n\t\tcontentType = \"application/json; charset=utf-8\"\n\tcase reflect.String:\n\t\tcontentType = \"text/plain; charset=utf-8\"\n\tdefault:\n\t\tif b, ok := body.([]byte); ok {\n\t\t\tcontentType = http.DetectContentType(b)\n\t\t} else if kind == reflect.Slice {\n\t\t\tcontentType = \"application/json; charset=utf-8\"\n\t\t}\n\t}\n\n\treturn contentType\n}\n\n// Ripped from https://github.com/gregjones/httpcache/blob/master/httpcache.go\ntype cacheControl map[string]string\n\nfunc parseCacheControl(headers http.Header) cacheControl {\n\tcc := cacheControl{}\n\tccHeader := headers.Get(\"Cache-Control\")\n\tfor _, part := range strings.Split(ccHeader, \",\") {\n\t\tpart = strings.Trim(part, \" \")\n\t\tif part == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif strings.ContainsRune(part, '=') {\n\t\t\tkeyval := strings.Split(part, \"=\")\n\t\t\tcc[strings.Trim(keyval[0], \" \")] = strings.Trim(keyval[1], \",\")\n\t\t} else {\n\t\t\tcc[part] = \"\"\n\t\t}\n\t}\n\treturn cc\n}\n\n// CacheExpires helper function to determine remaining time before repeating a request.\nfunc CacheExpires(r *http.Response) time.Time {\n\t// Figure out when the cache expires.\n\tvar expires time.Time\n\tnow, err := time.Parse(time.RFC1123, r.Header.Get(\"date\"))\n\tif err != nil {\n\t\treturn time.Now()\n\t}\n\trespCacheControl := parseCacheControl(r.Header)\n\n\tif maxAge, ok := respCacheControl[\"max-age\"]; ok {\n\t\tlifetime, err := time.ParseDuration(maxAge + \"s\")\n\t\tif err != nil {\n\t\t\texpires = now\n\t\t} else {\n\t\t\texpires = now.Add(lifetime)\n\t\t}\n\t} else {\n\t\texpiresHeader := r.Header.Get(\"Expires\")\n\t\tif expiresHeader != \"\" {\n\t\t\texpires, err = time.Parse(time.RFC1123, expiresHeader)\n\t\t\tif err != nil {\n\t\t\t\texpires = now\n\t\t\t}\n\t\t}\n\t}\n\treturn expires\n}\n\nfunc strlen(s string) int {\n\treturn utf8.RuneCountInString(s)\n}\n\n// GenericOpenAPIError Provides access to the body, error and model on returned errors.\ntype GenericOpenAPIError struct {\n\tbody  []byte\n\terror string\n\tmodel interface{}\n}\n\n// Error returns non-empty string if there was an error.\nfunc (e GenericOpenAPIError) Error() string {\n\treturn e.error\n}\n\n// Body returns the raw bytes of the response\nfunc (e GenericOpenAPIError) Body() []byte {\n\treturn e.body\n}\n\n// Model returns the unpacked model of the error\nfunc (e GenericOpenAPIError) Model() interface{} {\n\treturn e.model\n}\n\n// format error message using title and detail when model implements rfc7807\nfunc formatErrorMessage(status string, v interface{}) string {\n\tstr := \"\"\n\tmetaValue := reflect.ValueOf(v).Elem()\n\n\tif metaValue.Kind() == reflect.Struct {\n\t\tfield := metaValue.FieldByName(\"Title\")\n\t\tif field != (reflect.Value{}) {\n\t\t\tstr = fmt.Sprintf(\"%s\", field.Interface())\n\t\t}\n\n\t\tfield = metaValue.FieldByName(\"Detail\")\n\t\tif field != (reflect.Value{}) {\n\t\t\tstr = fmt.Sprintf(\"%s (%s)\", str, field.Interface())\n\t\t}\n\t}\n\n\treturn strings.TrimSpace(fmt.Sprintf(\"%s %s\", status, str))\n}\n"
  },
  {
    "path": "openapi/configuration.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n)\n\n// contextKeys are used to identify the type of value in the context.\n// Since these are string, it is possible to get a short description of the\n// context key for logging and debugging using key.String().\n\ntype contextKey string\n\nfunc (c contextKey) String() string {\n\treturn \"auth \" + string(c)\n}\n\nvar (\n\t// ContextServerIndex uses a server configuration from the index.\n\tContextServerIndex = contextKey(\"serverIndex\")\n\n\t// ContextOperationServerIndices uses a server configuration from the index mapping.\n\tContextOperationServerIndices = contextKey(\"serverOperationIndices\")\n\n\t// ContextServerVariables overrides a server configuration variables.\n\tContextServerVariables = contextKey(\"serverVariables\")\n\n\t// ContextOperationServerVariables overrides a server configuration variables using operation specific values.\n\tContextOperationServerVariables = contextKey(\"serverOperationVariables\")\n)\n\n// BasicAuth provides basic http authentication to a request passed via context using ContextBasicAuth\ntype BasicAuth struct {\n\tUserName string `json:\"userName,omitempty\"`\n\tPassword string `json:\"password,omitempty\"`\n}\n\n// APIKey provides API key based authentication to a request passed via context using ContextAPIKey\ntype APIKey struct {\n\tKey    string\n\tPrefix string\n}\n\n// ServerVariable stores the information about a server variable\ntype ServerVariable struct {\n\tDescription  string\n\tDefaultValue string\n\tEnumValues   []string\n}\n\n// ServerConfiguration stores the information about a server\ntype ServerConfiguration struct {\n\tURL string\n\tDescription string\n\tVariables map[string]ServerVariable\n}\n\n// ServerConfigurations stores multiple ServerConfiguration items\ntype ServerConfigurations []ServerConfiguration\n\n// Configuration stores the configuration of the API client\ntype Configuration struct {\n\tHost             string            `json:\"host,omitempty\"`\n\tScheme           string            `json:\"scheme,omitempty\"`\n\tDefaultHeader    map[string]string `json:\"defaultHeader,omitempty\"`\n\tUserAgent        string            `json:\"userAgent,omitempty\"`\n\tDebug            bool              `json:\"debug,omitempty\"`\n\tServers          ServerConfigurations\n\tOperationServers map[string]ServerConfigurations\n\tHTTPClient       *http.Client\n}\n\n// NewConfiguration returns a new Configuration object\nfunc NewConfiguration() *Configuration {\n\tcfg := &Configuration{\n\t\tDefaultHeader:    make(map[string]string),\n\t\tUserAgent:        \"OpenAPI-Generator/1.0.0/go\",\n\t\tDebug:            false,\n\t\tServers:          ServerConfigurations{\n\t\t\t{\n\t\t\t\tURL: \"\",\n\t\t\t\tDescription: \"No description provided\",\n\t\t\t},\n\t\t},\n\t\tOperationServers: map[string]ServerConfigurations{\n\t\t},\n\t}\n\treturn cfg\n}\n\n// AddDefaultHeader adds a new HTTP header to the default header in the request\nfunc (c *Configuration) AddDefaultHeader(key string, value string) {\n\tc.DefaultHeader[key] = value\n}\n\n// URL formats template on a index using given variables\nfunc (sc ServerConfigurations) URL(index int, variables map[string]string) (string, error) {\n\tif index < 0 || len(sc) <= index {\n\t\treturn \"\", fmt.Errorf(\"index %v out of range %v\", index, len(sc)-1)\n\t}\n\tserver := sc[index]\n\turl := server.URL\n\n\t// go through variables and replace placeholders\n\tfor name, variable := range server.Variables {\n\t\tif value, ok := variables[name]; ok {\n\t\t\tfound := bool(len(variable.EnumValues) == 0)\n\t\t\tfor _, enumValue := range variable.EnumValues {\n\t\t\t\tif value == enumValue {\n\t\t\t\t\tfound = true\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !found {\n\t\t\t\treturn \"\", fmt.Errorf(\"the variable %s in the server URL has invalid value %v. Must be %v\", name, value, variable.EnumValues)\n\t\t\t}\n\t\t\turl = strings.Replace(url, \"{\"+name+\"}\", value, -1)\n\t\t} else {\n\t\t\turl = strings.Replace(url, \"{\"+name+\"}\", variable.DefaultValue, -1)\n\t\t}\n\t}\n\treturn url, nil\n}\n\n// ServerURL returns URL based on server settings\nfunc (c *Configuration) ServerURL(index int, variables map[string]string) (string, error) {\n\treturn c.Servers.URL(index, variables)\n}\n\nfunc getServerIndex(ctx context.Context) (int, error) {\n\tsi := ctx.Value(ContextServerIndex)\n\tif si != nil {\n\t\tif index, ok := si.(int); ok {\n\t\t\treturn index, nil\n\t\t}\n\t\treturn 0, reportError(\"Invalid type %T should be int\", si)\n\t}\n\treturn 0, nil\n}\n\nfunc getServerOperationIndex(ctx context.Context, endpoint string) (int, error) {\n\tosi := ctx.Value(ContextOperationServerIndices)\n\tif osi != nil {\n\t\tif operationIndices, ok := osi.(map[string]int); !ok {\n\t\t\treturn 0, reportError(\"Invalid type %T should be map[string]int\", osi)\n\t\t} else {\n\t\t\tindex, ok := operationIndices[endpoint]\n\t\t\tif ok {\n\t\t\t\treturn index, nil\n\t\t\t}\n\t\t}\n\t}\n\treturn getServerIndex(ctx)\n}\n\nfunc getServerVariables(ctx context.Context) (map[string]string, error) {\n\tsv := ctx.Value(ContextServerVariables)\n\tif sv != nil {\n\t\tif variables, ok := sv.(map[string]string); ok {\n\t\t\treturn variables, nil\n\t\t}\n\t\treturn nil, reportError(\"ctx value of ContextServerVariables has invalid type %T should be map[string]string\", sv)\n\t}\n\treturn nil, nil\n}\n\nfunc getServerOperationVariables(ctx context.Context, endpoint string) (map[string]string, error) {\n\tosv := ctx.Value(ContextOperationServerVariables)\n\tif osv != nil {\n\t\tif operationVariables, ok := osv.(map[string]map[string]string); !ok {\n\t\t\treturn nil, reportError(\"ctx value of ContextOperationServerVariables has invalid type %T should be map[string]map[string]string\", osv)\n\t\t} else {\n\t\t\tvariables, ok := operationVariables[endpoint]\n\t\t\tif ok {\n\t\t\t\treturn variables, nil\n\t\t\t}\n\t\t}\n\t}\n\treturn getServerVariables(ctx)\n}\n\n// ServerURLWithContext returns a new server URL given an endpoint\nfunc (c *Configuration) ServerURLWithContext(ctx context.Context, endpoint string) (string, error) {\n\tsc, ok := c.OperationServers[endpoint]\n\tif !ok {\n\t\tsc = c.Servers\n\t}\n\n\tif ctx == nil {\n\t\treturn sc.URL(0, nil)\n\t}\n\n\tindex, err := getServerOperationIndex(ctx, endpoint)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tvariables, err := getServerOperationVariables(ctx, endpoint)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn sc.URL(index, variables)\n}\n"
  },
  {
    "path": "openapi/docs/Account.md",
    "content": "# Account\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**AccountType** | **string** |  | \n**Created** | **string** |  | \n**Id** | **string** |  | \n**License** | **string** |  | \n**PremiumData** | **float32** |  | \n**Quota** | **float32** |  | \n**ReferralCount** | **float32** |  | \n**ReferralRenewalCountdown** | **float32** |  | \n**Role** | **string** |  | \n**Updated** | **string** |  | \n**WarpPlus** | **bool** |  | \n**Usage** | Pointer to **float32** |  | [optional] \n\n## Methods\n\n### NewAccount\n\n`func NewAccount(accountType string, created string, id string, license string, premiumData float32, quota float32, referralCount float32, referralRenewalCountdown float32, role string, updated string, warpPlus bool, ) *Account`\n\nNewAccount instantiates a new Account object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewAccountWithDefaults\n\n`func NewAccountWithDefaults() *Account`\n\nNewAccountWithDefaults instantiates a new Account object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetAccountType\n\n`func (o *Account) GetAccountType() string`\n\nGetAccountType returns the AccountType field if non-nil, zero value otherwise.\n\n### GetAccountTypeOk\n\n`func (o *Account) GetAccountTypeOk() (*string, bool)`\n\nGetAccountTypeOk returns a tuple with the AccountType field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetAccountType\n\n`func (o *Account) SetAccountType(v string)`\n\nSetAccountType sets AccountType field to given value.\n\n\n### GetCreated\n\n`func (o *Account) GetCreated() string`\n\nGetCreated returns the Created field if non-nil, zero value otherwise.\n\n### GetCreatedOk\n\n`func (o *Account) GetCreatedOk() (*string, bool)`\n\nGetCreatedOk returns a tuple with the Created field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetCreated\n\n`func (o *Account) SetCreated(v string)`\n\nSetCreated sets Created field to given value.\n\n\n### GetId\n\n`func (o *Account) GetId() string`\n\nGetId returns the Id field if non-nil, zero value otherwise.\n\n### GetIdOk\n\n`func (o *Account) GetIdOk() (*string, bool)`\n\nGetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetId\n\n`func (o *Account) SetId(v string)`\n\nSetId sets Id field to given value.\n\n\n### GetLicense\n\n`func (o *Account) GetLicense() string`\n\nGetLicense returns the License field if non-nil, zero value otherwise.\n\n### GetLicenseOk\n\n`func (o *Account) GetLicenseOk() (*string, bool)`\n\nGetLicenseOk returns a tuple with the License field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetLicense\n\n`func (o *Account) SetLicense(v string)`\n\nSetLicense sets License field to given value.\n\n\n### GetPremiumData\n\n`func (o *Account) GetPremiumData() float32`\n\nGetPremiumData returns the PremiumData field if non-nil, zero value otherwise.\n\n### GetPremiumDataOk\n\n`func (o *Account) GetPremiumDataOk() (*float32, bool)`\n\nGetPremiumDataOk returns a tuple with the PremiumData field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetPremiumData\n\n`func (o *Account) SetPremiumData(v float32)`\n\nSetPremiumData sets PremiumData field to given value.\n\n\n### GetQuota\n\n`func (o *Account) GetQuota() float32`\n\nGetQuota returns the Quota field if non-nil, zero value otherwise.\n\n### GetQuotaOk\n\n`func (o *Account) GetQuotaOk() (*float32, bool)`\n\nGetQuotaOk returns a tuple with the Quota field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetQuota\n\n`func (o *Account) SetQuota(v float32)`\n\nSetQuota sets Quota field to given value.\n\n\n### GetReferralCount\n\n`func (o *Account) GetReferralCount() float32`\n\nGetReferralCount returns the ReferralCount field if non-nil, zero value otherwise.\n\n### GetReferralCountOk\n\n`func (o *Account) GetReferralCountOk() (*float32, bool)`\n\nGetReferralCountOk returns a tuple with the ReferralCount field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetReferralCount\n\n`func (o *Account) SetReferralCount(v float32)`\n\nSetReferralCount sets ReferralCount field to given value.\n\n\n### GetReferralRenewalCountdown\n\n`func (o *Account) GetReferralRenewalCountdown() float32`\n\nGetReferralRenewalCountdown returns the ReferralRenewalCountdown field if non-nil, zero value otherwise.\n\n### GetReferralRenewalCountdownOk\n\n`func (o *Account) GetReferralRenewalCountdownOk() (*float32, bool)`\n\nGetReferralRenewalCountdownOk returns a tuple with the ReferralRenewalCountdown field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetReferralRenewalCountdown\n\n`func (o *Account) SetReferralRenewalCountdown(v float32)`\n\nSetReferralRenewalCountdown sets ReferralRenewalCountdown field to given value.\n\n\n### GetRole\n\n`func (o *Account) GetRole() string`\n\nGetRole returns the Role field if non-nil, zero value otherwise.\n\n### GetRoleOk\n\n`func (o *Account) GetRoleOk() (*string, bool)`\n\nGetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetRole\n\n`func (o *Account) SetRole(v string)`\n\nSetRole sets Role field to given value.\n\n\n### GetUpdated\n\n`func (o *Account) GetUpdated() string`\n\nGetUpdated returns the Updated field if non-nil, zero value otherwise.\n\n### GetUpdatedOk\n\n`func (o *Account) GetUpdatedOk() (*string, bool)`\n\nGetUpdatedOk returns a tuple with the Updated field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetUpdated\n\n`func (o *Account) SetUpdated(v string)`\n\nSetUpdated sets Updated field to given value.\n\n\n### GetWarpPlus\n\n`func (o *Account) GetWarpPlus() bool`\n\nGetWarpPlus returns the WarpPlus field if non-nil, zero value otherwise.\n\n### GetWarpPlusOk\n\n`func (o *Account) GetWarpPlusOk() (*bool, bool)`\n\nGetWarpPlusOk returns a tuple with the WarpPlus field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetWarpPlus\n\n`func (o *Account) SetWarpPlus(v bool)`\n\nSetWarpPlus sets WarpPlus field to given value.\n\n\n### GetUsage\n\n`func (o *Account) GetUsage() float32`\n\nGetUsage returns the Usage field if non-nil, zero value otherwise.\n\n### GetUsageOk\n\n`func (o *Account) GetUsageOk() (*float32, bool)`\n\nGetUsageOk returns a tuple with the Usage field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetUsage\n\n`func (o *Account) SetUsage(v float32)`\n\nSetUsage sets Usage field to given value.\n\n### HasUsage\n\n`func (o *Account) HasUsage() bool`\n\nHasUsage returns a boolean if a field has been set.\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/BoundDevice.md",
    "content": "# BoundDevice\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Activated** | **string** |  | \n**Active** | **bool** |  | \n**Created** | **string** |  | \n**Id** | **string** |  | \n**Model** | **string** |  | \n**Name** | Pointer to **string** |  | [optional] \n**Role** | **string** |  | \n**Type** | **string** |  | \n\n## Methods\n\n### NewBoundDevice\n\n`func NewBoundDevice(activated string, active bool, created string, id string, model string, role string, type_ string, ) *BoundDevice`\n\nNewBoundDevice instantiates a new BoundDevice object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewBoundDeviceWithDefaults\n\n`func NewBoundDeviceWithDefaults() *BoundDevice`\n\nNewBoundDeviceWithDefaults instantiates a new BoundDevice object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetActivated\n\n`func (o *BoundDevice) GetActivated() string`\n\nGetActivated returns the Activated field if non-nil, zero value otherwise.\n\n### GetActivatedOk\n\n`func (o *BoundDevice) GetActivatedOk() (*string, bool)`\n\nGetActivatedOk returns a tuple with the Activated field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetActivated\n\n`func (o *BoundDevice) SetActivated(v string)`\n\nSetActivated sets Activated field to given value.\n\n\n### GetActive\n\n`func (o *BoundDevice) GetActive() bool`\n\nGetActive returns the Active field if non-nil, zero value otherwise.\n\n### GetActiveOk\n\n`func (o *BoundDevice) GetActiveOk() (*bool, bool)`\n\nGetActiveOk returns a tuple with the Active field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetActive\n\n`func (o *BoundDevice) SetActive(v bool)`\n\nSetActive sets Active field to given value.\n\n\n### GetCreated\n\n`func (o *BoundDevice) GetCreated() string`\n\nGetCreated returns the Created field if non-nil, zero value otherwise.\n\n### GetCreatedOk\n\n`func (o *BoundDevice) GetCreatedOk() (*string, bool)`\n\nGetCreatedOk returns a tuple with the Created field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetCreated\n\n`func (o *BoundDevice) SetCreated(v string)`\n\nSetCreated sets Created field to given value.\n\n\n### GetId\n\n`func (o *BoundDevice) GetId() string`\n\nGetId returns the Id field if non-nil, zero value otherwise.\n\n### GetIdOk\n\n`func (o *BoundDevice) GetIdOk() (*string, bool)`\n\nGetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetId\n\n`func (o *BoundDevice) SetId(v string)`\n\nSetId sets Id field to given value.\n\n\n### GetModel\n\n`func (o *BoundDevice) GetModel() string`\n\nGetModel returns the Model field if non-nil, zero value otherwise.\n\n### GetModelOk\n\n`func (o *BoundDevice) GetModelOk() (*string, bool)`\n\nGetModelOk returns a tuple with the Model field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetModel\n\n`func (o *BoundDevice) SetModel(v string)`\n\nSetModel sets Model field to given value.\n\n\n### GetName\n\n`func (o *BoundDevice) GetName() string`\n\nGetName returns the Name field if non-nil, zero value otherwise.\n\n### GetNameOk\n\n`func (o *BoundDevice) GetNameOk() (*string, bool)`\n\nGetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetName\n\n`func (o *BoundDevice) SetName(v string)`\n\nSetName sets Name field to given value.\n\n### HasName\n\n`func (o *BoundDevice) HasName() bool`\n\nHasName returns a boolean if a field has been set.\n\n### GetRole\n\n`func (o *BoundDevice) GetRole() string`\n\nGetRole returns the Role field if non-nil, zero value otherwise.\n\n### GetRoleOk\n\n`func (o *BoundDevice) GetRoleOk() (*string, bool)`\n\nGetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetRole\n\n`func (o *BoundDevice) SetRole(v string)`\n\nSetRole sets Role field to given value.\n\n\n### GetType\n\n`func (o *BoundDevice) GetType() string`\n\nGetType returns the Type field if non-nil, zero value otherwise.\n\n### GetTypeOk\n\n`func (o *BoundDevice) GetTypeOk() (*string, bool)`\n\nGetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetType\n\n`func (o *BoundDevice) SetType(v string)`\n\nSetType sets Type field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/Config.md",
    "content": "# Config\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**ClientId** | **string** |  | \n**Interface** | [**ConfigInterface**](ConfigInterface.md) |  | \n**Peers** | [**[]Peer**](Peer.md) |  | \n**Services** | [**ConfigServices**](ConfigServices.md) |  | \n\n## Methods\n\n### NewConfig\n\n`func NewConfig(clientId string, interface_ ConfigInterface, peers []Peer, services ConfigServices, ) *Config`\n\nNewConfig instantiates a new Config object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewConfigWithDefaults\n\n`func NewConfigWithDefaults() *Config`\n\nNewConfigWithDefaults instantiates a new Config object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetClientId\n\n`func (o *Config) GetClientId() string`\n\nGetClientId returns the ClientId field if non-nil, zero value otherwise.\n\n### GetClientIdOk\n\n`func (o *Config) GetClientIdOk() (*string, bool)`\n\nGetClientIdOk returns a tuple with the ClientId field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetClientId\n\n`func (o *Config) SetClientId(v string)`\n\nSetClientId sets ClientId field to given value.\n\n\n### GetInterface\n\n`func (o *Config) GetInterface() ConfigInterface`\n\nGetInterface returns the Interface field if non-nil, zero value otherwise.\n\n### GetInterfaceOk\n\n`func (o *Config) GetInterfaceOk() (*ConfigInterface, bool)`\n\nGetInterfaceOk returns a tuple with the Interface field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetInterface\n\n`func (o *Config) SetInterface(v ConfigInterface)`\n\nSetInterface sets Interface field to given value.\n\n\n### GetPeers\n\n`func (o *Config) GetPeers() []Peer`\n\nGetPeers returns the Peers field if non-nil, zero value otherwise.\n\n### GetPeersOk\n\n`func (o *Config) GetPeersOk() (*[]Peer, bool)`\n\nGetPeersOk returns a tuple with the Peers field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetPeers\n\n`func (o *Config) SetPeers(v []Peer)`\n\nSetPeers sets Peers field to given value.\n\n\n### GetServices\n\n`func (o *Config) GetServices() ConfigServices`\n\nGetServices returns the Services field if non-nil, zero value otherwise.\n\n### GetServicesOk\n\n`func (o *Config) GetServicesOk() (*ConfigServices, bool)`\n\nGetServicesOk returns a tuple with the Services field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetServices\n\n`func (o *Config) SetServices(v ConfigServices)`\n\nSetServices sets Services field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/ConfigInterface.md",
    "content": "# ConfigInterface\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Addresses** | [**NetworkAddress**](NetworkAddress.md) |  | \n\n## Methods\n\n### NewConfigInterface\n\n`func NewConfigInterface(addresses NetworkAddress, ) *ConfigInterface`\n\nNewConfigInterface instantiates a new ConfigInterface object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewConfigInterfaceWithDefaults\n\n`func NewConfigInterfaceWithDefaults() *ConfigInterface`\n\nNewConfigInterfaceWithDefaults instantiates a new ConfigInterface object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetAddresses\n\n`func (o *ConfigInterface) GetAddresses() NetworkAddress`\n\nGetAddresses returns the Addresses field if non-nil, zero value otherwise.\n\n### GetAddressesOk\n\n`func (o *ConfigInterface) GetAddressesOk() (*NetworkAddress, bool)`\n\nGetAddressesOk returns a tuple with the Addresses field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetAddresses\n\n`func (o *ConfigInterface) SetAddresses(v NetworkAddress)`\n\nSetAddresses sets Addresses field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/ConfigServices.md",
    "content": "# ConfigServices\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**HttpProxy** | **string** |  | \n\n## Methods\n\n### NewConfigServices\n\n`func NewConfigServices(httpProxy string, ) *ConfigServices`\n\nNewConfigServices instantiates a new ConfigServices object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewConfigServicesWithDefaults\n\n`func NewConfigServicesWithDefaults() *ConfigServices`\n\nNewConfigServicesWithDefaults instantiates a new ConfigServices object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetHttpProxy\n\n`func (o *ConfigServices) GetHttpProxy() string`\n\nGetHttpProxy returns the HttpProxy field if non-nil, zero value otherwise.\n\n### GetHttpProxyOk\n\n`func (o *ConfigServices) GetHttpProxyOk() (*string, bool)`\n\nGetHttpProxyOk returns a tuple with the HttpProxy field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetHttpProxy\n\n`func (o *ConfigServices) SetHttpProxy(v string)`\n\nSetHttpProxy sets HttpProxy field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/DefaultApi.md",
    "content": "# \\DefaultAPI\n\nAll URIs are relative to *http://localhost*\n\nMethod | HTTP request | Description\n------------- | ------------- | -------------\n[**DeleteBoundDevice**](DefaultAPI.md#DeleteBoundDevice) | **Delete** /{apiVersion}/reg/{sourceDeviceId}/account/reg/{boundDeviceId} | DeleteBoundDevice\n[**GetAccount**](DefaultAPI.md#GetAccount) | **Get** /{apiVersion}/reg/{sourceDeviceId}/account | GetAccount\n[**GetBoundDevices**](DefaultAPI.md#GetBoundDevices) | **Get** /{apiVersion}/reg/{sourceDeviceId}/account/devices | GetBoundDevices\n[**GetClientConfig**](DefaultAPI.md#GetClientConfig) | **Get** /{apiVersion}/client_config | GetClientConfig\n[**GetSourceDevice**](DefaultAPI.md#GetSourceDevice) | **Get** /{apiVersion}/reg/{sourceDeviceId} | GetSourceDevice\n[**Register**](DefaultAPI.md#Register) | **Post** /{apiVersion}/reg | Register\n[**ResetAccountLicense**](DefaultAPI.md#ResetAccountLicense) | **Post** /{apiVersion}/reg/{sourceDeviceId}/account/license | ResetAccountLicense\n[**UpdateAccount**](DefaultAPI.md#UpdateAccount) | **Put** /{apiVersion}/reg/{sourceDeviceId}/account | UpdateAccount\n[**UpdateBoundDevice**](DefaultAPI.md#UpdateBoundDevice) | **Patch** /{apiVersion}/reg/{sourceDeviceId}/account/reg/{boundDeviceId} | UpdateBoundDevice\n[**UpdateSourceDevice**](DefaultAPI.md#UpdateSourceDevice) | **Patch** /{apiVersion}/reg/{sourceDeviceId} | UpdateSourceDevice\n\n\n\n## DeleteBoundDevice\n\n> DeleteBoundDevice(ctx, sourceDeviceId, apiVersion, boundDeviceId).Execute()\n\nDeleteBoundDevice\n\n### Example\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\topenapiclient \"github.com/GIT_USER_ID/GIT_REPO_ID\"\n)\n\nfunc main() {\n\tsourceDeviceId := \"sourceDeviceId_example\" // string | \n\tapiVersion := \"apiVersion_example\" // string | \n\tboundDeviceId := \"boundDeviceId_example\" // string | \n\n\tconfiguration := openapiclient.NewConfiguration()\n\tapiClient := openapiclient.NewAPIClient(configuration)\n\tr, err := apiClient.DefaultAPI.DeleteBoundDevice(context.Background(), sourceDeviceId, apiVersion, boundDeviceId).Execute()\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error when calling `DefaultAPI.DeleteBoundDevice``: %v\\n\", err)\n\t\tfmt.Fprintf(os.Stderr, \"Full HTTP response: %v\\n\", r)\n\t}\n}\n```\n\n### Path Parameters\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.\n**sourceDeviceId** | **string** |  | \n**apiVersion** | **string** |  | \n**boundDeviceId** | **string** |  | \n\n### Other Parameters\n\nOther parameters are passed through a pointer to a apiDeleteBoundDeviceRequest struct via the builder pattern\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n\n\n\n\n### Return type\n\n (empty response body)\n\n### Authorization\n\nNo authorization required\n\n### HTTP request headers\n\n- **Content-Type**: Not defined\n- **Accept**: Not defined\n\n[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)\n[[Back to Model list]](../README.md#documentation-for-models)\n[[Back to README]](../README.md)\n\n\n## GetAccount\n\n> Account GetAccount(ctx, sourceDeviceId, apiVersion).Execute()\n\nGetAccount\n\n### Example\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\topenapiclient \"github.com/GIT_USER_ID/GIT_REPO_ID\"\n)\n\nfunc main() {\n\tsourceDeviceId := \"sourceDeviceId_example\" // string | \n\tapiVersion := \"apiVersion_example\" // string | \n\n\tconfiguration := openapiclient.NewConfiguration()\n\tapiClient := openapiclient.NewAPIClient(configuration)\n\tresp, r, err := apiClient.DefaultAPI.GetAccount(context.Background(), sourceDeviceId, apiVersion).Execute()\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error when calling `DefaultAPI.GetAccount``: %v\\n\", err)\n\t\tfmt.Fprintf(os.Stderr, \"Full HTTP response: %v\\n\", r)\n\t}\n\t// response from `GetAccount`: Account\n\tfmt.Fprintf(os.Stdout, \"Response from `DefaultAPI.GetAccount`: %v\\n\", resp)\n}\n```\n\n### Path Parameters\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.\n**sourceDeviceId** | **string** |  | \n**apiVersion** | **string** |  | \n\n### Other Parameters\n\nOther parameters are passed through a pointer to a apiGetAccountRequest struct via the builder pattern\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n\n\n\n### Return type\n\n[**Account**](Account.md)\n\n### Authorization\n\nNo authorization required\n\n### HTTP request headers\n\n- **Content-Type**: Not defined\n- **Accept**: application/json\n\n[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)\n[[Back to Model list]](../README.md#documentation-for-models)\n[[Back to README]](../README.md)\n\n\n## GetBoundDevices\n\n> []BoundDevice GetBoundDevices(ctx, sourceDeviceId, apiVersion).Execute()\n\nGetBoundDevices\n\n### Example\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\topenapiclient \"github.com/GIT_USER_ID/GIT_REPO_ID\"\n)\n\nfunc main() {\n\tsourceDeviceId := \"sourceDeviceId_example\" // string | \n\tapiVersion := \"apiVersion_example\" // string | \n\n\tconfiguration := openapiclient.NewConfiguration()\n\tapiClient := openapiclient.NewAPIClient(configuration)\n\tresp, r, err := apiClient.DefaultAPI.GetBoundDevices(context.Background(), sourceDeviceId, apiVersion).Execute()\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error when calling `DefaultAPI.GetBoundDevices``: %v\\n\", err)\n\t\tfmt.Fprintf(os.Stderr, \"Full HTTP response: %v\\n\", r)\n\t}\n\t// response from `GetBoundDevices`: []BoundDevice\n\tfmt.Fprintf(os.Stdout, \"Response from `DefaultAPI.GetBoundDevices`: %v\\n\", resp)\n}\n```\n\n### Path Parameters\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.\n**sourceDeviceId** | **string** |  | \n**apiVersion** | **string** |  | \n\n### Other Parameters\n\nOther parameters are passed through a pointer to a apiGetBoundDevicesRequest struct via the builder pattern\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n\n\n\n### Return type\n\n[**[]BoundDevice**](BoundDevice.md)\n\n### Authorization\n\nNo authorization required\n\n### HTTP request headers\n\n- **Content-Type**: Not defined\n- **Accept**: application/json\n\n[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)\n[[Back to Model list]](../README.md#documentation-for-models)\n[[Back to README]](../README.md)\n\n\n## GetClientConfig\n\n> GetClientConfig200Response GetClientConfig(ctx, apiVersion).Execute()\n\nGetClientConfig\n\n### Example\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\topenapiclient \"github.com/GIT_USER_ID/GIT_REPO_ID\"\n)\n\nfunc main() {\n\tapiVersion := \"apiVersion_example\" // string | \n\n\tconfiguration := openapiclient.NewConfiguration()\n\tapiClient := openapiclient.NewAPIClient(configuration)\n\tresp, r, err := apiClient.DefaultAPI.GetClientConfig(context.Background(), apiVersion).Execute()\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error when calling `DefaultAPI.GetClientConfig``: %v\\n\", err)\n\t\tfmt.Fprintf(os.Stderr, \"Full HTTP response: %v\\n\", r)\n\t}\n\t// response from `GetClientConfig`: GetClientConfig200Response\n\tfmt.Fprintf(os.Stdout, \"Response from `DefaultAPI.GetClientConfig`: %v\\n\", resp)\n}\n```\n\n### Path Parameters\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.\n**apiVersion** | **string** |  | \n\n### Other Parameters\n\nOther parameters are passed through a pointer to a apiGetClientConfigRequest struct via the builder pattern\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n\n\n### Return type\n\n[**GetClientConfig200Response**](GetClientConfig200Response.md)\n\n### Authorization\n\nNo authorization required\n\n### HTTP request headers\n\n- **Content-Type**: Not defined\n- **Accept**: application/json\n\n[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)\n[[Back to Model list]](../README.md#documentation-for-models)\n[[Back to README]](../README.md)\n\n\n## GetSourceDevice\n\n> GetSourceDevice200Response GetSourceDevice(ctx, apiVersion, sourceDeviceId).Execute()\n\nGetSourceDevice\n\n### Example\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\topenapiclient \"github.com/GIT_USER_ID/GIT_REPO_ID\"\n)\n\nfunc main() {\n\tapiVersion := \"apiVersion_example\" // string | \n\tsourceDeviceId := \"sourceDeviceId_example\" // string | \n\n\tconfiguration := openapiclient.NewConfiguration()\n\tapiClient := openapiclient.NewAPIClient(configuration)\n\tresp, r, err := apiClient.DefaultAPI.GetSourceDevice(context.Background(), apiVersion, sourceDeviceId).Execute()\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error when calling `DefaultAPI.GetSourceDevice``: %v\\n\", err)\n\t\tfmt.Fprintf(os.Stderr, \"Full HTTP response: %v\\n\", r)\n\t}\n\t// response from `GetSourceDevice`: GetSourceDevice200Response\n\tfmt.Fprintf(os.Stdout, \"Response from `DefaultAPI.GetSourceDevice`: %v\\n\", resp)\n}\n```\n\n### Path Parameters\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.\n**apiVersion** | **string** |  | \n**sourceDeviceId** | **string** |  | \n\n### Other Parameters\n\nOther parameters are passed through a pointer to a apiGetSourceDeviceRequest struct via the builder pattern\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n\n\n\n### Return type\n\n[**GetSourceDevice200Response**](GetSourceDevice200Response.md)\n\n### Authorization\n\nNo authorization required\n\n### HTTP request headers\n\n- **Content-Type**: Not defined\n- **Accept**: application/json\n\n[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)\n[[Back to Model list]](../README.md#documentation-for-models)\n[[Back to README]](../README.md)\n\n\n## Register\n\n> Register200Response Register(ctx, apiVersion).RegisterRequest(registerRequest).Execute()\n\nRegister\n\n### Example\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\topenapiclient \"github.com/GIT_USER_ID/GIT_REPO_ID\"\n)\n\nfunc main() {\n\tapiVersion := \"apiVersion_example\" // string | \n\tregisterRequest := *openapiclient.NewRegisterRequest(\"FcmToken_example\", \"InstallId_example\", \"Key_example\", \"Locale_example\", \"Model_example\", \"Tos_example\", \"Type_example\") // RegisterRequest |  (optional)\n\n\tconfiguration := openapiclient.NewConfiguration()\n\tapiClient := openapiclient.NewAPIClient(configuration)\n\tresp, r, err := apiClient.DefaultAPI.Register(context.Background(), apiVersion).RegisterRequest(registerRequest).Execute()\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error when calling `DefaultAPI.Register``: %v\\n\", err)\n\t\tfmt.Fprintf(os.Stderr, \"Full HTTP response: %v\\n\", r)\n\t}\n\t// response from `Register`: Register200Response\n\tfmt.Fprintf(os.Stdout, \"Response from `DefaultAPI.Register`: %v\\n\", resp)\n}\n```\n\n### Path Parameters\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.\n**apiVersion** | **string** |  | \n\n### Other Parameters\n\nOther parameters are passed through a pointer to a apiRegisterRequest struct via the builder pattern\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n\n **registerRequest** | [**RegisterRequest**](RegisterRequest.md) |  | \n\n### Return type\n\n[**Register200Response**](Register200Response.md)\n\n### Authorization\n\nNo authorization required\n\n### HTTP request headers\n\n- **Content-Type**: application/json\n- **Accept**: application/json\n\n[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)\n[[Back to Model list]](../README.md#documentation-for-models)\n[[Back to README]](../README.md)\n\n\n## ResetAccountLicense\n\n> ResetAccountLicense200Response ResetAccountLicense(ctx, sourceDeviceId, apiVersion).Execute()\n\nResetAccountLicense\n\n### Example\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\topenapiclient \"github.com/GIT_USER_ID/GIT_REPO_ID\"\n)\n\nfunc main() {\n\tsourceDeviceId := \"sourceDeviceId_example\" // string | \n\tapiVersion := \"apiVersion_example\" // string | \n\n\tconfiguration := openapiclient.NewConfiguration()\n\tapiClient := openapiclient.NewAPIClient(configuration)\n\tresp, r, err := apiClient.DefaultAPI.ResetAccountLicense(context.Background(), sourceDeviceId, apiVersion).Execute()\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error when calling `DefaultAPI.ResetAccountLicense``: %v\\n\", err)\n\t\tfmt.Fprintf(os.Stderr, \"Full HTTP response: %v\\n\", r)\n\t}\n\t// response from `ResetAccountLicense`: ResetAccountLicense200Response\n\tfmt.Fprintf(os.Stdout, \"Response from `DefaultAPI.ResetAccountLicense`: %v\\n\", resp)\n}\n```\n\n### Path Parameters\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.\n**sourceDeviceId** | **string** |  | \n**apiVersion** | **string** |  | \n\n### Other Parameters\n\nOther parameters are passed through a pointer to a apiResetAccountLicenseRequest struct via the builder pattern\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n\n\n\n### Return type\n\n[**ResetAccountLicense200Response**](ResetAccountLicense200Response.md)\n\n### Authorization\n\nNo authorization required\n\n### HTTP request headers\n\n- **Content-Type**: Not defined\n- **Accept**: application/json\n\n[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)\n[[Back to Model list]](../README.md#documentation-for-models)\n[[Back to README]](../README.md)\n\n\n## UpdateAccount\n\n> UpdateAccount200Response UpdateAccount(ctx, sourceDeviceId, apiVersion).UpdateAccountRequest(updateAccountRequest).Execute()\n\nUpdateAccount\n\n### Example\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\topenapiclient \"github.com/GIT_USER_ID/GIT_REPO_ID\"\n)\n\nfunc main() {\n\tsourceDeviceId := \"sourceDeviceId_example\" // string | \n\tapiVersion := \"apiVersion_example\" // string | \n\tupdateAccountRequest := *openapiclient.NewUpdateAccountRequest(\"License_example\") // UpdateAccountRequest |  (optional)\n\n\tconfiguration := openapiclient.NewConfiguration()\n\tapiClient := openapiclient.NewAPIClient(configuration)\n\tresp, r, err := apiClient.DefaultAPI.UpdateAccount(context.Background(), sourceDeviceId, apiVersion).UpdateAccountRequest(updateAccountRequest).Execute()\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error when calling `DefaultAPI.UpdateAccount``: %v\\n\", err)\n\t\tfmt.Fprintf(os.Stderr, \"Full HTTP response: %v\\n\", r)\n\t}\n\t// response from `UpdateAccount`: UpdateAccount200Response\n\tfmt.Fprintf(os.Stdout, \"Response from `DefaultAPI.UpdateAccount`: %v\\n\", resp)\n}\n```\n\n### Path Parameters\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.\n**sourceDeviceId** | **string** |  | \n**apiVersion** | **string** |  | \n\n### Other Parameters\n\nOther parameters are passed through a pointer to a apiUpdateAccountRequest struct via the builder pattern\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n\n\n **updateAccountRequest** | [**UpdateAccountRequest**](UpdateAccountRequest.md) |  | \n\n### Return type\n\n[**UpdateAccount200Response**](UpdateAccount200Response.md)\n\n### Authorization\n\nNo authorization required\n\n### HTTP request headers\n\n- **Content-Type**: application/json\n- **Accept**: application/json\n\n[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)\n[[Back to Model list]](../README.md#documentation-for-models)\n[[Back to README]](../README.md)\n\n\n## UpdateBoundDevice\n\n> []BoundDevice UpdateBoundDevice(ctx, sourceDeviceId, apiVersion, boundDeviceId).UpdateBoundDeviceRequest(updateBoundDeviceRequest).Execute()\n\nUpdateBoundDevice\n\n### Example\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\topenapiclient \"github.com/GIT_USER_ID/GIT_REPO_ID\"\n)\n\nfunc main() {\n\tsourceDeviceId := \"sourceDeviceId_example\" // string | \n\tapiVersion := \"apiVersion_example\" // string | \n\tboundDeviceId := \"boundDeviceId_example\" // string | \n\tupdateBoundDeviceRequest := *openapiclient.NewUpdateBoundDeviceRequest() // UpdateBoundDeviceRequest |  (optional)\n\n\tconfiguration := openapiclient.NewConfiguration()\n\tapiClient := openapiclient.NewAPIClient(configuration)\n\tresp, r, err := apiClient.DefaultAPI.UpdateBoundDevice(context.Background(), sourceDeviceId, apiVersion, boundDeviceId).UpdateBoundDeviceRequest(updateBoundDeviceRequest).Execute()\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error when calling `DefaultAPI.UpdateBoundDevice``: %v\\n\", err)\n\t\tfmt.Fprintf(os.Stderr, \"Full HTTP response: %v\\n\", r)\n\t}\n\t// response from `UpdateBoundDevice`: []BoundDevice\n\tfmt.Fprintf(os.Stdout, \"Response from `DefaultAPI.UpdateBoundDevice`: %v\\n\", resp)\n}\n```\n\n### Path Parameters\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.\n**sourceDeviceId** | **string** |  | \n**apiVersion** | **string** |  | \n**boundDeviceId** | **string** |  | \n\n### Other Parameters\n\nOther parameters are passed through a pointer to a apiUpdateBoundDeviceRequest struct via the builder pattern\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n\n\n\n **updateBoundDeviceRequest** | [**UpdateBoundDeviceRequest**](UpdateBoundDeviceRequest.md) |  | \n\n### Return type\n\n[**[]BoundDevice**](BoundDevice.md)\n\n### Authorization\n\nNo authorization required\n\n### HTTP request headers\n\n- **Content-Type**: application/json\n- **Accept**: application/json\n\n[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)\n[[Back to Model list]](../README.md#documentation-for-models)\n[[Back to README]](../README.md)\n\n\n## UpdateSourceDevice\n\n> UpdateSourceDevice200Response UpdateSourceDevice(ctx, apiVersion, sourceDeviceId).UpdateSourceDeviceRequest(updateSourceDeviceRequest).Execute()\n\nUpdateSourceDevice\n\n### Example\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\topenapiclient \"github.com/GIT_USER_ID/GIT_REPO_ID\"\n)\n\nfunc main() {\n\tapiVersion := \"apiVersion_example\" // string | \n\tsourceDeviceId := \"sourceDeviceId_example\" // string | \n\tupdateSourceDeviceRequest := *openapiclient.NewUpdateSourceDeviceRequest(\"Key_example\") // UpdateSourceDeviceRequest |  (optional)\n\n\tconfiguration := openapiclient.NewConfiguration()\n\tapiClient := openapiclient.NewAPIClient(configuration)\n\tresp, r, err := apiClient.DefaultAPI.UpdateSourceDevice(context.Background(), apiVersion, sourceDeviceId).UpdateSourceDeviceRequest(updateSourceDeviceRequest).Execute()\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"Error when calling `DefaultAPI.UpdateSourceDevice``: %v\\n\", err)\n\t\tfmt.Fprintf(os.Stderr, \"Full HTTP response: %v\\n\", r)\n\t}\n\t// response from `UpdateSourceDevice`: UpdateSourceDevice200Response\n\tfmt.Fprintf(os.Stdout, \"Response from `DefaultAPI.UpdateSourceDevice`: %v\\n\", resp)\n}\n```\n\n### Path Parameters\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.\n**apiVersion** | **string** |  | \n**sourceDeviceId** | **string** |  | \n\n### Other Parameters\n\nOther parameters are passed through a pointer to a apiUpdateSourceDeviceRequest struct via the builder pattern\n\n\nName | Type | Description  | Notes\n------------- | ------------- | ------------- | -------------\n\n\n **updateSourceDeviceRequest** | [**UpdateSourceDeviceRequest**](UpdateSourceDeviceRequest.md) |  | \n\n### Return type\n\n[**UpdateSourceDevice200Response**](UpdateSourceDevice200Response.md)\n\n### Authorization\n\nNo authorization required\n\n### HTTP request headers\n\n- **Content-Type**: application/json\n- **Accept**: application/json\n\n[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)\n[[Back to Model list]](../README.md#documentation-for-models)\n[[Back to README]](../README.md)\n\n"
  },
  {
    "path": "openapi/docs/Endpoint.md",
    "content": "# Endpoint\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Host** | **string** |  | \n**V4** | **string** |  | \n**V6** | **string** |  | \n\n## Methods\n\n### NewEndpoint\n\n`func NewEndpoint(host string, v4 string, v6 string, ) *Endpoint`\n\nNewEndpoint instantiates a new Endpoint object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewEndpointWithDefaults\n\n`func NewEndpointWithDefaults() *Endpoint`\n\nNewEndpointWithDefaults instantiates a new Endpoint object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetHost\n\n`func (o *Endpoint) GetHost() string`\n\nGetHost returns the Host field if non-nil, zero value otherwise.\n\n### GetHostOk\n\n`func (o *Endpoint) GetHostOk() (*string, bool)`\n\nGetHostOk returns a tuple with the Host field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetHost\n\n`func (o *Endpoint) SetHost(v string)`\n\nSetHost sets Host field to given value.\n\n\n### GetV4\n\n`func (o *Endpoint) GetV4() string`\n\nGetV4 returns the V4 field if non-nil, zero value otherwise.\n\n### GetV4Ok\n\n`func (o *Endpoint) GetV4Ok() (*string, bool)`\n\nGetV4Ok returns a tuple with the V4 field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetV4\n\n`func (o *Endpoint) SetV4(v string)`\n\nSetV4 sets V4 field to given value.\n\n\n### GetV6\n\n`func (o *Endpoint) GetV6() string`\n\nGetV6 returns the V6 field if non-nil, zero value otherwise.\n\n### GetV6Ok\n\n`func (o *Endpoint) GetV6Ok() (*string, bool)`\n\nGetV6Ok returns a tuple with the V6 field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetV6\n\n`func (o *Endpoint) SetV6(v string)`\n\nSetV6 sets V6 field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/GetClientConfig200Response.md",
    "content": "# GetClientConfig200Response\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**CaptivePortal** | [**[]GetClientConfig200ResponseCaptivePortalInner**](GetClientConfig200ResponseCaptivePortalInner.md) |  | \n**Denylist** | [**[]GetClientConfig200ResponseDenylistInner**](GetClientConfig200ResponseDenylistInner.md) |  | \n**PremiumDataBytes** | **float32** |  | \n**ReferralRewardBytes** | **float32** |  | \n\n## Methods\n\n### NewGetClientConfig200Response\n\n`func NewGetClientConfig200Response(captivePortal []GetClientConfig200ResponseCaptivePortalInner, denylist []GetClientConfig200ResponseDenylistInner, premiumDataBytes float32, referralRewardBytes float32, ) *GetClientConfig200Response`\n\nNewGetClientConfig200Response instantiates a new GetClientConfig200Response object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewGetClientConfig200ResponseWithDefaults\n\n`func NewGetClientConfig200ResponseWithDefaults() *GetClientConfig200Response`\n\nNewGetClientConfig200ResponseWithDefaults instantiates a new GetClientConfig200Response object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetCaptivePortal\n\n`func (o *GetClientConfig200Response) GetCaptivePortal() []GetClientConfig200ResponseCaptivePortalInner`\n\nGetCaptivePortal returns the CaptivePortal field if non-nil, zero value otherwise.\n\n### GetCaptivePortalOk\n\n`func (o *GetClientConfig200Response) GetCaptivePortalOk() (*[]GetClientConfig200ResponseCaptivePortalInner, bool)`\n\nGetCaptivePortalOk returns a tuple with the CaptivePortal field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetCaptivePortal\n\n`func (o *GetClientConfig200Response) SetCaptivePortal(v []GetClientConfig200ResponseCaptivePortalInner)`\n\nSetCaptivePortal sets CaptivePortal field to given value.\n\n\n### GetDenylist\n\n`func (o *GetClientConfig200Response) GetDenylist() []GetClientConfig200ResponseDenylistInner`\n\nGetDenylist returns the Denylist field if non-nil, zero value otherwise.\n\n### GetDenylistOk\n\n`func (o *GetClientConfig200Response) GetDenylistOk() (*[]GetClientConfig200ResponseDenylistInner, bool)`\n\nGetDenylistOk returns a tuple with the Denylist field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetDenylist\n\n`func (o *GetClientConfig200Response) SetDenylist(v []GetClientConfig200ResponseDenylistInner)`\n\nSetDenylist sets Denylist field to given value.\n\n\n### GetPremiumDataBytes\n\n`func (o *GetClientConfig200Response) GetPremiumDataBytes() float32`\n\nGetPremiumDataBytes returns the PremiumDataBytes field if non-nil, zero value otherwise.\n\n### GetPremiumDataBytesOk\n\n`func (o *GetClientConfig200Response) GetPremiumDataBytesOk() (*float32, bool)`\n\nGetPremiumDataBytesOk returns a tuple with the PremiumDataBytes field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetPremiumDataBytes\n\n`func (o *GetClientConfig200Response) SetPremiumDataBytes(v float32)`\n\nSetPremiumDataBytes sets PremiumDataBytes field to given value.\n\n\n### GetReferralRewardBytes\n\n`func (o *GetClientConfig200Response) GetReferralRewardBytes() float32`\n\nGetReferralRewardBytes returns the ReferralRewardBytes field if non-nil, zero value otherwise.\n\n### GetReferralRewardBytesOk\n\n`func (o *GetClientConfig200Response) GetReferralRewardBytesOk() (*float32, bool)`\n\nGetReferralRewardBytesOk returns a tuple with the ReferralRewardBytes field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetReferralRewardBytes\n\n`func (o *GetClientConfig200Response) SetReferralRewardBytes(v float32)`\n\nSetReferralRewardBytes sets ReferralRewardBytes field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/GetClientConfig200ResponseCaptivePortalInner.md",
    "content": "# GetClientConfig200ResponseCaptivePortalInner\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Name** | **string** |  | \n**Networks** | [**[]GetClientConfig200ResponseCaptivePortalInnerNetworksInner**](GetClientConfig200ResponseCaptivePortalInnerNetworksInner.md) |  | \n\n## Methods\n\n### NewGetClientConfig200ResponseCaptivePortalInner\n\n`func NewGetClientConfig200ResponseCaptivePortalInner(name string, networks []GetClientConfig200ResponseCaptivePortalInnerNetworksInner, ) *GetClientConfig200ResponseCaptivePortalInner`\n\nNewGetClientConfig200ResponseCaptivePortalInner instantiates a new GetClientConfig200ResponseCaptivePortalInner object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewGetClientConfig200ResponseCaptivePortalInnerWithDefaults\n\n`func NewGetClientConfig200ResponseCaptivePortalInnerWithDefaults() *GetClientConfig200ResponseCaptivePortalInner`\n\nNewGetClientConfig200ResponseCaptivePortalInnerWithDefaults instantiates a new GetClientConfig200ResponseCaptivePortalInner object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetName\n\n`func (o *GetClientConfig200ResponseCaptivePortalInner) GetName() string`\n\nGetName returns the Name field if non-nil, zero value otherwise.\n\n### GetNameOk\n\n`func (o *GetClientConfig200ResponseCaptivePortalInner) GetNameOk() (*string, bool)`\n\nGetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetName\n\n`func (o *GetClientConfig200ResponseCaptivePortalInner) SetName(v string)`\n\nSetName sets Name field to given value.\n\n\n### GetNetworks\n\n`func (o *GetClientConfig200ResponseCaptivePortalInner) GetNetworks() []GetClientConfig200ResponseCaptivePortalInnerNetworksInner`\n\nGetNetworks returns the Networks field if non-nil, zero value otherwise.\n\n### GetNetworksOk\n\n`func (o *GetClientConfig200ResponseCaptivePortalInner) GetNetworksOk() (*[]GetClientConfig200ResponseCaptivePortalInnerNetworksInner, bool)`\n\nGetNetworksOk returns a tuple with the Networks field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetNetworks\n\n`func (o *GetClientConfig200ResponseCaptivePortalInner) SetNetworks(v []GetClientConfig200ResponseCaptivePortalInnerNetworksInner)`\n\nSetNetworks sets Networks field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/GetClientConfig200ResponseCaptivePortalInnerNetworksInner.md",
    "content": "# GetClientConfig200ResponseCaptivePortalInnerNetworksInner\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Address** | **string** |  | \n\n## Methods\n\n### NewGetClientConfig200ResponseCaptivePortalInnerNetworksInner\n\n`func NewGetClientConfig200ResponseCaptivePortalInnerNetworksInner(address string, ) *GetClientConfig200ResponseCaptivePortalInnerNetworksInner`\n\nNewGetClientConfig200ResponseCaptivePortalInnerNetworksInner instantiates a new GetClientConfig200ResponseCaptivePortalInnerNetworksInner object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewGetClientConfig200ResponseCaptivePortalInnerNetworksInnerWithDefaults\n\n`func NewGetClientConfig200ResponseCaptivePortalInnerNetworksInnerWithDefaults() *GetClientConfig200ResponseCaptivePortalInnerNetworksInner`\n\nNewGetClientConfig200ResponseCaptivePortalInnerNetworksInnerWithDefaults instantiates a new GetClientConfig200ResponseCaptivePortalInnerNetworksInner object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetAddress\n\n`func (o *GetClientConfig200ResponseCaptivePortalInnerNetworksInner) GetAddress() string`\n\nGetAddress returns the Address field if non-nil, zero value otherwise.\n\n### GetAddressOk\n\n`func (o *GetClientConfig200ResponseCaptivePortalInnerNetworksInner) GetAddressOk() (*string, bool)`\n\nGetAddressOk returns a tuple with the Address field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetAddress\n\n`func (o *GetClientConfig200ResponseCaptivePortalInnerNetworksInner) SetAddress(v string)`\n\nSetAddress sets Address field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/GetClientConfig200ResponseDenylistInner.md",
    "content": "# GetClientConfig200ResponseDenylistInner\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**AndroidPackages** | Pointer to **[]string** |  | [optional] \n**Name** | **string** |  | \n**Networks** | Pointer to [**GetClientConfig200ResponseDenylistInnerNetworks**](GetClientConfig200ResponseDenylistInnerNetworks.md) |  | [optional] \n**Visible** | **bool** |  | \n\n## Methods\n\n### NewGetClientConfig200ResponseDenylistInner\n\n`func NewGetClientConfig200ResponseDenylistInner(name string, visible bool, ) *GetClientConfig200ResponseDenylistInner`\n\nNewGetClientConfig200ResponseDenylistInner instantiates a new GetClientConfig200ResponseDenylistInner object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewGetClientConfig200ResponseDenylistInnerWithDefaults\n\n`func NewGetClientConfig200ResponseDenylistInnerWithDefaults() *GetClientConfig200ResponseDenylistInner`\n\nNewGetClientConfig200ResponseDenylistInnerWithDefaults instantiates a new GetClientConfig200ResponseDenylistInner object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetAndroidPackages\n\n`func (o *GetClientConfig200ResponseDenylistInner) GetAndroidPackages() []string`\n\nGetAndroidPackages returns the AndroidPackages field if non-nil, zero value otherwise.\n\n### GetAndroidPackagesOk\n\n`func (o *GetClientConfig200ResponseDenylistInner) GetAndroidPackagesOk() (*[]string, bool)`\n\nGetAndroidPackagesOk returns a tuple with the AndroidPackages field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetAndroidPackages\n\n`func (o *GetClientConfig200ResponseDenylistInner) SetAndroidPackages(v []string)`\n\nSetAndroidPackages sets AndroidPackages field to given value.\n\n### HasAndroidPackages\n\n`func (o *GetClientConfig200ResponseDenylistInner) HasAndroidPackages() bool`\n\nHasAndroidPackages returns a boolean if a field has been set.\n\n### GetName\n\n`func (o *GetClientConfig200ResponseDenylistInner) GetName() string`\n\nGetName returns the Name field if non-nil, zero value otherwise.\n\n### GetNameOk\n\n`func (o *GetClientConfig200ResponseDenylistInner) GetNameOk() (*string, bool)`\n\nGetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetName\n\n`func (o *GetClientConfig200ResponseDenylistInner) SetName(v string)`\n\nSetName sets Name field to given value.\n\n\n### GetNetworks\n\n`func (o *GetClientConfig200ResponseDenylistInner) GetNetworks() GetClientConfig200ResponseDenylistInnerNetworks`\n\nGetNetworks returns the Networks field if non-nil, zero value otherwise.\n\n### GetNetworksOk\n\n`func (o *GetClientConfig200ResponseDenylistInner) GetNetworksOk() (*GetClientConfig200ResponseDenylistInnerNetworks, bool)`\n\nGetNetworksOk returns a tuple with the Networks field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetNetworks\n\n`func (o *GetClientConfig200ResponseDenylistInner) SetNetworks(v GetClientConfig200ResponseDenylistInnerNetworks)`\n\nSetNetworks sets Networks field to given value.\n\n### HasNetworks\n\n`func (o *GetClientConfig200ResponseDenylistInner) HasNetworks() bool`\n\nHasNetworks returns a boolean if a field has been set.\n\n### GetVisible\n\n`func (o *GetClientConfig200ResponseDenylistInner) GetVisible() bool`\n\nGetVisible returns the Visible field if non-nil, zero value otherwise.\n\n### GetVisibleOk\n\n`func (o *GetClientConfig200ResponseDenylistInner) GetVisibleOk() (*bool, bool)`\n\nGetVisibleOk returns a tuple with the Visible field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetVisible\n\n`func (o *GetClientConfig200ResponseDenylistInner) SetVisible(v bool)`\n\nSetVisible sets Visible field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/GetClientConfig200ResponseDenylistInnerNetworks.md",
    "content": "# GetClientConfig200ResponseDenylistInnerNetworks\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**V4** | [**[]IPv4Network**](IPv4Network.md) |  | \n**V6** | [**[]IPv6Network**](IPv6Network.md) |  | \n\n## Methods\n\n### NewGetClientConfig200ResponseDenylistInnerNetworks\n\n`func NewGetClientConfig200ResponseDenylistInnerNetworks(v4 []IPv4Network, v6 []IPv6Network, ) *GetClientConfig200ResponseDenylistInnerNetworks`\n\nNewGetClientConfig200ResponseDenylistInnerNetworks instantiates a new GetClientConfig200ResponseDenylistInnerNetworks object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewGetClientConfig200ResponseDenylistInnerNetworksWithDefaults\n\n`func NewGetClientConfig200ResponseDenylistInnerNetworksWithDefaults() *GetClientConfig200ResponseDenylistInnerNetworks`\n\nNewGetClientConfig200ResponseDenylistInnerNetworksWithDefaults instantiates a new GetClientConfig200ResponseDenylistInnerNetworks object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetV4\n\n`func (o *GetClientConfig200ResponseDenylistInnerNetworks) GetV4() []IPv4Network`\n\nGetV4 returns the V4 field if non-nil, zero value otherwise.\n\n### GetV4Ok\n\n`func (o *GetClientConfig200ResponseDenylistInnerNetworks) GetV4Ok() (*[]IPv4Network, bool)`\n\nGetV4Ok returns a tuple with the V4 field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetV4\n\n`func (o *GetClientConfig200ResponseDenylistInnerNetworks) SetV4(v []IPv4Network)`\n\nSetV4 sets V4 field to given value.\n\n\n### GetV6\n\n`func (o *GetClientConfig200ResponseDenylistInnerNetworks) GetV6() []IPv6Network`\n\nGetV6 returns the V6 field if non-nil, zero value otherwise.\n\n### GetV6Ok\n\n`func (o *GetClientConfig200ResponseDenylistInnerNetworks) GetV6Ok() (*[]IPv6Network, bool)`\n\nGetV6Ok returns a tuple with the V6 field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetV6\n\n`func (o *GetClientConfig200ResponseDenylistInnerNetworks) SetV6(v []IPv6Network)`\n\nSetV6 sets V6 field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/GetSourceDevice200Response.md",
    "content": "# GetSourceDevice200Response\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Created** | **string** |  | \n**Enabled** | **bool** |  | \n**FcmToken** | **string** |  | \n**Id** | **string** |  | \n**InstallId** | **string** |  | \n**Key** | **string** |  | \n**Locale** | **string** |  | \n**Model** | **string** |  | \n**Name** | **string** |  | \n**Place** | **float32** |  | \n**Tos** | **string** |  | \n**Type** | **string** |  | \n**Updated** | **string** |  | \n**WaitlistEnabled** | **bool** |  | \n**WarpEnabled** | **bool** |  | \n**Account** | [**Account**](Account.md) |  | \n**Config** | [**Config**](Config.md) |  | \n\n## Methods\n\n### NewGetSourceDevice200Response\n\n`func NewGetSourceDevice200Response(created string, enabled bool, fcmToken string, id string, installId string, key string, locale string, model string, name string, place float32, tos string, type_ string, updated string, waitlistEnabled bool, warpEnabled bool, account Account, config Config, ) *GetSourceDevice200Response`\n\nNewGetSourceDevice200Response instantiates a new GetSourceDevice200Response object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewGetSourceDevice200ResponseWithDefaults\n\n`func NewGetSourceDevice200ResponseWithDefaults() *GetSourceDevice200Response`\n\nNewGetSourceDevice200ResponseWithDefaults instantiates a new GetSourceDevice200Response object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetCreated\n\n`func (o *GetSourceDevice200Response) GetCreated() string`\n\nGetCreated returns the Created field if non-nil, zero value otherwise.\n\n### GetCreatedOk\n\n`func (o *GetSourceDevice200Response) GetCreatedOk() (*string, bool)`\n\nGetCreatedOk returns a tuple with the Created field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetCreated\n\n`func (o *GetSourceDevice200Response) SetCreated(v string)`\n\nSetCreated sets Created field to given value.\n\n\n### GetEnabled\n\n`func (o *GetSourceDevice200Response) GetEnabled() bool`\n\nGetEnabled returns the Enabled field if non-nil, zero value otherwise.\n\n### GetEnabledOk\n\n`func (o *GetSourceDevice200Response) GetEnabledOk() (*bool, bool)`\n\nGetEnabledOk returns a tuple with the Enabled field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetEnabled\n\n`func (o *GetSourceDevice200Response) SetEnabled(v bool)`\n\nSetEnabled sets Enabled field to given value.\n\n\n### GetFcmToken\n\n`func (o *GetSourceDevice200Response) GetFcmToken() string`\n\nGetFcmToken returns the FcmToken field if non-nil, zero value otherwise.\n\n### GetFcmTokenOk\n\n`func (o *GetSourceDevice200Response) GetFcmTokenOk() (*string, bool)`\n\nGetFcmTokenOk returns a tuple with the FcmToken field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetFcmToken\n\n`func (o *GetSourceDevice200Response) SetFcmToken(v string)`\n\nSetFcmToken sets FcmToken field to given value.\n\n\n### GetId\n\n`func (o *GetSourceDevice200Response) GetId() string`\n\nGetId returns the Id field if non-nil, zero value otherwise.\n\n### GetIdOk\n\n`func (o *GetSourceDevice200Response) GetIdOk() (*string, bool)`\n\nGetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetId\n\n`func (o *GetSourceDevice200Response) SetId(v string)`\n\nSetId sets Id field to given value.\n\n\n### GetInstallId\n\n`func (o *GetSourceDevice200Response) GetInstallId() string`\n\nGetInstallId returns the InstallId field if non-nil, zero value otherwise.\n\n### GetInstallIdOk\n\n`func (o *GetSourceDevice200Response) GetInstallIdOk() (*string, bool)`\n\nGetInstallIdOk returns a tuple with the InstallId field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetInstallId\n\n`func (o *GetSourceDevice200Response) SetInstallId(v string)`\n\nSetInstallId sets InstallId field to given value.\n\n\n### GetKey\n\n`func (o *GetSourceDevice200Response) GetKey() string`\n\nGetKey returns the Key field if non-nil, zero value otherwise.\n\n### GetKeyOk\n\n`func (o *GetSourceDevice200Response) GetKeyOk() (*string, bool)`\n\nGetKeyOk returns a tuple with the Key field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetKey\n\n`func (o *GetSourceDevice200Response) SetKey(v string)`\n\nSetKey sets Key field to given value.\n\n\n### GetLocale\n\n`func (o *GetSourceDevice200Response) GetLocale() string`\n\nGetLocale returns the Locale field if non-nil, zero value otherwise.\n\n### GetLocaleOk\n\n`func (o *GetSourceDevice200Response) GetLocaleOk() (*string, bool)`\n\nGetLocaleOk returns a tuple with the Locale field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetLocale\n\n`func (o *GetSourceDevice200Response) SetLocale(v string)`\n\nSetLocale sets Locale field to given value.\n\n\n### GetModel\n\n`func (o *GetSourceDevice200Response) GetModel() string`\n\nGetModel returns the Model field if non-nil, zero value otherwise.\n\n### GetModelOk\n\n`func (o *GetSourceDevice200Response) GetModelOk() (*string, bool)`\n\nGetModelOk returns a tuple with the Model field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetModel\n\n`func (o *GetSourceDevice200Response) SetModel(v string)`\n\nSetModel sets Model field to given value.\n\n\n### GetName\n\n`func (o *GetSourceDevice200Response) GetName() string`\n\nGetName returns the Name field if non-nil, zero value otherwise.\n\n### GetNameOk\n\n`func (o *GetSourceDevice200Response) GetNameOk() (*string, bool)`\n\nGetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetName\n\n`func (o *GetSourceDevice200Response) SetName(v string)`\n\nSetName sets Name field to given value.\n\n\n### GetPlace\n\n`func (o *GetSourceDevice200Response) GetPlace() float32`\n\nGetPlace returns the Place field if non-nil, zero value otherwise.\n\n### GetPlaceOk\n\n`func (o *GetSourceDevice200Response) GetPlaceOk() (*float32, bool)`\n\nGetPlaceOk returns a tuple with the Place field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetPlace\n\n`func (o *GetSourceDevice200Response) SetPlace(v float32)`\n\nSetPlace sets Place field to given value.\n\n\n### GetTos\n\n`func (o *GetSourceDevice200Response) GetTos() string`\n\nGetTos returns the Tos field if non-nil, zero value otherwise.\n\n### GetTosOk\n\n`func (o *GetSourceDevice200Response) GetTosOk() (*string, bool)`\n\nGetTosOk returns a tuple with the Tos field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetTos\n\n`func (o *GetSourceDevice200Response) SetTos(v string)`\n\nSetTos sets Tos field to given value.\n\n\n### GetType\n\n`func (o *GetSourceDevice200Response) GetType() string`\n\nGetType returns the Type field if non-nil, zero value otherwise.\n\n### GetTypeOk\n\n`func (o *GetSourceDevice200Response) GetTypeOk() (*string, bool)`\n\nGetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetType\n\n`func (o *GetSourceDevice200Response) SetType(v string)`\n\nSetType sets Type field to given value.\n\n\n### GetUpdated\n\n`func (o *GetSourceDevice200Response) GetUpdated() string`\n\nGetUpdated returns the Updated field if non-nil, zero value otherwise.\n\n### GetUpdatedOk\n\n`func (o *GetSourceDevice200Response) GetUpdatedOk() (*string, bool)`\n\nGetUpdatedOk returns a tuple with the Updated field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetUpdated\n\n`func (o *GetSourceDevice200Response) SetUpdated(v string)`\n\nSetUpdated sets Updated field to given value.\n\n\n### GetWaitlistEnabled\n\n`func (o *GetSourceDevice200Response) GetWaitlistEnabled() bool`\n\nGetWaitlistEnabled returns the WaitlistEnabled field if non-nil, zero value otherwise.\n\n### GetWaitlistEnabledOk\n\n`func (o *GetSourceDevice200Response) GetWaitlistEnabledOk() (*bool, bool)`\n\nGetWaitlistEnabledOk returns a tuple with the WaitlistEnabled field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetWaitlistEnabled\n\n`func (o *GetSourceDevice200Response) SetWaitlistEnabled(v bool)`\n\nSetWaitlistEnabled sets WaitlistEnabled field to given value.\n\n\n### GetWarpEnabled\n\n`func (o *GetSourceDevice200Response) GetWarpEnabled() bool`\n\nGetWarpEnabled returns the WarpEnabled field if non-nil, zero value otherwise.\n\n### GetWarpEnabledOk\n\n`func (o *GetSourceDevice200Response) GetWarpEnabledOk() (*bool, bool)`\n\nGetWarpEnabledOk returns a tuple with the WarpEnabled field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetWarpEnabled\n\n`func (o *GetSourceDevice200Response) SetWarpEnabled(v bool)`\n\nSetWarpEnabled sets WarpEnabled field to given value.\n\n\n### GetAccount\n\n`func (o *GetSourceDevice200Response) GetAccount() Account`\n\nGetAccount returns the Account field if non-nil, zero value otherwise.\n\n### GetAccountOk\n\n`func (o *GetSourceDevice200Response) GetAccountOk() (*Account, bool)`\n\nGetAccountOk returns a tuple with the Account field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetAccount\n\n`func (o *GetSourceDevice200Response) SetAccount(v Account)`\n\nSetAccount sets Account field to given value.\n\n\n### GetConfig\n\n`func (o *GetSourceDevice200Response) GetConfig() Config`\n\nGetConfig returns the Config field if non-nil, zero value otherwise.\n\n### GetConfigOk\n\n`func (o *GetSourceDevice200Response) GetConfigOk() (*Config, bool)`\n\nGetConfigOk returns a tuple with the Config field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetConfig\n\n`func (o *GetSourceDevice200Response) SetConfig(v Config)`\n\nSetConfig sets Config field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/IPv4Network.md",
    "content": "# IPv4Network\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Address** | **string** |  | \n**Netmask** | **string** |  | \n\n## Methods\n\n### NewIPv4Network\n\n`func NewIPv4Network(address string, netmask string, ) *IPv4Network`\n\nNewIPv4Network instantiates a new IPv4Network object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewIPv4NetworkWithDefaults\n\n`func NewIPv4NetworkWithDefaults() *IPv4Network`\n\nNewIPv4NetworkWithDefaults instantiates a new IPv4Network object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetAddress\n\n`func (o *IPv4Network) GetAddress() string`\n\nGetAddress returns the Address field if non-nil, zero value otherwise.\n\n### GetAddressOk\n\n`func (o *IPv4Network) GetAddressOk() (*string, bool)`\n\nGetAddressOk returns a tuple with the Address field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetAddress\n\n`func (o *IPv4Network) SetAddress(v string)`\n\nSetAddress sets Address field to given value.\n\n\n### GetNetmask\n\n`func (o *IPv4Network) GetNetmask() string`\n\nGetNetmask returns the Netmask field if non-nil, zero value otherwise.\n\n### GetNetmaskOk\n\n`func (o *IPv4Network) GetNetmaskOk() (*string, bool)`\n\nGetNetmaskOk returns a tuple with the Netmask field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetNetmask\n\n`func (o *IPv4Network) SetNetmask(v string)`\n\nSetNetmask sets Netmask field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/IPv6Network.md",
    "content": "# IPv6Network\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Address** | **string** |  | \n**Prefix** | **float32** |  | \n\n## Methods\n\n### NewIPv6Network\n\n`func NewIPv6Network(address string, prefix float32, ) *IPv6Network`\n\nNewIPv6Network instantiates a new IPv6Network object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewIPv6NetworkWithDefaults\n\n`func NewIPv6NetworkWithDefaults() *IPv6Network`\n\nNewIPv6NetworkWithDefaults instantiates a new IPv6Network object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetAddress\n\n`func (o *IPv6Network) GetAddress() string`\n\nGetAddress returns the Address field if non-nil, zero value otherwise.\n\n### GetAddressOk\n\n`func (o *IPv6Network) GetAddressOk() (*string, bool)`\n\nGetAddressOk returns a tuple with the Address field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetAddress\n\n`func (o *IPv6Network) SetAddress(v string)`\n\nSetAddress sets Address field to given value.\n\n\n### GetPrefix\n\n`func (o *IPv6Network) GetPrefix() float32`\n\nGetPrefix returns the Prefix field if non-nil, zero value otherwise.\n\n### GetPrefixOk\n\n`func (o *IPv6Network) GetPrefixOk() (*float32, bool)`\n\nGetPrefixOk returns a tuple with the Prefix field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetPrefix\n\n`func (o *IPv6Network) SetPrefix(v float32)`\n\nSetPrefix sets Prefix field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/NetworkAddress.md",
    "content": "# NetworkAddress\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**V4** | **string** |  | \n**V6** | **string** |  | \n\n## Methods\n\n### NewNetworkAddress\n\n`func NewNetworkAddress(v4 string, v6 string, ) *NetworkAddress`\n\nNewNetworkAddress instantiates a new NetworkAddress object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewNetworkAddressWithDefaults\n\n`func NewNetworkAddressWithDefaults() *NetworkAddress`\n\nNewNetworkAddressWithDefaults instantiates a new NetworkAddress object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetV4\n\n`func (o *NetworkAddress) GetV4() string`\n\nGetV4 returns the V4 field if non-nil, zero value otherwise.\n\n### GetV4Ok\n\n`func (o *NetworkAddress) GetV4Ok() (*string, bool)`\n\nGetV4Ok returns a tuple with the V4 field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetV4\n\n`func (o *NetworkAddress) SetV4(v string)`\n\nSetV4 sets V4 field to given value.\n\n\n### GetV6\n\n`func (o *NetworkAddress) GetV6() string`\n\nGetV6 returns the V6 field if non-nil, zero value otherwise.\n\n### GetV6Ok\n\n`func (o *NetworkAddress) GetV6Ok() (*string, bool)`\n\nGetV6Ok returns a tuple with the V6 field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetV6\n\n`func (o *NetworkAddress) SetV6(v string)`\n\nSetV6 sets V6 field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/Peer.md",
    "content": "# Peer\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Endpoint** | [**Endpoint**](Endpoint.md) |  | \n**PublicKey** | **string** |  | \n\n## Methods\n\n### NewPeer\n\n`func NewPeer(endpoint Endpoint, publicKey string, ) *Peer`\n\nNewPeer instantiates a new Peer object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewPeerWithDefaults\n\n`func NewPeerWithDefaults() *Peer`\n\nNewPeerWithDefaults instantiates a new Peer object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetEndpoint\n\n`func (o *Peer) GetEndpoint() Endpoint`\n\nGetEndpoint returns the Endpoint field if non-nil, zero value otherwise.\n\n### GetEndpointOk\n\n`func (o *Peer) GetEndpointOk() (*Endpoint, bool)`\n\nGetEndpointOk returns a tuple with the Endpoint field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetEndpoint\n\n`func (o *Peer) SetEndpoint(v Endpoint)`\n\nSetEndpoint sets Endpoint field to given value.\n\n\n### GetPublicKey\n\n`func (o *Peer) GetPublicKey() string`\n\nGetPublicKey returns the PublicKey field if non-nil, zero value otherwise.\n\n### GetPublicKeyOk\n\n`func (o *Peer) GetPublicKeyOk() (*string, bool)`\n\nGetPublicKeyOk returns a tuple with the PublicKey field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetPublicKey\n\n`func (o *Peer) SetPublicKey(v string)`\n\nSetPublicKey sets PublicKey field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/Register200Response.md",
    "content": "# Register200Response\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Created** | **string** |  | \n**Enabled** | **bool** |  | \n**FcmToken** | **string** |  | \n**Id** | **string** |  | \n**InstallId** | **string** |  | \n**Key** | **string** |  | \n**Locale** | **string** |  | \n**Model** | **string** |  | \n**Name** | **string** |  | \n**Place** | **float32** |  | \n**Tos** | **string** |  | \n**Type** | **string** |  | \n**Updated** | **string** |  | \n**WaitlistEnabled** | **bool** |  | \n**WarpEnabled** | **bool** |  | \n**Account** | [**Account**](Account.md) |  | \n**Config** | [**Config**](Config.md) |  | \n**Token** | **string** |  | \n\n## Methods\n\n### NewRegister200Response\n\n`func NewRegister200Response(created string, enabled bool, fcmToken string, id string, installId string, key string, locale string, model string, name string, place float32, tos string, type_ string, updated string, waitlistEnabled bool, warpEnabled bool, account Account, config Config, token string, ) *Register200Response`\n\nNewRegister200Response instantiates a new Register200Response object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewRegister200ResponseWithDefaults\n\n`func NewRegister200ResponseWithDefaults() *Register200Response`\n\nNewRegister200ResponseWithDefaults instantiates a new Register200Response object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetCreated\n\n`func (o *Register200Response) GetCreated() string`\n\nGetCreated returns the Created field if non-nil, zero value otherwise.\n\n### GetCreatedOk\n\n`func (o *Register200Response) GetCreatedOk() (*string, bool)`\n\nGetCreatedOk returns a tuple with the Created field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetCreated\n\n`func (o *Register200Response) SetCreated(v string)`\n\nSetCreated sets Created field to given value.\n\n\n### GetEnabled\n\n`func (o *Register200Response) GetEnabled() bool`\n\nGetEnabled returns the Enabled field if non-nil, zero value otherwise.\n\n### GetEnabledOk\n\n`func (o *Register200Response) GetEnabledOk() (*bool, bool)`\n\nGetEnabledOk returns a tuple with the Enabled field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetEnabled\n\n`func (o *Register200Response) SetEnabled(v bool)`\n\nSetEnabled sets Enabled field to given value.\n\n\n### GetFcmToken\n\n`func (o *Register200Response) GetFcmToken() string`\n\nGetFcmToken returns the FcmToken field if non-nil, zero value otherwise.\n\n### GetFcmTokenOk\n\n`func (o *Register200Response) GetFcmTokenOk() (*string, bool)`\n\nGetFcmTokenOk returns a tuple with the FcmToken field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetFcmToken\n\n`func (o *Register200Response) SetFcmToken(v string)`\n\nSetFcmToken sets FcmToken field to given value.\n\n\n### GetId\n\n`func (o *Register200Response) GetId() string`\n\nGetId returns the Id field if non-nil, zero value otherwise.\n\n### GetIdOk\n\n`func (o *Register200Response) GetIdOk() (*string, bool)`\n\nGetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetId\n\n`func (o *Register200Response) SetId(v string)`\n\nSetId sets Id field to given value.\n\n\n### GetInstallId\n\n`func (o *Register200Response) GetInstallId() string`\n\nGetInstallId returns the InstallId field if non-nil, zero value otherwise.\n\n### GetInstallIdOk\n\n`func (o *Register200Response) GetInstallIdOk() (*string, bool)`\n\nGetInstallIdOk returns a tuple with the InstallId field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetInstallId\n\n`func (o *Register200Response) SetInstallId(v string)`\n\nSetInstallId sets InstallId field to given value.\n\n\n### GetKey\n\n`func (o *Register200Response) GetKey() string`\n\nGetKey returns the Key field if non-nil, zero value otherwise.\n\n### GetKeyOk\n\n`func (o *Register200Response) GetKeyOk() (*string, bool)`\n\nGetKeyOk returns a tuple with the Key field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetKey\n\n`func (o *Register200Response) SetKey(v string)`\n\nSetKey sets Key field to given value.\n\n\n### GetLocale\n\n`func (o *Register200Response) GetLocale() string`\n\nGetLocale returns the Locale field if non-nil, zero value otherwise.\n\n### GetLocaleOk\n\n`func (o *Register200Response) GetLocaleOk() (*string, bool)`\n\nGetLocaleOk returns a tuple with the Locale field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetLocale\n\n`func (o *Register200Response) SetLocale(v string)`\n\nSetLocale sets Locale field to given value.\n\n\n### GetModel\n\n`func (o *Register200Response) GetModel() string`\n\nGetModel returns the Model field if non-nil, zero value otherwise.\n\n### GetModelOk\n\n`func (o *Register200Response) GetModelOk() (*string, bool)`\n\nGetModelOk returns a tuple with the Model field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetModel\n\n`func (o *Register200Response) SetModel(v string)`\n\nSetModel sets Model field to given value.\n\n\n### GetName\n\n`func (o *Register200Response) GetName() string`\n\nGetName returns the Name field if non-nil, zero value otherwise.\n\n### GetNameOk\n\n`func (o *Register200Response) GetNameOk() (*string, bool)`\n\nGetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetName\n\n`func (o *Register200Response) SetName(v string)`\n\nSetName sets Name field to given value.\n\n\n### GetPlace\n\n`func (o *Register200Response) GetPlace() float32`\n\nGetPlace returns the Place field if non-nil, zero value otherwise.\n\n### GetPlaceOk\n\n`func (o *Register200Response) GetPlaceOk() (*float32, bool)`\n\nGetPlaceOk returns a tuple with the Place field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetPlace\n\n`func (o *Register200Response) SetPlace(v float32)`\n\nSetPlace sets Place field to given value.\n\n\n### GetTos\n\n`func (o *Register200Response) GetTos() string`\n\nGetTos returns the Tos field if non-nil, zero value otherwise.\n\n### GetTosOk\n\n`func (o *Register200Response) GetTosOk() (*string, bool)`\n\nGetTosOk returns a tuple with the Tos field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetTos\n\n`func (o *Register200Response) SetTos(v string)`\n\nSetTos sets Tos field to given value.\n\n\n### GetType\n\n`func (o *Register200Response) GetType() string`\n\nGetType returns the Type field if non-nil, zero value otherwise.\n\n### GetTypeOk\n\n`func (o *Register200Response) GetTypeOk() (*string, bool)`\n\nGetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetType\n\n`func (o *Register200Response) SetType(v string)`\n\nSetType sets Type field to given value.\n\n\n### GetUpdated\n\n`func (o *Register200Response) GetUpdated() string`\n\nGetUpdated returns the Updated field if non-nil, zero value otherwise.\n\n### GetUpdatedOk\n\n`func (o *Register200Response) GetUpdatedOk() (*string, bool)`\n\nGetUpdatedOk returns a tuple with the Updated field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetUpdated\n\n`func (o *Register200Response) SetUpdated(v string)`\n\nSetUpdated sets Updated field to given value.\n\n\n### GetWaitlistEnabled\n\n`func (o *Register200Response) GetWaitlistEnabled() bool`\n\nGetWaitlistEnabled returns the WaitlistEnabled field if non-nil, zero value otherwise.\n\n### GetWaitlistEnabledOk\n\n`func (o *Register200Response) GetWaitlistEnabledOk() (*bool, bool)`\n\nGetWaitlistEnabledOk returns a tuple with the WaitlistEnabled field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetWaitlistEnabled\n\n`func (o *Register200Response) SetWaitlistEnabled(v bool)`\n\nSetWaitlistEnabled sets WaitlistEnabled field to given value.\n\n\n### GetWarpEnabled\n\n`func (o *Register200Response) GetWarpEnabled() bool`\n\nGetWarpEnabled returns the WarpEnabled field if non-nil, zero value otherwise.\n\n### GetWarpEnabledOk\n\n`func (o *Register200Response) GetWarpEnabledOk() (*bool, bool)`\n\nGetWarpEnabledOk returns a tuple with the WarpEnabled field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetWarpEnabled\n\n`func (o *Register200Response) SetWarpEnabled(v bool)`\n\nSetWarpEnabled sets WarpEnabled field to given value.\n\n\n### GetAccount\n\n`func (o *Register200Response) GetAccount() Account`\n\nGetAccount returns the Account field if non-nil, zero value otherwise.\n\n### GetAccountOk\n\n`func (o *Register200Response) GetAccountOk() (*Account, bool)`\n\nGetAccountOk returns a tuple with the Account field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetAccount\n\n`func (o *Register200Response) SetAccount(v Account)`\n\nSetAccount sets Account field to given value.\n\n\n### GetConfig\n\n`func (o *Register200Response) GetConfig() Config`\n\nGetConfig returns the Config field if non-nil, zero value otherwise.\n\n### GetConfigOk\n\n`func (o *Register200Response) GetConfigOk() (*Config, bool)`\n\nGetConfigOk returns a tuple with the Config field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetConfig\n\n`func (o *Register200Response) SetConfig(v Config)`\n\nSetConfig sets Config field to given value.\n\n\n### GetToken\n\n`func (o *Register200Response) GetToken() string`\n\nGetToken returns the Token field if non-nil, zero value otherwise.\n\n### GetTokenOk\n\n`func (o *Register200Response) GetTokenOk() (*string, bool)`\n\nGetTokenOk returns a tuple with the Token field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetToken\n\n`func (o *Register200Response) SetToken(v string)`\n\nSetToken sets Token field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/RegisterRequest.md",
    "content": "# RegisterRequest\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**FcmToken** | **string** |  | \n**InstallId** | **string** |  | \n**Key** | **string** |  | \n**Locale** | **string** |  | \n**Model** | **string** |  | \n**Tos** | **string** |  | \n**Type** | **string** |  | \n\n## Methods\n\n### NewRegisterRequest\n\n`func NewRegisterRequest(fcmToken string, installId string, key string, locale string, model string, tos string, type_ string, ) *RegisterRequest`\n\nNewRegisterRequest instantiates a new RegisterRequest object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewRegisterRequestWithDefaults\n\n`func NewRegisterRequestWithDefaults() *RegisterRequest`\n\nNewRegisterRequestWithDefaults instantiates a new RegisterRequest object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetFcmToken\n\n`func (o *RegisterRequest) GetFcmToken() string`\n\nGetFcmToken returns the FcmToken field if non-nil, zero value otherwise.\n\n### GetFcmTokenOk\n\n`func (o *RegisterRequest) GetFcmTokenOk() (*string, bool)`\n\nGetFcmTokenOk returns a tuple with the FcmToken field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetFcmToken\n\n`func (o *RegisterRequest) SetFcmToken(v string)`\n\nSetFcmToken sets FcmToken field to given value.\n\n\n### GetInstallId\n\n`func (o *RegisterRequest) GetInstallId() string`\n\nGetInstallId returns the InstallId field if non-nil, zero value otherwise.\n\n### GetInstallIdOk\n\n`func (o *RegisterRequest) GetInstallIdOk() (*string, bool)`\n\nGetInstallIdOk returns a tuple with the InstallId field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetInstallId\n\n`func (o *RegisterRequest) SetInstallId(v string)`\n\nSetInstallId sets InstallId field to given value.\n\n\n### GetKey\n\n`func (o *RegisterRequest) GetKey() string`\n\nGetKey returns the Key field if non-nil, zero value otherwise.\n\n### GetKeyOk\n\n`func (o *RegisterRequest) GetKeyOk() (*string, bool)`\n\nGetKeyOk returns a tuple with the Key field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetKey\n\n`func (o *RegisterRequest) SetKey(v string)`\n\nSetKey sets Key field to given value.\n\n\n### GetLocale\n\n`func (o *RegisterRequest) GetLocale() string`\n\nGetLocale returns the Locale field if non-nil, zero value otherwise.\n\n### GetLocaleOk\n\n`func (o *RegisterRequest) GetLocaleOk() (*string, bool)`\n\nGetLocaleOk returns a tuple with the Locale field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetLocale\n\n`func (o *RegisterRequest) SetLocale(v string)`\n\nSetLocale sets Locale field to given value.\n\n\n### GetModel\n\n`func (o *RegisterRequest) GetModel() string`\n\nGetModel returns the Model field if non-nil, zero value otherwise.\n\n### GetModelOk\n\n`func (o *RegisterRequest) GetModelOk() (*string, bool)`\n\nGetModelOk returns a tuple with the Model field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetModel\n\n`func (o *RegisterRequest) SetModel(v string)`\n\nSetModel sets Model field to given value.\n\n\n### GetTos\n\n`func (o *RegisterRequest) GetTos() string`\n\nGetTos returns the Tos field if non-nil, zero value otherwise.\n\n### GetTosOk\n\n`func (o *RegisterRequest) GetTosOk() (*string, bool)`\n\nGetTosOk returns a tuple with the Tos field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetTos\n\n`func (o *RegisterRequest) SetTos(v string)`\n\nSetTos sets Tos field to given value.\n\n\n### GetType\n\n`func (o *RegisterRequest) GetType() string`\n\nGetType returns the Type field if non-nil, zero value otherwise.\n\n### GetTypeOk\n\n`func (o *RegisterRequest) GetTypeOk() (*string, bool)`\n\nGetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetType\n\n`func (o *RegisterRequest) SetType(v string)`\n\nSetType sets Type field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/ResetAccountLicense200Response.md",
    "content": "# ResetAccountLicense200Response\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**License** | **string** |  | \n\n## Methods\n\n### NewResetAccountLicense200Response\n\n`func NewResetAccountLicense200Response(license string, ) *ResetAccountLicense200Response`\n\nNewResetAccountLicense200Response instantiates a new ResetAccountLicense200Response object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewResetAccountLicense200ResponseWithDefaults\n\n`func NewResetAccountLicense200ResponseWithDefaults() *ResetAccountLicense200Response`\n\nNewResetAccountLicense200ResponseWithDefaults instantiates a new ResetAccountLicense200Response object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetLicense\n\n`func (o *ResetAccountLicense200Response) GetLicense() string`\n\nGetLicense returns the License field if non-nil, zero value otherwise.\n\n### GetLicenseOk\n\n`func (o *ResetAccountLicense200Response) GetLicenseOk() (*string, bool)`\n\nGetLicenseOk returns a tuple with the License field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetLicense\n\n`func (o *ResetAccountLicense200Response) SetLicense(v string)`\n\nSetLicense sets License field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/SourceDevice.md",
    "content": "# SourceDevice\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Created** | **string** |  | \n**Enabled** | **bool** |  | \n**FcmToken** | **string** |  | \n**Id** | **string** |  | \n**InstallId** | **string** |  | \n**Key** | **string** |  | \n**Locale** | **string** |  | \n**Model** | **string** |  | \n**Name** | **string** |  | \n**Place** | **float32** |  | \n**Tos** | **string** |  | \n**Type** | **string** |  | \n**Updated** | **string** |  | \n**WaitlistEnabled** | **bool** |  | \n**WarpEnabled** | **bool** |  | \n\n## Methods\n\n### NewSourceDevice\n\n`func NewSourceDevice(created string, enabled bool, fcmToken string, id string, installId string, key string, locale string, model string, name string, place float32, tos string, type_ string, updated string, waitlistEnabled bool, warpEnabled bool, ) *SourceDevice`\n\nNewSourceDevice instantiates a new SourceDevice object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewSourceDeviceWithDefaults\n\n`func NewSourceDeviceWithDefaults() *SourceDevice`\n\nNewSourceDeviceWithDefaults instantiates a new SourceDevice object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetCreated\n\n`func (o *SourceDevice) GetCreated() string`\n\nGetCreated returns the Created field if non-nil, zero value otherwise.\n\n### GetCreatedOk\n\n`func (o *SourceDevice) GetCreatedOk() (*string, bool)`\n\nGetCreatedOk returns a tuple with the Created field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetCreated\n\n`func (o *SourceDevice) SetCreated(v string)`\n\nSetCreated sets Created field to given value.\n\n\n### GetEnabled\n\n`func (o *SourceDevice) GetEnabled() bool`\n\nGetEnabled returns the Enabled field if non-nil, zero value otherwise.\n\n### GetEnabledOk\n\n`func (o *SourceDevice) GetEnabledOk() (*bool, bool)`\n\nGetEnabledOk returns a tuple with the Enabled field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetEnabled\n\n`func (o *SourceDevice) SetEnabled(v bool)`\n\nSetEnabled sets Enabled field to given value.\n\n\n### GetFcmToken\n\n`func (o *SourceDevice) GetFcmToken() string`\n\nGetFcmToken returns the FcmToken field if non-nil, zero value otherwise.\n\n### GetFcmTokenOk\n\n`func (o *SourceDevice) GetFcmTokenOk() (*string, bool)`\n\nGetFcmTokenOk returns a tuple with the FcmToken field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetFcmToken\n\n`func (o *SourceDevice) SetFcmToken(v string)`\n\nSetFcmToken sets FcmToken field to given value.\n\n\n### GetId\n\n`func (o *SourceDevice) GetId() string`\n\nGetId returns the Id field if non-nil, zero value otherwise.\n\n### GetIdOk\n\n`func (o *SourceDevice) GetIdOk() (*string, bool)`\n\nGetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetId\n\n`func (o *SourceDevice) SetId(v string)`\n\nSetId sets Id field to given value.\n\n\n### GetInstallId\n\n`func (o *SourceDevice) GetInstallId() string`\n\nGetInstallId returns the InstallId field if non-nil, zero value otherwise.\n\n### GetInstallIdOk\n\n`func (o *SourceDevice) GetInstallIdOk() (*string, bool)`\n\nGetInstallIdOk returns a tuple with the InstallId field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetInstallId\n\n`func (o *SourceDevice) SetInstallId(v string)`\n\nSetInstallId sets InstallId field to given value.\n\n\n### GetKey\n\n`func (o *SourceDevice) GetKey() string`\n\nGetKey returns the Key field if non-nil, zero value otherwise.\n\n### GetKeyOk\n\n`func (o *SourceDevice) GetKeyOk() (*string, bool)`\n\nGetKeyOk returns a tuple with the Key field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetKey\n\n`func (o *SourceDevice) SetKey(v string)`\n\nSetKey sets Key field to given value.\n\n\n### GetLocale\n\n`func (o *SourceDevice) GetLocale() string`\n\nGetLocale returns the Locale field if non-nil, zero value otherwise.\n\n### GetLocaleOk\n\n`func (o *SourceDevice) GetLocaleOk() (*string, bool)`\n\nGetLocaleOk returns a tuple with the Locale field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetLocale\n\n`func (o *SourceDevice) SetLocale(v string)`\n\nSetLocale sets Locale field to given value.\n\n\n### GetModel\n\n`func (o *SourceDevice) GetModel() string`\n\nGetModel returns the Model field if non-nil, zero value otherwise.\n\n### GetModelOk\n\n`func (o *SourceDevice) GetModelOk() (*string, bool)`\n\nGetModelOk returns a tuple with the Model field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetModel\n\n`func (o *SourceDevice) SetModel(v string)`\n\nSetModel sets Model field to given value.\n\n\n### GetName\n\n`func (o *SourceDevice) GetName() string`\n\nGetName returns the Name field if non-nil, zero value otherwise.\n\n### GetNameOk\n\n`func (o *SourceDevice) GetNameOk() (*string, bool)`\n\nGetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetName\n\n`func (o *SourceDevice) SetName(v string)`\n\nSetName sets Name field to given value.\n\n\n### GetPlace\n\n`func (o *SourceDevice) GetPlace() float32`\n\nGetPlace returns the Place field if non-nil, zero value otherwise.\n\n### GetPlaceOk\n\n`func (o *SourceDevice) GetPlaceOk() (*float32, bool)`\n\nGetPlaceOk returns a tuple with the Place field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetPlace\n\n`func (o *SourceDevice) SetPlace(v float32)`\n\nSetPlace sets Place field to given value.\n\n\n### GetTos\n\n`func (o *SourceDevice) GetTos() string`\n\nGetTos returns the Tos field if non-nil, zero value otherwise.\n\n### GetTosOk\n\n`func (o *SourceDevice) GetTosOk() (*string, bool)`\n\nGetTosOk returns a tuple with the Tos field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetTos\n\n`func (o *SourceDevice) SetTos(v string)`\n\nSetTos sets Tos field to given value.\n\n\n### GetType\n\n`func (o *SourceDevice) GetType() string`\n\nGetType returns the Type field if non-nil, zero value otherwise.\n\n### GetTypeOk\n\n`func (o *SourceDevice) GetTypeOk() (*string, bool)`\n\nGetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetType\n\n`func (o *SourceDevice) SetType(v string)`\n\nSetType sets Type field to given value.\n\n\n### GetUpdated\n\n`func (o *SourceDevice) GetUpdated() string`\n\nGetUpdated returns the Updated field if non-nil, zero value otherwise.\n\n### GetUpdatedOk\n\n`func (o *SourceDevice) GetUpdatedOk() (*string, bool)`\n\nGetUpdatedOk returns a tuple with the Updated field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetUpdated\n\n`func (o *SourceDevice) SetUpdated(v string)`\n\nSetUpdated sets Updated field to given value.\n\n\n### GetWaitlistEnabled\n\n`func (o *SourceDevice) GetWaitlistEnabled() bool`\n\nGetWaitlistEnabled returns the WaitlistEnabled field if non-nil, zero value otherwise.\n\n### GetWaitlistEnabledOk\n\n`func (o *SourceDevice) GetWaitlistEnabledOk() (*bool, bool)`\n\nGetWaitlistEnabledOk returns a tuple with the WaitlistEnabled field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetWaitlistEnabled\n\n`func (o *SourceDevice) SetWaitlistEnabled(v bool)`\n\nSetWaitlistEnabled sets WaitlistEnabled field to given value.\n\n\n### GetWarpEnabled\n\n`func (o *SourceDevice) GetWarpEnabled() bool`\n\nGetWarpEnabled returns the WarpEnabled field if non-nil, zero value otherwise.\n\n### GetWarpEnabledOk\n\n`func (o *SourceDevice) GetWarpEnabledOk() (*bool, bool)`\n\nGetWarpEnabledOk returns a tuple with the WarpEnabled field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetWarpEnabled\n\n`func (o *SourceDevice) SetWarpEnabled(v bool)`\n\nSetWarpEnabled sets WarpEnabled field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/UpdateAccount200Response.md",
    "content": "# UpdateAccount200Response\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Created** | **string** |  | \n**Id** | **string** |  | \n**PremiumData** | **float32** |  | \n**Quota** | **float32** |  | \n**ReferralCount** | **float32** |  | \n**ReferralRenewalCountdown** | **float32** |  | \n**Role** | **string** |  | \n**Updated** | **string** |  | \n**WarpPlus** | **bool** |  | \n\n## Methods\n\n### NewUpdateAccount200Response\n\n`func NewUpdateAccount200Response(created string, id string, premiumData float32, quota float32, referralCount float32, referralRenewalCountdown float32, role string, updated string, warpPlus bool, ) *UpdateAccount200Response`\n\nNewUpdateAccount200Response instantiates a new UpdateAccount200Response object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewUpdateAccount200ResponseWithDefaults\n\n`func NewUpdateAccount200ResponseWithDefaults() *UpdateAccount200Response`\n\nNewUpdateAccount200ResponseWithDefaults instantiates a new UpdateAccount200Response object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetCreated\n\n`func (o *UpdateAccount200Response) GetCreated() string`\n\nGetCreated returns the Created field if non-nil, zero value otherwise.\n\n### GetCreatedOk\n\n`func (o *UpdateAccount200Response) GetCreatedOk() (*string, bool)`\n\nGetCreatedOk returns a tuple with the Created field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetCreated\n\n`func (o *UpdateAccount200Response) SetCreated(v string)`\n\nSetCreated sets Created field to given value.\n\n\n### GetId\n\n`func (o *UpdateAccount200Response) GetId() string`\n\nGetId returns the Id field if non-nil, zero value otherwise.\n\n### GetIdOk\n\n`func (o *UpdateAccount200Response) GetIdOk() (*string, bool)`\n\nGetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetId\n\n`func (o *UpdateAccount200Response) SetId(v string)`\n\nSetId sets Id field to given value.\n\n\n### GetPremiumData\n\n`func (o *UpdateAccount200Response) GetPremiumData() float32`\n\nGetPremiumData returns the PremiumData field if non-nil, zero value otherwise.\n\n### GetPremiumDataOk\n\n`func (o *UpdateAccount200Response) GetPremiumDataOk() (*float32, bool)`\n\nGetPremiumDataOk returns a tuple with the PremiumData field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetPremiumData\n\n`func (o *UpdateAccount200Response) SetPremiumData(v float32)`\n\nSetPremiumData sets PremiumData field to given value.\n\n\n### GetQuota\n\n`func (o *UpdateAccount200Response) GetQuota() float32`\n\nGetQuota returns the Quota field if non-nil, zero value otherwise.\n\n### GetQuotaOk\n\n`func (o *UpdateAccount200Response) GetQuotaOk() (*float32, bool)`\n\nGetQuotaOk returns a tuple with the Quota field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetQuota\n\n`func (o *UpdateAccount200Response) SetQuota(v float32)`\n\nSetQuota sets Quota field to given value.\n\n\n### GetReferralCount\n\n`func (o *UpdateAccount200Response) GetReferralCount() float32`\n\nGetReferralCount returns the ReferralCount field if non-nil, zero value otherwise.\n\n### GetReferralCountOk\n\n`func (o *UpdateAccount200Response) GetReferralCountOk() (*float32, bool)`\n\nGetReferralCountOk returns a tuple with the ReferralCount field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetReferralCount\n\n`func (o *UpdateAccount200Response) SetReferralCount(v float32)`\n\nSetReferralCount sets ReferralCount field to given value.\n\n\n### GetReferralRenewalCountdown\n\n`func (o *UpdateAccount200Response) GetReferralRenewalCountdown() float32`\n\nGetReferralRenewalCountdown returns the ReferralRenewalCountdown field if non-nil, zero value otherwise.\n\n### GetReferralRenewalCountdownOk\n\n`func (o *UpdateAccount200Response) GetReferralRenewalCountdownOk() (*float32, bool)`\n\nGetReferralRenewalCountdownOk returns a tuple with the ReferralRenewalCountdown field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetReferralRenewalCountdown\n\n`func (o *UpdateAccount200Response) SetReferralRenewalCountdown(v float32)`\n\nSetReferralRenewalCountdown sets ReferralRenewalCountdown field to given value.\n\n\n### GetRole\n\n`func (o *UpdateAccount200Response) GetRole() string`\n\nGetRole returns the Role field if non-nil, zero value otherwise.\n\n### GetRoleOk\n\n`func (o *UpdateAccount200Response) GetRoleOk() (*string, bool)`\n\nGetRoleOk returns a tuple with the Role field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetRole\n\n`func (o *UpdateAccount200Response) SetRole(v string)`\n\nSetRole sets Role field to given value.\n\n\n### GetUpdated\n\n`func (o *UpdateAccount200Response) GetUpdated() string`\n\nGetUpdated returns the Updated field if non-nil, zero value otherwise.\n\n### GetUpdatedOk\n\n`func (o *UpdateAccount200Response) GetUpdatedOk() (*string, bool)`\n\nGetUpdatedOk returns a tuple with the Updated field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetUpdated\n\n`func (o *UpdateAccount200Response) SetUpdated(v string)`\n\nSetUpdated sets Updated field to given value.\n\n\n### GetWarpPlus\n\n`func (o *UpdateAccount200Response) GetWarpPlus() bool`\n\nGetWarpPlus returns the WarpPlus field if non-nil, zero value otherwise.\n\n### GetWarpPlusOk\n\n`func (o *UpdateAccount200Response) GetWarpPlusOk() (*bool, bool)`\n\nGetWarpPlusOk returns a tuple with the WarpPlus field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetWarpPlus\n\n`func (o *UpdateAccount200Response) SetWarpPlus(v bool)`\n\nSetWarpPlus sets WarpPlus field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/UpdateAccountRequest.md",
    "content": "# UpdateAccountRequest\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**License** | **string** |  | \n\n## Methods\n\n### NewUpdateAccountRequest\n\n`func NewUpdateAccountRequest(license string, ) *UpdateAccountRequest`\n\nNewUpdateAccountRequest instantiates a new UpdateAccountRequest object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewUpdateAccountRequestWithDefaults\n\n`func NewUpdateAccountRequestWithDefaults() *UpdateAccountRequest`\n\nNewUpdateAccountRequestWithDefaults instantiates a new UpdateAccountRequest object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetLicense\n\n`func (o *UpdateAccountRequest) GetLicense() string`\n\nGetLicense returns the License field if non-nil, zero value otherwise.\n\n### GetLicenseOk\n\n`func (o *UpdateAccountRequest) GetLicenseOk() (*string, bool)`\n\nGetLicenseOk returns a tuple with the License field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetLicense\n\n`func (o *UpdateAccountRequest) SetLicense(v string)`\n\nSetLicense sets License field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/UpdateBoundDeviceRequest.md",
    "content": "# UpdateBoundDeviceRequest\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Active** | Pointer to **bool** |  | [optional] \n**Name** | Pointer to **string** |  | [optional] \n\n## Methods\n\n### NewUpdateBoundDeviceRequest\n\n`func NewUpdateBoundDeviceRequest() *UpdateBoundDeviceRequest`\n\nNewUpdateBoundDeviceRequest instantiates a new UpdateBoundDeviceRequest object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewUpdateBoundDeviceRequestWithDefaults\n\n`func NewUpdateBoundDeviceRequestWithDefaults() *UpdateBoundDeviceRequest`\n\nNewUpdateBoundDeviceRequestWithDefaults instantiates a new UpdateBoundDeviceRequest object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetActive\n\n`func (o *UpdateBoundDeviceRequest) GetActive() bool`\n\nGetActive returns the Active field if non-nil, zero value otherwise.\n\n### GetActiveOk\n\n`func (o *UpdateBoundDeviceRequest) GetActiveOk() (*bool, bool)`\n\nGetActiveOk returns a tuple with the Active field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetActive\n\n`func (o *UpdateBoundDeviceRequest) SetActive(v bool)`\n\nSetActive sets Active field to given value.\n\n### HasActive\n\n`func (o *UpdateBoundDeviceRequest) HasActive() bool`\n\nHasActive returns a boolean if a field has been set.\n\n### GetName\n\n`func (o *UpdateBoundDeviceRequest) GetName() string`\n\nGetName returns the Name field if non-nil, zero value otherwise.\n\n### GetNameOk\n\n`func (o *UpdateBoundDeviceRequest) GetNameOk() (*string, bool)`\n\nGetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetName\n\n`func (o *UpdateBoundDeviceRequest) SetName(v string)`\n\nSetName sets Name field to given value.\n\n### HasName\n\n`func (o *UpdateBoundDeviceRequest) HasName() bool`\n\nHasName returns a boolean if a field has been set.\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/UpdateSourceDevice200Response.md",
    "content": "# UpdateSourceDevice200Response\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Created** | **string** |  | \n**Enabled** | **bool** |  | \n**FcmToken** | **string** |  | \n**Id** | **string** |  | \n**InstallId** | **string** |  | \n**Key** | **string** |  | \n**Locale** | **string** |  | \n**Model** | **string** |  | \n**Name** | **string** |  | \n**Place** | **float32** |  | \n**Tos** | **string** |  | \n**Type** | **string** |  | \n**Updated** | **string** |  | \n**WaitlistEnabled** | **bool** |  | \n**WarpEnabled** | **bool** |  | \n**Account** | [**Account**](Account.md) |  | \n**Config** | [**Config**](Config.md) |  | \n\n## Methods\n\n### NewUpdateSourceDevice200Response\n\n`func NewUpdateSourceDevice200Response(created string, enabled bool, fcmToken string, id string, installId string, key string, locale string, model string, name string, place float32, tos string, type_ string, updated string, waitlistEnabled bool, warpEnabled bool, account Account, config Config, ) *UpdateSourceDevice200Response`\n\nNewUpdateSourceDevice200Response instantiates a new UpdateSourceDevice200Response object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewUpdateSourceDevice200ResponseWithDefaults\n\n`func NewUpdateSourceDevice200ResponseWithDefaults() *UpdateSourceDevice200Response`\n\nNewUpdateSourceDevice200ResponseWithDefaults instantiates a new UpdateSourceDevice200Response object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetCreated\n\n`func (o *UpdateSourceDevice200Response) GetCreated() string`\n\nGetCreated returns the Created field if non-nil, zero value otherwise.\n\n### GetCreatedOk\n\n`func (o *UpdateSourceDevice200Response) GetCreatedOk() (*string, bool)`\n\nGetCreatedOk returns a tuple with the Created field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetCreated\n\n`func (o *UpdateSourceDevice200Response) SetCreated(v string)`\n\nSetCreated sets Created field to given value.\n\n\n### GetEnabled\n\n`func (o *UpdateSourceDevice200Response) GetEnabled() bool`\n\nGetEnabled returns the Enabled field if non-nil, zero value otherwise.\n\n### GetEnabledOk\n\n`func (o *UpdateSourceDevice200Response) GetEnabledOk() (*bool, bool)`\n\nGetEnabledOk returns a tuple with the Enabled field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetEnabled\n\n`func (o *UpdateSourceDevice200Response) SetEnabled(v bool)`\n\nSetEnabled sets Enabled field to given value.\n\n\n### GetFcmToken\n\n`func (o *UpdateSourceDevice200Response) GetFcmToken() string`\n\nGetFcmToken returns the FcmToken field if non-nil, zero value otherwise.\n\n### GetFcmTokenOk\n\n`func (o *UpdateSourceDevice200Response) GetFcmTokenOk() (*string, bool)`\n\nGetFcmTokenOk returns a tuple with the FcmToken field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetFcmToken\n\n`func (o *UpdateSourceDevice200Response) SetFcmToken(v string)`\n\nSetFcmToken sets FcmToken field to given value.\n\n\n### GetId\n\n`func (o *UpdateSourceDevice200Response) GetId() string`\n\nGetId returns the Id field if non-nil, zero value otherwise.\n\n### GetIdOk\n\n`func (o *UpdateSourceDevice200Response) GetIdOk() (*string, bool)`\n\nGetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetId\n\n`func (o *UpdateSourceDevice200Response) SetId(v string)`\n\nSetId sets Id field to given value.\n\n\n### GetInstallId\n\n`func (o *UpdateSourceDevice200Response) GetInstallId() string`\n\nGetInstallId returns the InstallId field if non-nil, zero value otherwise.\n\n### GetInstallIdOk\n\n`func (o *UpdateSourceDevice200Response) GetInstallIdOk() (*string, bool)`\n\nGetInstallIdOk returns a tuple with the InstallId field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetInstallId\n\n`func (o *UpdateSourceDevice200Response) SetInstallId(v string)`\n\nSetInstallId sets InstallId field to given value.\n\n\n### GetKey\n\n`func (o *UpdateSourceDevice200Response) GetKey() string`\n\nGetKey returns the Key field if non-nil, zero value otherwise.\n\n### GetKeyOk\n\n`func (o *UpdateSourceDevice200Response) GetKeyOk() (*string, bool)`\n\nGetKeyOk returns a tuple with the Key field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetKey\n\n`func (o *UpdateSourceDevice200Response) SetKey(v string)`\n\nSetKey sets Key field to given value.\n\n\n### GetLocale\n\n`func (o *UpdateSourceDevice200Response) GetLocale() string`\n\nGetLocale returns the Locale field if non-nil, zero value otherwise.\n\n### GetLocaleOk\n\n`func (o *UpdateSourceDevice200Response) GetLocaleOk() (*string, bool)`\n\nGetLocaleOk returns a tuple with the Locale field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetLocale\n\n`func (o *UpdateSourceDevice200Response) SetLocale(v string)`\n\nSetLocale sets Locale field to given value.\n\n\n### GetModel\n\n`func (o *UpdateSourceDevice200Response) GetModel() string`\n\nGetModel returns the Model field if non-nil, zero value otherwise.\n\n### GetModelOk\n\n`func (o *UpdateSourceDevice200Response) GetModelOk() (*string, bool)`\n\nGetModelOk returns a tuple with the Model field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetModel\n\n`func (o *UpdateSourceDevice200Response) SetModel(v string)`\n\nSetModel sets Model field to given value.\n\n\n### GetName\n\n`func (o *UpdateSourceDevice200Response) GetName() string`\n\nGetName returns the Name field if non-nil, zero value otherwise.\n\n### GetNameOk\n\n`func (o *UpdateSourceDevice200Response) GetNameOk() (*string, bool)`\n\nGetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetName\n\n`func (o *UpdateSourceDevice200Response) SetName(v string)`\n\nSetName sets Name field to given value.\n\n\n### GetPlace\n\n`func (o *UpdateSourceDevice200Response) GetPlace() float32`\n\nGetPlace returns the Place field if non-nil, zero value otherwise.\n\n### GetPlaceOk\n\n`func (o *UpdateSourceDevice200Response) GetPlaceOk() (*float32, bool)`\n\nGetPlaceOk returns a tuple with the Place field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetPlace\n\n`func (o *UpdateSourceDevice200Response) SetPlace(v float32)`\n\nSetPlace sets Place field to given value.\n\n\n### GetTos\n\n`func (o *UpdateSourceDevice200Response) GetTos() string`\n\nGetTos returns the Tos field if non-nil, zero value otherwise.\n\n### GetTosOk\n\n`func (o *UpdateSourceDevice200Response) GetTosOk() (*string, bool)`\n\nGetTosOk returns a tuple with the Tos field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetTos\n\n`func (o *UpdateSourceDevice200Response) SetTos(v string)`\n\nSetTos sets Tos field to given value.\n\n\n### GetType\n\n`func (o *UpdateSourceDevice200Response) GetType() string`\n\nGetType returns the Type field if non-nil, zero value otherwise.\n\n### GetTypeOk\n\n`func (o *UpdateSourceDevice200Response) GetTypeOk() (*string, bool)`\n\nGetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetType\n\n`func (o *UpdateSourceDevice200Response) SetType(v string)`\n\nSetType sets Type field to given value.\n\n\n### GetUpdated\n\n`func (o *UpdateSourceDevice200Response) GetUpdated() string`\n\nGetUpdated returns the Updated field if non-nil, zero value otherwise.\n\n### GetUpdatedOk\n\n`func (o *UpdateSourceDevice200Response) GetUpdatedOk() (*string, bool)`\n\nGetUpdatedOk returns a tuple with the Updated field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetUpdated\n\n`func (o *UpdateSourceDevice200Response) SetUpdated(v string)`\n\nSetUpdated sets Updated field to given value.\n\n\n### GetWaitlistEnabled\n\n`func (o *UpdateSourceDevice200Response) GetWaitlistEnabled() bool`\n\nGetWaitlistEnabled returns the WaitlistEnabled field if non-nil, zero value otherwise.\n\n### GetWaitlistEnabledOk\n\n`func (o *UpdateSourceDevice200Response) GetWaitlistEnabledOk() (*bool, bool)`\n\nGetWaitlistEnabledOk returns a tuple with the WaitlistEnabled field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetWaitlistEnabled\n\n`func (o *UpdateSourceDevice200Response) SetWaitlistEnabled(v bool)`\n\nSetWaitlistEnabled sets WaitlistEnabled field to given value.\n\n\n### GetWarpEnabled\n\n`func (o *UpdateSourceDevice200Response) GetWarpEnabled() bool`\n\nGetWarpEnabled returns the WarpEnabled field if non-nil, zero value otherwise.\n\n### GetWarpEnabledOk\n\n`func (o *UpdateSourceDevice200Response) GetWarpEnabledOk() (*bool, bool)`\n\nGetWarpEnabledOk returns a tuple with the WarpEnabled field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetWarpEnabled\n\n`func (o *UpdateSourceDevice200Response) SetWarpEnabled(v bool)`\n\nSetWarpEnabled sets WarpEnabled field to given value.\n\n\n### GetAccount\n\n`func (o *UpdateSourceDevice200Response) GetAccount() Account`\n\nGetAccount returns the Account field if non-nil, zero value otherwise.\n\n### GetAccountOk\n\n`func (o *UpdateSourceDevice200Response) GetAccountOk() (*Account, bool)`\n\nGetAccountOk returns a tuple with the Account field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetAccount\n\n`func (o *UpdateSourceDevice200Response) SetAccount(v Account)`\n\nSetAccount sets Account field to given value.\n\n\n### GetConfig\n\n`func (o *UpdateSourceDevice200Response) GetConfig() Config`\n\nGetConfig returns the Config field if non-nil, zero value otherwise.\n\n### GetConfigOk\n\n`func (o *UpdateSourceDevice200Response) GetConfigOk() (*Config, bool)`\n\nGetConfigOk returns a tuple with the Config field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetConfig\n\n`func (o *UpdateSourceDevice200Response) SetConfig(v Config)`\n\nSetConfig sets Config field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/docs/UpdateSourceDeviceRequest.md",
    "content": "# UpdateSourceDeviceRequest\n\n## Properties\n\nName | Type | Description | Notes\n------------ | ------------- | ------------- | -------------\n**Key** | **string** |  | \n\n## Methods\n\n### NewUpdateSourceDeviceRequest\n\n`func NewUpdateSourceDeviceRequest(key string, ) *UpdateSourceDeviceRequest`\n\nNewUpdateSourceDeviceRequest instantiates a new UpdateSourceDeviceRequest object\nThis constructor will assign default values to properties that have it defined,\nand makes sure properties required by API are set, but the set of arguments\nwill change when the set of required properties is changed\n\n### NewUpdateSourceDeviceRequestWithDefaults\n\n`func NewUpdateSourceDeviceRequestWithDefaults() *UpdateSourceDeviceRequest`\n\nNewUpdateSourceDeviceRequestWithDefaults instantiates a new UpdateSourceDeviceRequest object\nThis constructor will only assign default values to properties that have it defined,\nbut it doesn't guarantee that properties required by API are set\n\n### GetKey\n\n`func (o *UpdateSourceDeviceRequest) GetKey() string`\n\nGetKey returns the Key field if non-nil, zero value otherwise.\n\n### GetKeyOk\n\n`func (o *UpdateSourceDeviceRequest) GetKeyOk() (*string, bool)`\n\nGetKeyOk returns a tuple with the Key field if it's non-nil, zero value otherwise\nand a boolean to check if the value has been set.\n\n### SetKey\n\n`func (o *UpdateSourceDeviceRequest) SetKey(v string)`\n\nSetKey sets Key field to given value.\n\n\n\n[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)\n\n\n"
  },
  {
    "path": "openapi/git_push.sh",
    "content": "#!/bin/sh\n# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/\n#\n# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl \"minor update\" \"gitlab.com\"\n\ngit_user_id=$1\ngit_repo_id=$2\nrelease_note=$3\ngit_host=$4\n\nif [ \"$git_host\" = \"\" ]; then\n    git_host=\"github.com\"\n    echo \"[INFO] No command line input provided. Set \\$git_host to $git_host\"\nfi\n\nif [ \"$git_user_id\" = \"\" ]; then\n    git_user_id=\"GIT_USER_ID\"\n    echo \"[INFO] No command line input provided. Set \\$git_user_id to $git_user_id\"\nfi\n\nif [ \"$git_repo_id\" = \"\" ]; then\n    git_repo_id=\"GIT_REPO_ID\"\n    echo \"[INFO] No command line input provided. Set \\$git_repo_id to $git_repo_id\"\nfi\n\nif [ \"$release_note\" = \"\" ]; then\n    release_note=\"Minor update\"\n    echo \"[INFO] No command line input provided. Set \\$release_note to $release_note\"\nfi\n\n# Initialize the local directory as a Git repository\ngit init\n\n# Adds the files in the local repository and stages them for commit.\ngit add .\n\n# Commits the tracked changes and prepares them to be pushed to a remote repository.\ngit commit -m \"$release_note\"\n\n# Sets the new remote\ngit_remote=$(git remote)\nif [ \"$git_remote\" = \"\" ]; then # git remote not defined\n\n    if [ \"$GIT_TOKEN\" = \"\" ]; then\n        echo \"[INFO] \\$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment.\"\n        git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git\n    else\n        git remote add origin https://${git_user_id}:\"${GIT_TOKEN}\"@${git_host}/${git_user_id}/${git_repo_id}.git\n    fi\n\nfi\n\ngit pull origin master\n\n# Pushes (Forces) the changes in the local repository up to the remote repository\necho \"Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git\"\ngit push origin master 2>&1 | grep -v 'To https'\n"
  },
  {
    "path": "openapi/go.mod",
    "content": "module github.com/GIT_USER_ID/GIT_REPO_ID\n\ngo 1.18\n\nrequire (\n)\n"
  },
  {
    "path": "openapi/go.sum",
    "content": "cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ngithub.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=\ngithub.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngolang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e h1:bRhVy7zSSasaqNksaRZiA5EEI+Ei4I1nO5Jh72wfHlg=\ngolang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw=\ngolang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngoogle.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=\ngoogle.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\n"
  },
  {
    "path": "openapi/model_account.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the Account type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &Account{}\n\n// Account struct for Account\ntype Account struct {\n\tAccountType string `json:\"account_type\"`\n\tCreated string `json:\"created\"`\n\tId string `json:\"id\"`\n\tLicense string `json:\"license\"`\n\tPremiumData float32 `json:\"premium_data\"`\n\tQuota float32 `json:\"quota\"`\n\tReferralCount float32 `json:\"referral_count\"`\n\tReferralRenewalCountdown float32 `json:\"referral_renewal_countdown\"`\n\tRole string `json:\"role\"`\n\tUpdated string `json:\"updated\"`\n\tWarpPlus bool `json:\"warp_plus\"`\n\tUsage *float32 `json:\"usage,omitempty\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _Account Account\n\n// NewAccount instantiates a new Account object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewAccount(accountType string, created string, id string, license string, premiumData float32, quota float32, referralCount float32, referralRenewalCountdown float32, role string, updated string, warpPlus bool) *Account {\n\tthis := Account{}\n\tthis.AccountType = accountType\n\tthis.Created = created\n\tthis.Id = id\n\tthis.License = license\n\tthis.PremiumData = premiumData\n\tthis.Quota = quota\n\tthis.ReferralCount = referralCount\n\tthis.ReferralRenewalCountdown = referralRenewalCountdown\n\tthis.Role = role\n\tthis.Updated = updated\n\tthis.WarpPlus = warpPlus\n\treturn &this\n}\n\n// NewAccountWithDefaults instantiates a new Account object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewAccountWithDefaults() *Account {\n\tthis := Account{}\n\treturn &this\n}\n\n// GetAccountType returns the AccountType field value\nfunc (o *Account) GetAccountType() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.AccountType\n}\n\n// GetAccountTypeOk returns a tuple with the AccountType field value\n// and a boolean to check if the value has been set.\nfunc (o *Account) GetAccountTypeOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.AccountType, true\n}\n\n// SetAccountType sets field value\nfunc (o *Account) SetAccountType(v string) {\n\to.AccountType = v\n}\n\n// GetCreated returns the Created field value\nfunc (o *Account) GetCreated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Created\n}\n\n// GetCreatedOk returns a tuple with the Created field value\n// and a boolean to check if the value has been set.\nfunc (o *Account) GetCreatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Created, true\n}\n\n// SetCreated sets field value\nfunc (o *Account) SetCreated(v string) {\n\to.Created = v\n}\n\n// GetId returns the Id field value\nfunc (o *Account) GetId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Id\n}\n\n// GetIdOk returns a tuple with the Id field value\n// and a boolean to check if the value has been set.\nfunc (o *Account) GetIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Id, true\n}\n\n// SetId sets field value\nfunc (o *Account) SetId(v string) {\n\to.Id = v\n}\n\n// GetLicense returns the License field value\nfunc (o *Account) GetLicense() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.License\n}\n\n// GetLicenseOk returns a tuple with the License field value\n// and a boolean to check if the value has been set.\nfunc (o *Account) GetLicenseOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.License, true\n}\n\n// SetLicense sets field value\nfunc (o *Account) SetLicense(v string) {\n\to.License = v\n}\n\n// GetPremiumData returns the PremiumData field value\nfunc (o *Account) GetPremiumData() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.PremiumData\n}\n\n// GetPremiumDataOk returns a tuple with the PremiumData field value\n// and a boolean to check if the value has been set.\nfunc (o *Account) GetPremiumDataOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.PremiumData, true\n}\n\n// SetPremiumData sets field value\nfunc (o *Account) SetPremiumData(v float32) {\n\to.PremiumData = v\n}\n\n// GetQuota returns the Quota field value\nfunc (o *Account) GetQuota() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.Quota\n}\n\n// GetQuotaOk returns a tuple with the Quota field value\n// and a boolean to check if the value has been set.\nfunc (o *Account) GetQuotaOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Quota, true\n}\n\n// SetQuota sets field value\nfunc (o *Account) SetQuota(v float32) {\n\to.Quota = v\n}\n\n// GetReferralCount returns the ReferralCount field value\nfunc (o *Account) GetReferralCount() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.ReferralCount\n}\n\n// GetReferralCountOk returns a tuple with the ReferralCount field value\n// and a boolean to check if the value has been set.\nfunc (o *Account) GetReferralCountOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.ReferralCount, true\n}\n\n// SetReferralCount sets field value\nfunc (o *Account) SetReferralCount(v float32) {\n\to.ReferralCount = v\n}\n\n// GetReferralRenewalCountdown returns the ReferralRenewalCountdown field value\nfunc (o *Account) GetReferralRenewalCountdown() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.ReferralRenewalCountdown\n}\n\n// GetReferralRenewalCountdownOk returns a tuple with the ReferralRenewalCountdown field value\n// and a boolean to check if the value has been set.\nfunc (o *Account) GetReferralRenewalCountdownOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.ReferralRenewalCountdown, true\n}\n\n// SetReferralRenewalCountdown sets field value\nfunc (o *Account) SetReferralRenewalCountdown(v float32) {\n\to.ReferralRenewalCountdown = v\n}\n\n// GetRole returns the Role field value\nfunc (o *Account) GetRole() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Role\n}\n\n// GetRoleOk returns a tuple with the Role field value\n// and a boolean to check if the value has been set.\nfunc (o *Account) GetRoleOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Role, true\n}\n\n// SetRole sets field value\nfunc (o *Account) SetRole(v string) {\n\to.Role = v\n}\n\n// GetUpdated returns the Updated field value\nfunc (o *Account) GetUpdated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Updated\n}\n\n// GetUpdatedOk returns a tuple with the Updated field value\n// and a boolean to check if the value has been set.\nfunc (o *Account) GetUpdatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Updated, true\n}\n\n// SetUpdated sets field value\nfunc (o *Account) SetUpdated(v string) {\n\to.Updated = v\n}\n\n// GetWarpPlus returns the WarpPlus field value\nfunc (o *Account) GetWarpPlus() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.WarpPlus\n}\n\n// GetWarpPlusOk returns a tuple with the WarpPlus field value\n// and a boolean to check if the value has been set.\nfunc (o *Account) GetWarpPlusOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.WarpPlus, true\n}\n\n// SetWarpPlus sets field value\nfunc (o *Account) SetWarpPlus(v bool) {\n\to.WarpPlus = v\n}\n\n// GetUsage returns the Usage field value if set, zero value otherwise.\nfunc (o *Account) GetUsage() float32 {\n\tif o == nil || IsNil(o.Usage) {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\treturn *o.Usage\n}\n\n// GetUsageOk returns a tuple with the Usage field value if set, nil otherwise\n// and a boolean to check if the value has been set.\nfunc (o *Account) GetUsageOk() (*float32, bool) {\n\tif o == nil || IsNil(o.Usage) {\n\t\treturn nil, false\n\t}\n\treturn o.Usage, true\n}\n\n// HasUsage returns a boolean if a field has been set.\nfunc (o *Account) HasUsage() bool {\n\tif o != nil && !IsNil(o.Usage) {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// SetUsage gets a reference to the given float32 and assigns it to the Usage field.\nfunc (o *Account) SetUsage(v float32) {\n\to.Usage = &v\n}\n\nfunc (o Account) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o Account) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"account_type\"] = o.AccountType\n\ttoSerialize[\"created\"] = o.Created\n\ttoSerialize[\"id\"] = o.Id\n\ttoSerialize[\"license\"] = o.License\n\ttoSerialize[\"premium_data\"] = o.PremiumData\n\ttoSerialize[\"quota\"] = o.Quota\n\ttoSerialize[\"referral_count\"] = o.ReferralCount\n\ttoSerialize[\"referral_renewal_countdown\"] = o.ReferralRenewalCountdown\n\ttoSerialize[\"role\"] = o.Role\n\ttoSerialize[\"updated\"] = o.Updated\n\ttoSerialize[\"warp_plus\"] = o.WarpPlus\n\tif !IsNil(o.Usage) {\n\t\ttoSerialize[\"usage\"] = o.Usage\n\t}\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *Account) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"account_type\",\n\t\t\"created\",\n\t\t\"id\",\n\t\t\"license\",\n\t\t\"premium_data\",\n\t\t\"quota\",\n\t\t\"referral_count\",\n\t\t\"referral_renewal_countdown\",\n\t\t\"role\",\n\t\t\"updated\",\n\t\t\"warp_plus\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarAccount := _Account{}\n\n\terr = json.Unmarshal(data, &varAccount)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = Account(varAccount)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"account_type\")\n\t\tdelete(additionalProperties, \"created\")\n\t\tdelete(additionalProperties, \"id\")\n\t\tdelete(additionalProperties, \"license\")\n\t\tdelete(additionalProperties, \"premium_data\")\n\t\tdelete(additionalProperties, \"quota\")\n\t\tdelete(additionalProperties, \"referral_count\")\n\t\tdelete(additionalProperties, \"referral_renewal_countdown\")\n\t\tdelete(additionalProperties, \"role\")\n\t\tdelete(additionalProperties, \"updated\")\n\t\tdelete(additionalProperties, \"warp_plus\")\n\t\tdelete(additionalProperties, \"usage\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableAccount struct {\n\tvalue *Account\n\tisSet bool\n}\n\nfunc (v NullableAccount) Get() *Account {\n\treturn v.value\n}\n\nfunc (v *NullableAccount) Set(val *Account) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableAccount) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableAccount) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableAccount(val *Account) *NullableAccount {\n\treturn &NullableAccount{value: val, isSet: true}\n}\n\nfunc (v NullableAccount) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableAccount) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_bound_device.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the BoundDevice type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &BoundDevice{}\n\n// BoundDevice struct for BoundDevice\ntype BoundDevice struct {\n\tActivated string `json:\"activated\"`\n\tActive bool `json:\"active\"`\n\tCreated string `json:\"created\"`\n\tId string `json:\"id\"`\n\tModel string `json:\"model\"`\n\tName *string `json:\"name,omitempty\"`\n\tRole string `json:\"role\"`\n\tType string `json:\"type\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _BoundDevice BoundDevice\n\n// NewBoundDevice instantiates a new BoundDevice object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewBoundDevice(activated string, active bool, created string, id string, model string, role string, type_ string) *BoundDevice {\n\tthis := BoundDevice{}\n\tthis.Activated = activated\n\tthis.Active = active\n\tthis.Created = created\n\tthis.Id = id\n\tthis.Model = model\n\tthis.Role = role\n\tthis.Type = type_\n\treturn &this\n}\n\n// NewBoundDeviceWithDefaults instantiates a new BoundDevice object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewBoundDeviceWithDefaults() *BoundDevice {\n\tthis := BoundDevice{}\n\treturn &this\n}\n\n// GetActivated returns the Activated field value\nfunc (o *BoundDevice) GetActivated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Activated\n}\n\n// GetActivatedOk returns a tuple with the Activated field value\n// and a boolean to check if the value has been set.\nfunc (o *BoundDevice) GetActivatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Activated, true\n}\n\n// SetActivated sets field value\nfunc (o *BoundDevice) SetActivated(v string) {\n\to.Activated = v\n}\n\n// GetActive returns the Active field value\nfunc (o *BoundDevice) GetActive() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.Active\n}\n\n// GetActiveOk returns a tuple with the Active field value\n// and a boolean to check if the value has been set.\nfunc (o *BoundDevice) GetActiveOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Active, true\n}\n\n// SetActive sets field value\nfunc (o *BoundDevice) SetActive(v bool) {\n\to.Active = v\n}\n\n// GetCreated returns the Created field value\nfunc (o *BoundDevice) GetCreated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Created\n}\n\n// GetCreatedOk returns a tuple with the Created field value\n// and a boolean to check if the value has been set.\nfunc (o *BoundDevice) GetCreatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Created, true\n}\n\n// SetCreated sets field value\nfunc (o *BoundDevice) SetCreated(v string) {\n\to.Created = v\n}\n\n// GetId returns the Id field value\nfunc (o *BoundDevice) GetId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Id\n}\n\n// GetIdOk returns a tuple with the Id field value\n// and a boolean to check if the value has been set.\nfunc (o *BoundDevice) GetIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Id, true\n}\n\n// SetId sets field value\nfunc (o *BoundDevice) SetId(v string) {\n\to.Id = v\n}\n\n// GetModel returns the Model field value\nfunc (o *BoundDevice) GetModel() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Model\n}\n\n// GetModelOk returns a tuple with the Model field value\n// and a boolean to check if the value has been set.\nfunc (o *BoundDevice) GetModelOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Model, true\n}\n\n// SetModel sets field value\nfunc (o *BoundDevice) SetModel(v string) {\n\to.Model = v\n}\n\n// GetName returns the Name field value if set, zero value otherwise.\nfunc (o *BoundDevice) GetName() string {\n\tif o == nil || IsNil(o.Name) {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\treturn *o.Name\n}\n\n// GetNameOk returns a tuple with the Name field value if set, nil otherwise\n// and a boolean to check if the value has been set.\nfunc (o *BoundDevice) GetNameOk() (*string, bool) {\n\tif o == nil || IsNil(o.Name) {\n\t\treturn nil, false\n\t}\n\treturn o.Name, true\n}\n\n// HasName returns a boolean if a field has been set.\nfunc (o *BoundDevice) HasName() bool {\n\tif o != nil && !IsNil(o.Name) {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// SetName gets a reference to the given string and assigns it to the Name field.\nfunc (o *BoundDevice) SetName(v string) {\n\to.Name = &v\n}\n\n// GetRole returns the Role field value\nfunc (o *BoundDevice) GetRole() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Role\n}\n\n// GetRoleOk returns a tuple with the Role field value\n// and a boolean to check if the value has been set.\nfunc (o *BoundDevice) GetRoleOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Role, true\n}\n\n// SetRole sets field value\nfunc (o *BoundDevice) SetRole(v string) {\n\to.Role = v\n}\n\n// GetType returns the Type field value\nfunc (o *BoundDevice) GetType() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Type\n}\n\n// GetTypeOk returns a tuple with the Type field value\n// and a boolean to check if the value has been set.\nfunc (o *BoundDevice) GetTypeOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Type, true\n}\n\n// SetType sets field value\nfunc (o *BoundDevice) SetType(v string) {\n\to.Type = v\n}\n\nfunc (o BoundDevice) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o BoundDevice) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"activated\"] = o.Activated\n\ttoSerialize[\"active\"] = o.Active\n\ttoSerialize[\"created\"] = o.Created\n\ttoSerialize[\"id\"] = o.Id\n\ttoSerialize[\"model\"] = o.Model\n\tif !IsNil(o.Name) {\n\t\ttoSerialize[\"name\"] = o.Name\n\t}\n\ttoSerialize[\"role\"] = o.Role\n\ttoSerialize[\"type\"] = o.Type\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *BoundDevice) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"activated\",\n\t\t\"active\",\n\t\t\"created\",\n\t\t\"id\",\n\t\t\"model\",\n\t\t\"role\",\n\t\t\"type\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarBoundDevice := _BoundDevice{}\n\n\terr = json.Unmarshal(data, &varBoundDevice)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = BoundDevice(varBoundDevice)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"activated\")\n\t\tdelete(additionalProperties, \"active\")\n\t\tdelete(additionalProperties, \"created\")\n\t\tdelete(additionalProperties, \"id\")\n\t\tdelete(additionalProperties, \"model\")\n\t\tdelete(additionalProperties, \"name\")\n\t\tdelete(additionalProperties, \"role\")\n\t\tdelete(additionalProperties, \"type\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableBoundDevice struct {\n\tvalue *BoundDevice\n\tisSet bool\n}\n\nfunc (v NullableBoundDevice) Get() *BoundDevice {\n\treturn v.value\n}\n\nfunc (v *NullableBoundDevice) Set(val *BoundDevice) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableBoundDevice) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableBoundDevice) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableBoundDevice(val *BoundDevice) *NullableBoundDevice {\n\treturn &NullableBoundDevice{value: val, isSet: true}\n}\n\nfunc (v NullableBoundDevice) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableBoundDevice) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_config.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the Config type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &Config{}\n\n// Config struct for Config\ntype Config struct {\n\tClientId string `json:\"client_id\"`\n\tInterface ConfigInterface `json:\"interface\"`\n\tPeers []Peer `json:\"peers\"`\n\tServices ConfigServices `json:\"services\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _Config Config\n\n// NewConfig instantiates a new Config object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewConfig(clientId string, interface_ ConfigInterface, peers []Peer, services ConfigServices) *Config {\n\tthis := Config{}\n\tthis.ClientId = clientId\n\tthis.Interface = interface_\n\tthis.Peers = peers\n\tthis.Services = services\n\treturn &this\n}\n\n// NewConfigWithDefaults instantiates a new Config object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewConfigWithDefaults() *Config {\n\tthis := Config{}\n\treturn &this\n}\n\n// GetClientId returns the ClientId field value\nfunc (o *Config) GetClientId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.ClientId\n}\n\n// GetClientIdOk returns a tuple with the ClientId field value\n// and a boolean to check if the value has been set.\nfunc (o *Config) GetClientIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.ClientId, true\n}\n\n// SetClientId sets field value\nfunc (o *Config) SetClientId(v string) {\n\to.ClientId = v\n}\n\n// GetInterface returns the Interface field value\nfunc (o *Config) GetInterface() ConfigInterface {\n\tif o == nil {\n\t\tvar ret ConfigInterface\n\t\treturn ret\n\t}\n\n\treturn o.Interface\n}\n\n// GetInterfaceOk returns a tuple with the Interface field value\n// and a boolean to check if the value has been set.\nfunc (o *Config) GetInterfaceOk() (*ConfigInterface, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Interface, true\n}\n\n// SetInterface sets field value\nfunc (o *Config) SetInterface(v ConfigInterface) {\n\to.Interface = v\n}\n\n// GetPeers returns the Peers field value\nfunc (o *Config) GetPeers() []Peer {\n\tif o == nil {\n\t\tvar ret []Peer\n\t\treturn ret\n\t}\n\n\treturn o.Peers\n}\n\n// GetPeersOk returns a tuple with the Peers field value\n// and a boolean to check if the value has been set.\nfunc (o *Config) GetPeersOk() ([]Peer, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn o.Peers, true\n}\n\n// SetPeers sets field value\nfunc (o *Config) SetPeers(v []Peer) {\n\to.Peers = v\n}\n\n// GetServices returns the Services field value\nfunc (o *Config) GetServices() ConfigServices {\n\tif o == nil {\n\t\tvar ret ConfigServices\n\t\treturn ret\n\t}\n\n\treturn o.Services\n}\n\n// GetServicesOk returns a tuple with the Services field value\n// and a boolean to check if the value has been set.\nfunc (o *Config) GetServicesOk() (*ConfigServices, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Services, true\n}\n\n// SetServices sets field value\nfunc (o *Config) SetServices(v ConfigServices) {\n\to.Services = v\n}\n\nfunc (o Config) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o Config) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"client_id\"] = o.ClientId\n\ttoSerialize[\"interface\"] = o.Interface\n\ttoSerialize[\"peers\"] = o.Peers\n\ttoSerialize[\"services\"] = o.Services\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *Config) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"client_id\",\n\t\t\"interface\",\n\t\t\"peers\",\n\t\t\"services\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarConfig := _Config{}\n\n\terr = json.Unmarshal(data, &varConfig)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = Config(varConfig)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"client_id\")\n\t\tdelete(additionalProperties, \"interface\")\n\t\tdelete(additionalProperties, \"peers\")\n\t\tdelete(additionalProperties, \"services\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableConfig struct {\n\tvalue *Config\n\tisSet bool\n}\n\nfunc (v NullableConfig) Get() *Config {\n\treturn v.value\n}\n\nfunc (v *NullableConfig) Set(val *Config) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableConfig) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableConfig) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableConfig(val *Config) *NullableConfig {\n\treturn &NullableConfig{value: val, isSet: true}\n}\n\nfunc (v NullableConfig) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableConfig) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_config_interface.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the ConfigInterface type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &ConfigInterface{}\n\n// ConfigInterface struct for ConfigInterface\ntype ConfigInterface struct {\n\tAddresses NetworkAddress `json:\"addresses\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _ConfigInterface ConfigInterface\n\n// NewConfigInterface instantiates a new ConfigInterface object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewConfigInterface(addresses NetworkAddress) *ConfigInterface {\n\tthis := ConfigInterface{}\n\tthis.Addresses = addresses\n\treturn &this\n}\n\n// NewConfigInterfaceWithDefaults instantiates a new ConfigInterface object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewConfigInterfaceWithDefaults() *ConfigInterface {\n\tthis := ConfigInterface{}\n\treturn &this\n}\n\n// GetAddresses returns the Addresses field value\nfunc (o *ConfigInterface) GetAddresses() NetworkAddress {\n\tif o == nil {\n\t\tvar ret NetworkAddress\n\t\treturn ret\n\t}\n\n\treturn o.Addresses\n}\n\n// GetAddressesOk returns a tuple with the Addresses field value\n// and a boolean to check if the value has been set.\nfunc (o *ConfigInterface) GetAddressesOk() (*NetworkAddress, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Addresses, true\n}\n\n// SetAddresses sets field value\nfunc (o *ConfigInterface) SetAddresses(v NetworkAddress) {\n\to.Addresses = v\n}\n\nfunc (o ConfigInterface) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o ConfigInterface) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"addresses\"] = o.Addresses\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *ConfigInterface) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"addresses\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarConfigInterface := _ConfigInterface{}\n\n\terr = json.Unmarshal(data, &varConfigInterface)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = ConfigInterface(varConfigInterface)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"addresses\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableConfigInterface struct {\n\tvalue *ConfigInterface\n\tisSet bool\n}\n\nfunc (v NullableConfigInterface) Get() *ConfigInterface {\n\treturn v.value\n}\n\nfunc (v *NullableConfigInterface) Set(val *ConfigInterface) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableConfigInterface) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableConfigInterface) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableConfigInterface(val *ConfigInterface) *NullableConfigInterface {\n\treturn &NullableConfigInterface{value: val, isSet: true}\n}\n\nfunc (v NullableConfigInterface) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableConfigInterface) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_config_services.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the ConfigServices type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &ConfigServices{}\n\n// ConfigServices struct for ConfigServices\ntype ConfigServices struct {\n\tHttpProxy string `json:\"http_proxy\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _ConfigServices ConfigServices\n\n// NewConfigServices instantiates a new ConfigServices object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewConfigServices(httpProxy string) *ConfigServices {\n\tthis := ConfigServices{}\n\tthis.HttpProxy = httpProxy\n\treturn &this\n}\n\n// NewConfigServicesWithDefaults instantiates a new ConfigServices object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewConfigServicesWithDefaults() *ConfigServices {\n\tthis := ConfigServices{}\n\treturn &this\n}\n\n// GetHttpProxy returns the HttpProxy field value\nfunc (o *ConfigServices) GetHttpProxy() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.HttpProxy\n}\n\n// GetHttpProxyOk returns a tuple with the HttpProxy field value\n// and a boolean to check if the value has been set.\nfunc (o *ConfigServices) GetHttpProxyOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.HttpProxy, true\n}\n\n// SetHttpProxy sets field value\nfunc (o *ConfigServices) SetHttpProxy(v string) {\n\to.HttpProxy = v\n}\n\nfunc (o ConfigServices) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o ConfigServices) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"http_proxy\"] = o.HttpProxy\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *ConfigServices) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"http_proxy\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarConfigServices := _ConfigServices{}\n\n\terr = json.Unmarshal(data, &varConfigServices)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = ConfigServices(varConfigServices)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"http_proxy\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableConfigServices struct {\n\tvalue *ConfigServices\n\tisSet bool\n}\n\nfunc (v NullableConfigServices) Get() *ConfigServices {\n\treturn v.value\n}\n\nfunc (v *NullableConfigServices) Set(val *ConfigServices) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableConfigServices) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableConfigServices) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableConfigServices(val *ConfigServices) *NullableConfigServices {\n\treturn &NullableConfigServices{value: val, isSet: true}\n}\n\nfunc (v NullableConfigServices) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableConfigServices) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_endpoint.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the Endpoint type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &Endpoint{}\n\n// Endpoint struct for Endpoint\ntype Endpoint struct {\n\tHost string `json:\"host\"`\n\tV4 string `json:\"v4\"`\n\tV6 string `json:\"v6\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _Endpoint Endpoint\n\n// NewEndpoint instantiates a new Endpoint object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewEndpoint(host string, v4 string, v6 string) *Endpoint {\n\tthis := Endpoint{}\n\tthis.Host = host\n\tthis.V4 = v4\n\tthis.V6 = v6\n\treturn &this\n}\n\n// NewEndpointWithDefaults instantiates a new Endpoint object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewEndpointWithDefaults() *Endpoint {\n\tthis := Endpoint{}\n\treturn &this\n}\n\n// GetHost returns the Host field value\nfunc (o *Endpoint) GetHost() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Host\n}\n\n// GetHostOk returns a tuple with the Host field value\n// and a boolean to check if the value has been set.\nfunc (o *Endpoint) GetHostOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Host, true\n}\n\n// SetHost sets field value\nfunc (o *Endpoint) SetHost(v string) {\n\to.Host = v\n}\n\n// GetV4 returns the V4 field value\nfunc (o *Endpoint) GetV4() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.V4\n}\n\n// GetV4Ok returns a tuple with the V4 field value\n// and a boolean to check if the value has been set.\nfunc (o *Endpoint) GetV4Ok() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.V4, true\n}\n\n// SetV4 sets field value\nfunc (o *Endpoint) SetV4(v string) {\n\to.V4 = v\n}\n\n// GetV6 returns the V6 field value\nfunc (o *Endpoint) GetV6() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.V6\n}\n\n// GetV6Ok returns a tuple with the V6 field value\n// and a boolean to check if the value has been set.\nfunc (o *Endpoint) GetV6Ok() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.V6, true\n}\n\n// SetV6 sets field value\nfunc (o *Endpoint) SetV6(v string) {\n\to.V6 = v\n}\n\nfunc (o Endpoint) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o Endpoint) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"host\"] = o.Host\n\ttoSerialize[\"v4\"] = o.V4\n\ttoSerialize[\"v6\"] = o.V6\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *Endpoint) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"host\",\n\t\t\"v4\",\n\t\t\"v6\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarEndpoint := _Endpoint{}\n\n\terr = json.Unmarshal(data, &varEndpoint)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = Endpoint(varEndpoint)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"host\")\n\t\tdelete(additionalProperties, \"v4\")\n\t\tdelete(additionalProperties, \"v6\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableEndpoint struct {\n\tvalue *Endpoint\n\tisSet bool\n}\n\nfunc (v NullableEndpoint) Get() *Endpoint {\n\treturn v.value\n}\n\nfunc (v *NullableEndpoint) Set(val *Endpoint) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableEndpoint) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableEndpoint) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableEndpoint(val *Endpoint) *NullableEndpoint {\n\treturn &NullableEndpoint{value: val, isSet: true}\n}\n\nfunc (v NullableEndpoint) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableEndpoint) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_get_client_config_200_response.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the GetClientConfig200Response type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &GetClientConfig200Response{}\n\n// GetClientConfig200Response struct for GetClientConfig200Response\ntype GetClientConfig200Response struct {\n\tCaptivePortal []GetClientConfig200ResponseCaptivePortalInner `json:\"captive_portal\"`\n\tDenylist []GetClientConfig200ResponseDenylistInner `json:\"denylist\"`\n\tPremiumDataBytes float32 `json:\"premium_data_bytes\"`\n\tReferralRewardBytes float32 `json:\"referral_reward_bytes\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _GetClientConfig200Response GetClientConfig200Response\n\n// NewGetClientConfig200Response instantiates a new GetClientConfig200Response object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewGetClientConfig200Response(captivePortal []GetClientConfig200ResponseCaptivePortalInner, denylist []GetClientConfig200ResponseDenylistInner, premiumDataBytes float32, referralRewardBytes float32) *GetClientConfig200Response {\n\tthis := GetClientConfig200Response{}\n\tthis.CaptivePortal = captivePortal\n\tthis.Denylist = denylist\n\tthis.PremiumDataBytes = premiumDataBytes\n\tthis.ReferralRewardBytes = referralRewardBytes\n\treturn &this\n}\n\n// NewGetClientConfig200ResponseWithDefaults instantiates a new GetClientConfig200Response object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewGetClientConfig200ResponseWithDefaults() *GetClientConfig200Response {\n\tthis := GetClientConfig200Response{}\n\treturn &this\n}\n\n// GetCaptivePortal returns the CaptivePortal field value\nfunc (o *GetClientConfig200Response) GetCaptivePortal() []GetClientConfig200ResponseCaptivePortalInner {\n\tif o == nil {\n\t\tvar ret []GetClientConfig200ResponseCaptivePortalInner\n\t\treturn ret\n\t}\n\n\treturn o.CaptivePortal\n}\n\n// GetCaptivePortalOk returns a tuple with the CaptivePortal field value\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200Response) GetCaptivePortalOk() ([]GetClientConfig200ResponseCaptivePortalInner, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn o.CaptivePortal, true\n}\n\n// SetCaptivePortal sets field value\nfunc (o *GetClientConfig200Response) SetCaptivePortal(v []GetClientConfig200ResponseCaptivePortalInner) {\n\to.CaptivePortal = v\n}\n\n// GetDenylist returns the Denylist field value\nfunc (o *GetClientConfig200Response) GetDenylist() []GetClientConfig200ResponseDenylistInner {\n\tif o == nil {\n\t\tvar ret []GetClientConfig200ResponseDenylistInner\n\t\treturn ret\n\t}\n\n\treturn o.Denylist\n}\n\n// GetDenylistOk returns a tuple with the Denylist field value\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200Response) GetDenylistOk() ([]GetClientConfig200ResponseDenylistInner, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn o.Denylist, true\n}\n\n// SetDenylist sets field value\nfunc (o *GetClientConfig200Response) SetDenylist(v []GetClientConfig200ResponseDenylistInner) {\n\to.Denylist = v\n}\n\n// GetPremiumDataBytes returns the PremiumDataBytes field value\nfunc (o *GetClientConfig200Response) GetPremiumDataBytes() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.PremiumDataBytes\n}\n\n// GetPremiumDataBytesOk returns a tuple with the PremiumDataBytes field value\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200Response) GetPremiumDataBytesOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.PremiumDataBytes, true\n}\n\n// SetPremiumDataBytes sets field value\nfunc (o *GetClientConfig200Response) SetPremiumDataBytes(v float32) {\n\to.PremiumDataBytes = v\n}\n\n// GetReferralRewardBytes returns the ReferralRewardBytes field value\nfunc (o *GetClientConfig200Response) GetReferralRewardBytes() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.ReferralRewardBytes\n}\n\n// GetReferralRewardBytesOk returns a tuple with the ReferralRewardBytes field value\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200Response) GetReferralRewardBytesOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.ReferralRewardBytes, true\n}\n\n// SetReferralRewardBytes sets field value\nfunc (o *GetClientConfig200Response) SetReferralRewardBytes(v float32) {\n\to.ReferralRewardBytes = v\n}\n\nfunc (o GetClientConfig200Response) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o GetClientConfig200Response) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"captive_portal\"] = o.CaptivePortal\n\ttoSerialize[\"denylist\"] = o.Denylist\n\ttoSerialize[\"premium_data_bytes\"] = o.PremiumDataBytes\n\ttoSerialize[\"referral_reward_bytes\"] = o.ReferralRewardBytes\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *GetClientConfig200Response) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"captive_portal\",\n\t\t\"denylist\",\n\t\t\"premium_data_bytes\",\n\t\t\"referral_reward_bytes\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarGetClientConfig200Response := _GetClientConfig200Response{}\n\n\terr = json.Unmarshal(data, &varGetClientConfig200Response)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = GetClientConfig200Response(varGetClientConfig200Response)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"captive_portal\")\n\t\tdelete(additionalProperties, \"denylist\")\n\t\tdelete(additionalProperties, \"premium_data_bytes\")\n\t\tdelete(additionalProperties, \"referral_reward_bytes\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableGetClientConfig200Response struct {\n\tvalue *GetClientConfig200Response\n\tisSet bool\n}\n\nfunc (v NullableGetClientConfig200Response) Get() *GetClientConfig200Response {\n\treturn v.value\n}\n\nfunc (v *NullableGetClientConfig200Response) Set(val *GetClientConfig200Response) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableGetClientConfig200Response) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableGetClientConfig200Response) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableGetClientConfig200Response(val *GetClientConfig200Response) *NullableGetClientConfig200Response {\n\treturn &NullableGetClientConfig200Response{value: val, isSet: true}\n}\n\nfunc (v NullableGetClientConfig200Response) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableGetClientConfig200Response) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_get_client_config_200_response_captive_portal_inner.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the GetClientConfig200ResponseCaptivePortalInner type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &GetClientConfig200ResponseCaptivePortalInner{}\n\n// GetClientConfig200ResponseCaptivePortalInner struct for GetClientConfig200ResponseCaptivePortalInner\ntype GetClientConfig200ResponseCaptivePortalInner struct {\n\tName string `json:\"name\"`\n\tNetworks []GetClientConfig200ResponseCaptivePortalInnerNetworksInner `json:\"networks\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _GetClientConfig200ResponseCaptivePortalInner GetClientConfig200ResponseCaptivePortalInner\n\n// NewGetClientConfig200ResponseCaptivePortalInner instantiates a new GetClientConfig200ResponseCaptivePortalInner object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewGetClientConfig200ResponseCaptivePortalInner(name string, networks []GetClientConfig200ResponseCaptivePortalInnerNetworksInner) *GetClientConfig200ResponseCaptivePortalInner {\n\tthis := GetClientConfig200ResponseCaptivePortalInner{}\n\tthis.Name = name\n\tthis.Networks = networks\n\treturn &this\n}\n\n// NewGetClientConfig200ResponseCaptivePortalInnerWithDefaults instantiates a new GetClientConfig200ResponseCaptivePortalInner object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewGetClientConfig200ResponseCaptivePortalInnerWithDefaults() *GetClientConfig200ResponseCaptivePortalInner {\n\tthis := GetClientConfig200ResponseCaptivePortalInner{}\n\treturn &this\n}\n\n// GetName returns the Name field value\nfunc (o *GetClientConfig200ResponseCaptivePortalInner) GetName() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Name\n}\n\n// GetNameOk returns a tuple with the Name field value\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200ResponseCaptivePortalInner) GetNameOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Name, true\n}\n\n// SetName sets field value\nfunc (o *GetClientConfig200ResponseCaptivePortalInner) SetName(v string) {\n\to.Name = v\n}\n\n// GetNetworks returns the Networks field value\nfunc (o *GetClientConfig200ResponseCaptivePortalInner) GetNetworks() []GetClientConfig200ResponseCaptivePortalInnerNetworksInner {\n\tif o == nil {\n\t\tvar ret []GetClientConfig200ResponseCaptivePortalInnerNetworksInner\n\t\treturn ret\n\t}\n\n\treturn o.Networks\n}\n\n// GetNetworksOk returns a tuple with the Networks field value\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200ResponseCaptivePortalInner) GetNetworksOk() ([]GetClientConfig200ResponseCaptivePortalInnerNetworksInner, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn o.Networks, true\n}\n\n// SetNetworks sets field value\nfunc (o *GetClientConfig200ResponseCaptivePortalInner) SetNetworks(v []GetClientConfig200ResponseCaptivePortalInnerNetworksInner) {\n\to.Networks = v\n}\n\nfunc (o GetClientConfig200ResponseCaptivePortalInner) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o GetClientConfig200ResponseCaptivePortalInner) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"name\"] = o.Name\n\ttoSerialize[\"networks\"] = o.Networks\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *GetClientConfig200ResponseCaptivePortalInner) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"name\",\n\t\t\"networks\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarGetClientConfig200ResponseCaptivePortalInner := _GetClientConfig200ResponseCaptivePortalInner{}\n\n\terr = json.Unmarshal(data, &varGetClientConfig200ResponseCaptivePortalInner)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = GetClientConfig200ResponseCaptivePortalInner(varGetClientConfig200ResponseCaptivePortalInner)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"name\")\n\t\tdelete(additionalProperties, \"networks\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableGetClientConfig200ResponseCaptivePortalInner struct {\n\tvalue *GetClientConfig200ResponseCaptivePortalInner\n\tisSet bool\n}\n\nfunc (v NullableGetClientConfig200ResponseCaptivePortalInner) Get() *GetClientConfig200ResponseCaptivePortalInner {\n\treturn v.value\n}\n\nfunc (v *NullableGetClientConfig200ResponseCaptivePortalInner) Set(val *GetClientConfig200ResponseCaptivePortalInner) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableGetClientConfig200ResponseCaptivePortalInner) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableGetClientConfig200ResponseCaptivePortalInner) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableGetClientConfig200ResponseCaptivePortalInner(val *GetClientConfig200ResponseCaptivePortalInner) *NullableGetClientConfig200ResponseCaptivePortalInner {\n\treturn &NullableGetClientConfig200ResponseCaptivePortalInner{value: val, isSet: true}\n}\n\nfunc (v NullableGetClientConfig200ResponseCaptivePortalInner) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableGetClientConfig200ResponseCaptivePortalInner) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_get_client_config_200_response_captive_portal_inner_networks_inner.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the GetClientConfig200ResponseCaptivePortalInnerNetworksInner type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &GetClientConfig200ResponseCaptivePortalInnerNetworksInner{}\n\n// GetClientConfig200ResponseCaptivePortalInnerNetworksInner struct for GetClientConfig200ResponseCaptivePortalInnerNetworksInner\ntype GetClientConfig200ResponseCaptivePortalInnerNetworksInner struct {\n\tAddress string `json:\"address\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _GetClientConfig200ResponseCaptivePortalInnerNetworksInner GetClientConfig200ResponseCaptivePortalInnerNetworksInner\n\n// NewGetClientConfig200ResponseCaptivePortalInnerNetworksInner instantiates a new GetClientConfig200ResponseCaptivePortalInnerNetworksInner object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewGetClientConfig200ResponseCaptivePortalInnerNetworksInner(address string) *GetClientConfig200ResponseCaptivePortalInnerNetworksInner {\n\tthis := GetClientConfig200ResponseCaptivePortalInnerNetworksInner{}\n\tthis.Address = address\n\treturn &this\n}\n\n// NewGetClientConfig200ResponseCaptivePortalInnerNetworksInnerWithDefaults instantiates a new GetClientConfig200ResponseCaptivePortalInnerNetworksInner object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewGetClientConfig200ResponseCaptivePortalInnerNetworksInnerWithDefaults() *GetClientConfig200ResponseCaptivePortalInnerNetworksInner {\n\tthis := GetClientConfig200ResponseCaptivePortalInnerNetworksInner{}\n\treturn &this\n}\n\n// GetAddress returns the Address field value\nfunc (o *GetClientConfig200ResponseCaptivePortalInnerNetworksInner) GetAddress() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Address\n}\n\n// GetAddressOk returns a tuple with the Address field value\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200ResponseCaptivePortalInnerNetworksInner) GetAddressOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Address, true\n}\n\n// SetAddress sets field value\nfunc (o *GetClientConfig200ResponseCaptivePortalInnerNetworksInner) SetAddress(v string) {\n\to.Address = v\n}\n\nfunc (o GetClientConfig200ResponseCaptivePortalInnerNetworksInner) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o GetClientConfig200ResponseCaptivePortalInnerNetworksInner) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"address\"] = o.Address\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *GetClientConfig200ResponseCaptivePortalInnerNetworksInner) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"address\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarGetClientConfig200ResponseCaptivePortalInnerNetworksInner := _GetClientConfig200ResponseCaptivePortalInnerNetworksInner{}\n\n\terr = json.Unmarshal(data, &varGetClientConfig200ResponseCaptivePortalInnerNetworksInner)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = GetClientConfig200ResponseCaptivePortalInnerNetworksInner(varGetClientConfig200ResponseCaptivePortalInnerNetworksInner)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"address\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableGetClientConfig200ResponseCaptivePortalInnerNetworksInner struct {\n\tvalue *GetClientConfig200ResponseCaptivePortalInnerNetworksInner\n\tisSet bool\n}\n\nfunc (v NullableGetClientConfig200ResponseCaptivePortalInnerNetworksInner) Get() *GetClientConfig200ResponseCaptivePortalInnerNetworksInner {\n\treturn v.value\n}\n\nfunc (v *NullableGetClientConfig200ResponseCaptivePortalInnerNetworksInner) Set(val *GetClientConfig200ResponseCaptivePortalInnerNetworksInner) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableGetClientConfig200ResponseCaptivePortalInnerNetworksInner) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableGetClientConfig200ResponseCaptivePortalInnerNetworksInner) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableGetClientConfig200ResponseCaptivePortalInnerNetworksInner(val *GetClientConfig200ResponseCaptivePortalInnerNetworksInner) *NullableGetClientConfig200ResponseCaptivePortalInnerNetworksInner {\n\treturn &NullableGetClientConfig200ResponseCaptivePortalInnerNetworksInner{value: val, isSet: true}\n}\n\nfunc (v NullableGetClientConfig200ResponseCaptivePortalInnerNetworksInner) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableGetClientConfig200ResponseCaptivePortalInnerNetworksInner) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_get_client_config_200_response_denylist_inner.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the GetClientConfig200ResponseDenylistInner type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &GetClientConfig200ResponseDenylistInner{}\n\n// GetClientConfig200ResponseDenylistInner struct for GetClientConfig200ResponseDenylistInner\ntype GetClientConfig200ResponseDenylistInner struct {\n\tAndroidPackages []string `json:\"android-packages,omitempty\"`\n\tName string `json:\"name\"`\n\tNetworks *GetClientConfig200ResponseDenylistInnerNetworks `json:\"networks,omitempty\"`\n\tVisible bool `json:\"visible\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _GetClientConfig200ResponseDenylistInner GetClientConfig200ResponseDenylistInner\n\n// NewGetClientConfig200ResponseDenylistInner instantiates a new GetClientConfig200ResponseDenylistInner object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewGetClientConfig200ResponseDenylistInner(name string, visible bool) *GetClientConfig200ResponseDenylistInner {\n\tthis := GetClientConfig200ResponseDenylistInner{}\n\tthis.Name = name\n\tthis.Visible = visible\n\treturn &this\n}\n\n// NewGetClientConfig200ResponseDenylistInnerWithDefaults instantiates a new GetClientConfig200ResponseDenylistInner object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewGetClientConfig200ResponseDenylistInnerWithDefaults() *GetClientConfig200ResponseDenylistInner {\n\tthis := GetClientConfig200ResponseDenylistInner{}\n\treturn &this\n}\n\n// GetAndroidPackages returns the AndroidPackages field value if set, zero value otherwise.\nfunc (o *GetClientConfig200ResponseDenylistInner) GetAndroidPackages() []string {\n\tif o == nil || IsNil(o.AndroidPackages) {\n\t\tvar ret []string\n\t\treturn ret\n\t}\n\treturn o.AndroidPackages\n}\n\n// GetAndroidPackagesOk returns a tuple with the AndroidPackages field value if set, nil otherwise\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200ResponseDenylistInner) GetAndroidPackagesOk() ([]string, bool) {\n\tif o == nil || IsNil(o.AndroidPackages) {\n\t\treturn nil, false\n\t}\n\treturn o.AndroidPackages, true\n}\n\n// HasAndroidPackages returns a boolean if a field has been set.\nfunc (o *GetClientConfig200ResponseDenylistInner) HasAndroidPackages() bool {\n\tif o != nil && !IsNil(o.AndroidPackages) {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// SetAndroidPackages gets a reference to the given []string and assigns it to the AndroidPackages field.\nfunc (o *GetClientConfig200ResponseDenylistInner) SetAndroidPackages(v []string) {\n\to.AndroidPackages = v\n}\n\n// GetName returns the Name field value\nfunc (o *GetClientConfig200ResponseDenylistInner) GetName() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Name\n}\n\n// GetNameOk returns a tuple with the Name field value\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200ResponseDenylistInner) GetNameOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Name, true\n}\n\n// SetName sets field value\nfunc (o *GetClientConfig200ResponseDenylistInner) SetName(v string) {\n\to.Name = v\n}\n\n// GetNetworks returns the Networks field value if set, zero value otherwise.\nfunc (o *GetClientConfig200ResponseDenylistInner) GetNetworks() GetClientConfig200ResponseDenylistInnerNetworks {\n\tif o == nil || IsNil(o.Networks) {\n\t\tvar ret GetClientConfig200ResponseDenylistInnerNetworks\n\t\treturn ret\n\t}\n\treturn *o.Networks\n}\n\n// GetNetworksOk returns a tuple with the Networks field value if set, nil otherwise\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200ResponseDenylistInner) GetNetworksOk() (*GetClientConfig200ResponseDenylistInnerNetworks, bool) {\n\tif o == nil || IsNil(o.Networks) {\n\t\treturn nil, false\n\t}\n\treturn o.Networks, true\n}\n\n// HasNetworks returns a boolean if a field has been set.\nfunc (o *GetClientConfig200ResponseDenylistInner) HasNetworks() bool {\n\tif o != nil && !IsNil(o.Networks) {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// SetNetworks gets a reference to the given GetClientConfig200ResponseDenylistInnerNetworks and assigns it to the Networks field.\nfunc (o *GetClientConfig200ResponseDenylistInner) SetNetworks(v GetClientConfig200ResponseDenylistInnerNetworks) {\n\to.Networks = &v\n}\n\n// GetVisible returns the Visible field value\nfunc (o *GetClientConfig200ResponseDenylistInner) GetVisible() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.Visible\n}\n\n// GetVisibleOk returns a tuple with the Visible field value\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200ResponseDenylistInner) GetVisibleOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Visible, true\n}\n\n// SetVisible sets field value\nfunc (o *GetClientConfig200ResponseDenylistInner) SetVisible(v bool) {\n\to.Visible = v\n}\n\nfunc (o GetClientConfig200ResponseDenylistInner) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o GetClientConfig200ResponseDenylistInner) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\tif !IsNil(o.AndroidPackages) {\n\t\ttoSerialize[\"android-packages\"] = o.AndroidPackages\n\t}\n\ttoSerialize[\"name\"] = o.Name\n\tif !IsNil(o.Networks) {\n\t\ttoSerialize[\"networks\"] = o.Networks\n\t}\n\ttoSerialize[\"visible\"] = o.Visible\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *GetClientConfig200ResponseDenylistInner) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"name\",\n\t\t\"visible\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarGetClientConfig200ResponseDenylistInner := _GetClientConfig200ResponseDenylistInner{}\n\n\terr = json.Unmarshal(data, &varGetClientConfig200ResponseDenylistInner)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = GetClientConfig200ResponseDenylistInner(varGetClientConfig200ResponseDenylistInner)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"android-packages\")\n\t\tdelete(additionalProperties, \"name\")\n\t\tdelete(additionalProperties, \"networks\")\n\t\tdelete(additionalProperties, \"visible\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableGetClientConfig200ResponseDenylistInner struct {\n\tvalue *GetClientConfig200ResponseDenylistInner\n\tisSet bool\n}\n\nfunc (v NullableGetClientConfig200ResponseDenylistInner) Get() *GetClientConfig200ResponseDenylistInner {\n\treturn v.value\n}\n\nfunc (v *NullableGetClientConfig200ResponseDenylistInner) Set(val *GetClientConfig200ResponseDenylistInner) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableGetClientConfig200ResponseDenylistInner) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableGetClientConfig200ResponseDenylistInner) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableGetClientConfig200ResponseDenylistInner(val *GetClientConfig200ResponseDenylistInner) *NullableGetClientConfig200ResponseDenylistInner {\n\treturn &NullableGetClientConfig200ResponseDenylistInner{value: val, isSet: true}\n}\n\nfunc (v NullableGetClientConfig200ResponseDenylistInner) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableGetClientConfig200ResponseDenylistInner) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_get_client_config_200_response_denylist_inner_networks.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the GetClientConfig200ResponseDenylistInnerNetworks type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &GetClientConfig200ResponseDenylistInnerNetworks{}\n\n// GetClientConfig200ResponseDenylistInnerNetworks struct for GetClientConfig200ResponseDenylistInnerNetworks\ntype GetClientConfig200ResponseDenylistInnerNetworks struct {\n\tV4 []IPv4Network `json:\"v4\"`\n\tV6 []IPv6Network `json:\"v6\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _GetClientConfig200ResponseDenylistInnerNetworks GetClientConfig200ResponseDenylistInnerNetworks\n\n// NewGetClientConfig200ResponseDenylistInnerNetworks instantiates a new GetClientConfig200ResponseDenylistInnerNetworks object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewGetClientConfig200ResponseDenylistInnerNetworks(v4 []IPv4Network, v6 []IPv6Network) *GetClientConfig200ResponseDenylistInnerNetworks {\n\tthis := GetClientConfig200ResponseDenylistInnerNetworks{}\n\tthis.V4 = v4\n\tthis.V6 = v6\n\treturn &this\n}\n\n// NewGetClientConfig200ResponseDenylistInnerNetworksWithDefaults instantiates a new GetClientConfig200ResponseDenylistInnerNetworks object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewGetClientConfig200ResponseDenylistInnerNetworksWithDefaults() *GetClientConfig200ResponseDenylistInnerNetworks {\n\tthis := GetClientConfig200ResponseDenylistInnerNetworks{}\n\treturn &this\n}\n\n// GetV4 returns the V4 field value\nfunc (o *GetClientConfig200ResponseDenylistInnerNetworks) GetV4() []IPv4Network {\n\tif o == nil {\n\t\tvar ret []IPv4Network\n\t\treturn ret\n\t}\n\n\treturn o.V4\n}\n\n// GetV4Ok returns a tuple with the V4 field value\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200ResponseDenylistInnerNetworks) GetV4Ok() ([]IPv4Network, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn o.V4, true\n}\n\n// SetV4 sets field value\nfunc (o *GetClientConfig200ResponseDenylistInnerNetworks) SetV4(v []IPv4Network) {\n\to.V4 = v\n}\n\n// GetV6 returns the V6 field value\nfunc (o *GetClientConfig200ResponseDenylistInnerNetworks) GetV6() []IPv6Network {\n\tif o == nil {\n\t\tvar ret []IPv6Network\n\t\treturn ret\n\t}\n\n\treturn o.V6\n}\n\n// GetV6Ok returns a tuple with the V6 field value\n// and a boolean to check if the value has been set.\nfunc (o *GetClientConfig200ResponseDenylistInnerNetworks) GetV6Ok() ([]IPv6Network, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn o.V6, true\n}\n\n// SetV6 sets field value\nfunc (o *GetClientConfig200ResponseDenylistInnerNetworks) SetV6(v []IPv6Network) {\n\to.V6 = v\n}\n\nfunc (o GetClientConfig200ResponseDenylistInnerNetworks) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o GetClientConfig200ResponseDenylistInnerNetworks) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"v4\"] = o.V4\n\ttoSerialize[\"v6\"] = o.V6\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *GetClientConfig200ResponseDenylistInnerNetworks) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"v4\",\n\t\t\"v6\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarGetClientConfig200ResponseDenylistInnerNetworks := _GetClientConfig200ResponseDenylistInnerNetworks{}\n\n\terr = json.Unmarshal(data, &varGetClientConfig200ResponseDenylistInnerNetworks)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = GetClientConfig200ResponseDenylistInnerNetworks(varGetClientConfig200ResponseDenylistInnerNetworks)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"v4\")\n\t\tdelete(additionalProperties, \"v6\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableGetClientConfig200ResponseDenylistInnerNetworks struct {\n\tvalue *GetClientConfig200ResponseDenylistInnerNetworks\n\tisSet bool\n}\n\nfunc (v NullableGetClientConfig200ResponseDenylistInnerNetworks) Get() *GetClientConfig200ResponseDenylistInnerNetworks {\n\treturn v.value\n}\n\nfunc (v *NullableGetClientConfig200ResponseDenylistInnerNetworks) Set(val *GetClientConfig200ResponseDenylistInnerNetworks) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableGetClientConfig200ResponseDenylistInnerNetworks) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableGetClientConfig200ResponseDenylistInnerNetworks) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableGetClientConfig200ResponseDenylistInnerNetworks(val *GetClientConfig200ResponseDenylistInnerNetworks) *NullableGetClientConfig200ResponseDenylistInnerNetworks {\n\treturn &NullableGetClientConfig200ResponseDenylistInnerNetworks{value: val, isSet: true}\n}\n\nfunc (v NullableGetClientConfig200ResponseDenylistInnerNetworks) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableGetClientConfig200ResponseDenylistInnerNetworks) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_get_source_device_200_response.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the GetSourceDevice200Response type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &GetSourceDevice200Response{}\n\n// GetSourceDevice200Response struct for GetSourceDevice200Response\ntype GetSourceDevice200Response struct {\n\tCreated string `json:\"created\"`\n\tEnabled bool `json:\"enabled\"`\n\tFcmToken string `json:\"fcm_token\"`\n\tId string `json:\"id\"`\n\tInstallId string `json:\"install_id\"`\n\tKey string `json:\"key\"`\n\tLocale string `json:\"locale\"`\n\tModel string `json:\"model\"`\n\tName string `json:\"name\"`\n\tPlace float32 `json:\"place\"`\n\tTos string `json:\"tos\"`\n\tType string `json:\"type\"`\n\tUpdated string `json:\"updated\"`\n\tWaitlistEnabled bool `json:\"waitlist_enabled\"`\n\tWarpEnabled bool `json:\"warp_enabled\"`\n\tAccount Account `json:\"account\"`\n\tConfig Config `json:\"config\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _GetSourceDevice200Response GetSourceDevice200Response\n\n// NewGetSourceDevice200Response instantiates a new GetSourceDevice200Response object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewGetSourceDevice200Response(created string, enabled bool, fcmToken string, id string, installId string, key string, locale string, model string, name string, place float32, tos string, type_ string, updated string, waitlistEnabled bool, warpEnabled bool, account Account, config Config) *GetSourceDevice200Response {\n\tthis := GetSourceDevice200Response{}\n\tthis.Created = created\n\tthis.Enabled = enabled\n\tthis.FcmToken = fcmToken\n\tthis.Id = id\n\tthis.InstallId = installId\n\tthis.Key = key\n\tthis.Locale = locale\n\tthis.Model = model\n\tthis.Name = name\n\tthis.Place = place\n\tthis.Tos = tos\n\tthis.Type = type_\n\tthis.Updated = updated\n\tthis.WaitlistEnabled = waitlistEnabled\n\tthis.WarpEnabled = warpEnabled\n\tthis.Account = account\n\tthis.Config = config\n\treturn &this\n}\n\n// NewGetSourceDevice200ResponseWithDefaults instantiates a new GetSourceDevice200Response object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewGetSourceDevice200ResponseWithDefaults() *GetSourceDevice200Response {\n\tthis := GetSourceDevice200Response{}\n\treturn &this\n}\n\n// GetCreated returns the Created field value\nfunc (o *GetSourceDevice200Response) GetCreated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Created\n}\n\n// GetCreatedOk returns a tuple with the Created field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetCreatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Created, true\n}\n\n// SetCreated sets field value\nfunc (o *GetSourceDevice200Response) SetCreated(v string) {\n\to.Created = v\n}\n\n// GetEnabled returns the Enabled field value\nfunc (o *GetSourceDevice200Response) GetEnabled() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.Enabled\n}\n\n// GetEnabledOk returns a tuple with the Enabled field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetEnabledOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Enabled, true\n}\n\n// SetEnabled sets field value\nfunc (o *GetSourceDevice200Response) SetEnabled(v bool) {\n\to.Enabled = v\n}\n\n// GetFcmToken returns the FcmToken field value\nfunc (o *GetSourceDevice200Response) GetFcmToken() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.FcmToken\n}\n\n// GetFcmTokenOk returns a tuple with the FcmToken field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetFcmTokenOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.FcmToken, true\n}\n\n// SetFcmToken sets field value\nfunc (o *GetSourceDevice200Response) SetFcmToken(v string) {\n\to.FcmToken = v\n}\n\n// GetId returns the Id field value\nfunc (o *GetSourceDevice200Response) GetId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Id\n}\n\n// GetIdOk returns a tuple with the Id field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Id, true\n}\n\n// SetId sets field value\nfunc (o *GetSourceDevice200Response) SetId(v string) {\n\to.Id = v\n}\n\n// GetInstallId returns the InstallId field value\nfunc (o *GetSourceDevice200Response) GetInstallId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.InstallId\n}\n\n// GetInstallIdOk returns a tuple with the InstallId field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetInstallIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.InstallId, true\n}\n\n// SetInstallId sets field value\nfunc (o *GetSourceDevice200Response) SetInstallId(v string) {\n\to.InstallId = v\n}\n\n// GetKey returns the Key field value\nfunc (o *GetSourceDevice200Response) GetKey() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Key\n}\n\n// GetKeyOk returns a tuple with the Key field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetKeyOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Key, true\n}\n\n// SetKey sets field value\nfunc (o *GetSourceDevice200Response) SetKey(v string) {\n\to.Key = v\n}\n\n// GetLocale returns the Locale field value\nfunc (o *GetSourceDevice200Response) GetLocale() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Locale\n}\n\n// GetLocaleOk returns a tuple with the Locale field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetLocaleOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Locale, true\n}\n\n// SetLocale sets field value\nfunc (o *GetSourceDevice200Response) SetLocale(v string) {\n\to.Locale = v\n}\n\n// GetModel returns the Model field value\nfunc (o *GetSourceDevice200Response) GetModel() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Model\n}\n\n// GetModelOk returns a tuple with the Model field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetModelOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Model, true\n}\n\n// SetModel sets field value\nfunc (o *GetSourceDevice200Response) SetModel(v string) {\n\to.Model = v\n}\n\n// GetName returns the Name field value\nfunc (o *GetSourceDevice200Response) GetName() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Name\n}\n\n// GetNameOk returns a tuple with the Name field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetNameOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Name, true\n}\n\n// SetName sets field value\nfunc (o *GetSourceDevice200Response) SetName(v string) {\n\to.Name = v\n}\n\n// GetPlace returns the Place field value\nfunc (o *GetSourceDevice200Response) GetPlace() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.Place\n}\n\n// GetPlaceOk returns a tuple with the Place field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetPlaceOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Place, true\n}\n\n// SetPlace sets field value\nfunc (o *GetSourceDevice200Response) SetPlace(v float32) {\n\to.Place = v\n}\n\n// GetTos returns the Tos field value\nfunc (o *GetSourceDevice200Response) GetTos() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Tos\n}\n\n// GetTosOk returns a tuple with the Tos field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetTosOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Tos, true\n}\n\n// SetTos sets field value\nfunc (o *GetSourceDevice200Response) SetTos(v string) {\n\to.Tos = v\n}\n\n// GetType returns the Type field value\nfunc (o *GetSourceDevice200Response) GetType() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Type\n}\n\n// GetTypeOk returns a tuple with the Type field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetTypeOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Type, true\n}\n\n// SetType sets field value\nfunc (o *GetSourceDevice200Response) SetType(v string) {\n\to.Type = v\n}\n\n// GetUpdated returns the Updated field value\nfunc (o *GetSourceDevice200Response) GetUpdated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Updated\n}\n\n// GetUpdatedOk returns a tuple with the Updated field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetUpdatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Updated, true\n}\n\n// SetUpdated sets field value\nfunc (o *GetSourceDevice200Response) SetUpdated(v string) {\n\to.Updated = v\n}\n\n// GetWaitlistEnabled returns the WaitlistEnabled field value\nfunc (o *GetSourceDevice200Response) GetWaitlistEnabled() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.WaitlistEnabled\n}\n\n// GetWaitlistEnabledOk returns a tuple with the WaitlistEnabled field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetWaitlistEnabledOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.WaitlistEnabled, true\n}\n\n// SetWaitlistEnabled sets field value\nfunc (o *GetSourceDevice200Response) SetWaitlistEnabled(v bool) {\n\to.WaitlistEnabled = v\n}\n\n// GetWarpEnabled returns the WarpEnabled field value\nfunc (o *GetSourceDevice200Response) GetWarpEnabled() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.WarpEnabled\n}\n\n// GetWarpEnabledOk returns a tuple with the WarpEnabled field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetWarpEnabledOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.WarpEnabled, true\n}\n\n// SetWarpEnabled sets field value\nfunc (o *GetSourceDevice200Response) SetWarpEnabled(v bool) {\n\to.WarpEnabled = v\n}\n\n// GetAccount returns the Account field value\nfunc (o *GetSourceDevice200Response) GetAccount() Account {\n\tif o == nil {\n\t\tvar ret Account\n\t\treturn ret\n\t}\n\n\treturn o.Account\n}\n\n// GetAccountOk returns a tuple with the Account field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetAccountOk() (*Account, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Account, true\n}\n\n// SetAccount sets field value\nfunc (o *GetSourceDevice200Response) SetAccount(v Account) {\n\to.Account = v\n}\n\n// GetConfig returns the Config field value\nfunc (o *GetSourceDevice200Response) GetConfig() Config {\n\tif o == nil {\n\t\tvar ret Config\n\t\treturn ret\n\t}\n\n\treturn o.Config\n}\n\n// GetConfigOk returns a tuple with the Config field value\n// and a boolean to check if the value has been set.\nfunc (o *GetSourceDevice200Response) GetConfigOk() (*Config, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Config, true\n}\n\n// SetConfig sets field value\nfunc (o *GetSourceDevice200Response) SetConfig(v Config) {\n\to.Config = v\n}\n\nfunc (o GetSourceDevice200Response) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o GetSourceDevice200Response) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"created\"] = o.Created\n\ttoSerialize[\"enabled\"] = o.Enabled\n\ttoSerialize[\"fcm_token\"] = o.FcmToken\n\ttoSerialize[\"id\"] = o.Id\n\ttoSerialize[\"install_id\"] = o.InstallId\n\ttoSerialize[\"key\"] = o.Key\n\ttoSerialize[\"locale\"] = o.Locale\n\ttoSerialize[\"model\"] = o.Model\n\ttoSerialize[\"name\"] = o.Name\n\ttoSerialize[\"place\"] = o.Place\n\ttoSerialize[\"tos\"] = o.Tos\n\ttoSerialize[\"type\"] = o.Type\n\ttoSerialize[\"updated\"] = o.Updated\n\ttoSerialize[\"waitlist_enabled\"] = o.WaitlistEnabled\n\ttoSerialize[\"warp_enabled\"] = o.WarpEnabled\n\ttoSerialize[\"account\"] = o.Account\n\ttoSerialize[\"config\"] = o.Config\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *GetSourceDevice200Response) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"created\",\n\t\t\"enabled\",\n\t\t\"fcm_token\",\n\t\t\"id\",\n\t\t\"install_id\",\n\t\t\"key\",\n\t\t\"locale\",\n\t\t\"model\",\n\t\t\"name\",\n\t\t\"place\",\n\t\t\"tos\",\n\t\t\"type\",\n\t\t\"updated\",\n\t\t\"waitlist_enabled\",\n\t\t\"warp_enabled\",\n\t\t\"account\",\n\t\t\"config\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarGetSourceDevice200Response := _GetSourceDevice200Response{}\n\n\terr = json.Unmarshal(data, &varGetSourceDevice200Response)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = GetSourceDevice200Response(varGetSourceDevice200Response)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"created\")\n\t\tdelete(additionalProperties, \"enabled\")\n\t\tdelete(additionalProperties, \"fcm_token\")\n\t\tdelete(additionalProperties, \"id\")\n\t\tdelete(additionalProperties, \"install_id\")\n\t\tdelete(additionalProperties, \"key\")\n\t\tdelete(additionalProperties, \"locale\")\n\t\tdelete(additionalProperties, \"model\")\n\t\tdelete(additionalProperties, \"name\")\n\t\tdelete(additionalProperties, \"place\")\n\t\tdelete(additionalProperties, \"tos\")\n\t\tdelete(additionalProperties, \"type\")\n\t\tdelete(additionalProperties, \"updated\")\n\t\tdelete(additionalProperties, \"waitlist_enabled\")\n\t\tdelete(additionalProperties, \"warp_enabled\")\n\t\tdelete(additionalProperties, \"account\")\n\t\tdelete(additionalProperties, \"config\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableGetSourceDevice200Response struct {\n\tvalue *GetSourceDevice200Response\n\tisSet bool\n}\n\nfunc (v NullableGetSourceDevice200Response) Get() *GetSourceDevice200Response {\n\treturn v.value\n}\n\nfunc (v *NullableGetSourceDevice200Response) Set(val *GetSourceDevice200Response) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableGetSourceDevice200Response) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableGetSourceDevice200Response) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableGetSourceDevice200Response(val *GetSourceDevice200Response) *NullableGetSourceDevice200Response {\n\treturn &NullableGetSourceDevice200Response{value: val, isSet: true}\n}\n\nfunc (v NullableGetSourceDevice200Response) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableGetSourceDevice200Response) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_ipv4_network.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the IPv4Network type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &IPv4Network{}\n\n// IPv4Network struct for IPv4Network\ntype IPv4Network struct {\n\tAddress string `json:\"address\"`\n\tNetmask string `json:\"netmask\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _IPv4Network IPv4Network\n\n// NewIPv4Network instantiates a new IPv4Network object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewIPv4Network(address string, netmask string) *IPv4Network {\n\tthis := IPv4Network{}\n\tthis.Address = address\n\tthis.Netmask = netmask\n\treturn &this\n}\n\n// NewIPv4NetworkWithDefaults instantiates a new IPv4Network object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewIPv4NetworkWithDefaults() *IPv4Network {\n\tthis := IPv4Network{}\n\treturn &this\n}\n\n// GetAddress returns the Address field value\nfunc (o *IPv4Network) GetAddress() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Address\n}\n\n// GetAddressOk returns a tuple with the Address field value\n// and a boolean to check if the value has been set.\nfunc (o *IPv4Network) GetAddressOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Address, true\n}\n\n// SetAddress sets field value\nfunc (o *IPv4Network) SetAddress(v string) {\n\to.Address = v\n}\n\n// GetNetmask returns the Netmask field value\nfunc (o *IPv4Network) GetNetmask() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Netmask\n}\n\n// GetNetmaskOk returns a tuple with the Netmask field value\n// and a boolean to check if the value has been set.\nfunc (o *IPv4Network) GetNetmaskOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Netmask, true\n}\n\n// SetNetmask sets field value\nfunc (o *IPv4Network) SetNetmask(v string) {\n\to.Netmask = v\n}\n\nfunc (o IPv4Network) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o IPv4Network) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"address\"] = o.Address\n\ttoSerialize[\"netmask\"] = o.Netmask\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *IPv4Network) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"address\",\n\t\t\"netmask\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarIPv4Network := _IPv4Network{}\n\n\terr = json.Unmarshal(data, &varIPv4Network)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = IPv4Network(varIPv4Network)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"address\")\n\t\tdelete(additionalProperties, \"netmask\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableIPv4Network struct {\n\tvalue *IPv4Network\n\tisSet bool\n}\n\nfunc (v NullableIPv4Network) Get() *IPv4Network {\n\treturn v.value\n}\n\nfunc (v *NullableIPv4Network) Set(val *IPv4Network) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableIPv4Network) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableIPv4Network) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableIPv4Network(val *IPv4Network) *NullableIPv4Network {\n\treturn &NullableIPv4Network{value: val, isSet: true}\n}\n\nfunc (v NullableIPv4Network) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableIPv4Network) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_ipv6_network.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the IPv6Network type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &IPv6Network{}\n\n// IPv6Network struct for IPv6Network\ntype IPv6Network struct {\n\tAddress string `json:\"address\"`\n\tPrefix float32 `json:\"prefix\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _IPv6Network IPv6Network\n\n// NewIPv6Network instantiates a new IPv6Network object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewIPv6Network(address string, prefix float32) *IPv6Network {\n\tthis := IPv6Network{}\n\tthis.Address = address\n\tthis.Prefix = prefix\n\treturn &this\n}\n\n// NewIPv6NetworkWithDefaults instantiates a new IPv6Network object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewIPv6NetworkWithDefaults() *IPv6Network {\n\tthis := IPv6Network{}\n\treturn &this\n}\n\n// GetAddress returns the Address field value\nfunc (o *IPv6Network) GetAddress() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Address\n}\n\n// GetAddressOk returns a tuple with the Address field value\n// and a boolean to check if the value has been set.\nfunc (o *IPv6Network) GetAddressOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Address, true\n}\n\n// SetAddress sets field value\nfunc (o *IPv6Network) SetAddress(v string) {\n\to.Address = v\n}\n\n// GetPrefix returns the Prefix field value\nfunc (o *IPv6Network) GetPrefix() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.Prefix\n}\n\n// GetPrefixOk returns a tuple with the Prefix field value\n// and a boolean to check if the value has been set.\nfunc (o *IPv6Network) GetPrefixOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Prefix, true\n}\n\n// SetPrefix sets field value\nfunc (o *IPv6Network) SetPrefix(v float32) {\n\to.Prefix = v\n}\n\nfunc (o IPv6Network) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o IPv6Network) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"address\"] = o.Address\n\ttoSerialize[\"prefix\"] = o.Prefix\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *IPv6Network) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"address\",\n\t\t\"prefix\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarIPv6Network := _IPv6Network{}\n\n\terr = json.Unmarshal(data, &varIPv6Network)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = IPv6Network(varIPv6Network)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"address\")\n\t\tdelete(additionalProperties, \"prefix\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableIPv6Network struct {\n\tvalue *IPv6Network\n\tisSet bool\n}\n\nfunc (v NullableIPv6Network) Get() *IPv6Network {\n\treturn v.value\n}\n\nfunc (v *NullableIPv6Network) Set(val *IPv6Network) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableIPv6Network) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableIPv6Network) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableIPv6Network(val *IPv6Network) *NullableIPv6Network {\n\treturn &NullableIPv6Network{value: val, isSet: true}\n}\n\nfunc (v NullableIPv6Network) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableIPv6Network) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_network_address.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the NetworkAddress type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &NetworkAddress{}\n\n// NetworkAddress struct for NetworkAddress\ntype NetworkAddress struct {\n\tV4 string `json:\"v4\"`\n\tV6 string `json:\"v6\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _NetworkAddress NetworkAddress\n\n// NewNetworkAddress instantiates a new NetworkAddress object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewNetworkAddress(v4 string, v6 string) *NetworkAddress {\n\tthis := NetworkAddress{}\n\tthis.V4 = v4\n\tthis.V6 = v6\n\treturn &this\n}\n\n// NewNetworkAddressWithDefaults instantiates a new NetworkAddress object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewNetworkAddressWithDefaults() *NetworkAddress {\n\tthis := NetworkAddress{}\n\treturn &this\n}\n\n// GetV4 returns the V4 field value\nfunc (o *NetworkAddress) GetV4() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.V4\n}\n\n// GetV4Ok returns a tuple with the V4 field value\n// and a boolean to check if the value has been set.\nfunc (o *NetworkAddress) GetV4Ok() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.V4, true\n}\n\n// SetV4 sets field value\nfunc (o *NetworkAddress) SetV4(v string) {\n\to.V4 = v\n}\n\n// GetV6 returns the V6 field value\nfunc (o *NetworkAddress) GetV6() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.V6\n}\n\n// GetV6Ok returns a tuple with the V6 field value\n// and a boolean to check if the value has been set.\nfunc (o *NetworkAddress) GetV6Ok() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.V6, true\n}\n\n// SetV6 sets field value\nfunc (o *NetworkAddress) SetV6(v string) {\n\to.V6 = v\n}\n\nfunc (o NetworkAddress) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o NetworkAddress) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"v4\"] = o.V4\n\ttoSerialize[\"v6\"] = o.V6\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *NetworkAddress) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"v4\",\n\t\t\"v6\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarNetworkAddress := _NetworkAddress{}\n\n\terr = json.Unmarshal(data, &varNetworkAddress)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = NetworkAddress(varNetworkAddress)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"v4\")\n\t\tdelete(additionalProperties, \"v6\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableNetworkAddress struct {\n\tvalue *NetworkAddress\n\tisSet bool\n}\n\nfunc (v NullableNetworkAddress) Get() *NetworkAddress {\n\treturn v.value\n}\n\nfunc (v *NullableNetworkAddress) Set(val *NetworkAddress) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableNetworkAddress) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableNetworkAddress) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableNetworkAddress(val *NetworkAddress) *NullableNetworkAddress {\n\treturn &NullableNetworkAddress{value: val, isSet: true}\n}\n\nfunc (v NullableNetworkAddress) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableNetworkAddress) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_peer.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the Peer type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &Peer{}\n\n// Peer struct for Peer\ntype Peer struct {\n\tEndpoint Endpoint `json:\"endpoint\"`\n\tPublicKey string `json:\"public_key\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _Peer Peer\n\n// NewPeer instantiates a new Peer object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewPeer(endpoint Endpoint, publicKey string) *Peer {\n\tthis := Peer{}\n\tthis.Endpoint = endpoint\n\tthis.PublicKey = publicKey\n\treturn &this\n}\n\n// NewPeerWithDefaults instantiates a new Peer object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewPeerWithDefaults() *Peer {\n\tthis := Peer{}\n\treturn &this\n}\n\n// GetEndpoint returns the Endpoint field value\nfunc (o *Peer) GetEndpoint() Endpoint {\n\tif o == nil {\n\t\tvar ret Endpoint\n\t\treturn ret\n\t}\n\n\treturn o.Endpoint\n}\n\n// GetEndpointOk returns a tuple with the Endpoint field value\n// and a boolean to check if the value has been set.\nfunc (o *Peer) GetEndpointOk() (*Endpoint, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Endpoint, true\n}\n\n// SetEndpoint sets field value\nfunc (o *Peer) SetEndpoint(v Endpoint) {\n\to.Endpoint = v\n}\n\n// GetPublicKey returns the PublicKey field value\nfunc (o *Peer) GetPublicKey() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.PublicKey\n}\n\n// GetPublicKeyOk returns a tuple with the PublicKey field value\n// and a boolean to check if the value has been set.\nfunc (o *Peer) GetPublicKeyOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.PublicKey, true\n}\n\n// SetPublicKey sets field value\nfunc (o *Peer) SetPublicKey(v string) {\n\to.PublicKey = v\n}\n\nfunc (o Peer) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o Peer) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"endpoint\"] = o.Endpoint\n\ttoSerialize[\"public_key\"] = o.PublicKey\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *Peer) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"endpoint\",\n\t\t\"public_key\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarPeer := _Peer{}\n\n\terr = json.Unmarshal(data, &varPeer)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = Peer(varPeer)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"endpoint\")\n\t\tdelete(additionalProperties, \"public_key\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullablePeer struct {\n\tvalue *Peer\n\tisSet bool\n}\n\nfunc (v NullablePeer) Get() *Peer {\n\treturn v.value\n}\n\nfunc (v *NullablePeer) Set(val *Peer) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullablePeer) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullablePeer) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullablePeer(val *Peer) *NullablePeer {\n\treturn &NullablePeer{value: val, isSet: true}\n}\n\nfunc (v NullablePeer) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullablePeer) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_register_200_response.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the Register200Response type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &Register200Response{}\n\n// Register200Response struct for Register200Response\ntype Register200Response struct {\n\tCreated string `json:\"created\"`\n\tEnabled bool `json:\"enabled\"`\n\tFcmToken string `json:\"fcm_token\"`\n\tId string `json:\"id\"`\n\tInstallId string `json:\"install_id\"`\n\tKey string `json:\"key\"`\n\tLocale string `json:\"locale\"`\n\tModel string `json:\"model\"`\n\tName string `json:\"name\"`\n\tPlace float32 `json:\"place\"`\n\tTos string `json:\"tos\"`\n\tType string `json:\"type\"`\n\tUpdated string `json:\"updated\"`\n\tWaitlistEnabled bool `json:\"waitlist_enabled\"`\n\tWarpEnabled bool `json:\"warp_enabled\"`\n\tAccount Account `json:\"account\"`\n\tConfig Config `json:\"config\"`\n\tToken string `json:\"token\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _Register200Response Register200Response\n\n// NewRegister200Response instantiates a new Register200Response object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewRegister200Response(created string, enabled bool, fcmToken string, id string, installId string, key string, locale string, model string, name string, place float32, tos string, type_ string, updated string, waitlistEnabled bool, warpEnabled bool, account Account, config Config, token string) *Register200Response {\n\tthis := Register200Response{}\n\tthis.Created = created\n\tthis.Enabled = enabled\n\tthis.FcmToken = fcmToken\n\tthis.Id = id\n\tthis.InstallId = installId\n\tthis.Key = key\n\tthis.Locale = locale\n\tthis.Model = model\n\tthis.Name = name\n\tthis.Place = place\n\tthis.Tos = tos\n\tthis.Type = type_\n\tthis.Updated = updated\n\tthis.WaitlistEnabled = waitlistEnabled\n\tthis.WarpEnabled = warpEnabled\n\tthis.Account = account\n\tthis.Config = config\n\tthis.Token = token\n\treturn &this\n}\n\n// NewRegister200ResponseWithDefaults instantiates a new Register200Response object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewRegister200ResponseWithDefaults() *Register200Response {\n\tthis := Register200Response{}\n\treturn &this\n}\n\n// GetCreated returns the Created field value\nfunc (o *Register200Response) GetCreated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Created\n}\n\n// GetCreatedOk returns a tuple with the Created field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetCreatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Created, true\n}\n\n// SetCreated sets field value\nfunc (o *Register200Response) SetCreated(v string) {\n\to.Created = v\n}\n\n// GetEnabled returns the Enabled field value\nfunc (o *Register200Response) GetEnabled() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.Enabled\n}\n\n// GetEnabledOk returns a tuple with the Enabled field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetEnabledOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Enabled, true\n}\n\n// SetEnabled sets field value\nfunc (o *Register200Response) SetEnabled(v bool) {\n\to.Enabled = v\n}\n\n// GetFcmToken returns the FcmToken field value\nfunc (o *Register200Response) GetFcmToken() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.FcmToken\n}\n\n// GetFcmTokenOk returns a tuple with the FcmToken field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetFcmTokenOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.FcmToken, true\n}\n\n// SetFcmToken sets field value\nfunc (o *Register200Response) SetFcmToken(v string) {\n\to.FcmToken = v\n}\n\n// GetId returns the Id field value\nfunc (o *Register200Response) GetId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Id\n}\n\n// GetIdOk returns a tuple with the Id field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Id, true\n}\n\n// SetId sets field value\nfunc (o *Register200Response) SetId(v string) {\n\to.Id = v\n}\n\n// GetInstallId returns the InstallId field value\nfunc (o *Register200Response) GetInstallId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.InstallId\n}\n\n// GetInstallIdOk returns a tuple with the InstallId field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetInstallIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.InstallId, true\n}\n\n// SetInstallId sets field value\nfunc (o *Register200Response) SetInstallId(v string) {\n\to.InstallId = v\n}\n\n// GetKey returns the Key field value\nfunc (o *Register200Response) GetKey() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Key\n}\n\n// GetKeyOk returns a tuple with the Key field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetKeyOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Key, true\n}\n\n// SetKey sets field value\nfunc (o *Register200Response) SetKey(v string) {\n\to.Key = v\n}\n\n// GetLocale returns the Locale field value\nfunc (o *Register200Response) GetLocale() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Locale\n}\n\n// GetLocaleOk returns a tuple with the Locale field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetLocaleOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Locale, true\n}\n\n// SetLocale sets field value\nfunc (o *Register200Response) SetLocale(v string) {\n\to.Locale = v\n}\n\n// GetModel returns the Model field value\nfunc (o *Register200Response) GetModel() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Model\n}\n\n// GetModelOk returns a tuple with the Model field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetModelOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Model, true\n}\n\n// SetModel sets field value\nfunc (o *Register200Response) SetModel(v string) {\n\to.Model = v\n}\n\n// GetName returns the Name field value\nfunc (o *Register200Response) GetName() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Name\n}\n\n// GetNameOk returns a tuple with the Name field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetNameOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Name, true\n}\n\n// SetName sets field value\nfunc (o *Register200Response) SetName(v string) {\n\to.Name = v\n}\n\n// GetPlace returns the Place field value\nfunc (o *Register200Response) GetPlace() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.Place\n}\n\n// GetPlaceOk returns a tuple with the Place field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetPlaceOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Place, true\n}\n\n// SetPlace sets field value\nfunc (o *Register200Response) SetPlace(v float32) {\n\to.Place = v\n}\n\n// GetTos returns the Tos field value\nfunc (o *Register200Response) GetTos() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Tos\n}\n\n// GetTosOk returns a tuple with the Tos field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetTosOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Tos, true\n}\n\n// SetTos sets field value\nfunc (o *Register200Response) SetTos(v string) {\n\to.Tos = v\n}\n\n// GetType returns the Type field value\nfunc (o *Register200Response) GetType() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Type\n}\n\n// GetTypeOk returns a tuple with the Type field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetTypeOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Type, true\n}\n\n// SetType sets field value\nfunc (o *Register200Response) SetType(v string) {\n\to.Type = v\n}\n\n// GetUpdated returns the Updated field value\nfunc (o *Register200Response) GetUpdated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Updated\n}\n\n// GetUpdatedOk returns a tuple with the Updated field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetUpdatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Updated, true\n}\n\n// SetUpdated sets field value\nfunc (o *Register200Response) SetUpdated(v string) {\n\to.Updated = v\n}\n\n// GetWaitlistEnabled returns the WaitlistEnabled field value\nfunc (o *Register200Response) GetWaitlistEnabled() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.WaitlistEnabled\n}\n\n// GetWaitlistEnabledOk returns a tuple with the WaitlistEnabled field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetWaitlistEnabledOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.WaitlistEnabled, true\n}\n\n// SetWaitlistEnabled sets field value\nfunc (o *Register200Response) SetWaitlistEnabled(v bool) {\n\to.WaitlistEnabled = v\n}\n\n// GetWarpEnabled returns the WarpEnabled field value\nfunc (o *Register200Response) GetWarpEnabled() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.WarpEnabled\n}\n\n// GetWarpEnabledOk returns a tuple with the WarpEnabled field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetWarpEnabledOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.WarpEnabled, true\n}\n\n// SetWarpEnabled sets field value\nfunc (o *Register200Response) SetWarpEnabled(v bool) {\n\to.WarpEnabled = v\n}\n\n// GetAccount returns the Account field value\nfunc (o *Register200Response) GetAccount() Account {\n\tif o == nil {\n\t\tvar ret Account\n\t\treturn ret\n\t}\n\n\treturn o.Account\n}\n\n// GetAccountOk returns a tuple with the Account field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetAccountOk() (*Account, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Account, true\n}\n\n// SetAccount sets field value\nfunc (o *Register200Response) SetAccount(v Account) {\n\to.Account = v\n}\n\n// GetConfig returns the Config field value\nfunc (o *Register200Response) GetConfig() Config {\n\tif o == nil {\n\t\tvar ret Config\n\t\treturn ret\n\t}\n\n\treturn o.Config\n}\n\n// GetConfigOk returns a tuple with the Config field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetConfigOk() (*Config, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Config, true\n}\n\n// SetConfig sets field value\nfunc (o *Register200Response) SetConfig(v Config) {\n\to.Config = v\n}\n\n// GetToken returns the Token field value\nfunc (o *Register200Response) GetToken() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Token\n}\n\n// GetTokenOk returns a tuple with the Token field value\n// and a boolean to check if the value has been set.\nfunc (o *Register200Response) GetTokenOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Token, true\n}\n\n// SetToken sets field value\nfunc (o *Register200Response) SetToken(v string) {\n\to.Token = v\n}\n\nfunc (o Register200Response) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o Register200Response) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"created\"] = o.Created\n\ttoSerialize[\"enabled\"] = o.Enabled\n\ttoSerialize[\"fcm_token\"] = o.FcmToken\n\ttoSerialize[\"id\"] = o.Id\n\ttoSerialize[\"install_id\"] = o.InstallId\n\ttoSerialize[\"key\"] = o.Key\n\ttoSerialize[\"locale\"] = o.Locale\n\ttoSerialize[\"model\"] = o.Model\n\ttoSerialize[\"name\"] = o.Name\n\ttoSerialize[\"place\"] = o.Place\n\ttoSerialize[\"tos\"] = o.Tos\n\ttoSerialize[\"type\"] = o.Type\n\ttoSerialize[\"updated\"] = o.Updated\n\ttoSerialize[\"waitlist_enabled\"] = o.WaitlistEnabled\n\ttoSerialize[\"warp_enabled\"] = o.WarpEnabled\n\ttoSerialize[\"account\"] = o.Account\n\ttoSerialize[\"config\"] = o.Config\n\ttoSerialize[\"token\"] = o.Token\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *Register200Response) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"created\",\n\t\t\"enabled\",\n\t\t\"fcm_token\",\n\t\t\"id\",\n\t\t\"install_id\",\n\t\t\"key\",\n\t\t\"locale\",\n\t\t\"model\",\n\t\t\"name\",\n\t\t\"place\",\n\t\t\"tos\",\n\t\t\"type\",\n\t\t\"updated\",\n\t\t\"waitlist_enabled\",\n\t\t\"warp_enabled\",\n\t\t\"account\",\n\t\t\"config\",\n\t\t\"token\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarRegister200Response := _Register200Response{}\n\n\terr = json.Unmarshal(data, &varRegister200Response)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = Register200Response(varRegister200Response)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"created\")\n\t\tdelete(additionalProperties, \"enabled\")\n\t\tdelete(additionalProperties, \"fcm_token\")\n\t\tdelete(additionalProperties, \"id\")\n\t\tdelete(additionalProperties, \"install_id\")\n\t\tdelete(additionalProperties, \"key\")\n\t\tdelete(additionalProperties, \"locale\")\n\t\tdelete(additionalProperties, \"model\")\n\t\tdelete(additionalProperties, \"name\")\n\t\tdelete(additionalProperties, \"place\")\n\t\tdelete(additionalProperties, \"tos\")\n\t\tdelete(additionalProperties, \"type\")\n\t\tdelete(additionalProperties, \"updated\")\n\t\tdelete(additionalProperties, \"waitlist_enabled\")\n\t\tdelete(additionalProperties, \"warp_enabled\")\n\t\tdelete(additionalProperties, \"account\")\n\t\tdelete(additionalProperties, \"config\")\n\t\tdelete(additionalProperties, \"token\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableRegister200Response struct {\n\tvalue *Register200Response\n\tisSet bool\n}\n\nfunc (v NullableRegister200Response) Get() *Register200Response {\n\treturn v.value\n}\n\nfunc (v *NullableRegister200Response) Set(val *Register200Response) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableRegister200Response) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableRegister200Response) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableRegister200Response(val *Register200Response) *NullableRegister200Response {\n\treturn &NullableRegister200Response{value: val, isSet: true}\n}\n\nfunc (v NullableRegister200Response) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableRegister200Response) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_register_request.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the RegisterRequest type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &RegisterRequest{}\n\n// RegisterRequest struct for RegisterRequest\ntype RegisterRequest struct {\n\tFcmToken string `json:\"fcm_token\"`\n\tInstallId string `json:\"install_id\"`\n\tKey string `json:\"key\"`\n\tLocale string `json:\"locale\"`\n\tModel string `json:\"model\"`\n\tTos string `json:\"tos\"`\n\tType string `json:\"type\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _RegisterRequest RegisterRequest\n\n// NewRegisterRequest instantiates a new RegisterRequest object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewRegisterRequest(fcmToken string, installId string, key string, locale string, model string, tos string, type_ string) *RegisterRequest {\n\tthis := RegisterRequest{}\n\tthis.FcmToken = fcmToken\n\tthis.InstallId = installId\n\tthis.Key = key\n\tthis.Locale = locale\n\tthis.Model = model\n\tthis.Tos = tos\n\tthis.Type = type_\n\treturn &this\n}\n\n// NewRegisterRequestWithDefaults instantiates a new RegisterRequest object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewRegisterRequestWithDefaults() *RegisterRequest {\n\tthis := RegisterRequest{}\n\treturn &this\n}\n\n// GetFcmToken returns the FcmToken field value\nfunc (o *RegisterRequest) GetFcmToken() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.FcmToken\n}\n\n// GetFcmTokenOk returns a tuple with the FcmToken field value\n// and a boolean to check if the value has been set.\nfunc (o *RegisterRequest) GetFcmTokenOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.FcmToken, true\n}\n\n// SetFcmToken sets field value\nfunc (o *RegisterRequest) SetFcmToken(v string) {\n\to.FcmToken = v\n}\n\n// GetInstallId returns the InstallId field value\nfunc (o *RegisterRequest) GetInstallId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.InstallId\n}\n\n// GetInstallIdOk returns a tuple with the InstallId field value\n// and a boolean to check if the value has been set.\nfunc (o *RegisterRequest) GetInstallIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.InstallId, true\n}\n\n// SetInstallId sets field value\nfunc (o *RegisterRequest) SetInstallId(v string) {\n\to.InstallId = v\n}\n\n// GetKey returns the Key field value\nfunc (o *RegisterRequest) GetKey() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Key\n}\n\n// GetKeyOk returns a tuple with the Key field value\n// and a boolean to check if the value has been set.\nfunc (o *RegisterRequest) GetKeyOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Key, true\n}\n\n// SetKey sets field value\nfunc (o *RegisterRequest) SetKey(v string) {\n\to.Key = v\n}\n\n// GetLocale returns the Locale field value\nfunc (o *RegisterRequest) GetLocale() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Locale\n}\n\n// GetLocaleOk returns a tuple with the Locale field value\n// and a boolean to check if the value has been set.\nfunc (o *RegisterRequest) GetLocaleOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Locale, true\n}\n\n// SetLocale sets field value\nfunc (o *RegisterRequest) SetLocale(v string) {\n\to.Locale = v\n}\n\n// GetModel returns the Model field value\nfunc (o *RegisterRequest) GetModel() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Model\n}\n\n// GetModelOk returns a tuple with the Model field value\n// and a boolean to check if the value has been set.\nfunc (o *RegisterRequest) GetModelOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Model, true\n}\n\n// SetModel sets field value\nfunc (o *RegisterRequest) SetModel(v string) {\n\to.Model = v\n}\n\n// GetTos returns the Tos field value\nfunc (o *RegisterRequest) GetTos() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Tos\n}\n\n// GetTosOk returns a tuple with the Tos field value\n// and a boolean to check if the value has been set.\nfunc (o *RegisterRequest) GetTosOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Tos, true\n}\n\n// SetTos sets field value\nfunc (o *RegisterRequest) SetTos(v string) {\n\to.Tos = v\n}\n\n// GetType returns the Type field value\nfunc (o *RegisterRequest) GetType() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Type\n}\n\n// GetTypeOk returns a tuple with the Type field value\n// and a boolean to check if the value has been set.\nfunc (o *RegisterRequest) GetTypeOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Type, true\n}\n\n// SetType sets field value\nfunc (o *RegisterRequest) SetType(v string) {\n\to.Type = v\n}\n\nfunc (o RegisterRequest) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o RegisterRequest) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"fcm_token\"] = o.FcmToken\n\ttoSerialize[\"install_id\"] = o.InstallId\n\ttoSerialize[\"key\"] = o.Key\n\ttoSerialize[\"locale\"] = o.Locale\n\ttoSerialize[\"model\"] = o.Model\n\ttoSerialize[\"tos\"] = o.Tos\n\ttoSerialize[\"type\"] = o.Type\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *RegisterRequest) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"fcm_token\",\n\t\t\"install_id\",\n\t\t\"key\",\n\t\t\"locale\",\n\t\t\"model\",\n\t\t\"tos\",\n\t\t\"type\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarRegisterRequest := _RegisterRequest{}\n\n\terr = json.Unmarshal(data, &varRegisterRequest)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = RegisterRequest(varRegisterRequest)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"fcm_token\")\n\t\tdelete(additionalProperties, \"install_id\")\n\t\tdelete(additionalProperties, \"key\")\n\t\tdelete(additionalProperties, \"locale\")\n\t\tdelete(additionalProperties, \"model\")\n\t\tdelete(additionalProperties, \"tos\")\n\t\tdelete(additionalProperties, \"type\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableRegisterRequest struct {\n\tvalue *RegisterRequest\n\tisSet bool\n}\n\nfunc (v NullableRegisterRequest) Get() *RegisterRequest {\n\treturn v.value\n}\n\nfunc (v *NullableRegisterRequest) Set(val *RegisterRequest) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableRegisterRequest) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableRegisterRequest) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableRegisterRequest(val *RegisterRequest) *NullableRegisterRequest {\n\treturn &NullableRegisterRequest{value: val, isSet: true}\n}\n\nfunc (v NullableRegisterRequest) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableRegisterRequest) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_reset_account_license_200_response.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the ResetAccountLicense200Response type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &ResetAccountLicense200Response{}\n\n// ResetAccountLicense200Response struct for ResetAccountLicense200Response\ntype ResetAccountLicense200Response struct {\n\tLicense string `json:\"license\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _ResetAccountLicense200Response ResetAccountLicense200Response\n\n// NewResetAccountLicense200Response instantiates a new ResetAccountLicense200Response object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewResetAccountLicense200Response(license string) *ResetAccountLicense200Response {\n\tthis := ResetAccountLicense200Response{}\n\tthis.License = license\n\treturn &this\n}\n\n// NewResetAccountLicense200ResponseWithDefaults instantiates a new ResetAccountLicense200Response object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewResetAccountLicense200ResponseWithDefaults() *ResetAccountLicense200Response {\n\tthis := ResetAccountLicense200Response{}\n\treturn &this\n}\n\n// GetLicense returns the License field value\nfunc (o *ResetAccountLicense200Response) GetLicense() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.License\n}\n\n// GetLicenseOk returns a tuple with the License field value\n// and a boolean to check if the value has been set.\nfunc (o *ResetAccountLicense200Response) GetLicenseOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.License, true\n}\n\n// SetLicense sets field value\nfunc (o *ResetAccountLicense200Response) SetLicense(v string) {\n\to.License = v\n}\n\nfunc (o ResetAccountLicense200Response) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o ResetAccountLicense200Response) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"license\"] = o.License\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *ResetAccountLicense200Response) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"license\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarResetAccountLicense200Response := _ResetAccountLicense200Response{}\n\n\terr = json.Unmarshal(data, &varResetAccountLicense200Response)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = ResetAccountLicense200Response(varResetAccountLicense200Response)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"license\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableResetAccountLicense200Response struct {\n\tvalue *ResetAccountLicense200Response\n\tisSet bool\n}\n\nfunc (v NullableResetAccountLicense200Response) Get() *ResetAccountLicense200Response {\n\treturn v.value\n}\n\nfunc (v *NullableResetAccountLicense200Response) Set(val *ResetAccountLicense200Response) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableResetAccountLicense200Response) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableResetAccountLicense200Response) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableResetAccountLicense200Response(val *ResetAccountLicense200Response) *NullableResetAccountLicense200Response {\n\treturn &NullableResetAccountLicense200Response{value: val, isSet: true}\n}\n\nfunc (v NullableResetAccountLicense200Response) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableResetAccountLicense200Response) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_source_device.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the SourceDevice type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &SourceDevice{}\n\n// SourceDevice struct for SourceDevice\ntype SourceDevice struct {\n\tCreated string `json:\"created\"`\n\tEnabled bool `json:\"enabled\"`\n\tFcmToken string `json:\"fcm_token\"`\n\tId string `json:\"id\"`\n\tInstallId string `json:\"install_id\"`\n\tKey string `json:\"key\"`\n\tLocale string `json:\"locale\"`\n\tModel string `json:\"model\"`\n\tName string `json:\"name\"`\n\tPlace float32 `json:\"place\"`\n\tTos string `json:\"tos\"`\n\tType string `json:\"type\"`\n\tUpdated string `json:\"updated\"`\n\tWaitlistEnabled bool `json:\"waitlist_enabled\"`\n\tWarpEnabled bool `json:\"warp_enabled\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _SourceDevice SourceDevice\n\n// NewSourceDevice instantiates a new SourceDevice object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewSourceDevice(created string, enabled bool, fcmToken string, id string, installId string, key string, locale string, model string, name string, place float32, tos string, type_ string, updated string, waitlistEnabled bool, warpEnabled bool) *SourceDevice {\n\tthis := SourceDevice{}\n\tthis.Created = created\n\tthis.Enabled = enabled\n\tthis.FcmToken = fcmToken\n\tthis.Id = id\n\tthis.InstallId = installId\n\tthis.Key = key\n\tthis.Locale = locale\n\tthis.Model = model\n\tthis.Name = name\n\tthis.Place = place\n\tthis.Tos = tos\n\tthis.Type = type_\n\tthis.Updated = updated\n\tthis.WaitlistEnabled = waitlistEnabled\n\tthis.WarpEnabled = warpEnabled\n\treturn &this\n}\n\n// NewSourceDeviceWithDefaults instantiates a new SourceDevice object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewSourceDeviceWithDefaults() *SourceDevice {\n\tthis := SourceDevice{}\n\treturn &this\n}\n\n// GetCreated returns the Created field value\nfunc (o *SourceDevice) GetCreated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Created\n}\n\n// GetCreatedOk returns a tuple with the Created field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetCreatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Created, true\n}\n\n// SetCreated sets field value\nfunc (o *SourceDevice) SetCreated(v string) {\n\to.Created = v\n}\n\n// GetEnabled returns the Enabled field value\nfunc (o *SourceDevice) GetEnabled() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.Enabled\n}\n\n// GetEnabledOk returns a tuple with the Enabled field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetEnabledOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Enabled, true\n}\n\n// SetEnabled sets field value\nfunc (o *SourceDevice) SetEnabled(v bool) {\n\to.Enabled = v\n}\n\n// GetFcmToken returns the FcmToken field value\nfunc (o *SourceDevice) GetFcmToken() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.FcmToken\n}\n\n// GetFcmTokenOk returns a tuple with the FcmToken field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetFcmTokenOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.FcmToken, true\n}\n\n// SetFcmToken sets field value\nfunc (o *SourceDevice) SetFcmToken(v string) {\n\to.FcmToken = v\n}\n\n// GetId returns the Id field value\nfunc (o *SourceDevice) GetId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Id\n}\n\n// GetIdOk returns a tuple with the Id field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Id, true\n}\n\n// SetId sets field value\nfunc (o *SourceDevice) SetId(v string) {\n\to.Id = v\n}\n\n// GetInstallId returns the InstallId field value\nfunc (o *SourceDevice) GetInstallId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.InstallId\n}\n\n// GetInstallIdOk returns a tuple with the InstallId field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetInstallIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.InstallId, true\n}\n\n// SetInstallId sets field value\nfunc (o *SourceDevice) SetInstallId(v string) {\n\to.InstallId = v\n}\n\n// GetKey returns the Key field value\nfunc (o *SourceDevice) GetKey() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Key\n}\n\n// GetKeyOk returns a tuple with the Key field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetKeyOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Key, true\n}\n\n// SetKey sets field value\nfunc (o *SourceDevice) SetKey(v string) {\n\to.Key = v\n}\n\n// GetLocale returns the Locale field value\nfunc (o *SourceDevice) GetLocale() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Locale\n}\n\n// GetLocaleOk returns a tuple with the Locale field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetLocaleOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Locale, true\n}\n\n// SetLocale sets field value\nfunc (o *SourceDevice) SetLocale(v string) {\n\to.Locale = v\n}\n\n// GetModel returns the Model field value\nfunc (o *SourceDevice) GetModel() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Model\n}\n\n// GetModelOk returns a tuple with the Model field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetModelOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Model, true\n}\n\n// SetModel sets field value\nfunc (o *SourceDevice) SetModel(v string) {\n\to.Model = v\n}\n\n// GetName returns the Name field value\nfunc (o *SourceDevice) GetName() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Name\n}\n\n// GetNameOk returns a tuple with the Name field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetNameOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Name, true\n}\n\n// SetName sets field value\nfunc (o *SourceDevice) SetName(v string) {\n\to.Name = v\n}\n\n// GetPlace returns the Place field value\nfunc (o *SourceDevice) GetPlace() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.Place\n}\n\n// GetPlaceOk returns a tuple with the Place field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetPlaceOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Place, true\n}\n\n// SetPlace sets field value\nfunc (o *SourceDevice) SetPlace(v float32) {\n\to.Place = v\n}\n\n// GetTos returns the Tos field value\nfunc (o *SourceDevice) GetTos() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Tos\n}\n\n// GetTosOk returns a tuple with the Tos field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetTosOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Tos, true\n}\n\n// SetTos sets field value\nfunc (o *SourceDevice) SetTos(v string) {\n\to.Tos = v\n}\n\n// GetType returns the Type field value\nfunc (o *SourceDevice) GetType() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Type\n}\n\n// GetTypeOk returns a tuple with the Type field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetTypeOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Type, true\n}\n\n// SetType sets field value\nfunc (o *SourceDevice) SetType(v string) {\n\to.Type = v\n}\n\n// GetUpdated returns the Updated field value\nfunc (o *SourceDevice) GetUpdated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Updated\n}\n\n// GetUpdatedOk returns a tuple with the Updated field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetUpdatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Updated, true\n}\n\n// SetUpdated sets field value\nfunc (o *SourceDevice) SetUpdated(v string) {\n\to.Updated = v\n}\n\n// GetWaitlistEnabled returns the WaitlistEnabled field value\nfunc (o *SourceDevice) GetWaitlistEnabled() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.WaitlistEnabled\n}\n\n// GetWaitlistEnabledOk returns a tuple with the WaitlistEnabled field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetWaitlistEnabledOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.WaitlistEnabled, true\n}\n\n// SetWaitlistEnabled sets field value\nfunc (o *SourceDevice) SetWaitlistEnabled(v bool) {\n\to.WaitlistEnabled = v\n}\n\n// GetWarpEnabled returns the WarpEnabled field value\nfunc (o *SourceDevice) GetWarpEnabled() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.WarpEnabled\n}\n\n// GetWarpEnabledOk returns a tuple with the WarpEnabled field value\n// and a boolean to check if the value has been set.\nfunc (o *SourceDevice) GetWarpEnabledOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.WarpEnabled, true\n}\n\n// SetWarpEnabled sets field value\nfunc (o *SourceDevice) SetWarpEnabled(v bool) {\n\to.WarpEnabled = v\n}\n\nfunc (o SourceDevice) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o SourceDevice) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"created\"] = o.Created\n\ttoSerialize[\"enabled\"] = o.Enabled\n\ttoSerialize[\"fcm_token\"] = o.FcmToken\n\ttoSerialize[\"id\"] = o.Id\n\ttoSerialize[\"install_id\"] = o.InstallId\n\ttoSerialize[\"key\"] = o.Key\n\ttoSerialize[\"locale\"] = o.Locale\n\ttoSerialize[\"model\"] = o.Model\n\ttoSerialize[\"name\"] = o.Name\n\ttoSerialize[\"place\"] = o.Place\n\ttoSerialize[\"tos\"] = o.Tos\n\ttoSerialize[\"type\"] = o.Type\n\ttoSerialize[\"updated\"] = o.Updated\n\ttoSerialize[\"waitlist_enabled\"] = o.WaitlistEnabled\n\ttoSerialize[\"warp_enabled\"] = o.WarpEnabled\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *SourceDevice) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"created\",\n\t\t\"enabled\",\n\t\t\"fcm_token\",\n\t\t\"id\",\n\t\t\"install_id\",\n\t\t\"key\",\n\t\t\"locale\",\n\t\t\"model\",\n\t\t\"name\",\n\t\t\"place\",\n\t\t\"tos\",\n\t\t\"type\",\n\t\t\"updated\",\n\t\t\"waitlist_enabled\",\n\t\t\"warp_enabled\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarSourceDevice := _SourceDevice{}\n\n\terr = json.Unmarshal(data, &varSourceDevice)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = SourceDevice(varSourceDevice)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"created\")\n\t\tdelete(additionalProperties, \"enabled\")\n\t\tdelete(additionalProperties, \"fcm_token\")\n\t\tdelete(additionalProperties, \"id\")\n\t\tdelete(additionalProperties, \"install_id\")\n\t\tdelete(additionalProperties, \"key\")\n\t\tdelete(additionalProperties, \"locale\")\n\t\tdelete(additionalProperties, \"model\")\n\t\tdelete(additionalProperties, \"name\")\n\t\tdelete(additionalProperties, \"place\")\n\t\tdelete(additionalProperties, \"tos\")\n\t\tdelete(additionalProperties, \"type\")\n\t\tdelete(additionalProperties, \"updated\")\n\t\tdelete(additionalProperties, \"waitlist_enabled\")\n\t\tdelete(additionalProperties, \"warp_enabled\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableSourceDevice struct {\n\tvalue *SourceDevice\n\tisSet bool\n}\n\nfunc (v NullableSourceDevice) Get() *SourceDevice {\n\treturn v.value\n}\n\nfunc (v *NullableSourceDevice) Set(val *SourceDevice) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableSourceDevice) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableSourceDevice) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableSourceDevice(val *SourceDevice) *NullableSourceDevice {\n\treturn &NullableSourceDevice{value: val, isSet: true}\n}\n\nfunc (v NullableSourceDevice) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableSourceDevice) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_update_account_200_response.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the UpdateAccount200Response type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &UpdateAccount200Response{}\n\n// UpdateAccount200Response struct for UpdateAccount200Response\ntype UpdateAccount200Response struct {\n\tCreated string `json:\"created\"`\n\tId string `json:\"id\"`\n\tPremiumData float32 `json:\"premium_data\"`\n\tQuota float32 `json:\"quota\"`\n\tReferralCount float32 `json:\"referral_count\"`\n\tReferralRenewalCountdown float32 `json:\"referral_renewal_countdown\"`\n\tRole string `json:\"role\"`\n\tUpdated string `json:\"updated\"`\n\tWarpPlus bool `json:\"warp_plus\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _UpdateAccount200Response UpdateAccount200Response\n\n// NewUpdateAccount200Response instantiates a new UpdateAccount200Response object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewUpdateAccount200Response(created string, id string, premiumData float32, quota float32, referralCount float32, referralRenewalCountdown float32, role string, updated string, warpPlus bool) *UpdateAccount200Response {\n\tthis := UpdateAccount200Response{}\n\tthis.Created = created\n\tthis.Id = id\n\tthis.PremiumData = premiumData\n\tthis.Quota = quota\n\tthis.ReferralCount = referralCount\n\tthis.ReferralRenewalCountdown = referralRenewalCountdown\n\tthis.Role = role\n\tthis.Updated = updated\n\tthis.WarpPlus = warpPlus\n\treturn &this\n}\n\n// NewUpdateAccount200ResponseWithDefaults instantiates a new UpdateAccount200Response object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewUpdateAccount200ResponseWithDefaults() *UpdateAccount200Response {\n\tthis := UpdateAccount200Response{}\n\treturn &this\n}\n\n// GetCreated returns the Created field value\nfunc (o *UpdateAccount200Response) GetCreated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Created\n}\n\n// GetCreatedOk returns a tuple with the Created field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateAccount200Response) GetCreatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Created, true\n}\n\n// SetCreated sets field value\nfunc (o *UpdateAccount200Response) SetCreated(v string) {\n\to.Created = v\n}\n\n// GetId returns the Id field value\nfunc (o *UpdateAccount200Response) GetId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Id\n}\n\n// GetIdOk returns a tuple with the Id field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateAccount200Response) GetIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Id, true\n}\n\n// SetId sets field value\nfunc (o *UpdateAccount200Response) SetId(v string) {\n\to.Id = v\n}\n\n// GetPremiumData returns the PremiumData field value\nfunc (o *UpdateAccount200Response) GetPremiumData() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.PremiumData\n}\n\n// GetPremiumDataOk returns a tuple with the PremiumData field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateAccount200Response) GetPremiumDataOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.PremiumData, true\n}\n\n// SetPremiumData sets field value\nfunc (o *UpdateAccount200Response) SetPremiumData(v float32) {\n\to.PremiumData = v\n}\n\n// GetQuota returns the Quota field value\nfunc (o *UpdateAccount200Response) GetQuota() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.Quota\n}\n\n// GetQuotaOk returns a tuple with the Quota field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateAccount200Response) GetQuotaOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Quota, true\n}\n\n// SetQuota sets field value\nfunc (o *UpdateAccount200Response) SetQuota(v float32) {\n\to.Quota = v\n}\n\n// GetReferralCount returns the ReferralCount field value\nfunc (o *UpdateAccount200Response) GetReferralCount() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.ReferralCount\n}\n\n// GetReferralCountOk returns a tuple with the ReferralCount field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateAccount200Response) GetReferralCountOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.ReferralCount, true\n}\n\n// SetReferralCount sets field value\nfunc (o *UpdateAccount200Response) SetReferralCount(v float32) {\n\to.ReferralCount = v\n}\n\n// GetReferralRenewalCountdown returns the ReferralRenewalCountdown field value\nfunc (o *UpdateAccount200Response) GetReferralRenewalCountdown() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.ReferralRenewalCountdown\n}\n\n// GetReferralRenewalCountdownOk returns a tuple with the ReferralRenewalCountdown field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateAccount200Response) GetReferralRenewalCountdownOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.ReferralRenewalCountdown, true\n}\n\n// SetReferralRenewalCountdown sets field value\nfunc (o *UpdateAccount200Response) SetReferralRenewalCountdown(v float32) {\n\to.ReferralRenewalCountdown = v\n}\n\n// GetRole returns the Role field value\nfunc (o *UpdateAccount200Response) GetRole() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Role\n}\n\n// GetRoleOk returns a tuple with the Role field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateAccount200Response) GetRoleOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Role, true\n}\n\n// SetRole sets field value\nfunc (o *UpdateAccount200Response) SetRole(v string) {\n\to.Role = v\n}\n\n// GetUpdated returns the Updated field value\nfunc (o *UpdateAccount200Response) GetUpdated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Updated\n}\n\n// GetUpdatedOk returns a tuple with the Updated field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateAccount200Response) GetUpdatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Updated, true\n}\n\n// SetUpdated sets field value\nfunc (o *UpdateAccount200Response) SetUpdated(v string) {\n\to.Updated = v\n}\n\n// GetWarpPlus returns the WarpPlus field value\nfunc (o *UpdateAccount200Response) GetWarpPlus() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.WarpPlus\n}\n\n// GetWarpPlusOk returns a tuple with the WarpPlus field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateAccount200Response) GetWarpPlusOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.WarpPlus, true\n}\n\n// SetWarpPlus sets field value\nfunc (o *UpdateAccount200Response) SetWarpPlus(v bool) {\n\to.WarpPlus = v\n}\n\nfunc (o UpdateAccount200Response) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o UpdateAccount200Response) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"created\"] = o.Created\n\ttoSerialize[\"id\"] = o.Id\n\ttoSerialize[\"premium_data\"] = o.PremiumData\n\ttoSerialize[\"quota\"] = o.Quota\n\ttoSerialize[\"referral_count\"] = o.ReferralCount\n\ttoSerialize[\"referral_renewal_countdown\"] = o.ReferralRenewalCountdown\n\ttoSerialize[\"role\"] = o.Role\n\ttoSerialize[\"updated\"] = o.Updated\n\ttoSerialize[\"warp_plus\"] = o.WarpPlus\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *UpdateAccount200Response) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"created\",\n\t\t\"id\",\n\t\t\"premium_data\",\n\t\t\"quota\",\n\t\t\"referral_count\",\n\t\t\"referral_renewal_countdown\",\n\t\t\"role\",\n\t\t\"updated\",\n\t\t\"warp_plus\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarUpdateAccount200Response := _UpdateAccount200Response{}\n\n\terr = json.Unmarshal(data, &varUpdateAccount200Response)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = UpdateAccount200Response(varUpdateAccount200Response)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"created\")\n\t\tdelete(additionalProperties, \"id\")\n\t\tdelete(additionalProperties, \"premium_data\")\n\t\tdelete(additionalProperties, \"quota\")\n\t\tdelete(additionalProperties, \"referral_count\")\n\t\tdelete(additionalProperties, \"referral_renewal_countdown\")\n\t\tdelete(additionalProperties, \"role\")\n\t\tdelete(additionalProperties, \"updated\")\n\t\tdelete(additionalProperties, \"warp_plus\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableUpdateAccount200Response struct {\n\tvalue *UpdateAccount200Response\n\tisSet bool\n}\n\nfunc (v NullableUpdateAccount200Response) Get() *UpdateAccount200Response {\n\treturn v.value\n}\n\nfunc (v *NullableUpdateAccount200Response) Set(val *UpdateAccount200Response) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableUpdateAccount200Response) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableUpdateAccount200Response) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableUpdateAccount200Response(val *UpdateAccount200Response) *NullableUpdateAccount200Response {\n\treturn &NullableUpdateAccount200Response{value: val, isSet: true}\n}\n\nfunc (v NullableUpdateAccount200Response) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableUpdateAccount200Response) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_update_account_request.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the UpdateAccountRequest type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &UpdateAccountRequest{}\n\n// UpdateAccountRequest struct for UpdateAccountRequest\ntype UpdateAccountRequest struct {\n\tLicense string `json:\"license\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _UpdateAccountRequest UpdateAccountRequest\n\n// NewUpdateAccountRequest instantiates a new UpdateAccountRequest object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewUpdateAccountRequest(license string) *UpdateAccountRequest {\n\tthis := UpdateAccountRequest{}\n\tthis.License = license\n\treturn &this\n}\n\n// NewUpdateAccountRequestWithDefaults instantiates a new UpdateAccountRequest object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewUpdateAccountRequestWithDefaults() *UpdateAccountRequest {\n\tthis := UpdateAccountRequest{}\n\treturn &this\n}\n\n// GetLicense returns the License field value\nfunc (o *UpdateAccountRequest) GetLicense() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.License\n}\n\n// GetLicenseOk returns a tuple with the License field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateAccountRequest) GetLicenseOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.License, true\n}\n\n// SetLicense sets field value\nfunc (o *UpdateAccountRequest) SetLicense(v string) {\n\to.License = v\n}\n\nfunc (o UpdateAccountRequest) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o UpdateAccountRequest) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"license\"] = o.License\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *UpdateAccountRequest) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"license\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarUpdateAccountRequest := _UpdateAccountRequest{}\n\n\terr = json.Unmarshal(data, &varUpdateAccountRequest)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = UpdateAccountRequest(varUpdateAccountRequest)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"license\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableUpdateAccountRequest struct {\n\tvalue *UpdateAccountRequest\n\tisSet bool\n}\n\nfunc (v NullableUpdateAccountRequest) Get() *UpdateAccountRequest {\n\treturn v.value\n}\n\nfunc (v *NullableUpdateAccountRequest) Set(val *UpdateAccountRequest) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableUpdateAccountRequest) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableUpdateAccountRequest) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableUpdateAccountRequest(val *UpdateAccountRequest) *NullableUpdateAccountRequest {\n\treturn &NullableUpdateAccountRequest{value: val, isSet: true}\n}\n\nfunc (v NullableUpdateAccountRequest) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableUpdateAccountRequest) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_update_bound_device_request.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n)\n\n// checks if the UpdateBoundDeviceRequest type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &UpdateBoundDeviceRequest{}\n\n// UpdateBoundDeviceRequest struct for UpdateBoundDeviceRequest\ntype UpdateBoundDeviceRequest struct {\n\tActive *bool `json:\"active,omitempty\"`\n\tName *string `json:\"name,omitempty\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _UpdateBoundDeviceRequest UpdateBoundDeviceRequest\n\n// NewUpdateBoundDeviceRequest instantiates a new UpdateBoundDeviceRequest object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewUpdateBoundDeviceRequest() *UpdateBoundDeviceRequest {\n\tthis := UpdateBoundDeviceRequest{}\n\treturn &this\n}\n\n// NewUpdateBoundDeviceRequestWithDefaults instantiates a new UpdateBoundDeviceRequest object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewUpdateBoundDeviceRequestWithDefaults() *UpdateBoundDeviceRequest {\n\tthis := UpdateBoundDeviceRequest{}\n\treturn &this\n}\n\n// GetActive returns the Active field value if set, zero value otherwise.\nfunc (o *UpdateBoundDeviceRequest) GetActive() bool {\n\tif o == nil || IsNil(o.Active) {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\treturn *o.Active\n}\n\n// GetActiveOk returns a tuple with the Active field value if set, nil otherwise\n// and a boolean to check if the value has been set.\nfunc (o *UpdateBoundDeviceRequest) GetActiveOk() (*bool, bool) {\n\tif o == nil || IsNil(o.Active) {\n\t\treturn nil, false\n\t}\n\treturn o.Active, true\n}\n\n// HasActive returns a boolean if a field has been set.\nfunc (o *UpdateBoundDeviceRequest) HasActive() bool {\n\tif o != nil && !IsNil(o.Active) {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// SetActive gets a reference to the given bool and assigns it to the Active field.\nfunc (o *UpdateBoundDeviceRequest) SetActive(v bool) {\n\to.Active = &v\n}\n\n// GetName returns the Name field value if set, zero value otherwise.\nfunc (o *UpdateBoundDeviceRequest) GetName() string {\n\tif o == nil || IsNil(o.Name) {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\treturn *o.Name\n}\n\n// GetNameOk returns a tuple with the Name field value if set, nil otherwise\n// and a boolean to check if the value has been set.\nfunc (o *UpdateBoundDeviceRequest) GetNameOk() (*string, bool) {\n\tif o == nil || IsNil(o.Name) {\n\t\treturn nil, false\n\t}\n\treturn o.Name, true\n}\n\n// HasName returns a boolean if a field has been set.\nfunc (o *UpdateBoundDeviceRequest) HasName() bool {\n\tif o != nil && !IsNil(o.Name) {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// SetName gets a reference to the given string and assigns it to the Name field.\nfunc (o *UpdateBoundDeviceRequest) SetName(v string) {\n\to.Name = &v\n}\n\nfunc (o UpdateBoundDeviceRequest) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o UpdateBoundDeviceRequest) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\tif !IsNil(o.Active) {\n\t\ttoSerialize[\"active\"] = o.Active\n\t}\n\tif !IsNil(o.Name) {\n\t\ttoSerialize[\"name\"] = o.Name\n\t}\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *UpdateBoundDeviceRequest) UnmarshalJSON(data []byte) (err error) {\n\tvarUpdateBoundDeviceRequest := _UpdateBoundDeviceRequest{}\n\n\terr = json.Unmarshal(data, &varUpdateBoundDeviceRequest)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = UpdateBoundDeviceRequest(varUpdateBoundDeviceRequest)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"active\")\n\t\tdelete(additionalProperties, \"name\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableUpdateBoundDeviceRequest struct {\n\tvalue *UpdateBoundDeviceRequest\n\tisSet bool\n}\n\nfunc (v NullableUpdateBoundDeviceRequest) Get() *UpdateBoundDeviceRequest {\n\treturn v.value\n}\n\nfunc (v *NullableUpdateBoundDeviceRequest) Set(val *UpdateBoundDeviceRequest) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableUpdateBoundDeviceRequest) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableUpdateBoundDeviceRequest) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableUpdateBoundDeviceRequest(val *UpdateBoundDeviceRequest) *NullableUpdateBoundDeviceRequest {\n\treturn &NullableUpdateBoundDeviceRequest{value: val, isSet: true}\n}\n\nfunc (v NullableUpdateBoundDeviceRequest) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableUpdateBoundDeviceRequest) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_update_source_device_200_response.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the UpdateSourceDevice200Response type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &UpdateSourceDevice200Response{}\n\n// UpdateSourceDevice200Response struct for UpdateSourceDevice200Response\ntype UpdateSourceDevice200Response struct {\n\tCreated string `json:\"created\"`\n\tEnabled bool `json:\"enabled\"`\n\tFcmToken string `json:\"fcm_token\"`\n\tId string `json:\"id\"`\n\tInstallId string `json:\"install_id\"`\n\tKey string `json:\"key\"`\n\tLocale string `json:\"locale\"`\n\tModel string `json:\"model\"`\n\tName string `json:\"name\"`\n\tPlace float32 `json:\"place\"`\n\tTos string `json:\"tos\"`\n\tType string `json:\"type\"`\n\tUpdated string `json:\"updated\"`\n\tWaitlistEnabled bool `json:\"waitlist_enabled\"`\n\tWarpEnabled bool `json:\"warp_enabled\"`\n\tAccount Account `json:\"account\"`\n\tConfig Config `json:\"config\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _UpdateSourceDevice200Response UpdateSourceDevice200Response\n\n// NewUpdateSourceDevice200Response instantiates a new UpdateSourceDevice200Response object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewUpdateSourceDevice200Response(created string, enabled bool, fcmToken string, id string, installId string, key string, locale string, model string, name string, place float32, tos string, type_ string, updated string, waitlistEnabled bool, warpEnabled bool, account Account, config Config) *UpdateSourceDevice200Response {\n\tthis := UpdateSourceDevice200Response{}\n\tthis.Created = created\n\tthis.Enabled = enabled\n\tthis.FcmToken = fcmToken\n\tthis.Id = id\n\tthis.InstallId = installId\n\tthis.Key = key\n\tthis.Locale = locale\n\tthis.Model = model\n\tthis.Name = name\n\tthis.Place = place\n\tthis.Tos = tos\n\tthis.Type = type_\n\tthis.Updated = updated\n\tthis.WaitlistEnabled = waitlistEnabled\n\tthis.WarpEnabled = warpEnabled\n\tthis.Account = account\n\tthis.Config = config\n\treturn &this\n}\n\n// NewUpdateSourceDevice200ResponseWithDefaults instantiates a new UpdateSourceDevice200Response object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewUpdateSourceDevice200ResponseWithDefaults() *UpdateSourceDevice200Response {\n\tthis := UpdateSourceDevice200Response{}\n\treturn &this\n}\n\n// GetCreated returns the Created field value\nfunc (o *UpdateSourceDevice200Response) GetCreated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Created\n}\n\n// GetCreatedOk returns a tuple with the Created field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetCreatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Created, true\n}\n\n// SetCreated sets field value\nfunc (o *UpdateSourceDevice200Response) SetCreated(v string) {\n\to.Created = v\n}\n\n// GetEnabled returns the Enabled field value\nfunc (o *UpdateSourceDevice200Response) GetEnabled() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.Enabled\n}\n\n// GetEnabledOk returns a tuple with the Enabled field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetEnabledOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Enabled, true\n}\n\n// SetEnabled sets field value\nfunc (o *UpdateSourceDevice200Response) SetEnabled(v bool) {\n\to.Enabled = v\n}\n\n// GetFcmToken returns the FcmToken field value\nfunc (o *UpdateSourceDevice200Response) GetFcmToken() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.FcmToken\n}\n\n// GetFcmTokenOk returns a tuple with the FcmToken field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetFcmTokenOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.FcmToken, true\n}\n\n// SetFcmToken sets field value\nfunc (o *UpdateSourceDevice200Response) SetFcmToken(v string) {\n\to.FcmToken = v\n}\n\n// GetId returns the Id field value\nfunc (o *UpdateSourceDevice200Response) GetId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Id\n}\n\n// GetIdOk returns a tuple with the Id field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Id, true\n}\n\n// SetId sets field value\nfunc (o *UpdateSourceDevice200Response) SetId(v string) {\n\to.Id = v\n}\n\n// GetInstallId returns the InstallId field value\nfunc (o *UpdateSourceDevice200Response) GetInstallId() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.InstallId\n}\n\n// GetInstallIdOk returns a tuple with the InstallId field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetInstallIdOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.InstallId, true\n}\n\n// SetInstallId sets field value\nfunc (o *UpdateSourceDevice200Response) SetInstallId(v string) {\n\to.InstallId = v\n}\n\n// GetKey returns the Key field value\nfunc (o *UpdateSourceDevice200Response) GetKey() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Key\n}\n\n// GetKeyOk returns a tuple with the Key field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetKeyOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Key, true\n}\n\n// SetKey sets field value\nfunc (o *UpdateSourceDevice200Response) SetKey(v string) {\n\to.Key = v\n}\n\n// GetLocale returns the Locale field value\nfunc (o *UpdateSourceDevice200Response) GetLocale() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Locale\n}\n\n// GetLocaleOk returns a tuple with the Locale field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetLocaleOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Locale, true\n}\n\n// SetLocale sets field value\nfunc (o *UpdateSourceDevice200Response) SetLocale(v string) {\n\to.Locale = v\n}\n\n// GetModel returns the Model field value\nfunc (o *UpdateSourceDevice200Response) GetModel() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Model\n}\n\n// GetModelOk returns a tuple with the Model field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetModelOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Model, true\n}\n\n// SetModel sets field value\nfunc (o *UpdateSourceDevice200Response) SetModel(v string) {\n\to.Model = v\n}\n\n// GetName returns the Name field value\nfunc (o *UpdateSourceDevice200Response) GetName() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Name\n}\n\n// GetNameOk returns a tuple with the Name field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetNameOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Name, true\n}\n\n// SetName sets field value\nfunc (o *UpdateSourceDevice200Response) SetName(v string) {\n\to.Name = v\n}\n\n// GetPlace returns the Place field value\nfunc (o *UpdateSourceDevice200Response) GetPlace() float32 {\n\tif o == nil {\n\t\tvar ret float32\n\t\treturn ret\n\t}\n\n\treturn o.Place\n}\n\n// GetPlaceOk returns a tuple with the Place field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetPlaceOk() (*float32, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Place, true\n}\n\n// SetPlace sets field value\nfunc (o *UpdateSourceDevice200Response) SetPlace(v float32) {\n\to.Place = v\n}\n\n// GetTos returns the Tos field value\nfunc (o *UpdateSourceDevice200Response) GetTos() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Tos\n}\n\n// GetTosOk returns a tuple with the Tos field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetTosOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Tos, true\n}\n\n// SetTos sets field value\nfunc (o *UpdateSourceDevice200Response) SetTos(v string) {\n\to.Tos = v\n}\n\n// GetType returns the Type field value\nfunc (o *UpdateSourceDevice200Response) GetType() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Type\n}\n\n// GetTypeOk returns a tuple with the Type field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetTypeOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Type, true\n}\n\n// SetType sets field value\nfunc (o *UpdateSourceDevice200Response) SetType(v string) {\n\to.Type = v\n}\n\n// GetUpdated returns the Updated field value\nfunc (o *UpdateSourceDevice200Response) GetUpdated() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Updated\n}\n\n// GetUpdatedOk returns a tuple with the Updated field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetUpdatedOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Updated, true\n}\n\n// SetUpdated sets field value\nfunc (o *UpdateSourceDevice200Response) SetUpdated(v string) {\n\to.Updated = v\n}\n\n// GetWaitlistEnabled returns the WaitlistEnabled field value\nfunc (o *UpdateSourceDevice200Response) GetWaitlistEnabled() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.WaitlistEnabled\n}\n\n// GetWaitlistEnabledOk returns a tuple with the WaitlistEnabled field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetWaitlistEnabledOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.WaitlistEnabled, true\n}\n\n// SetWaitlistEnabled sets field value\nfunc (o *UpdateSourceDevice200Response) SetWaitlistEnabled(v bool) {\n\to.WaitlistEnabled = v\n}\n\n// GetWarpEnabled returns the WarpEnabled field value\nfunc (o *UpdateSourceDevice200Response) GetWarpEnabled() bool {\n\tif o == nil {\n\t\tvar ret bool\n\t\treturn ret\n\t}\n\n\treturn o.WarpEnabled\n}\n\n// GetWarpEnabledOk returns a tuple with the WarpEnabled field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetWarpEnabledOk() (*bool, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.WarpEnabled, true\n}\n\n// SetWarpEnabled sets field value\nfunc (o *UpdateSourceDevice200Response) SetWarpEnabled(v bool) {\n\to.WarpEnabled = v\n}\n\n// GetAccount returns the Account field value\nfunc (o *UpdateSourceDevice200Response) GetAccount() Account {\n\tif o == nil {\n\t\tvar ret Account\n\t\treturn ret\n\t}\n\n\treturn o.Account\n}\n\n// GetAccountOk returns a tuple with the Account field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetAccountOk() (*Account, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Account, true\n}\n\n// SetAccount sets field value\nfunc (o *UpdateSourceDevice200Response) SetAccount(v Account) {\n\to.Account = v\n}\n\n// GetConfig returns the Config field value\nfunc (o *UpdateSourceDevice200Response) GetConfig() Config {\n\tif o == nil {\n\t\tvar ret Config\n\t\treturn ret\n\t}\n\n\treturn o.Config\n}\n\n// GetConfigOk returns a tuple with the Config field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDevice200Response) GetConfigOk() (*Config, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Config, true\n}\n\n// SetConfig sets field value\nfunc (o *UpdateSourceDevice200Response) SetConfig(v Config) {\n\to.Config = v\n}\n\nfunc (o UpdateSourceDevice200Response) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o UpdateSourceDevice200Response) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"created\"] = o.Created\n\ttoSerialize[\"enabled\"] = o.Enabled\n\ttoSerialize[\"fcm_token\"] = o.FcmToken\n\ttoSerialize[\"id\"] = o.Id\n\ttoSerialize[\"install_id\"] = o.InstallId\n\ttoSerialize[\"key\"] = o.Key\n\ttoSerialize[\"locale\"] = o.Locale\n\ttoSerialize[\"model\"] = o.Model\n\ttoSerialize[\"name\"] = o.Name\n\ttoSerialize[\"place\"] = o.Place\n\ttoSerialize[\"tos\"] = o.Tos\n\ttoSerialize[\"type\"] = o.Type\n\ttoSerialize[\"updated\"] = o.Updated\n\ttoSerialize[\"waitlist_enabled\"] = o.WaitlistEnabled\n\ttoSerialize[\"warp_enabled\"] = o.WarpEnabled\n\ttoSerialize[\"account\"] = o.Account\n\ttoSerialize[\"config\"] = o.Config\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *UpdateSourceDevice200Response) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"created\",\n\t\t\"enabled\",\n\t\t\"fcm_token\",\n\t\t\"id\",\n\t\t\"install_id\",\n\t\t\"key\",\n\t\t\"locale\",\n\t\t\"model\",\n\t\t\"name\",\n\t\t\"place\",\n\t\t\"tos\",\n\t\t\"type\",\n\t\t\"updated\",\n\t\t\"waitlist_enabled\",\n\t\t\"warp_enabled\",\n\t\t\"account\",\n\t\t\"config\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarUpdateSourceDevice200Response := _UpdateSourceDevice200Response{}\n\n\terr = json.Unmarshal(data, &varUpdateSourceDevice200Response)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = UpdateSourceDevice200Response(varUpdateSourceDevice200Response)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"created\")\n\t\tdelete(additionalProperties, \"enabled\")\n\t\tdelete(additionalProperties, \"fcm_token\")\n\t\tdelete(additionalProperties, \"id\")\n\t\tdelete(additionalProperties, \"install_id\")\n\t\tdelete(additionalProperties, \"key\")\n\t\tdelete(additionalProperties, \"locale\")\n\t\tdelete(additionalProperties, \"model\")\n\t\tdelete(additionalProperties, \"name\")\n\t\tdelete(additionalProperties, \"place\")\n\t\tdelete(additionalProperties, \"tos\")\n\t\tdelete(additionalProperties, \"type\")\n\t\tdelete(additionalProperties, \"updated\")\n\t\tdelete(additionalProperties, \"waitlist_enabled\")\n\t\tdelete(additionalProperties, \"warp_enabled\")\n\t\tdelete(additionalProperties, \"account\")\n\t\tdelete(additionalProperties, \"config\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableUpdateSourceDevice200Response struct {\n\tvalue *UpdateSourceDevice200Response\n\tisSet bool\n}\n\nfunc (v NullableUpdateSourceDevice200Response) Get() *UpdateSourceDevice200Response {\n\treturn v.value\n}\n\nfunc (v *NullableUpdateSourceDevice200Response) Set(val *UpdateSourceDevice200Response) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableUpdateSourceDevice200Response) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableUpdateSourceDevice200Response) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableUpdateSourceDevice200Response(val *UpdateSourceDevice200Response) *NullableUpdateSourceDevice200Response {\n\treturn &NullableUpdateSourceDevice200Response{value: val, isSet: true}\n}\n\nfunc (v NullableUpdateSourceDevice200Response) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableUpdateSourceDevice200Response) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/model_update_source_device_request.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\n// checks if the UpdateSourceDeviceRequest type satisfies the MappedNullable interface at compile time\nvar _ MappedNullable = &UpdateSourceDeviceRequest{}\n\n// UpdateSourceDeviceRequest struct for UpdateSourceDeviceRequest\ntype UpdateSourceDeviceRequest struct {\n\tKey string `json:\"key\"`\n\tAdditionalProperties map[string]interface{}\n}\n\ntype _UpdateSourceDeviceRequest UpdateSourceDeviceRequest\n\n// NewUpdateSourceDeviceRequest instantiates a new UpdateSourceDeviceRequest object\n// This constructor will assign default values to properties that have it defined,\n// and makes sure properties required by API are set, but the set of arguments\n// will change when the set of required properties is changed\nfunc NewUpdateSourceDeviceRequest(key string) *UpdateSourceDeviceRequest {\n\tthis := UpdateSourceDeviceRequest{}\n\tthis.Key = key\n\treturn &this\n}\n\n// NewUpdateSourceDeviceRequestWithDefaults instantiates a new UpdateSourceDeviceRequest object\n// This constructor will only assign default values to properties that have it defined,\n// but it doesn't guarantee that properties required by API are set\nfunc NewUpdateSourceDeviceRequestWithDefaults() *UpdateSourceDeviceRequest {\n\tthis := UpdateSourceDeviceRequest{}\n\treturn &this\n}\n\n// GetKey returns the Key field value\nfunc (o *UpdateSourceDeviceRequest) GetKey() string {\n\tif o == nil {\n\t\tvar ret string\n\t\treturn ret\n\t}\n\n\treturn o.Key\n}\n\n// GetKeyOk returns a tuple with the Key field value\n// and a boolean to check if the value has been set.\nfunc (o *UpdateSourceDeviceRequest) GetKeyOk() (*string, bool) {\n\tif o == nil {\n\t\treturn nil, false\n\t}\n\treturn &o.Key, true\n}\n\n// SetKey sets field value\nfunc (o *UpdateSourceDeviceRequest) SetKey(v string) {\n\to.Key = v\n}\n\nfunc (o UpdateSourceDeviceRequest) MarshalJSON() ([]byte, error) {\n\ttoSerialize,err := o.ToMap()\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\treturn json.Marshal(toSerialize)\n}\n\nfunc (o UpdateSourceDeviceRequest) ToMap() (map[string]interface{}, error) {\n\ttoSerialize := map[string]interface{}{}\n\ttoSerialize[\"key\"] = o.Key\n\n\tfor key, value := range o.AdditionalProperties {\n\t\ttoSerialize[key] = value\n\t}\n\n\treturn toSerialize, nil\n}\n\nfunc (o *UpdateSourceDeviceRequest) UnmarshalJSON(data []byte) (err error) {\n\t// This validates that all required properties are included in the JSON object\n\t// by unmarshalling the object into a generic map with string keys and checking\n\t// that every required field exists as a key in the generic map.\n\trequiredProperties := []string{\n\t\t\"key\",\n\t}\n\n\tallProperties := make(map[string]interface{})\n\n\terr = json.Unmarshal(data, &allProperties)\n\n\tif err != nil {\n\t\treturn err;\n\t}\n\n\tfor _, requiredProperty := range(requiredProperties) {\n\t\tif _, exists := allProperties[requiredProperty]; !exists {\n\t\t\treturn fmt.Errorf(\"no value given for required property %v\", requiredProperty)\n\t\t}\n\t}\n\n\tvarUpdateSourceDeviceRequest := _UpdateSourceDeviceRequest{}\n\n\terr = json.Unmarshal(data, &varUpdateSourceDeviceRequest)\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*o = UpdateSourceDeviceRequest(varUpdateSourceDeviceRequest)\n\n\tadditionalProperties := make(map[string]interface{})\n\n\tif err = json.Unmarshal(data, &additionalProperties); err == nil {\n\t\tdelete(additionalProperties, \"key\")\n\t\to.AdditionalProperties = additionalProperties\n\t}\n\n\treturn err\n}\n\ntype NullableUpdateSourceDeviceRequest struct {\n\tvalue *UpdateSourceDeviceRequest\n\tisSet bool\n}\n\nfunc (v NullableUpdateSourceDeviceRequest) Get() *UpdateSourceDeviceRequest {\n\treturn v.value\n}\n\nfunc (v *NullableUpdateSourceDeviceRequest) Set(val *UpdateSourceDeviceRequest) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableUpdateSourceDeviceRequest) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableUpdateSourceDeviceRequest) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableUpdateSourceDeviceRequest(val *UpdateSourceDeviceRequest) *NullableUpdateSourceDeviceRequest {\n\treturn &NullableUpdateSourceDeviceRequest{value: val, isSet: true}\n}\n\nfunc (v NullableUpdateSourceDeviceRequest) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableUpdateSourceDeviceRequest) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n\n"
  },
  {
    "path": "openapi/response.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"net/http\"\n)\n\n// APIResponse stores the API response returned by the server.\ntype APIResponse struct {\n\t*http.Response `json:\"-\"`\n\tMessage        string `json:\"message,omitempty\"`\n\t// Operation is the name of the OpenAPI operation.\n\tOperation string `json:\"operation,omitempty\"`\n\t// RequestURL is the request URL. This value is always available, even if the\n\t// embedded *http.Response is nil.\n\tRequestURL string `json:\"url,omitempty\"`\n\t// Method is the HTTP method used for the request.  This value is always\n\t// available, even if the embedded *http.Response is nil.\n\tMethod string `json:\"method,omitempty\"`\n\t// Payload holds the contents of the response body (which may be nil or empty).\n\t// This is provided here as the raw response.Body() reader will have already\n\t// been drained.\n\tPayload []byte `json:\"-\"`\n}\n\n// NewAPIResponse returns a new APIResponse object.\nfunc NewAPIResponse(r *http.Response) *APIResponse {\n\n\tresponse := &APIResponse{Response: r}\n\treturn response\n}\n\n// NewAPIResponseWithError returns a new APIResponse object with the provided error message.\nfunc NewAPIResponseWithError(errorMessage string) *APIResponse {\n\n\tresponse := &APIResponse{Message: errorMessage}\n\treturn response\n}\n"
  },
  {
    "path": "openapi/test/api_default_test.go",
    "content": "/*\nCloudflare WARP API\n\nTesting DefaultAPIService\n\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech);\n\npackage openapi\n\nimport (\n\t\"context\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"testing\"\n\topenapiclient \"github.com/GIT_USER_ID/GIT_REPO_ID\"\n)\n\nfunc Test_openapi_DefaultAPIService(t *testing.T) {\n\n\tconfiguration := openapiclient.NewConfiguration()\n\tapiClient := openapiclient.NewAPIClient(configuration)\n\n\tt.Run(\"Test DefaultAPIService GetAccount\", func(t *testing.T) {\n\n\t\tt.Skip(\"skip test\")  // remove to run test\n\n\t\tvar sourceDeviceId string\n\t\tvar apiVersion string\n\n\t\tresp, httpRes, err := apiClient.DefaultAPI.GetAccount(context.Background(), sourceDeviceId, apiVersion).Execute()\n\n\t\trequire.Nil(t, err)\n\t\trequire.NotNil(t, resp)\n\t\tassert.Equal(t, 200, httpRes.StatusCode)\n\n\t})\n\n\tt.Run(\"Test DefaultAPIService GetBoundDevices\", func(t *testing.T) {\n\n\t\tt.Skip(\"skip test\")  // remove to run test\n\n\t\tvar sourceDeviceId string\n\t\tvar apiVersion string\n\n\t\tresp, httpRes, err := apiClient.DefaultAPI.GetBoundDevices(context.Background(), sourceDeviceId, apiVersion).Execute()\n\n\t\trequire.Nil(t, err)\n\t\trequire.NotNil(t, resp)\n\t\tassert.Equal(t, 200, httpRes.StatusCode)\n\n\t})\n\n\tt.Run(\"Test DefaultAPIService GetClientConfig\", func(t *testing.T) {\n\n\t\tt.Skip(\"skip test\")  // remove to run test\n\n\t\tvar apiVersion string\n\n\t\tresp, httpRes, err := apiClient.DefaultAPI.GetClientConfig(context.Background(), apiVersion).Execute()\n\n\t\trequire.Nil(t, err)\n\t\trequire.NotNil(t, resp)\n\t\tassert.Equal(t, 200, httpRes.StatusCode)\n\n\t})\n\n\tt.Run(\"Test DefaultAPIService GetSourceDevice\", func(t *testing.T) {\n\n\t\tt.Skip(\"skip test\")  // remove to run test\n\n\t\tvar apiVersion string\n\t\tvar sourceDeviceId string\n\n\t\tresp, httpRes, err := apiClient.DefaultAPI.GetSourceDevice(context.Background(), apiVersion, sourceDeviceId).Execute()\n\n\t\trequire.Nil(t, err)\n\t\trequire.NotNil(t, resp)\n\t\tassert.Equal(t, 200, httpRes.StatusCode)\n\n\t})\n\n\tt.Run(\"Test DefaultAPIService Register\", func(t *testing.T) {\n\n\t\tt.Skip(\"skip test\")  // remove to run test\n\n\t\tvar apiVersion string\n\n\t\tresp, httpRes, err := apiClient.DefaultAPI.Register(context.Background(), apiVersion).Execute()\n\n\t\trequire.Nil(t, err)\n\t\trequire.NotNil(t, resp)\n\t\tassert.Equal(t, 200, httpRes.StatusCode)\n\n\t})\n\n\tt.Run(\"Test DefaultAPIService ResetAccountLicense\", func(t *testing.T) {\n\n\t\tt.Skip(\"skip test\")  // remove to run test\n\n\t\tvar sourceDeviceId string\n\t\tvar apiVersion string\n\n\t\tresp, httpRes, err := apiClient.DefaultAPI.ResetAccountLicense(context.Background(), sourceDeviceId, apiVersion).Execute()\n\n\t\trequire.Nil(t, err)\n\t\trequire.NotNil(t, resp)\n\t\tassert.Equal(t, 200, httpRes.StatusCode)\n\n\t})\n\n\tt.Run(\"Test DefaultAPIService UpdateAccount\", func(t *testing.T) {\n\n\t\tt.Skip(\"skip test\")  // remove to run test\n\n\t\tvar sourceDeviceId string\n\t\tvar apiVersion string\n\n\t\tresp, httpRes, err := apiClient.DefaultAPI.UpdateAccount(context.Background(), sourceDeviceId, apiVersion).Execute()\n\n\t\trequire.Nil(t, err)\n\t\trequire.NotNil(t, resp)\n\t\tassert.Equal(t, 200, httpRes.StatusCode)\n\n\t})\n\n\tt.Run(\"Test DefaultAPIService UpdateBoundDevice\", func(t *testing.T) {\n\n\t\tt.Skip(\"skip test\")  // remove to run test\n\n\t\tvar sourceDeviceId string\n\t\tvar apiVersion string\n\t\tvar boundDeviceId string\n\n\t\tresp, httpRes, err := apiClient.DefaultAPI.UpdateBoundDevice(context.Background(), sourceDeviceId, apiVersion, boundDeviceId).Execute()\n\n\t\trequire.Nil(t, err)\n\t\trequire.NotNil(t, resp)\n\t\tassert.Equal(t, 200, httpRes.StatusCode)\n\n\t})\n\n\tt.Run(\"Test DefaultAPIService UpdateSourceDevice\", func(t *testing.T) {\n\n\t\tt.Skip(\"skip test\")  // remove to run test\n\n\t\tvar apiVersion string\n\t\tvar sourceDeviceId string\n\n\t\tresp, httpRes, err := apiClient.DefaultAPI.UpdateSourceDevice(context.Background(), apiVersion, sourceDeviceId).Execute()\n\n\t\trequire.Nil(t, err)\n\t\trequire.NotNil(t, resp)\n\t\tassert.Equal(t, 200, httpRes.StatusCode)\n\n\t})\n\n}\n"
  },
  {
    "path": "openapi/utils.go",
    "content": "/*\nCloudflare WARP API\n\nNo description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n\nAPI version: 536\n*/\n\n// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.\n\npackage openapi\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"time\"\n)\n\n// PtrBool is a helper routine that returns a pointer to given boolean value.\nfunc PtrBool(v bool) *bool { return &v }\n\n// PtrInt is a helper routine that returns a pointer to given integer value.\nfunc PtrInt(v int) *int { return &v }\n\n// PtrInt32 is a helper routine that returns a pointer to given integer value.\nfunc PtrInt32(v int32) *int32 { return &v }\n\n// PtrInt64 is a helper routine that returns a pointer to given integer value.\nfunc PtrInt64(v int64) *int64 { return &v }\n\n// PtrFloat32 is a helper routine that returns a pointer to given float value.\nfunc PtrFloat32(v float32) *float32 { return &v }\n\n// PtrFloat64 is a helper routine that returns a pointer to given float value.\nfunc PtrFloat64(v float64) *float64 { return &v }\n\n// PtrString is a helper routine that returns a pointer to given string value.\nfunc PtrString(v string) *string { return &v }\n\n// PtrTime is helper routine that returns a pointer to given Time value.\nfunc PtrTime(v time.Time) *time.Time { return &v }\n\ntype NullableBool struct {\n\tvalue *bool\n\tisSet bool\n}\n\nfunc (v NullableBool) Get() *bool {\n\treturn v.value\n}\n\nfunc (v *NullableBool) Set(val *bool) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableBool) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableBool) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableBool(val *bool) *NullableBool {\n\treturn &NullableBool{value: val, isSet: true}\n}\n\nfunc (v NullableBool) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableBool) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\ntype NullableInt struct {\n\tvalue *int\n\tisSet bool\n}\n\nfunc (v NullableInt) Get() *int {\n\treturn v.value\n}\n\nfunc (v *NullableInt) Set(val *int) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableInt) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableInt) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableInt(val *int) *NullableInt {\n\treturn &NullableInt{value: val, isSet: true}\n}\n\nfunc (v NullableInt) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableInt) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\ntype NullableInt32 struct {\n\tvalue *int32\n\tisSet bool\n}\n\nfunc (v NullableInt32) Get() *int32 {\n\treturn v.value\n}\n\nfunc (v *NullableInt32) Set(val *int32) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableInt32) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableInt32) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableInt32(val *int32) *NullableInt32 {\n\treturn &NullableInt32{value: val, isSet: true}\n}\n\nfunc (v NullableInt32) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableInt32) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\ntype NullableInt64 struct {\n\tvalue *int64\n\tisSet bool\n}\n\nfunc (v NullableInt64) Get() *int64 {\n\treturn v.value\n}\n\nfunc (v *NullableInt64) Set(val *int64) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableInt64) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableInt64) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableInt64(val *int64) *NullableInt64 {\n\treturn &NullableInt64{value: val, isSet: true}\n}\n\nfunc (v NullableInt64) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableInt64) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\ntype NullableFloat32 struct {\n\tvalue *float32\n\tisSet bool\n}\n\nfunc (v NullableFloat32) Get() *float32 {\n\treturn v.value\n}\n\nfunc (v *NullableFloat32) Set(val *float32) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableFloat32) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableFloat32) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableFloat32(val *float32) *NullableFloat32 {\n\treturn &NullableFloat32{value: val, isSet: true}\n}\n\nfunc (v NullableFloat32) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableFloat32) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\ntype NullableFloat64 struct {\n\tvalue *float64\n\tisSet bool\n}\n\nfunc (v NullableFloat64) Get() *float64 {\n\treturn v.value\n}\n\nfunc (v *NullableFloat64) Set(val *float64) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableFloat64) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableFloat64) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableFloat64(val *float64) *NullableFloat64 {\n\treturn &NullableFloat64{value: val, isSet: true}\n}\n\nfunc (v NullableFloat64) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableFloat64) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\ntype NullableString struct {\n\tvalue *string\n\tisSet bool\n}\n\nfunc (v NullableString) Get() *string {\n\treturn v.value\n}\n\nfunc (v *NullableString) Set(val *string) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableString) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableString) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableString(val *string) *NullableString {\n\treturn &NullableString{value: val, isSet: true}\n}\n\nfunc (v NullableString) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableString) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\ntype NullableTime struct {\n\tvalue *time.Time\n\tisSet bool\n}\n\nfunc (v NullableTime) Get() *time.Time {\n\treturn v.value\n}\n\nfunc (v *NullableTime) Set(val *time.Time) {\n\tv.value = val\n\tv.isSet = true\n}\n\nfunc (v NullableTime) IsSet() bool {\n\treturn v.isSet\n}\n\nfunc (v *NullableTime) Unset() {\n\tv.value = nil\n\tv.isSet = false\n}\n\nfunc NewNullableTime(val *time.Time) *NullableTime {\n\treturn &NullableTime{value: val, isSet: true}\n}\n\nfunc (v NullableTime) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(v.value)\n}\n\nfunc (v *NullableTime) UnmarshalJSON(src []byte) error {\n\tv.isSet = true\n\treturn json.Unmarshal(src, &v.value)\n}\n\n// IsNil checks if an input is nil\nfunc IsNil(i interface{}) bool {\n\tif i == nil {\n\t\treturn true\n\t}\n\tswitch reflect.TypeOf(i).Kind() {\n\tcase reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.UnsafePointer, reflect.Interface, reflect.Slice:\n\t\treturn reflect.ValueOf(i).IsNil()\n\tcase reflect.Array:\n\t\treturn reflect.ValueOf(i).IsZero()\n\t}\n\treturn false\n}\n\ntype MappedNullable interface {\n\tToMap() (map[string]interface{}, error)\n}\n\n// A wrapper for strict JSON decoding\nfunc newStrictDecoder(data []byte) *json.Decoder {\n\tdec := json.NewDecoder(bytes.NewBuffer(data))\n\tdec.DisallowUnknownFields()\n\treturn dec\n}\n\n// Prevent trying to import \"fmt\"\nfunc reportError(format string, a ...interface{}) error {\n\treturn fmt.Errorf(format, a...)\n}"
  },
  {
    "path": "openapi-spec.yml",
    "content": "components:\n  schemas:\n    Account:\n      type: \"object\"\n      properties:\n        account_type:\n          type: \"string\"\n        created:\n          type: \"string\"\n        id:\n          type: \"string\"\n        license:\n          type: \"string\"\n        premium_data:\n          type: \"number\"\n        quota:\n          type: \"number\"\n        referral_count:\n          type: \"number\"\n        referral_renewal_countdown:\n          type: \"number\"\n        role:\n          type: \"string\"\n        updated:\n          type: \"string\"\n        warp_plus:\n          type: \"boolean\"\n        usage:\n          type: \"number\"\n      required:\n        - \"account_type\"\n        - \"created\"\n        - \"id\"\n        - \"license\"\n        - \"premium_data\"\n        - \"quota\"\n        - \"referral_count\"\n        - \"referral_renewal_countdown\"\n        - \"role\"\n        - \"updated\"\n        - \"warp_plus\"\n\n    BoundDevice:\n      type: \"object\"\n      properties:\n        activated:\n          type: \"string\"\n        active:\n          type: \"boolean\"\n        created:\n          type: \"string\"\n        id:\n          type: \"string\"\n        model:\n          type: \"string\"\n        name:\n          type: \"string\"\n        role:\n          type: \"string\"\n        type:\n          type: \"string\"\n      required:\n        - \"activated\"\n        - \"active\"\n        - \"created\"\n        - \"id\"\n        - \"model\"\n        - \"role\"\n        - \"type\"\n\n    NetworkAddress:\n      type: \"object\"\n      properties:\n        v4:\n          type: \"string\"\n        v6:\n          type: \"string\"\n      required:\n        - \"v4\"\n        - \"v6\"\n\n    Endpoint:\n      type: \"object\"\n      properties:\n        host:\n          type: \"string\"\n        v4:\n          type: \"string\"\n        v6:\n          type: \"string\"\n      required:\n        - \"host\"\n        - \"v4\"\n        - \"v6\"\n\n    Peer:\n      type: \"object\"\n      properties:\n        endpoint:\n          $ref: \"#/components/schemas/Endpoint\"\n        public_key:\n          type: \"string\"\n      required:\n        - \"endpoint\"\n        - \"public_key\"\n\n    Config:\n      type: \"object\"\n      properties:\n        client_id:\n          type: \"string\"\n        interface:\n          type: \"object\"\n          properties:\n            addresses:\n              $ref: \"#/components/schemas/NetworkAddress\"\n          required:\n            - \"addresses\"\n        peers:\n          type: \"array\"\n          items:\n            $ref: \"#/components/schemas/Peer\"\n        services:\n          type: \"object\"\n          properties:\n            http_proxy:\n              type: \"string\"\n          required:\n            - \"http_proxy\"\n      required:\n        - \"client_id\"\n        - \"interface\"\n        - \"peers\"\n        - \"services\"\n\n    SourceDevice:\n      type: \"object\"\n      properties:\n        created:\n          type: \"string\"\n        enabled:\n          type: \"boolean\"\n        fcm_token:\n          type: \"string\"\n        id:\n          type: \"string\"\n        install_id:\n          type: \"string\"\n        key:\n          type: \"string\"\n        locale:\n          type: \"string\"\n        model:\n          type: \"string\"\n        name:\n          type: \"string\"\n        place:\n          type: \"number\"\n        tos:\n          type: \"string\"\n        type:\n          type: \"string\"\n        updated:\n          type: \"string\"\n        waitlist_enabled:\n          type: \"boolean\"\n        warp_enabled:\n          type: \"boolean\"\n      required:\n        - \"created\"\n        - \"enabled\"\n        - \"fcm_token\"\n        - \"id\"\n        - \"install_id\"\n        - \"key\"\n        - \"locale\"\n        - \"model\"\n        - \"name\"\n        - \"place\"\n        - \"tos\"\n        - \"type\"\n        - \"updated\"\n        - \"waitlist_enabled\"\n        - \"warp_enabled\"\n\n    IPv4Network:\n      type: \"object\"\n      properties:\n        address:\n          type: \"string\"\n        netmask:\n          type: \"string\"\n      required:\n        - \"address\"\n        - \"netmask\"\n\n    IPv6Network:\n      type: \"object\"\n      properties:\n        address:\n          type: \"string\"\n        prefix:\n          type: \"number\"\n      required:\n        - \"address\"\n        - \"prefix\"\n\n    GetAccount_200_Response:\n      $ref: \"#/components/schemas/Account\"\n\n    GetBoundDevices_200_Response:\n      $ref: \"#/components/schemas/BoundDevice\"\n\n    GetClientConfig_200_Response:\n      type: \"object\"\n      properties:\n        captive_portal:\n          type: \"array\"\n          items:\n            type: \"object\"\n            properties:\n              name:\n                type: \"string\"\n              networks:\n                type: \"array\"\n                items:\n                  type: \"object\"\n                  properties:\n                    address:\n                      type: \"string\"\n                  required:\n                    - \"address\"\n            required:\n              - \"name\"\n              - \"networks\"\n        denylist:\n          type: \"array\"\n          items:\n            type: \"object\"\n            properties:\n              android-packages:\n                type: \"array\"\n                items:\n                  type: \"string\"\n              name:\n                type: \"string\"\n              networks:\n                type: \"object\"\n                properties:\n                  v4:\n                    type: \"array\"\n                    items:\n                      $ref: \"#/components/schemas/IPv4Network\"\n                  v6:\n                    type: \"array\"\n                    items:\n                      $ref: \"#/components/schemas/IPv6Network\"\n                required:\n                  - \"v4\"\n                  - \"v6\"\n              visible:\n                type: \"boolean\"\n            required:\n              - \"name\"\n              - \"visible\"\n        premium_data_bytes:\n          type: \"number\"\n        referral_reward_bytes:\n          type: \"number\"\n      required:\n        - \"captive_portal\"\n        - \"denylist\"\n        - \"premium_data_bytes\"\n        - \"referral_reward_bytes\"\n\n    GetSourceDevice_200_Response:\n      allOf:\n        - $ref: \"#/components/schemas/SourceDevice\"\n        - type: \"object\"\n          properties:\n            account:\n              $ref: \"#/components/schemas/Account\"\n            config:\n              $ref: \"#/components/schemas/Config\"\n          required:\n            - \"account\"\n            - \"config\"\n\n    Register_200_Response:\n      allOf:\n        - $ref: \"#/components/schemas/SourceDevice\"\n        - type: \"object\"\n          properties:\n            account:\n              $ref: \"#/components/schemas/Account\"\n            config:\n              $ref: \"#/components/schemas/Config\"\n            token:\n              type: \"string\"\n          required:\n            - \"account\"\n            - \"config\"\n            - \"token\"\n\n    Register_Request:\n      type: \"object\"\n      properties:\n        fcm_token:\n          type: \"string\"\n        install_id:\n          type: \"string\"\n        key:\n          type: \"string\"\n        locale:\n          type: \"string\"\n        model:\n          type: \"string\"\n        tos:\n          type: \"string\"\n        type:\n          type: \"string\"\n      required:\n        - \"fcm_token\"\n        - \"install_id\"\n        - \"key\"\n        - \"locale\"\n        - \"model\"\n        - \"tos\"\n        - \"type\"\n\n    ResetAccountLicense_200_Response:\n      type: \"object\"\n      properties:\n        license:\n          type: \"string\"\n      required:\n        - \"license\"\n\n    UpdateAccount_200_Response:\n      type: \"object\"\n      properties:\n        created:\n          type: \"string\"\n        id:\n          type: \"string\"\n        premium_data:\n          type: \"number\"\n        quota:\n          type: \"number\"\n        referral_count:\n          type: \"number\"\n        referral_renewal_countdown:\n          type: \"number\"\n        role:\n          type: \"string\"\n        updated:\n          type: \"string\"\n        warp_plus:\n          type: \"boolean\"\n      required:\n        - \"created\"\n        - \"id\"\n        - \"premium_data\"\n        - \"quota\"\n        - \"referral_count\"\n        - \"referral_renewal_countdown\"\n        - \"role\"\n        - \"updated\"\n        - \"warp_plus\"\n\n    UpdateAccount_Request:\n      type: \"object\"\n      properties:\n        license:\n          type: \"string\"\n      required:\n        - \"license\"\n\n    UpdateBoundDevice_200_Response:\n      $ref: \"#/components/schemas/BoundDevice\"\n\n    UpdateBoundDevice_Request:\n      type: \"object\"\n      properties:\n        active:\n          type: \"boolean\"\n        name:\n          type: \"string\"\n\n    UpdateSourceDevice_200_Response:\n      allOf:\n        - $ref: \"#/components/schemas/SourceDevice\"\n        - type: \"object\"\n          properties:\n            account:\n              $ref: \"#/components/schemas/Account\"\n            config:\n              $ref: \"#/components/schemas/Config\"\n          required:\n            - \"account\"\n            - \"config\"\n\n    UpdateSourceDevice_Request:\n      type: \"object\"\n      properties:\n        key:\n          type: \"string\"\n      required:\n        - \"key\"\n\ninfo:\n  title: \"Cloudflare WARP API\"\n  version: \"536\"\nopenapi: \"3.0.1\"\npaths:\n  /{apiVersion}/client_config:\n    get:\n      operationId: \"GetClientConfig\"\n      responses:\n        200:\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/GetClientConfig_200_Response\"\n          description: \"\"\n      summary: \"GetClientConfig\"\n    parameters:\n      - in: \"path\"\n        name: \"apiVersion\"\n        required: true\n        schema:\n          type: \"string\"\n  /{apiVersion}/reg:\n    parameters:\n      - in: \"path\"\n        name: \"apiVersion\"\n        required: true\n        schema:\n          type: \"string\"\n    post:\n      operationId: \"Register\"\n      requestBody:\n        content:\n          application/json:\n            schema:\n              $ref: \"#/components/schemas/Register_Request\"\n      responses:\n        200:\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/Register_200_Response\"\n          description: \"\"\n      summary: \"Register\"\n  /{apiVersion}/reg/{sourceDeviceId}:\n    get:\n      operationId: \"GetSourceDevice\"\n      responses:\n        200:\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/GetSourceDevice_200_Response\"\n          description: \"\"\n      summary: \"GetSourceDevice\"\n    parameters:\n      - in: \"path\"\n        name: \"apiVersion\"\n        required: true\n        schema:\n          type: \"string\"\n      - in: \"path\"\n        name: \"sourceDeviceId\"\n        required: true\n        schema:\n          type: \"string\"\n    patch:\n      operationId: \"UpdateSourceDevice\"\n      requestBody:\n        content:\n          application/json:\n            schema:\n              $ref: \"#/components/schemas/UpdateSourceDevice_Request\"\n      responses:\n        200:\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/UpdateSourceDevice_200_Response\"\n          description: \"\"\n      summary: \"UpdateSourceDevice\"\n  /{apiVersion}/reg/{sourceDeviceId}/account:\n    get:\n      operationId: \"GetAccount\"\n      responses:\n        200:\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/GetAccount_200_Response\"\n          description: \"\"\n      summary: \"GetAccount\"\n    parameters:\n      - in: \"path\"\n        name: \"sourceDeviceId\"\n        required: true\n        schema:\n          type: \"string\"\n      - in: \"path\"\n        name: \"apiVersion\"\n        required: true\n        schema:\n          type: \"string\"\n    put:\n      operationId: \"UpdateAccount\"\n      requestBody:\n        content:\n          application/json:\n            schema:\n              $ref: \"#/components/schemas/UpdateAccount_Request\"\n      responses:\n        200:\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/UpdateAccount_200_Response\"\n          description: \"\"\n      summary: \"UpdateAccount\"\n  /{apiVersion}/reg/{sourceDeviceId}/account/devices:\n    get:\n      operationId: \"GetBoundDevices\"\n      responses:\n        200:\n          content:\n            application/json:\n              schema:\n                type: \"array\"\n                items:\n                  $ref: \"#/components/schemas/GetBoundDevices_200_Response\"\n          description: \"\"\n      summary: \"GetBoundDevices\"\n    parameters:\n      - in: \"path\"\n        name: \"sourceDeviceId\"\n        required: true\n        schema:\n          type: \"string\"\n      - in: \"path\"\n        name: \"apiVersion\"\n        required: true\n        schema:\n          type: \"string\"\n  /{apiVersion}/reg/{sourceDeviceId}/account/license:\n    parameters:\n      - in: \"path\"\n        name: \"sourceDeviceId\"\n        required: true\n        schema:\n          type: \"string\"\n      - in: \"path\"\n        name: \"apiVersion\"\n        required: true\n        schema:\n          type: \"string\"\n    post:\n      operationId: \"ResetAccountLicense\"\n      responses:\n        200:\n          content:\n            application/json:\n              schema:\n                $ref: \"#/components/schemas/ResetAccountLicense_200_Response\"\n          description: \"\"\n      summary: \"ResetAccountLicense\"\n  /{apiVersion}/reg/{sourceDeviceId}/account/reg/{boundDeviceId}:\n    parameters:\n      - in: \"path\"\n        name: \"sourceDeviceId\"\n        required: true\n        schema:\n          type: \"string\"\n      - in: \"path\"\n        name: \"apiVersion\"\n        required: true\n        schema:\n          type: \"string\"\n      - in: \"path\"\n        name: \"boundDeviceId\"\n        required: true\n        schema:\n          type: \"string\"\n    patch:\n      operationId: \"UpdateBoundDevice\"\n      requestBody:\n        content:\n          application/json:\n            schema:\n              $ref: \"#/components/schemas/UpdateBoundDevice_Request\"\n      responses:\n        200:\n          content:\n            application/json:\n              schema:\n                type: \"array\"\n                items:\n                  $ref: \"#/components/schemas/UpdateBoundDevice_200_Response\"\n          description: \"\"\n      summary: \"UpdateBoundDevice\"\n    delete:\n      operationId: \"DeleteBoundDevice\"\n      responses:\n        204:\n          description: \"\"\n      summary: \"DeleteBoundDevice\""
  },
  {
    "path": "openapitools.json",
    "content": "{\n  \"$schema\": \"node_modules/@openapitools/openapi-generator-cli/config.schema.json\",\n  \"spaces\": 2,\n  \"generator-cli\": {\n    \"version\": \"7.14.0\"\n  }\n}"
  },
  {
    "path": "util/util.go",
    "content": "package util\n\nimport (\n\t\"crypto/rand\"\n\t\"fmt\"\n\t\"time\"\n)\n\nfunc RandomHexString(count int) string {\n\tb := make([]byte, count)\n\tif _, err := rand.Read(b); err != nil {\n\t\tpanic(err)\n\t}\n\treturn fmt.Sprintf(\"%X\", b)\n}\n\nfunc GetTimestamp() string {\n\treturn getTimestamp(time.Now())\n}\n\nfunc getTimestamp(t time.Time) string {\n\ttimestamp := t.Format(time.RFC3339Nano)\n\treturn timestamp\n}\n\nfunc IsHttp500Error(err error) bool {\n\treturn err.Error() == \"500 Internal Server Error\"\n}\n"
  },
  {
    "path": "util/util_test.go",
    "content": "package util\n\nimport (\n\t\"testing\"\n\t\"time\"\n)\n\nfunc TestGetTimestamp(t *testing.T) {\n\texpectedFormat := \"2020-04-11T16:37:06.498+03:00\"\n\ttestTime := time.Date(2020, 04, 11, 16, 37, 06, 498*1000000, time.FixedZone(\"+3\", 3*60*60))\n\ttestFormat := getTimestamp(testTime)\n\tif testFormat != expectedFormat {\n\t\tt.Error(\"Invalid timestamp\")\n\t}\n}\n"
  },
  {
    "path": "wireguard/keys.go",
    "content": "/* SPDX-License-Identifier: MIT\n *\n * Copyright (C) 2019 WireGuard LLC. All Rights Reserved.\n */\n// https://github.com/WireGuard/wireguard-windows/blob/master/conf/config.go\n\npackage wireguard\n\nimport (\n\t\"crypto/rand\"\n\t\"crypto/subtle\"\n\t\"encoding/base64\"\n\n\t\"github.com/cockroachdb/errors\"\n\t\"golang.org/x/crypto/curve25519\"\n)\n\nconst KeyLength = 32\n\ntype Key [KeyLength]byte\n\nfunc (k *Key) String() string {\n\treturn base64.StdEncoding.EncodeToString(k[:])\n}\n\nfunc (k *Key) IsZero() bool {\n\tvar zeros Key\n\treturn subtle.ConstantTimeCompare(zeros[:], k[:]) == 1\n}\n\nfunc (k *Key) Public() *Key {\n\tvar p [KeyLength]byte\n\tcurve25519.ScalarBaseMult(&p, (*[KeyLength]byte)(k))\n\treturn (*Key)(&p)\n}\n\nfunc NewPresharedKey() (*Key, error) {\n\tvar k [KeyLength]byte\n\t_, err := rand.Read(k[:])\n\tif err != nil {\n\t\treturn nil, errors.WithStack(err)\n\t}\n\treturn (*Key)(&k), nil\n}\n\nfunc NewPrivateKey() (*Key, error) {\n\tk, err := NewPresharedKey()\n\tif err != nil {\n\t\treturn nil, errors.WithStack(err)\n\t}\n\tk[0] &= 248\n\tk[31] = (k[31] & 127) | 64\n\treturn k, nil\n}\n\nfunc NewKey(base64Key string) (*Key, error) {\n\tk, err := base64.StdEncoding.DecodeString(base64Key)\n\tif err != nil {\n\t\treturn nil, errors.WithStack(err)\n\t}\n\tvar key Key\n\tcopy(key[:], k)\n\treturn &key, nil\n}\n"
  },
  {
    "path": "wireguard/keys_test.go",
    "content": "package wireguard\n\nimport \"testing\"\n\nfunc TestNewKey(t *testing.T) {\n\tkey, err := NewPrivateKey()\n\tif err != nil {\n\t\tt.Error(err)\n\t}\n\tencodedKey := key.String()\n\tnewKey, err := NewKey(encodedKey)\n\tif err != nil {\n\t\tt.Error(err)\n\t}\n\tif newKey.String() != encodedKey {\n\t\tt.Error()\n\t}\n}\n"
  },
  {
    "path": "wireguard/profile.go",
    "content": "package wireguard\n\nimport (\n\t\"bytes\"\n\t\"io/ioutil\"\n\t\"text/template\"\n\n\t\"github.com/cockroachdb/errors\"\n)\n\nvar profileTemplate = `[Interface]\nPrivateKey = {{ .PrivateKey }}\nAddress = {{ .Address1 }}/32, {{ .Address2 }}/128\nDNS = 1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001\nMTU = 1280\n[Peer]\nPublicKey = {{ .PublicKey }}\nAllowedIPs = 0.0.0.0/0, ::/0\nEndpoint = {{ .Endpoint }}\n`\n\ntype Profile struct {\n\tprofileString string\n}\n\ntype ProfileData struct {\n\tPrivateKey string\n\tAddress1   string\n\tAddress2   string\n\tPublicKey  string\n\tEndpoint   string\n}\n\nfunc NewProfile(data *ProfileData) (*Profile, error) {\n\tprofileString, err := generateProfile(data)\n\tif err != nil {\n\t\treturn nil, errors.WithStack(err)\n\t}\n\treturn &Profile{profileString: profileString}, nil\n}\n\nfunc generateProfile(data *ProfileData) (string, error) {\n\tt, err := template.New(\"\").Parse(profileTemplate)\n\tif err != nil {\n\t\treturn \"\", errors.WithStack(err)\n\t}\n\tvar result bytes.Buffer\n\tif err := t.Execute(&result, data); err != nil {\n\t\treturn \"\", errors.WithStack(err)\n\t}\n\treturn result.String(), nil\n}\n\nfunc (p *Profile) Save(profileFile string) error {\n\treturn ioutil.WriteFile(profileFile, []byte(p.profileString), 0600)\n}\n"
  },
  {
    "path": "wireguard/profile_test.go",
    "content": "package wireguard\n\nimport \"testing\"\n\nfunc TestGenerateProfile(t *testing.T) {\n\tvar expectedResult = `[Interface]\nPrivateKey = 1\nAddress = 2/32, 3/128\nDNS = 1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001\nMTU = 1280\n[Peer]\nPublicKey = 4\nAllowedIPs = 0.0.0.0/0, ::/0\nEndpoint = 5\n`\n\n\tresult, err := generateProfile(&ProfileData{\n\t\tPrivateKey: \"1\",\n\t\tAddress1:   \"2\",\n\t\tAddress2:   \"3\",\n\t\tPublicKey:  \"4\",\n\t\tEndpoint:   \"5\",\n\t})\n\tif err != nil {\n\t\tt.Error(err)\n\t}\n\n\tif expectedResult != result {\n\t\tt.Error()\n\t}\n}\n"
  }
]