Repository: cloudflare/cloudflare-go
Pull request #1209 (2023-02-14 23:22:40)

Support for DEX Tests
Add CRUD support for configuring Digital Experience Monitoring tests with terraform.

## Has your change been tested?
Unit tests have been created to cover each endpoint and request methods.

## Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [X] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)

## Checklist:
- [X] My code follows the code style of this project.
- [X] My change requires a change to the documentation.
- [X] I have updated the documentation accordingly.
- [X] I have added tests to cover my changes.
- [X] All new and existing tests passed.
- [X] This change is using publicly documented (api.cloudflare.com or developers.cloudflare.com) and stable APIs.

[1]: https://help.github.com/articles/closing-issues-using-keywords/


github-actions[bot]: Oops! It looks like no changelog entry is attached to this PR. Please include a release note as described in https://github.com/cloudflare/cloudflare-go/blob/master/docs/changelog-process.md.

Example: 

~~~
```release-note:TYPE
Release note
```
~~~

If you do not require a release note to be included, please add the `workflow/skip-changelog-entry` label.
codecov-commenter: # [Codecov](https://codecov.io/gh/cloudflare/cloudflare-go/pull/1209?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cloudflare) Report
> Merging [#1209](https://codecov.io/gh/cloudflare/cloudflare-go/pull/1209?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cloudflare) (716e6aa) into [master](https://codecov.io/gh/cloudflare/cloudflare-go/commit/c07adfcbb9bf76ec82d93e693842b4421d5cebfe?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cloudflare) (c07adfc) will **decrease** coverage by `0.14%`.
> The diff coverage is `32.46%`.

```diff
@@            Coverage Diff             @@
##           master    #1209      +/-   ##
==========================================
- Coverage   49.36%   49.22%   -0.14%     
==========================================
  Files         128      129       +1     
  Lines       12430    12499      +69     
==========================================
+ Hits         6136     6153      +17     
- Misses       4890     4930      +40     
- Partials     1404     1416      +12     
```


| [Impacted Files](https://codecov.io/gh/cloudflare/cloudflare-go/pull/1209?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cloudflare) | Coverage Δ | |
|---|---|---|
| [dns.go](https://codecov.io/gh/cloudflare/cloudflare-go/pull/1209?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cloudflare#diff-ZG5zLmdv) | `72.72% <ø> (ø)` | |
| [devices\_dex.go](https://codecov.io/gh/cloudflare/cloudflare-go/pull/1209?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cloudflare#diff-ZGV2aWNlc19kZXguZ28=) | `32.46% <32.46%> (ø)` | |
| [cloudflare.go](https://codecov.io/gh/cloudflare/cloudflare-go/pull/1209?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cloudflare#diff-Y2xvdWRmbGFyZS5nbw==) | `67.28% <0.00%> (-0.80%)` | :arrow_down: |
| [devices\_policy.go](https://codecov.io/gh/cloudflare/cloudflare-go/pull/1209?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cloudflare#diff-ZGV2aWNlc19wb2xpY3kuZ28=) | `49.47% <0.00%> (ø)` | |

Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cloudflare). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cloudflare)


Patch:
diff --git a/.changelog/1202.txt b/.changelog/1202.txt
deleted file mode 100644
index 58c21d62c..000000000
--- a/.changelog/1202.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-```release-note:bug
-stream: renamed `RequiredSignedURLs` to `RequireSignedURLs`
-```
diff --git a/.changelog/1208.txt b/.changelog/1208.txt
deleted file mode 100644
index 8075ecc79..000000000
--- a/.changelog/1208.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-```release-note:enhancement
-teams_accounts: Add new root_certificate_installation_enabled field
-```
diff --git a/.changelog/1209.txt b/.changelog/1209.txt
new file mode 100644
index 000000000..bc83d5537
--- /dev/null
+++ b/.changelog/1209.txt
@@ -0,0 +1,3 @@
+```release-note:enhancement
+dex_test: add CRUD functionality for DEX test configurations
+```
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b580146cc..8286a86bb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,4 @@
-## 0.62.0 (Unreleased)
-
-ENHANCEMENTS:
-
-* teams_accounts: Add new root_certificate_installation_enabled field ([#1208](https://github.com/cloudflare/cloudflare-go/issues/1208))
-
-## 0.61.0 (15th February, 2023)
+## 0.61.0 (Unreleased)
 
 ENHANCEMENTS:
 
@@ -15,7 +9,6 @@ ENHANCEMENTS:
 BUG FIXES:
 
 * dns: always send `tags` to allow clearing ([#1196](https://github.com/cloudflare/cloudflare-go/issues/1196))
-* stream: renamed `RequiredSignedURLs` to `RequireSignedURLs` ([#1202](https://github.com/cloudflare/cloudflare-go/issues/1202))
 
 DEPENDENCIES:
 
diff --git a/devices_dex.go b/devices_dex.go
new file mode 100644
index 000000000..d04a84028
--- /dev/null
+++ b/devices_dex.go
@@ -0,0 +1,173 @@
+package cloudflare
+
+import (
+	"context"
+	"encoding/json"
+	"fmt"
+	"net/http"
+	"time"
+)
+
+type DeviceDexTestData map[string]interface{}
+
+type DeviceDexTest struct {
+	TestID      string             `json:"test_id"`
+	Name        string             `json:"name"`
+	Description string             `json:"description,omitempty"`
+	Interval    string             `json:"interval"`
+	Enabled     bool               `json:"enabled"`
+	Updated     time.Time          `json:"updated"`
+	Created     time.Time          `json:"created"`
+	Data        *DeviceDexTestData `json:"data"`
+}
+
+type DeviceDexTests struct {
+	DexTests []DeviceDexTest `json:"dex_tests"`
+}
+
+type DeviceDexTestResponse struct {
+	Response
+	Result DeviceDexTest `json:"result"`
+}
+
+type DeviceDexTestListResponse struct {
+	Response
+	Result DeviceDexTests `json:"result"`
+}
+
+type ListDeviceDexTestParams struct{}
+
+type CreateDeviceDexTestParams struct {
+	TestID      string             `json:"network_id,omitempty"`
+	Name        string             `json:"name"`
+	Description string             `json:"description,omitempty"`
+	Interval    string             `json:"interval"`
+	Enabled     bool               `json:"enabled"`
+	Data        *DeviceDexTestData `json:"data"`
+}
+
+type UpdateDeviceDexTestParams struct {
+	TestID      string             `json:"network_id,omitempty"`
+	Name        string             `json:"name"`
+	Description string             `json:"description,omitempty"`
+	Interval    string             `json:"interval"`
+	Enabled     bool               `json:"enabled"`
+	Data        *DeviceDexTestData `json:"data"`
+}
+
+// ListDexTests returns all Device Dex Tests for a given account.
+//
+// API reference : https://developers.cloudflare.com/api/operations/device-dex-test-details
+func (api *API) ListDexTests(ctx context.Context, rc *ResourceContainer, params ListDeviceDexTestParams) (DeviceDexTests, error) {
+	if rc.Level != AccountRouteLevel {
+		return DeviceDexTests{}, ErrRequiredAccountLevelResourceContainer
+	}
+
+	uri := fmt.Sprintf("/%s/%s/devices/dex_tests", rc.Level, rc.Identifier)
+
+	res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
+	if err != nil {
+		return DeviceDexTests{}, err
+	}
+
+	var response DeviceDexTestListResponse
+	err = json.Unmarshal(res, &response)
+	if err != nil {
+		return DeviceDexTests{}, fmt.Errorf("%s: %w", errUnmarshalError, err)
+	}
+
+	return response.Result, nil
+}
+
+// CreateDeviceDexTest created a new Device Dex Test
+//
+// API reference: https://developers.cloudflare.com/api/operations/device-dex-test-create-device-dex-test
+func (api *API) CreateDeviceDexTest(ctx context.Context, rc *ResourceContainer, params CreateDeviceDexTestParams) (DeviceDexTest, error) {
+	if rc.Level != AccountRouteLevel {
+		return DeviceDexTest{}, ErrRequiredAccountLevelResourceContainer
+	}
+
+	uri := fmt.Sprintf("/%s/%s/devices/dex_tests", rc.Level, rc.Identifier)
+
+	res, err := api.makeRequestContext(ctx, http.MethodPost, uri, params)
+	if err != nil {
+		return DeviceDexTest{}, err
+	}
+
+	var deviceDexTestResponse DeviceDexTestResponse
+	if err := json.Unmarshal(res, &deviceDexTestResponse); err != nil {
+		return DeviceDexTest{}, fmt.Errorf("%s: %w\n\nres: %s", errUnmarshalError, err, string(res))
+	}
+
+	return deviceDexTestResponse.Result, err
+}
+
+// UpdateDeviceDexTest Updates a Device Dex Test.
+//
+// API reference: https://developers.cloudflare.com/api/operations/device-dex-test-update-device-dex-test
+func (api *API) UpdateDeviceDexTest(ctx context.Context, rc *ResourceContainer, params UpdateDeviceDexTestParams) (DeviceManagedNetwork, error) {
+	if rc.Level != AccountRouteLevel {
+		return DeviceManagedNetwork{}, ErrRequiredAccountLevelResourceContainer
+	}
+
+	uri := fmt.Sprintf("/%s/%s/devices/dex_tests/%s", rc.Level, rc.Identifier, params.TestID)
+
+	res, err := api.makeRequestContext(ctx, http.MethodPut, uri, params)
+	if err != nil {
+		return DeviceManagedNetwork{}, err
+	}
+
+	var deviceManagedNetworksResponse DeviceManagedNetworkResponse
+
+	if err := json.Unmarshal(res, &deviceManagedNetworksResponse); err != nil {
+		return DeviceManagedNetwork{}, fmt.Errorf("%s: %w", errUnmarshalError, err)
+	}
+
+	return deviceManagedNetworksResponse.Result, err
+}
+
+// GetDeviceDexTest gets a single Device Dex Test.
+//
+// API reference: https://developers.cloudflare.com/api/operations/device-dex-test-get-device-dex-test
+func (api *API) GetDeviceDexTest(ctx context.Context, rc *ResourceContainer, testID string) (DeviceDexTest, error) {
+	if rc.Level != AccountRouteLevel {
+		return DeviceDexTest{}, ErrRequiredAccountLevelResourceContainer
+	}
+
+	uri := fmt.Sprintf("/%s/%s/devices/dex_tests/%s", rc.Level, rc.Identifier, testID)
+
+	deviceDexTestResponse := DeviceDexTestResponse{}
+	res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
+	if err != nil {
+		return DeviceDexTest{}, err
+	}
+
+	if err := json.Unmarshal(res, &deviceDexTestResponse); err != nil {
+		return DeviceDexTest{}, fmt.Errorf("%s: %w", errUnmarshalError, err)
+	}
+
+	return deviceDexTestResponse.Result, err
+}
+
+// DeleteDexTest deletes a Device Dex Test.
+//
+// API reference: https://developers.cloudflare.com/api/operations/device-dex-test-delete-device-dex-test
+func (api *API) DeleteDexTest(ctx context.Context, rc *ResourceContainer, testID string) (DeviceDexTests, error) {
+	if rc.Level != AccountRouteLevel {
+		return DeviceDexTests{}, ErrRequiredAccountLevelResourceContainer
+	}
+
+	uri := fmt.Sprintf("/%s/%s/devices/dex_tests/%s", rc.Level, rc.Identifier, testID)
+
+	res, err := api.makeRequestContext(ctx, http.MethodDelete, uri, nil)
+	if err != nil {
+		return DeviceDexTests{}, err
+	}
+
+	var response DeviceDexTestListResponse
+	if err := json.Unmarshal(res, &response); err != nil {
+		return DeviceDexTests{}, fmt.Errorf("%s: %w", errUnmarshalError, err)
+	}
+
+	return response.Result, err
+}
diff --git a/stream.go b/stream.go
index 95edd6b5e..e12630495 100644
--- a/stream.go
+++ b/stream.go
@@ -101,7 +101,7 @@ type StreamUploadFromURLParameters struct {
 	Creator               string                  `json:"creator,omitempty"`
 	ThumbnailTimestampPct float64                 `json:"thumbnailTimestampPct,omitempty"`
 	AllowedOrigins        []string                `json:"allowedOrigins,omitempty"`
-	RequireSignedURLs     bool                    `json:"requireSignedURLs,omitempty"`
+	RequiredSignedURLs    bool                    `json:"requiredSignedURLs,omitempty"`
 	Watermark             UploadVideoURLWatermark `json:"watermark,omitempty"`
 }
 
@@ -113,7 +113,7 @@ type StreamCreateVideoParameters struct {
 	Creator               string                  `json:"creator,omitempty"`
 	ThumbnailTimestampPct float64                 `json:"thumbnailTimestampPct,omitempty"`
 	AllowedOrigins        []string                `json:"allowedOrigins,omitempty"`
-	RequireSignedURLs     bool                    `json:"requireSignedURLs,omitempty"`
+	RequiredSignedURLs    bool                    `json:"requiredSignedURLs,omitempty"`
 	Watermark             UploadVideoURLWatermark `json:"watermark,omitempty"`
 }
 
diff --git a/teams_accounts.go b/teams_accounts.go
index 7667a155b..f90707147 100644
--- a/teams_accounts.go
+++ b/teams_accounts.go
@@ -97,9 +97,8 @@ type TeamsLoggingSettings struct {
 }
 
 type TeamsDeviceSettings struct {
-	GatewayProxyEnabled                bool `json:"gateway_proxy_enabled"`
-	GatewayProxyUDPEnabled             bool `json:"gateway_udp_proxy_enabled"`
-	RootCertificateInstallationEnabled bool `json:"root_certificate_installation_enabled"`
+	GatewayProxyEnabled    bool `json:"gateway_proxy_enabled"`
+	GatewayProxyUDPEnabled bool `json:"gateway_udp_proxy_enabled"`
 }
 
 type TeamsDeviceSettingsResponse struct {


Test patch:
diff --git a/devices_dex_test.go b/devices_dex_test.go
new file mode 100644
index 000000000..0db33d442
--- /dev/null
+++ b/devices_dex_test.go
@@ -0,0 +1,220 @@
+package cloudflare
+
+import (
+	"context"
+	"fmt"
+	"net/http"
+	"testing"
+	"time"
+
+	"github.com/stretchr/testify/assert"
+)
+
+const testID = "f174e90a-fafe-4643-bbbc-4a0ed4fc8415"
+
+var dexTimestamp, _ = time.Parse(time.RFC3339, "2023-01-30T19:59:44.401278Z")
+
+func TestGetDeviceDexTests(t *testing.T) {
+	setup()
+	defer teardown()
+
+	handler := func(w http.ResponseWriter, r *http.Request) {
+		assert.Equal(t, http.MethodGet, r.Method, "Expected method 'GET', got %s", r.Method)
+		w.Header().Set("content-type", "application/json")
+		fmt.Fprintf(w, `{
+			"success": true,
+			"errors": [],
+			"messages": [],
+			"result": {
+				"dex_tests": [
+					{
+						"test_id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
+						"name": "http test dash",
+						"description": "dex test description",
+						"interval": "0h30m0s",
+						"enabled": true,
+						"data": {
+						"host": "https://dash.cloudflare.com",
+						"kind": "http",
+						"method": "GET"
+						},
+						"updated": "2023-01-30T19:59:44.401278Z",
+						"created": "2023-01-30T19:59:44.401278Z"
+					}
+				]
+			}
+		  }`)
+	}
+
+	dexTest := []DeviceDexTest{{
+		TestID:      testID,
+		Name:        "http test dash",
+		Description: "dex test description",
+		Interval:    "0h30m0s",
+		Enabled:     true,
+		Data: &DeviceDexTestData{
+			"kind":   "http",
+			"method": "GET",
+			"host":   "https://dash.cloudflare.com",
+		},
+		Updated: dexTimestamp,
+		Created: dexTimestamp,
+	}}
+
+	want := DeviceDexTests{
+		DexTests: dexTest,
+	}
+
+	mux.HandleFunc("/accounts/"+testAccountID+"/devices/dex_tests", handler)
+
+	actual, err := client.ListDexTests(context.Background(), AccountIdentifier(testAccountID), ListDeviceDexTestParams{})
+
+	if assert.NoError(t, err) {
+		assert.Equal(t, want, actual)
+	}
+}
+
+func TestDeviceDexTest(t *testing.T) {
+	setup()
+	defer teardown()
+
+	handler := func(w http.ResponseWriter, r *http.Request) {
+		assert.Equal(t, http.MethodGet, r.Method, "Expected method 'GET', got %s", r.Method)
+		w.Header().Set("content-type", "application/json")
+		fmt.Fprintf(w, `{
+			"success": true,
+			"errors": [],
+			"messages": [],
+			"result": {
+				"test_id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
+				"name": "http test dash",
+				"description": "dex test description",
+				"interval": "0h30m0s",
+				"enabled": true,
+				"data": {
+				"host": "https://dash.cloudflare.com",
+				"kind": "http",
+				"method": "GET"
+				},
+				"updated": "2023-01-30T19:59:44.401278Z",
+				"created": "2023-01-30T19:59:44.401278Z"
+			}
+		  }`)
+	}
+
+	want := DeviceDexTest{
+		TestID:      testID,
+		Name:        "http test dash",
+		Description: "dex test description",
+		Interval:    "0h30m0s",
+		Enabled:     true,
+		Data: &DeviceDexTestData{
+			"kind":   "http",
+			"method": "GET",
+			"host":   "https://dash.cloudflare.com",
+		},
+		Updated: dexTimestamp,
+		Created: dexTimestamp,
+	}
+
+	mux.HandleFunc("/accounts/"+testAccountID+"/devices/dex_tests/"+testID, handler)
+
+	actual, err := client.GetDeviceDexTest(context.Background(), AccountIdentifier(testAccountID), testID)
+
+	if assert.NoError(t, err) {
+		assert.Equal(t, want, actual)
+	}
+}
+
+func TestCreateDeviceDexTest(t *testing.T) {
+	setup()
+	defer teardown()
+
+	handler := func(w http.ResponseWriter, r *http.Request) {
+		assert.Equal(t, http.MethodPost, r.Method, "Expected method 'POST', got %s", r.Method)
+		w.Header().Set("content-type", "application/json")
+		fmt.Fprintf(w, `{
+			"success": true,
+			"errors": [],
+			"messages": [],
+			"result": {
+				"test_id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
+				"name": "http test dash",
+				"description": "dex test description",
+				"interval": "0h30m0s",
+				"enabled": true,
+				"data": {
+				"host": "https://dash.cloudflare.com",
+				"kind": "http",
+				"method": "GET"
+				},
+				"updated": "2023-01-30T19:59:44.401278Z",
+				"created": "2023-01-30T19:59:44.401278Z"
+			}
+		  }`)
+	}
+
+	want := DeviceDexTest{
+		TestID:      testID,
+		Name:        "http test dash",
+		Description: "dex test description",
+		Interval:    "0h30m0s",
+		Enabled:     true,
+		Data: &DeviceDexTestData{
+			"kind":   "http",
+			"method": "GET",
+			"host":   "https://dash.cloudflare.com",
+		},
+		Updated: dexTimestamp,
+		Created: dexTimestamp,
+	}
+
+	mux.HandleFunc("/accounts/"+testAccountID+"/devices/dex_tests", handler)
+
+	actual, err := client.CreateDeviceDexTest(context.Background(), AccountIdentifier(testAccountID), CreateDeviceDexTestParams{
+		TestID:      testID,
+		Name:        "http test dash",
+		Description: "dex test description",
+		Interval:    "0h30m0s",
+		Enabled:     true,
+		Data: &DeviceDexTestData{
+			"kind":   "http",
+			"method": "GET",
+			"host":   "https://dash.cloudflare.com",
+		},
+	})
+
+	if assert.NoError(t, err) {
+		assert.Equal(t, want, actual)
+	}
+}
+
+func TestDeleteDeviceDexTest(t *testing.T) {
+	setup()
+	defer teardown()
+
+	handler := func(w http.ResponseWriter, r *http.Request) {
+		assert.Equal(t, http.MethodDelete, r.Method, "Expected method 'DELETE', got %s", r.Method)
+		w.Header().Set("content-type", "application/json")
+		fmt.Fprintf(w, `{
+			"success": true,
+			"errors": [],
+			"messages": [],
+			"result": {
+				"dex_tests": []
+			}
+		  }`)
+	}
+
+	want := DeviceDexTests{
+		DexTests: []DeviceDexTest{},
+	}
+
+	mux.HandleFunc("/accounts/"+testAccountID+"/devices/dex_tests/"+testID, handler)
+
+	actual, err := client.DeleteDexTest(context.Background(), AccountIdentifier(testAccountID), testID)
+
+	if assert.NoError(t, err) {
+		assert.Equal(t, want, actual)
+	}
+}
diff --git a/teams_accounts_test.go b/teams_accounts_test.go
index 174121735..a9535528b 100644
--- a/teams_accounts_test.go
+++ b/teams_accounts_test.go
@@ -239,7 +239,7 @@ func TestTeamsAccountGetDeviceConfiguration(t *testing.T) {
 			"success": true,
 			"errors": [],
 			"messages": [],
-			"result": {"gateway_proxy_enabled": true,"gateway_udp_proxy_enabled":false, "root_certificate_installation_enabled":true}
+			"result": {"gateway_proxy_enabled": true,"gateway_udp_proxy_enabled":false}
 		}`)
 	}
 
@@ -249,9 +249,8 @@ func TestTeamsAccountGetDeviceConfiguration(t *testing.T) {
 
 	if assert.NoError(t, err) {
 		assert.Equal(t, actual, TeamsDeviceSettings{
-			GatewayProxyEnabled:                true,
-			GatewayProxyUDPEnabled:             false,
-			RootCertificateInstallationEnabled: true,
+			GatewayProxyEnabled:    true,
+			GatewayProxyUDPEnabled: false,
 		})
 	}
 }
@@ -267,23 +266,21 @@ func TestTeamsAccountUpdateDeviceConfiguration(t *testing.T) {
 			"success": true,
 			"errors": [],
 			"messages": [],
-			"result": {"gateway_proxy_enabled": true,"gateway_udp_proxy_enabled":true, "root_certificate_installation_enabled":true}
+			"result": {"gateway_proxy_enabled": true,"gateway_udp_proxy_enabled":true}
 		}`)
 	}
 
 	mux.HandleFunc("/accounts/"+testAccountID+"/devices/settings", handler)
 
 	actual, err := client.TeamsAccountDeviceUpdateConfiguration(context.Background(), testAccountID, TeamsDeviceSettings{
-		GatewayProxyUDPEnabled:             true,
-		GatewayProxyEnabled:                true,
-		RootCertificateInstallationEnabled: true,
+		GatewayProxyUDPEnabled: true,
+		GatewayProxyEnabled:    true,
 	})
 
 	if assert.NoError(t, err) {
 		assert.Equal(t, actual, TeamsDeviceSettings{
-			GatewayProxyEnabled:                true,
-			GatewayProxyUDPEnabled:             true,
-			RootCertificateInstallationEnabled: true,
+			GatewayProxyEnabled:    true,
+			GatewayProxyUDPEnabled: true,
 		})
 	}
 }