diff --git a/services/preview/security/mgmt/v3.0/security/adaptiveapplicationcontrols.go b/services/preview/security/mgmt/v3.0/security/adaptiveapplicationcontrols.go
index 3539525c7196..f379c8458ae1 100644
--- a/services/preview/security/mgmt/v3.0/security/adaptiveapplicationcontrols.go
+++ b/services/preview/security/mgmt/v3.0/security/adaptiveapplicationcontrols.go
@@ -43,10 +43,89 @@ func NewAdaptiveApplicationControlsClientWithBaseURI(baseURI string, subscriptio
return AdaptiveApplicationControlsClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
}
+// Delete delete an application control machine group
+// Parameters:
+// groupName - name of an application control machine group
+func (client AdaptiveApplicationControlsClient) Delete(ctx context.Context, groupName string) (result autorest.Response, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AdaptiveApplicationControlsClient.Delete")
+ defer func() {
+ sc := -1
+ if result.Response != nil {
+ sc = result.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.AdaptiveApplicationControlsClient", "Delete", err.Error())
+ }
+
+ req, err := client.DeletePreparer(ctx, groupName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AdaptiveApplicationControlsClient", "Delete", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.DeleteSender(req)
+ if err != nil {
+ result.Response = resp
+ err = autorest.NewErrorWithError(err, "security.AdaptiveApplicationControlsClient", "Delete", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.DeleteResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AdaptiveApplicationControlsClient", "Delete", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// DeletePreparer prepares the Delete request.
+func (client AdaptiveApplicationControlsClient) DeletePreparer(ctx context.Context, groupName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "ascLocation": autorest.Encode("path", client.AscLocation),
+ "groupName": autorest.Encode("path", groupName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsDelete(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/applicationWhitelistings/{groupName}", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// DeleteSender sends the Delete request. The method will close the
+// http.Response Body if it receives an error.
+func (client AdaptiveApplicationControlsClient) DeleteSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// DeleteResponder handles the response to the Delete request. The method always
+// closes the http.Response Body.
+func (client AdaptiveApplicationControlsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
+ autorest.ByClosing())
+ result.Response = resp
+ return
+}
+
// Get gets an application control VM/server group.
// Parameters:
-// groupName - name of an application control VM/server group
-func (client AdaptiveApplicationControlsClient) Get(ctx context.Context, groupName string) (result AppWhitelistingGroup, err error) {
+// groupName - name of an application control machine group
+func (client AdaptiveApplicationControlsClient) Get(ctx context.Context, groupName string) (result AdaptiveApplicationControlGroup, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/AdaptiveApplicationControlsClient.Get")
defer func() {
@@ -92,7 +171,7 @@ func (client AdaptiveApplicationControlsClient) GetPreparer(ctx context.Context,
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -113,10 +192,9 @@ func (client AdaptiveApplicationControlsClient) GetSender(req *http.Request) (*h
// GetResponder handles the response to the Get request. The method always
// closes the http.Response Body.
-func (client AdaptiveApplicationControlsClient) GetResponder(resp *http.Response) (result AppWhitelistingGroup, err error) {
+func (client AdaptiveApplicationControlsClient) GetResponder(resp *http.Response) (result AdaptiveApplicationControlGroup, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -124,11 +202,11 @@ func (client AdaptiveApplicationControlsClient) GetResponder(resp *http.Response
return
}
-// List gets a list of application control VM/server groups for the subscription.
+// List gets a list of application control machine groups for the subscription.
// Parameters:
// includePathRecommendations - include the policy rules
// summary - return output in a summarized form
-func (client AdaptiveApplicationControlsClient) List(ctx context.Context, includePathRecommendations *bool, summary *bool) (result AppWhitelistingGroups, err error) {
+func (client AdaptiveApplicationControlsClient) List(ctx context.Context, includePathRecommendations *bool, summary *bool) (result AdaptiveApplicationControlGroups, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/AdaptiveApplicationControlsClient.List")
defer func() {
@@ -172,7 +250,7 @@ func (client AdaptiveApplicationControlsClient) ListPreparer(ctx context.Context
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -199,10 +277,9 @@ func (client AdaptiveApplicationControlsClient) ListSender(req *http.Request) (*
// ListResponder handles the response to the List request. The method always
// closes the http.Response Body.
-func (client AdaptiveApplicationControlsClient) ListResponder(resp *http.Response) (result AppWhitelistingGroups, err error) {
+func (client AdaptiveApplicationControlsClient) ListResponder(resp *http.Response) (result AdaptiveApplicationControlGroups, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -210,11 +287,10 @@ func (client AdaptiveApplicationControlsClient) ListResponder(resp *http.Respons
return
}
-// Put update an application control VM/server group
+// Put update an application control machine group
// Parameters:
-// groupName - name of an application control VM/server group
-// body - the updated VM/server group data
-func (client AdaptiveApplicationControlsClient) Put(ctx context.Context, groupName string, body AppWhitelistingPutGroupData) (result AppWhitelistingGroup, err error) {
+// groupName - name of an application control machine group
+func (client AdaptiveApplicationControlsClient) Put(ctx context.Context, groupName string, body AdaptiveApplicationControlGroup) (result AdaptiveApplicationControlGroup, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/AdaptiveApplicationControlsClient.Put")
defer func() {
@@ -227,7 +303,9 @@ func (client AdaptiveApplicationControlsClient) Put(ctx context.Context, groupNa
}
if err := validation.Validate([]validation.Validation{
{TargetValue: client.SubscriptionID,
- Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: body,
+ Constraints: []validation.Constraint{{Target: "body.AdaptiveApplicationControlGroupData", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil {
return result, validation.NewError("security.AdaptiveApplicationControlsClient", "Put", err.Error())
}
@@ -253,18 +331,22 @@ func (client AdaptiveApplicationControlsClient) Put(ctx context.Context, groupNa
}
// PutPreparer prepares the Put request.
-func (client AdaptiveApplicationControlsClient) PutPreparer(ctx context.Context, groupName string, body AppWhitelistingPutGroupData) (*http.Request, error) {
+func (client AdaptiveApplicationControlsClient) PutPreparer(ctx context.Context, groupName string, body AdaptiveApplicationControlGroup) (*http.Request, error) {
pathParameters := map[string]interface{}{
"ascLocation": autorest.Encode("path", client.AscLocation),
"groupName": autorest.Encode("path", groupName),
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
+ body.ID = nil
+ body.Name = nil
+ body.Type = nil
+ body.Location = nil
preparer := autorest.CreatePreparer(
autorest.AsContentType("application/json; charset=utf-8"),
autorest.AsPut(),
@@ -283,10 +365,9 @@ func (client AdaptiveApplicationControlsClient) PutSender(req *http.Request) (*h
// PutResponder handles the response to the Put request. The method always
// closes the http.Response Body.
-func (client AdaptiveApplicationControlsClient) PutResponder(resp *http.Response) (result AppWhitelistingGroup, err error) {
+func (client AdaptiveApplicationControlsClient) PutResponder(resp *http.Response) (result AdaptiveApplicationControlGroup, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/adaptivenetworkhardenings.go b/services/preview/security/mgmt/v3.0/security/adaptivenetworkhardenings.go
new file mode 100644
index 000000000000..0c65f0b927d5
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/adaptivenetworkhardenings.go
@@ -0,0 +1,364 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "context"
+ "github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
+ "github.com/Azure/go-autorest/autorest/validation"
+ "github.com/Azure/go-autorest/tracing"
+ "net/http"
+)
+
+// AdaptiveNetworkHardeningsClient is the API spec for Microsoft.Security (Azure Security Center) resource provider
+type AdaptiveNetworkHardeningsClient struct {
+ BaseClient
+}
+
+// NewAdaptiveNetworkHardeningsClient creates an instance of the AdaptiveNetworkHardeningsClient client.
+func NewAdaptiveNetworkHardeningsClient(subscriptionID string, ascLocation string) AdaptiveNetworkHardeningsClient {
+ return NewAdaptiveNetworkHardeningsClientWithBaseURI(DefaultBaseURI, subscriptionID, ascLocation)
+}
+
+// NewAdaptiveNetworkHardeningsClientWithBaseURI creates an instance of the AdaptiveNetworkHardeningsClient client
+// using a custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign
+// clouds, Azure stack).
+func NewAdaptiveNetworkHardeningsClientWithBaseURI(baseURI string, subscriptionID string, ascLocation string) AdaptiveNetworkHardeningsClient {
+ return AdaptiveNetworkHardeningsClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
+}
+
+// Enforce enforces the given rules on the NSG(s) listed in the request
+// Parameters:
+// resourceGroupName - the name of the resource group within the user's subscription. The name is case
+// insensitive.
+// resourceNamespace - the Namespace of the resource.
+// resourceType - the type of the resource.
+// resourceName - name of the resource.
+// adaptiveNetworkHardeningResourceName - the name of the Adaptive Network Hardening resource.
+func (client AdaptiveNetworkHardeningsClient) Enforce(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string, adaptiveNetworkHardeningResourceName string, body AdaptiveNetworkHardeningEnforceRequest) (result AdaptiveNetworkHardeningsEnforceFuture, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AdaptiveNetworkHardeningsClient.Enforce")
+ defer func() {
+ sc := -1
+ if result.Response() != nil {
+ sc = result.Response().StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: resourceGroupName,
+ Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
+ {TargetValue: body,
+ Constraints: []validation.Constraint{{Target: "body.Rules", Name: validation.Null, Rule: true, Chain: nil},
+ {Target: "body.NetworkSecurityGroups", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.AdaptiveNetworkHardeningsClient", "Enforce", err.Error())
+ }
+
+ req, err := client.EnforcePreparer(ctx, resourceGroupName, resourceNamespace, resourceType, resourceName, adaptiveNetworkHardeningResourceName, body)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsClient", "Enforce", nil, "Failure preparing request")
+ return
+ }
+
+ result, err = client.EnforceSender(req)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsClient", "Enforce", result.Response(), "Failure sending request")
+ return
+ }
+
+ return
+}
+
+// EnforcePreparer prepares the Enforce request.
+func (client AdaptiveNetworkHardeningsClient) EnforcePreparer(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string, adaptiveNetworkHardeningResourceName string, body AdaptiveNetworkHardeningEnforceRequest) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "adaptiveNetworkHardeningEnforceAction": autorest.Encode("path", "enforce"),
+ "adaptiveNetworkHardeningResourceName": autorest.Encode("path", adaptiveNetworkHardeningResourceName),
+ "resourceGroupName": autorest.Encode("path", resourceGroupName),
+ "resourceName": autorest.Encode("path", resourceName),
+ "resourceNamespace": autorest.Encode("path", resourceNamespace),
+ "resourceType": autorest.Encode("path", resourceType),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsContentType("application/json; charset=utf-8"),
+ autorest.AsPost(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/adaptiveNetworkHardenings/{adaptiveNetworkHardeningResourceName}/{adaptiveNetworkHardeningEnforceAction}", pathParameters),
+ autorest.WithJSON(body),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// EnforceSender sends the Enforce request. The method will close the
+// http.Response Body if it receives an error.
+func (client AdaptiveNetworkHardeningsClient) EnforceSender(req *http.Request) (future AdaptiveNetworkHardeningsEnforceFuture, err error) {
+ var resp *http.Response
+ resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
+ if err != nil {
+ return
+ }
+ future.Future, err = azure.NewFutureFromResponse(resp)
+ return
+}
+
+// EnforceResponder handles the response to the Enforce request. The method always
+// closes the http.Response Body.
+func (client AdaptiveNetworkHardeningsClient) EnforceResponder(resp *http.Response) (result autorest.Response, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
+ autorest.ByClosing())
+ result.Response = resp
+ return
+}
+
+// Get gets a single Adaptive Network Hardening resource
+// Parameters:
+// resourceGroupName - the name of the resource group within the user's subscription. The name is case
+// insensitive.
+// resourceNamespace - the Namespace of the resource.
+// resourceType - the type of the resource.
+// resourceName - name of the resource.
+// adaptiveNetworkHardeningResourceName - the name of the Adaptive Network Hardening resource.
+func (client AdaptiveNetworkHardeningsClient) Get(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string, adaptiveNetworkHardeningResourceName string) (result AdaptiveNetworkHardening, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AdaptiveNetworkHardeningsClient.Get")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: resourceGroupName,
+ Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.AdaptiveNetworkHardeningsClient", "Get", err.Error())
+ }
+
+ req, err := client.GetPreparer(ctx, resourceGroupName, resourceNamespace, resourceType, resourceName, adaptiveNetworkHardeningResourceName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsClient", "Get", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.GetSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsClient", "Get", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.GetResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsClient", "Get", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// GetPreparer prepares the Get request.
+func (client AdaptiveNetworkHardeningsClient) GetPreparer(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string, adaptiveNetworkHardeningResourceName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "adaptiveNetworkHardeningResourceName": autorest.Encode("path", adaptiveNetworkHardeningResourceName),
+ "resourceGroupName": autorest.Encode("path", resourceGroupName),
+ "resourceName": autorest.Encode("path", resourceName),
+ "resourceNamespace": autorest.Encode("path", resourceNamespace),
+ "resourceType": autorest.Encode("path", resourceType),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/adaptiveNetworkHardenings/{adaptiveNetworkHardeningResourceName}", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// GetSender sends the Get request. The method will close the
+// http.Response Body if it receives an error.
+func (client AdaptiveNetworkHardeningsClient) GetSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// GetResponder handles the response to the Get request. The method always
+// closes the http.Response Body.
+func (client AdaptiveNetworkHardeningsClient) GetResponder(resp *http.Response) (result AdaptiveNetworkHardening, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// ListByExtendedResource gets a list of Adaptive Network Hardenings resources in scope of an extended resource.
+// Parameters:
+// resourceGroupName - the name of the resource group within the user's subscription. The name is case
+// insensitive.
+// resourceNamespace - the Namespace of the resource.
+// resourceType - the type of the resource.
+// resourceName - name of the resource.
+func (client AdaptiveNetworkHardeningsClient) ListByExtendedResource(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (result AdaptiveNetworkHardeningsListPage, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AdaptiveNetworkHardeningsClient.ListByExtendedResource")
+ defer func() {
+ sc := -1
+ if result.anhl.Response.Response != nil {
+ sc = result.anhl.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: resourceGroupName,
+ Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.AdaptiveNetworkHardeningsClient", "ListByExtendedResource", err.Error())
+ }
+
+ result.fn = client.listByExtendedResourceNextResults
+ req, err := client.ListByExtendedResourcePreparer(ctx, resourceGroupName, resourceNamespace, resourceType, resourceName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsClient", "ListByExtendedResource", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListByExtendedResourceSender(req)
+ if err != nil {
+ result.anhl.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsClient", "ListByExtendedResource", resp, "Failure sending request")
+ return
+ }
+
+ result.anhl, err = client.ListByExtendedResourceResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsClient", "ListByExtendedResource", resp, "Failure responding to request")
+ }
+ if result.anhl.hasNextLink() && result.anhl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
+
+ return
+}
+
+// ListByExtendedResourcePreparer prepares the ListByExtendedResource request.
+func (client AdaptiveNetworkHardeningsClient) ListByExtendedResourcePreparer(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "resourceGroupName": autorest.Encode("path", resourceGroupName),
+ "resourceName": autorest.Encode("path", resourceName),
+ "resourceNamespace": autorest.Encode("path", resourceNamespace),
+ "resourceType": autorest.Encode("path", resourceType),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceNamespace}/{resourceType}/{resourceName}/providers/Microsoft.Security/adaptiveNetworkHardenings", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListByExtendedResourceSender sends the ListByExtendedResource request. The method will close the
+// http.Response Body if it receives an error.
+func (client AdaptiveNetworkHardeningsClient) ListByExtendedResourceSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListByExtendedResourceResponder handles the response to the ListByExtendedResource request. The method always
+// closes the http.Response Body.
+func (client AdaptiveNetworkHardeningsClient) ListByExtendedResourceResponder(resp *http.Response) (result AdaptiveNetworkHardeningsList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// listByExtendedResourceNextResults retrieves the next set of results, if any.
+func (client AdaptiveNetworkHardeningsClient) listByExtendedResourceNextResults(ctx context.Context, lastResults AdaptiveNetworkHardeningsList) (result AdaptiveNetworkHardeningsList, err error) {
+ req, err := lastResults.adaptiveNetworkHardeningsListPreparer(ctx)
+ if err != nil {
+ return result, autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsClient", "listByExtendedResourceNextResults", nil, "Failure preparing next results request")
+ }
+ if req == nil {
+ return
+ }
+ resp, err := client.ListByExtendedResourceSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ return result, autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsClient", "listByExtendedResourceNextResults", resp, "Failure sending next results request")
+ }
+ result, err = client.ListByExtendedResourceResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsClient", "listByExtendedResourceNextResults", resp, "Failure responding to next results request")
+ }
+ return
+}
+
+// ListByExtendedResourceComplete enumerates all values, automatically crossing page boundaries as required.
+func (client AdaptiveNetworkHardeningsClient) ListByExtendedResourceComplete(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (result AdaptiveNetworkHardeningsListIterator, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AdaptiveNetworkHardeningsClient.ListByExtendedResource")
+ defer func() {
+ sc := -1
+ if result.Response().Response.Response != nil {
+ sc = result.page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ result.page, err = client.ListByExtendedResource(ctx, resourceGroupName, resourceNamespace, resourceType, resourceName)
+ return
+}
diff --git a/services/preview/security/mgmt/v3.0/security/advancedthreatprotection.go b/services/preview/security/mgmt/v3.0/security/advancedthreatprotection.go
index 02352fa1862b..826770efc977 100644
--- a/services/preview/security/mgmt/v3.0/security/advancedthreatprotection.go
+++ b/services/preview/security/mgmt/v3.0/security/advancedthreatprotection.go
@@ -81,7 +81,7 @@ func (client AdvancedThreatProtectionClient) Create(ctx context.Context, resourc
// CreatePreparer prepares the Create request.
func (client AdvancedThreatProtectionClient) CreatePreparer(ctx context.Context, resourceID string, advancedThreatProtectionSetting AdvancedThreatProtectionSetting) (*http.Request, error) {
pathParameters := map[string]interface{}{
- "resourceId": autorest.Encode("path", resourceID),
+ "resourceId": resourceID,
"settingName": autorest.Encode("path", "current"),
}
@@ -111,7 +111,6 @@ func (client AdvancedThreatProtectionClient) CreateSender(req *http.Request) (*h
func (client AdvancedThreatProtectionClient) CreateResponder(resp *http.Response) (result AdvancedThreatProtectionSetting, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -157,7 +156,7 @@ func (client AdvancedThreatProtectionClient) Get(ctx context.Context, resourceID
// GetPreparer prepares the Get request.
func (client AdvancedThreatProtectionClient) GetPreparer(ctx context.Context, resourceID string) (*http.Request, error) {
pathParameters := map[string]interface{}{
- "resourceId": autorest.Encode("path", resourceID),
+ "resourceId": resourceID,
"settingName": autorest.Encode("path", "current"),
}
@@ -185,7 +184,6 @@ func (client AdvancedThreatProtectionClient) GetSender(req *http.Request) (*http
func (client AdvancedThreatProtectionClient) GetResponder(resp *http.Response) (result AdvancedThreatProtectionSetting, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/alerts.go b/services/preview/security/mgmt/v3.0/security/alerts.go
index 27c79ff77b33..e3aad9443746 100644
--- a/services/preview/security/mgmt/v3.0/security/alerts.go
+++ b/services/preview/security/mgmt/v3.0/security/alerts.go
@@ -122,7 +122,6 @@ func (client AlertsClient) GetResourceGroupLevelAlertsSender(req *http.Request)
func (client AlertsClient) GetResourceGroupLevelAlertsResponder(resp *http.Response) (result Alert, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -203,7 +202,6 @@ func (client AlertsClient) GetSubscriptionLevelAlertSender(req *http.Request) (*
func (client AlertsClient) GetSubscriptionLevelAlertResponder(resp *http.Response) (result Alert, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -216,7 +214,9 @@ func (client AlertsClient) GetSubscriptionLevelAlertResponder(resp *http.Respons
// filter - oData filter. Optional.
// selectParameter - oData select. Optional.
// expand - oData expand. Optional.
-func (client AlertsClient) List(ctx context.Context, filter string, selectParameter string, expand string) (result AlertListPage, err error) {
+// autoDismissRuleName - the name of an existing auto dismiss rule. Use it to simulate the rule on existing
+// alerts and get the alerts that would have been dismissed if the rule was enabled when the alert was created
+func (client AlertsClient) List(ctx context.Context, filter string, selectParameter string, expand string, autoDismissRuleName string) (result AlertListPage, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.List")
defer func() {
@@ -234,7 +234,7 @@ func (client AlertsClient) List(ctx context.Context, filter string, selectParame
}
result.fn = client.listNextResults
- req, err := client.ListPreparer(ctx, filter, selectParameter, expand)
+ req, err := client.ListPreparer(ctx, filter, selectParameter, expand, autoDismissRuleName)
if err != nil {
err = autorest.NewErrorWithError(err, "security.AlertsClient", "List", nil, "Failure preparing request")
return
@@ -251,12 +251,15 @@ func (client AlertsClient) List(ctx context.Context, filter string, selectParame
if err != nil {
err = autorest.NewErrorWithError(err, "security.AlertsClient", "List", resp, "Failure responding to request")
}
+ if result.al.hasNextLink() && result.al.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
// ListPreparer prepares the List request.
-func (client AlertsClient) ListPreparer(ctx context.Context, filter string, selectParameter string, expand string) (*http.Request, error) {
+func (client AlertsClient) ListPreparer(ctx context.Context, filter string, selectParameter string, expand string, autoDismissRuleName string) (*http.Request, error) {
pathParameters := map[string]interface{}{
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
@@ -274,6 +277,9 @@ func (client AlertsClient) ListPreparer(ctx context.Context, filter string, sele
if len(expand) > 0 {
queryParameters["$expand"] = autorest.Encode("query", expand)
}
+ if len(autoDismissRuleName) > 0 {
+ queryParameters["autoDismissRuleName"] = autorest.Encode("query", autoDismissRuleName)
+ }
preparer := autorest.CreatePreparer(
autorest.AsGet(),
@@ -294,7 +300,6 @@ func (client AlertsClient) ListSender(req *http.Request) (*http.Response, error)
func (client AlertsClient) ListResponder(resp *http.Response) (result AlertList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -324,7 +329,7 @@ func (client AlertsClient) listNextResults(ctx context.Context, lastResults Aler
}
// ListComplete enumerates all values, automatically crossing page boundaries as required.
-func (client AlertsClient) ListComplete(ctx context.Context, filter string, selectParameter string, expand string) (result AlertListIterator, err error) {
+func (client AlertsClient) ListComplete(ctx context.Context, filter string, selectParameter string, expand string, autoDismissRuleName string) (result AlertListIterator, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.List")
defer func() {
@@ -335,7 +340,7 @@ func (client AlertsClient) ListComplete(ctx context.Context, filter string, sele
tracing.EndSpan(ctx, sc, err)
}()
}
- result.page, err = client.List(ctx, filter, selectParameter, expand)
+ result.page, err = client.List(ctx, filter, selectParameter, expand, autoDismissRuleName)
return
}
@@ -346,7 +351,9 @@ func (client AlertsClient) ListComplete(ctx context.Context, filter string, sele
// filter - oData filter. Optional.
// selectParameter - oData select. Optional.
// expand - oData expand. Optional.
-func (client AlertsClient) ListByResourceGroup(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string) (result AlertListPage, err error) {
+// autoDismissRuleName - the name of an existing auto dismiss rule. Use it to simulate the rule on existing
+// alerts and get the alerts that would have been dismissed if the rule was enabled when the alert was created
+func (client AlertsClient) ListByResourceGroup(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string, autoDismissRuleName string) (result AlertListPage, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.ListByResourceGroup")
defer func() {
@@ -368,7 +375,7 @@ func (client AlertsClient) ListByResourceGroup(ctx context.Context, resourceGrou
}
result.fn = client.listByResourceGroupNextResults
- req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName, filter, selectParameter, expand)
+ req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName, filter, selectParameter, expand, autoDismissRuleName)
if err != nil {
err = autorest.NewErrorWithError(err, "security.AlertsClient", "ListByResourceGroup", nil, "Failure preparing request")
return
@@ -385,12 +392,15 @@ func (client AlertsClient) ListByResourceGroup(ctx context.Context, resourceGrou
if err != nil {
err = autorest.NewErrorWithError(err, "security.AlertsClient", "ListByResourceGroup", resp, "Failure responding to request")
}
+ if result.al.hasNextLink() && result.al.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
// ListByResourceGroupPreparer prepares the ListByResourceGroup request.
-func (client AlertsClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string) (*http.Request, error) {
+func (client AlertsClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string, autoDismissRuleName string) (*http.Request, error) {
pathParameters := map[string]interface{}{
"resourceGroupName": autorest.Encode("path", resourceGroupName),
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
@@ -409,6 +419,9 @@ func (client AlertsClient) ListByResourceGroupPreparer(ctx context.Context, reso
if len(expand) > 0 {
queryParameters["$expand"] = autorest.Encode("query", expand)
}
+ if len(autoDismissRuleName) > 0 {
+ queryParameters["autoDismissRuleName"] = autorest.Encode("query", autoDismissRuleName)
+ }
preparer := autorest.CreatePreparer(
autorest.AsGet(),
@@ -429,7 +442,6 @@ func (client AlertsClient) ListByResourceGroupSender(req *http.Request) (*http.R
func (client AlertsClient) ListByResourceGroupResponder(resp *http.Response) (result AlertList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -459,7 +471,7 @@ func (client AlertsClient) listByResourceGroupNextResults(ctx context.Context, l
}
// ListByResourceGroupComplete enumerates all values, automatically crossing page boundaries as required.
-func (client AlertsClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string) (result AlertListIterator, err error) {
+func (client AlertsClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string, autoDismissRuleName string) (result AlertListIterator, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.ListByResourceGroup")
defer func() {
@@ -470,7 +482,7 @@ func (client AlertsClient) ListByResourceGroupComplete(ctx context.Context, reso
tracing.EndSpan(ctx, sc, err)
}()
}
- result.page, err = client.ListByResourceGroup(ctx, resourceGroupName, filter, selectParameter, expand)
+ result.page, err = client.ListByResourceGroup(ctx, resourceGroupName, filter, selectParameter, expand, autoDismissRuleName)
return
}
@@ -482,7 +494,9 @@ func (client AlertsClient) ListByResourceGroupComplete(ctx context.Context, reso
// filter - oData filter. Optional.
// selectParameter - oData select. Optional.
// expand - oData expand. Optional.
-func (client AlertsClient) ListResourceGroupLevelAlertsByRegion(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string) (result AlertListPage, err error) {
+// autoDismissRuleName - the name of an existing auto dismiss rule. Use it to simulate the rule on existing
+// alerts and get the alerts that would have been dismissed if the rule was enabled when the alert was created
+func (client AlertsClient) ListResourceGroupLevelAlertsByRegion(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string, autoDismissRuleName string) (result AlertListPage, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.ListResourceGroupLevelAlertsByRegion")
defer func() {
@@ -504,7 +518,7 @@ func (client AlertsClient) ListResourceGroupLevelAlertsByRegion(ctx context.Cont
}
result.fn = client.listResourceGroupLevelAlertsByRegionNextResults
- req, err := client.ListResourceGroupLevelAlertsByRegionPreparer(ctx, resourceGroupName, filter, selectParameter, expand)
+ req, err := client.ListResourceGroupLevelAlertsByRegionPreparer(ctx, resourceGroupName, filter, selectParameter, expand, autoDismissRuleName)
if err != nil {
err = autorest.NewErrorWithError(err, "security.AlertsClient", "ListResourceGroupLevelAlertsByRegion", nil, "Failure preparing request")
return
@@ -521,12 +535,15 @@ func (client AlertsClient) ListResourceGroupLevelAlertsByRegion(ctx context.Cont
if err != nil {
err = autorest.NewErrorWithError(err, "security.AlertsClient", "ListResourceGroupLevelAlertsByRegion", resp, "Failure responding to request")
}
+ if result.al.hasNextLink() && result.al.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
// ListResourceGroupLevelAlertsByRegionPreparer prepares the ListResourceGroupLevelAlertsByRegion request.
-func (client AlertsClient) ListResourceGroupLevelAlertsByRegionPreparer(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string) (*http.Request, error) {
+func (client AlertsClient) ListResourceGroupLevelAlertsByRegionPreparer(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string, autoDismissRuleName string) (*http.Request, error) {
pathParameters := map[string]interface{}{
"ascLocation": autorest.Encode("path", client.AscLocation),
"resourceGroupName": autorest.Encode("path", resourceGroupName),
@@ -546,6 +563,9 @@ func (client AlertsClient) ListResourceGroupLevelAlertsByRegionPreparer(ctx cont
if len(expand) > 0 {
queryParameters["$expand"] = autorest.Encode("query", expand)
}
+ if len(autoDismissRuleName) > 0 {
+ queryParameters["autoDismissRuleName"] = autorest.Encode("query", autoDismissRuleName)
+ }
preparer := autorest.CreatePreparer(
autorest.AsGet(),
@@ -566,7 +586,6 @@ func (client AlertsClient) ListResourceGroupLevelAlertsByRegionSender(req *http.
func (client AlertsClient) ListResourceGroupLevelAlertsByRegionResponder(resp *http.Response) (result AlertList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -596,7 +615,7 @@ func (client AlertsClient) listResourceGroupLevelAlertsByRegionNextResults(ctx c
}
// ListResourceGroupLevelAlertsByRegionComplete enumerates all values, automatically crossing page boundaries as required.
-func (client AlertsClient) ListResourceGroupLevelAlertsByRegionComplete(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string) (result AlertListIterator, err error) {
+func (client AlertsClient) ListResourceGroupLevelAlertsByRegionComplete(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string, autoDismissRuleName string) (result AlertListIterator, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.ListResourceGroupLevelAlertsByRegion")
defer func() {
@@ -607,7 +626,7 @@ func (client AlertsClient) ListResourceGroupLevelAlertsByRegionComplete(ctx cont
tracing.EndSpan(ctx, sc, err)
}()
}
- result.page, err = client.ListResourceGroupLevelAlertsByRegion(ctx, resourceGroupName, filter, selectParameter, expand)
+ result.page, err = client.ListResourceGroupLevelAlertsByRegion(ctx, resourceGroupName, filter, selectParameter, expand, autoDismissRuleName)
return
}
@@ -617,7 +636,9 @@ func (client AlertsClient) ListResourceGroupLevelAlertsByRegionComplete(ctx cont
// filter - oData filter. Optional.
// selectParameter - oData select. Optional.
// expand - oData expand. Optional.
-func (client AlertsClient) ListSubscriptionLevelAlertsByRegion(ctx context.Context, filter string, selectParameter string, expand string) (result AlertListPage, err error) {
+// autoDismissRuleName - the name of an existing auto dismiss rule. Use it to simulate the rule on existing
+// alerts and get the alerts that would have been dismissed if the rule was enabled when the alert was created
+func (client AlertsClient) ListSubscriptionLevelAlertsByRegion(ctx context.Context, filter string, selectParameter string, expand string, autoDismissRuleName string) (result AlertListPage, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.ListSubscriptionLevelAlertsByRegion")
defer func() {
@@ -635,7 +656,7 @@ func (client AlertsClient) ListSubscriptionLevelAlertsByRegion(ctx context.Conte
}
result.fn = client.listSubscriptionLevelAlertsByRegionNextResults
- req, err := client.ListSubscriptionLevelAlertsByRegionPreparer(ctx, filter, selectParameter, expand)
+ req, err := client.ListSubscriptionLevelAlertsByRegionPreparer(ctx, filter, selectParameter, expand, autoDismissRuleName)
if err != nil {
err = autorest.NewErrorWithError(err, "security.AlertsClient", "ListSubscriptionLevelAlertsByRegion", nil, "Failure preparing request")
return
@@ -652,12 +673,15 @@ func (client AlertsClient) ListSubscriptionLevelAlertsByRegion(ctx context.Conte
if err != nil {
err = autorest.NewErrorWithError(err, "security.AlertsClient", "ListSubscriptionLevelAlertsByRegion", resp, "Failure responding to request")
}
+ if result.al.hasNextLink() && result.al.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
// ListSubscriptionLevelAlertsByRegionPreparer prepares the ListSubscriptionLevelAlertsByRegion request.
-func (client AlertsClient) ListSubscriptionLevelAlertsByRegionPreparer(ctx context.Context, filter string, selectParameter string, expand string) (*http.Request, error) {
+func (client AlertsClient) ListSubscriptionLevelAlertsByRegionPreparer(ctx context.Context, filter string, selectParameter string, expand string, autoDismissRuleName string) (*http.Request, error) {
pathParameters := map[string]interface{}{
"ascLocation": autorest.Encode("path", client.AscLocation),
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
@@ -676,6 +700,9 @@ func (client AlertsClient) ListSubscriptionLevelAlertsByRegionPreparer(ctx conte
if len(expand) > 0 {
queryParameters["$expand"] = autorest.Encode("query", expand)
}
+ if len(autoDismissRuleName) > 0 {
+ queryParameters["autoDismissRuleName"] = autorest.Encode("query", autoDismissRuleName)
+ }
preparer := autorest.CreatePreparer(
autorest.AsGet(),
@@ -696,7 +723,6 @@ func (client AlertsClient) ListSubscriptionLevelAlertsByRegionSender(req *http.R
func (client AlertsClient) ListSubscriptionLevelAlertsByRegionResponder(resp *http.Response) (result AlertList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -726,7 +752,7 @@ func (client AlertsClient) listSubscriptionLevelAlertsByRegionNextResults(ctx co
}
// ListSubscriptionLevelAlertsByRegionComplete enumerates all values, automatically crossing page boundaries as required.
-func (client AlertsClient) ListSubscriptionLevelAlertsByRegionComplete(ctx context.Context, filter string, selectParameter string, expand string) (result AlertListIterator, err error) {
+func (client AlertsClient) ListSubscriptionLevelAlertsByRegionComplete(ctx context.Context, filter string, selectParameter string, expand string, autoDismissRuleName string) (result AlertListIterator, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.ListSubscriptionLevelAlertsByRegion")
defer func() {
@@ -737,7 +763,7 @@ func (client AlertsClient) ListSubscriptionLevelAlertsByRegionComplete(ctx conte
tracing.EndSpan(ctx, sc, err)
}()
}
- result.page, err = client.ListSubscriptionLevelAlertsByRegion(ctx, filter, selectParameter, expand)
+ result.page, err = client.ListSubscriptionLevelAlertsByRegion(ctx, filter, selectParameter, expand, autoDismissRuleName)
return
}
@@ -821,7 +847,6 @@ func (client AlertsClient) UpdateResourceGroupLevelAlertStateToDismissSender(req
func (client AlertsClient) UpdateResourceGroupLevelAlertStateToDismissResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
@@ -908,7 +933,6 @@ func (client AlertsClient) UpdateResourceGroupLevelAlertStateToReactivateSender(
func (client AlertsClient) UpdateResourceGroupLevelAlertStateToReactivateResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
@@ -988,7 +1012,6 @@ func (client AlertsClient) UpdateSubscriptionLevelAlertStateToDismissSender(req
func (client AlertsClient) UpdateSubscriptionLevelAlertStateToDismissResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
@@ -1068,7 +1091,6 @@ func (client AlertsClient) UpdateSubscriptionLevelAlertStateToReactivateSender(r
func (client AlertsClient) UpdateSubscriptionLevelAlertStateToReactivateResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
diff --git a/services/preview/security/mgmt/v3.0/security/alertssuppressionrules.go b/services/preview/security/mgmt/v3.0/security/alertssuppressionrules.go
new file mode 100644
index 000000000000..74f0e82f8e8a
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/alertssuppressionrules.go
@@ -0,0 +1,412 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "context"
+ "github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
+ "github.com/Azure/go-autorest/autorest/validation"
+ "github.com/Azure/go-autorest/tracing"
+ "net/http"
+)
+
+// AlertsSuppressionRulesClient is the API spec for Microsoft.Security (Azure Security Center) resource provider
+type AlertsSuppressionRulesClient struct {
+ BaseClient
+}
+
+// NewAlertsSuppressionRulesClient creates an instance of the AlertsSuppressionRulesClient client.
+func NewAlertsSuppressionRulesClient(subscriptionID string, ascLocation string) AlertsSuppressionRulesClient {
+ return NewAlertsSuppressionRulesClientWithBaseURI(DefaultBaseURI, subscriptionID, ascLocation)
+}
+
+// NewAlertsSuppressionRulesClientWithBaseURI creates an instance of the AlertsSuppressionRulesClient client using a
+// custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds,
+// Azure stack).
+func NewAlertsSuppressionRulesClientWithBaseURI(baseURI string, subscriptionID string, ascLocation string) AlertsSuppressionRulesClient {
+ return AlertsSuppressionRulesClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
+}
+
+// Delete delete dismiss alert rule for this subscription.
+// Parameters:
+// alertsSuppressionRuleName - the unique name of the suppression alert rule
+func (client AlertsSuppressionRulesClient) Delete(ctx context.Context, alertsSuppressionRuleName string) (result autorest.Response, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AlertsSuppressionRulesClient.Delete")
+ defer func() {
+ sc := -1
+ if result.Response != nil {
+ sc = result.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.AlertsSuppressionRulesClient", "Delete", err.Error())
+ }
+
+ req, err := client.DeletePreparer(ctx, alertsSuppressionRuleName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "Delete", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.DeleteSender(req)
+ if err != nil {
+ result.Response = resp
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "Delete", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.DeleteResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "Delete", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// DeletePreparer prepares the Delete request.
+func (client AlertsSuppressionRulesClient) DeletePreparer(ctx context.Context, alertsSuppressionRuleName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "alertsSuppressionRuleName": autorest.Encode("path", alertsSuppressionRuleName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2019-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsDelete(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/alertsSuppressionRules/{alertsSuppressionRuleName}", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// DeleteSender sends the Delete request. The method will close the
+// http.Response Body if it receives an error.
+func (client AlertsSuppressionRulesClient) DeleteSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// DeleteResponder handles the response to the Delete request. The method always
+// closes the http.Response Body.
+func (client AlertsSuppressionRulesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
+ autorest.ByClosing())
+ result.Response = resp
+ return
+}
+
+// Get get dismiss rule, with name: {alertsSuppressionRuleName}, for the given subscription
+// Parameters:
+// alertsSuppressionRuleName - the unique name of the suppression alert rule
+func (client AlertsSuppressionRulesClient) Get(ctx context.Context, alertsSuppressionRuleName string) (result AlertsSuppressionRule, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AlertsSuppressionRulesClient.Get")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.AlertsSuppressionRulesClient", "Get", err.Error())
+ }
+
+ req, err := client.GetPreparer(ctx, alertsSuppressionRuleName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "Get", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.GetSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "Get", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.GetResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "Get", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// GetPreparer prepares the Get request.
+func (client AlertsSuppressionRulesClient) GetPreparer(ctx context.Context, alertsSuppressionRuleName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "alertsSuppressionRuleName": autorest.Encode("path", alertsSuppressionRuleName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2019-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/alertsSuppressionRules/{alertsSuppressionRuleName}", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// GetSender sends the Get request. The method will close the
+// http.Response Body if it receives an error.
+func (client AlertsSuppressionRulesClient) GetSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// GetResponder handles the response to the Get request. The method always
+// closes the http.Response Body.
+func (client AlertsSuppressionRulesClient) GetResponder(resp *http.Response) (result AlertsSuppressionRule, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// List list of all the dismiss rules for the given subscription
+// Parameters:
+// alertType - type of the alert to get rules for
+func (client AlertsSuppressionRulesClient) List(ctx context.Context, alertType string) (result AlertsSuppressionRulesListPage, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AlertsSuppressionRulesClient.List")
+ defer func() {
+ sc := -1
+ if result.asrl.Response.Response != nil {
+ sc = result.asrl.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.AlertsSuppressionRulesClient", "List", err.Error())
+ }
+
+ result.fn = client.listNextResults
+ req, err := client.ListPreparer(ctx, alertType)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "List", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.asrl.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "List", resp, "Failure sending request")
+ return
+ }
+
+ result.asrl, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "List", resp, "Failure responding to request")
+ }
+ if result.asrl.hasNextLink() && result.asrl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
+
+ return
+}
+
+// ListPreparer prepares the List request.
+func (client AlertsSuppressionRulesClient) ListPreparer(ctx context.Context, alertType string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2019-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+ if len(alertType) > 0 {
+ queryParameters["AlertType"] = autorest.Encode("query", alertType)
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/alertsSuppressionRules", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListSender sends the List request. The method will close the
+// http.Response Body if it receives an error.
+func (client AlertsSuppressionRulesClient) ListSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListResponder handles the response to the List request. The method always
+// closes the http.Response Body.
+func (client AlertsSuppressionRulesClient) ListResponder(resp *http.Response) (result AlertsSuppressionRulesList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// listNextResults retrieves the next set of results, if any.
+func (client AlertsSuppressionRulesClient) listNextResults(ctx context.Context, lastResults AlertsSuppressionRulesList) (result AlertsSuppressionRulesList, err error) {
+ req, err := lastResults.alertsSuppressionRulesListPreparer(ctx)
+ if err != nil {
+ return result, autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "listNextResults", nil, "Failure preparing next results request")
+ }
+ if req == nil {
+ return
+ }
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ return result, autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "listNextResults", resp, "Failure sending next results request")
+ }
+ result, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "listNextResults", resp, "Failure responding to next results request")
+ }
+ return
+}
+
+// ListComplete enumerates all values, automatically crossing page boundaries as required.
+func (client AlertsSuppressionRulesClient) ListComplete(ctx context.Context, alertType string) (result AlertsSuppressionRulesListIterator, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AlertsSuppressionRulesClient.List")
+ defer func() {
+ sc := -1
+ if result.Response().Response.Response != nil {
+ sc = result.page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ result.page, err = client.List(ctx, alertType)
+ return
+}
+
+// Update update existing rule or create new rule if it doesn't exist
+// Parameters:
+// alertsSuppressionRuleName - the unique name of the suppression alert rule
+// alertsSuppressionRule - suppression rule object
+func (client AlertsSuppressionRulesClient) Update(ctx context.Context, alertsSuppressionRuleName string, alertsSuppressionRule AlertsSuppressionRule) (result AlertsSuppressionRule, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AlertsSuppressionRulesClient.Update")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: alertsSuppressionRule,
+ Constraints: []validation.Constraint{{Target: "alertsSuppressionRule.AlertsSuppressionRuleProperties", Name: validation.Null, Rule: false,
+ Chain: []validation.Constraint{{Target: "alertsSuppressionRule.AlertsSuppressionRuleProperties.AlertType", Name: validation.Null, Rule: true, Chain: nil},
+ {Target: "alertsSuppressionRule.AlertsSuppressionRuleProperties.Reason", Name: validation.Null, Rule: true, Chain: nil},
+ {Target: "alertsSuppressionRule.AlertsSuppressionRuleProperties.SuppressionAlertsScope", Name: validation.Null, Rule: false,
+ Chain: []validation.Constraint{{Target: "alertsSuppressionRule.AlertsSuppressionRuleProperties.SuppressionAlertsScope.AllOf", Name: validation.Null, Rule: true, Chain: nil}}},
+ }}}}}); err != nil {
+ return result, validation.NewError("security.AlertsSuppressionRulesClient", "Update", err.Error())
+ }
+
+ req, err := client.UpdatePreparer(ctx, alertsSuppressionRuleName, alertsSuppressionRule)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "Update", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.UpdateSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "Update", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.UpdateResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.AlertsSuppressionRulesClient", "Update", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// UpdatePreparer prepares the Update request.
+func (client AlertsSuppressionRulesClient) UpdatePreparer(ctx context.Context, alertsSuppressionRuleName string, alertsSuppressionRule AlertsSuppressionRule) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "alertsSuppressionRuleName": autorest.Encode("path", alertsSuppressionRuleName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2019-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsContentType("application/json; charset=utf-8"),
+ autorest.AsPut(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/alertsSuppressionRules/{alertsSuppressionRuleName}", pathParameters),
+ autorest.WithJSON(alertsSuppressionRule),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// UpdateSender sends the Update request. The method will close the
+// http.Response Body if it receives an error.
+func (client AlertsSuppressionRulesClient) UpdateSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// UpdateResponder handles the response to the Update request. The method always
+// closes the http.Response Body.
+func (client AlertsSuppressionRulesClient) UpdateResponder(resp *http.Response) (result AlertsSuppressionRule, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
diff --git a/services/preview/security/mgmt/v3.0/security/allowedconnections.go b/services/preview/security/mgmt/v3.0/security/allowedconnections.go
index 0eeca0685693..6b31cf895d9a 100644
--- a/services/preview/security/mgmt/v3.0/security/allowedconnections.go
+++ b/services/preview/security/mgmt/v3.0/security/allowedconnections.go
@@ -100,7 +100,7 @@ func (client AllowedConnectionsClient) GetPreparer(ctx context.Context, resource
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -124,7 +124,6 @@ func (client AllowedConnectionsClient) GetSender(req *http.Request) (*http.Respo
func (client AllowedConnectionsClient) GetResponder(resp *http.Response) (result AllowedConnectionsResource, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -168,6 +167,9 @@ func (client AllowedConnectionsClient) List(ctx context.Context) (result Allowed
if err != nil {
err = autorest.NewErrorWithError(err, "security.AllowedConnectionsClient", "List", resp, "Failure responding to request")
}
+ if result.ACL.hasNextLink() && result.ACL.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -178,7 +180,7 @@ func (client AllowedConnectionsClient) ListPreparer(ctx context.Context) (*http.
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -202,7 +204,6 @@ func (client AllowedConnectionsClient) ListSender(req *http.Request) (*http.Resp
func (client AllowedConnectionsClient) ListResponder(resp *http.Response) (result AllowedConnectionsList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -283,6 +284,9 @@ func (client AllowedConnectionsClient) ListByHomeRegion(ctx context.Context) (re
if err != nil {
err = autorest.NewErrorWithError(err, "security.AllowedConnectionsClient", "ListByHomeRegion", resp, "Failure responding to request")
}
+ if result.ACL.hasNextLink() && result.ACL.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -294,7 +298,7 @@ func (client AllowedConnectionsClient) ListByHomeRegionPreparer(ctx context.Cont
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -318,7 +322,6 @@ func (client AllowedConnectionsClient) ListByHomeRegionSender(req *http.Request)
func (client AllowedConnectionsClient) ListByHomeRegionResponder(resp *http.Response) (result AllowedConnectionsList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/assessments.go b/services/preview/security/mgmt/v3.0/security/assessments.go
index 847c6f1e4e29..f7596ec0c99a 100644
--- a/services/preview/security/mgmt/v3.0/security/assessments.go
+++ b/services/preview/security/mgmt/v3.0/security/assessments.go
@@ -104,7 +104,7 @@ func (client AssessmentsClient) CreateOrUpdate(ctx context.Context, resourceID s
func (client AssessmentsClient) CreateOrUpdatePreparer(ctx context.Context, resourceID string, assessmentName string, assessment Assessment) (*http.Request, error) {
pathParameters := map[string]interface{}{
"assessmentName": autorest.Encode("path", assessmentName),
- "resourceId": autorest.Encode("path", resourceID),
+ "resourceId": resourceID,
}
const APIVersion = "2020-01-01"
@@ -133,7 +133,6 @@ func (client AssessmentsClient) CreateOrUpdateSender(req *http.Request) (*http.R
func (client AssessmentsClient) CreateOrUpdateResponder(resp *http.Response) (result Assessment, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -182,7 +181,7 @@ func (client AssessmentsClient) Delete(ctx context.Context, resourceID string, a
func (client AssessmentsClient) DeletePreparer(ctx context.Context, resourceID string, assessmentName string) (*http.Request, error) {
pathParameters := map[string]interface{}{
"assessmentName": autorest.Encode("path", assessmentName),
- "resourceId": autorest.Encode("path", resourceID),
+ "resourceId": resourceID,
}
const APIVersion = "2020-01-01"
@@ -209,7 +208,6 @@ func (client AssessmentsClient) DeleteSender(req *http.Request) (*http.Response,
func (client AssessmentsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
@@ -257,7 +255,7 @@ func (client AssessmentsClient) Get(ctx context.Context, resourceID string, asse
func (client AssessmentsClient) GetPreparer(ctx context.Context, resourceID string, assessmentName string, expand ExpandEnum) (*http.Request, error) {
pathParameters := map[string]interface{}{
"assessmentName": autorest.Encode("path", assessmentName),
- "resourceId": autorest.Encode("path", resourceID),
+ "resourceId": resourceID,
}
const APIVersion = "2020-01-01"
@@ -287,7 +285,6 @@ func (client AssessmentsClient) GetSender(req *http.Request) (*http.Response, er
func (client AssessmentsClient) GetResponder(resp *http.Response) (result Assessment, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -328,6 +325,9 @@ func (client AssessmentsClient) List(ctx context.Context, scope string) (result
if err != nil {
err = autorest.NewErrorWithError(err, "security.AssessmentsClient", "List", resp, "Failure responding to request")
}
+ if result.al.hasNextLink() && result.al.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -335,7 +335,7 @@ func (client AssessmentsClient) List(ctx context.Context, scope string) (result
// ListPreparer prepares the List request.
func (client AssessmentsClient) ListPreparer(ctx context.Context, scope string) (*http.Request, error) {
pathParameters := map[string]interface{}{
- "scope": autorest.Encode("path", scope),
+ "scope": scope,
}
const APIVersion = "2020-01-01"
@@ -362,7 +362,6 @@ func (client AssessmentsClient) ListSender(req *http.Request) (*http.Response, e
func (client AssessmentsClient) ListResponder(resp *http.Response) (result AssessmentList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/assessmentsmetadata.go b/services/preview/security/mgmt/v3.0/security/assessmentsmetadata.go
index f9f51ef349c1..629f77b33208 100644
--- a/services/preview/security/mgmt/v3.0/security/assessmentsmetadata.go
+++ b/services/preview/security/mgmt/v3.0/security/assessmentsmetadata.go
@@ -126,7 +126,6 @@ func (client AssessmentsMetadataClient) CreateInSubscriptionSender(req *http.Req
func (client AssessmentsMetadataClient) CreateInSubscriptionResponder(resp *http.Response) (result AssessmentMetadata, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -207,7 +206,6 @@ func (client AssessmentsMetadataClient) DeleteInSubscriptionSender(req *http.Req
func (client AssessmentsMetadataClient) DeleteInSubscriptionResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByClosing())
result.Response = resp
@@ -279,7 +277,6 @@ func (client AssessmentsMetadataClient) GetSender(req *http.Request) (*http.Resp
func (client AssessmentsMetadataClient) GetResponder(resp *http.Response) (result AssessmentMetadata, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -359,7 +356,6 @@ func (client AssessmentsMetadataClient) GetInSubscriptionSender(req *http.Reques
func (client AssessmentsMetadataClient) GetInSubscriptionResponder(resp *http.Response) (result AssessmentMetadata, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -397,6 +393,9 @@ func (client AssessmentsMetadataClient) List(ctx context.Context) (result Assess
if err != nil {
err = autorest.NewErrorWithError(err, "security.AssessmentsMetadataClient", "List", resp, "Failure responding to request")
}
+ if result.aml.hasNextLink() && result.aml.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -427,7 +426,6 @@ func (client AssessmentsMetadataClient) ListSender(req *http.Request) (*http.Res
func (client AssessmentsMetadataClient) ListResponder(resp *http.Response) (result AssessmentMetadataList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -508,6 +506,9 @@ func (client AssessmentsMetadataClient) ListBySubscription(ctx context.Context)
if err != nil {
err = autorest.NewErrorWithError(err, "security.AssessmentsMetadataClient", "ListBySubscription", resp, "Failure responding to request")
}
+ if result.aml.hasNextLink() && result.aml.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -542,7 +543,6 @@ func (client AssessmentsMetadataClient) ListBySubscriptionSender(req *http.Reque
func (client AssessmentsMetadataClient) ListBySubscriptionResponder(resp *http.Response) (result AssessmentMetadataList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/automations.go b/services/preview/security/mgmt/v3.0/security/automations.go
index d4e9b1c35bcd..106e5907b9b9 100644
--- a/services/preview/security/mgmt/v3.0/security/automations.go
+++ b/services/preview/security/mgmt/v3.0/security/automations.go
@@ -125,7 +125,6 @@ func (client AutomationsClient) CreateOrUpdateSender(req *http.Request) (*http.R
func (client AutomationsClient) CreateOrUpdateResponder(resp *http.Response) (result Automation, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -212,7 +211,6 @@ func (client AutomationsClient) DeleteSender(req *http.Request) (*http.Response,
func (client AutomationsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
@@ -298,7 +296,6 @@ func (client AutomationsClient) GetSender(req *http.Request) (*http.Response, er
func (client AutomationsClient) GetResponder(resp *http.Response) (result Automation, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -343,6 +340,9 @@ func (client AutomationsClient) List(ctx context.Context) (result AutomationList
if err != nil {
err = autorest.NewErrorWithError(err, "security.AutomationsClient", "List", resp, "Failure responding to request")
}
+ if result.al.hasNextLink() && result.al.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -377,7 +377,6 @@ func (client AutomationsClient) ListSender(req *http.Request) (*http.Response, e
func (client AutomationsClient) ListResponder(resp *http.Response) (result AutomationList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -466,6 +465,9 @@ func (client AutomationsClient) ListByResourceGroup(ctx context.Context, resourc
if err != nil {
err = autorest.NewErrorWithError(err, "security.AutomationsClient", "ListByResourceGroup", resp, "Failure responding to request")
}
+ if result.al.hasNextLink() && result.al.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -501,7 +503,6 @@ func (client AutomationsClient) ListByResourceGroupSender(req *http.Request) (*h
func (client AutomationsClient) ListByResourceGroupResponder(resp *http.Response) (result AutomationList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -629,7 +630,6 @@ func (client AutomationsClient) ValidateSender(req *http.Request) (*http.Respons
func (client AutomationsClient) ValidateResponder(resp *http.Response) (result AutomationValidationStatus, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/autoprovisioningsettings.go b/services/preview/security/mgmt/v3.0/security/autoprovisioningsettings.go
index 433630bd659d..f9467280720b 100644
--- a/services/preview/security/mgmt/v3.0/security/autoprovisioningsettings.go
+++ b/services/preview/security/mgmt/v3.0/security/autoprovisioningsettings.go
@@ -118,7 +118,6 @@ func (client AutoProvisioningSettingsClient) CreateSender(req *http.Request) (*h
func (client AutoProvisioningSettingsClient) CreateResponder(resp *http.Response) (result AutoProvisioningSetting, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -198,7 +197,6 @@ func (client AutoProvisioningSettingsClient) GetSender(req *http.Request) (*http
func (client AutoProvisioningSettingsClient) GetResponder(resp *http.Response) (result AutoProvisioningSetting, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -242,6 +240,9 @@ func (client AutoProvisioningSettingsClient) List(ctx context.Context) (result A
if err != nil {
err = autorest.NewErrorWithError(err, "security.AutoProvisioningSettingsClient", "List", resp, "Failure responding to request")
}
+ if result.apsl.hasNextLink() && result.apsl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -276,7 +277,6 @@ func (client AutoProvisioningSettingsClient) ListSender(req *http.Request) (*htt
func (client AutoProvisioningSettingsClient) ListResponder(resp *http.Response) (result AutoProvisioningSettingList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/complianceresults.go b/services/preview/security/mgmt/v3.0/security/complianceresults.go
index 6142721ad274..8415b71043e3 100644
--- a/services/preview/security/mgmt/v3.0/security/complianceresults.go
+++ b/services/preview/security/mgmt/v3.0/security/complianceresults.go
@@ -82,7 +82,7 @@ func (client ComplianceResultsClient) Get(ctx context.Context, resourceID string
func (client ComplianceResultsClient) GetPreparer(ctx context.Context, resourceID string, complianceResultName string) (*http.Request, error) {
pathParameters := map[string]interface{}{
"complianceResultName": autorest.Encode("path", complianceResultName),
- "resourceId": autorest.Encode("path", resourceID),
+ "resourceId": resourceID,
}
const APIVersion = "2017-08-01"
@@ -109,7 +109,6 @@ func (client ComplianceResultsClient) GetSender(req *http.Request) (*http.Respon
func (client ComplianceResultsClient) GetResponder(resp *http.Response) (result ComplianceResult, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -150,6 +149,9 @@ func (client ComplianceResultsClient) List(ctx context.Context, scope string) (r
if err != nil {
err = autorest.NewErrorWithError(err, "security.ComplianceResultsClient", "List", resp, "Failure responding to request")
}
+ if result.crl.hasNextLink() && result.crl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -157,7 +159,7 @@ func (client ComplianceResultsClient) List(ctx context.Context, scope string) (r
// ListPreparer prepares the List request.
func (client ComplianceResultsClient) ListPreparer(ctx context.Context, scope string) (*http.Request, error) {
pathParameters := map[string]interface{}{
- "scope": autorest.Encode("path", scope),
+ "scope": scope,
}
const APIVersion = "2017-08-01"
@@ -184,7 +186,6 @@ func (client ComplianceResultsClient) ListSender(req *http.Request) (*http.Respo
func (client ComplianceResultsClient) ListResponder(resp *http.Response) (result ComplianceResultList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/compliances.go b/services/preview/security/mgmt/v3.0/security/compliances.go
index 2f0fa49be6a0..dbce5f7be95f 100644
--- a/services/preview/security/mgmt/v3.0/security/compliances.go
+++ b/services/preview/security/mgmt/v3.0/security/compliances.go
@@ -82,7 +82,7 @@ func (client CompliancesClient) Get(ctx context.Context, scope string, complianc
func (client CompliancesClient) GetPreparer(ctx context.Context, scope string, complianceName string) (*http.Request, error) {
pathParameters := map[string]interface{}{
"complianceName": autorest.Encode("path", complianceName),
- "scope": autorest.Encode("path", scope),
+ "scope": scope,
}
const APIVersion = "2017-08-01-preview"
@@ -109,7 +109,6 @@ func (client CompliancesClient) GetSender(req *http.Request) (*http.Response, er
func (client CompliancesClient) GetResponder(resp *http.Response) (result Compliance, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -150,6 +149,9 @@ func (client CompliancesClient) List(ctx context.Context, scope string) (result
if err != nil {
err = autorest.NewErrorWithError(err, "security.CompliancesClient", "List", resp, "Failure responding to request")
}
+ if result.cl.hasNextLink() && result.cl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -157,7 +159,7 @@ func (client CompliancesClient) List(ctx context.Context, scope string) (result
// ListPreparer prepares the List request.
func (client CompliancesClient) ListPreparer(ctx context.Context, scope string) (*http.Request, error) {
pathParameters := map[string]interface{}{
- "scope": autorest.Encode("path", scope),
+ "scope": scope,
}
const APIVersion = "2017-08-01-preview"
@@ -184,7 +186,6 @@ func (client CompliancesClient) ListSender(req *http.Request) (*http.Response, e
func (client CompliancesClient) ListResponder(resp *http.Response) (result ComplianceList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/connectors.go b/services/preview/security/mgmt/v3.0/security/connectors.go
new file mode 100644
index 000000000000..283167416f16
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/connectors.go
@@ -0,0 +1,400 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "context"
+ "github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
+ "github.com/Azure/go-autorest/autorest/validation"
+ "github.com/Azure/go-autorest/tracing"
+ "net/http"
+)
+
+// ConnectorsClient is the API spec for Microsoft.Security (Azure Security Center) resource provider
+type ConnectorsClient struct {
+ BaseClient
+}
+
+// NewConnectorsClient creates an instance of the ConnectorsClient client.
+func NewConnectorsClient(subscriptionID string, ascLocation string) ConnectorsClient {
+ return NewConnectorsClientWithBaseURI(DefaultBaseURI, subscriptionID, ascLocation)
+}
+
+// NewConnectorsClientWithBaseURI creates an instance of the ConnectorsClient client using a custom endpoint. Use this
+// when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack).
+func NewConnectorsClientWithBaseURI(baseURI string, subscriptionID string, ascLocation string) ConnectorsClient {
+ return ConnectorsClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
+}
+
+// CreateOrUpdate create a cloud account connector or update an existing one. Connect to your AWS cloud account using
+// either account credentials or role-based authentication.
+// Parameters:
+// connectorName - name of the cloud account connector
+// connectorSetting - settings for the cloud account connector
+func (client ConnectorsClient) CreateOrUpdate(ctx context.Context, connectorName string, connectorSetting ConnectorSetting) (result ConnectorSetting, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ConnectorsClient.CreateOrUpdate")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.ConnectorsClient", "CreateOrUpdate", err.Error())
+ }
+
+ req, err := client.CreateOrUpdatePreparer(ctx, connectorName, connectorSetting)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "CreateOrUpdate", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.CreateOrUpdateSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "CreateOrUpdate", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.CreateOrUpdateResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "CreateOrUpdate", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// CreateOrUpdatePreparer prepares the CreateOrUpdate request.
+func (client ConnectorsClient) CreateOrUpdatePreparer(ctx context.Context, connectorName string, connectorSetting ConnectorSetting) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "connectorName": autorest.Encode("path", connectorName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsContentType("application/json; charset=utf-8"),
+ autorest.AsPut(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/connectors/{connectorName}", pathParameters),
+ autorest.WithJSON(connectorSetting),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the
+// http.Response Body if it receives an error.
+func (client ConnectorsClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always
+// closes the http.Response Body.
+func (client ConnectorsClient) CreateOrUpdateResponder(resp *http.Response) (result ConnectorSetting, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// Delete delete a cloud account connector from a subscription
+// Parameters:
+// connectorName - name of the cloud account connector
+func (client ConnectorsClient) Delete(ctx context.Context, connectorName string) (result autorest.Response, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ConnectorsClient.Delete")
+ defer func() {
+ sc := -1
+ if result.Response != nil {
+ sc = result.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.ConnectorsClient", "Delete", err.Error())
+ }
+
+ req, err := client.DeletePreparer(ctx, connectorName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "Delete", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.DeleteSender(req)
+ if err != nil {
+ result.Response = resp
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "Delete", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.DeleteResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "Delete", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// DeletePreparer prepares the Delete request.
+func (client ConnectorsClient) DeletePreparer(ctx context.Context, connectorName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "connectorName": autorest.Encode("path", connectorName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsDelete(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/connectors/{connectorName}", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// DeleteSender sends the Delete request. The method will close the
+// http.Response Body if it receives an error.
+func (client ConnectorsClient) DeleteSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// DeleteResponder handles the response to the Delete request. The method always
+// closes the http.Response Body.
+func (client ConnectorsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
+ autorest.ByClosing())
+ result.Response = resp
+ return
+}
+
+// Get details of a specific cloud account connector
+// Parameters:
+// connectorName - name of the cloud account connector
+func (client ConnectorsClient) Get(ctx context.Context, connectorName string) (result ConnectorSetting, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ConnectorsClient.Get")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.ConnectorsClient", "Get", err.Error())
+ }
+
+ req, err := client.GetPreparer(ctx, connectorName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "Get", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.GetSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "Get", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.GetResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "Get", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// GetPreparer prepares the Get request.
+func (client ConnectorsClient) GetPreparer(ctx context.Context, connectorName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "connectorName": autorest.Encode("path", connectorName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/connectors/{connectorName}", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// GetSender sends the Get request. The method will close the
+// http.Response Body if it receives an error.
+func (client ConnectorsClient) GetSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// GetResponder handles the response to the Get request. The method always
+// closes the http.Response Body.
+func (client ConnectorsClient) GetResponder(resp *http.Response) (result ConnectorSetting, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// List cloud accounts connectors of a subscription
+func (client ConnectorsClient) List(ctx context.Context) (result ConnectorSettingListPage, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ConnectorsClient.List")
+ defer func() {
+ sc := -1
+ if result.csl.Response.Response != nil {
+ sc = result.csl.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.ConnectorsClient", "List", err.Error())
+ }
+
+ result.fn = client.listNextResults
+ req, err := client.ListPreparer(ctx)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "List", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.csl.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "List", resp, "Failure sending request")
+ return
+ }
+
+ result.csl, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "List", resp, "Failure responding to request")
+ }
+ if result.csl.hasNextLink() && result.csl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
+
+ return
+}
+
+// ListPreparer prepares the List request.
+func (client ConnectorsClient) ListPreparer(ctx context.Context) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/connectors", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListSender sends the List request. The method will close the
+// http.Response Body if it receives an error.
+func (client ConnectorsClient) ListSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListResponder handles the response to the List request. The method always
+// closes the http.Response Body.
+func (client ConnectorsClient) ListResponder(resp *http.Response) (result ConnectorSettingList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// listNextResults retrieves the next set of results, if any.
+func (client ConnectorsClient) listNextResults(ctx context.Context, lastResults ConnectorSettingList) (result ConnectorSettingList, err error) {
+ req, err := lastResults.connectorSettingListPreparer(ctx)
+ if err != nil {
+ return result, autorest.NewErrorWithError(err, "security.ConnectorsClient", "listNextResults", nil, "Failure preparing next results request")
+ }
+ if req == nil {
+ return
+ }
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ return result, autorest.NewErrorWithError(err, "security.ConnectorsClient", "listNextResults", resp, "Failure sending next results request")
+ }
+ result, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.ConnectorsClient", "listNextResults", resp, "Failure responding to next results request")
+ }
+ return
+}
+
+// ListComplete enumerates all values, automatically crossing page boundaries as required.
+func (client ConnectorsClient) ListComplete(ctx context.Context) (result ConnectorSettingListIterator, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ConnectorsClient.List")
+ defer func() {
+ sc := -1
+ if result.Response().Response.Response != nil {
+ sc = result.page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ result.page, err = client.List(ctx)
+ return
+}
diff --git a/services/preview/security/mgmt/v3.0/security/contacts.go b/services/preview/security/mgmt/v3.0/security/contacts.go
index bbf7b35c4675..3bacee1cf631 100644
--- a/services/preview/security/mgmt/v3.0/security/contacts.go
+++ b/services/preview/security/mgmt/v3.0/security/contacts.go
@@ -120,7 +120,6 @@ func (client ContactsClient) CreateSender(req *http.Request) (*http.Response, er
func (client ContactsClient) CreateResponder(resp *http.Response) (result Contact, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -200,7 +199,6 @@ func (client ContactsClient) DeleteSender(req *http.Request) (*http.Response, er
func (client ContactsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
@@ -279,7 +277,6 @@ func (client ContactsClient) GetSender(req *http.Request) (*http.Response, error
func (client ContactsClient) GetResponder(resp *http.Response) (result Contact, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -323,6 +320,9 @@ func (client ContactsClient) List(ctx context.Context) (result ContactListPage,
if err != nil {
err = autorest.NewErrorWithError(err, "security.ContactsClient", "List", resp, "Failure responding to request")
}
+ if result.cl.hasNextLink() && result.cl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -357,7 +357,6 @@ func (client ContactsClient) ListSender(req *http.Request) (*http.Response, erro
func (client ContactsClient) ListResponder(resp *http.Response) (result ContactList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -477,7 +476,6 @@ func (client ContactsClient) UpdateSender(req *http.Request) (*http.Response, er
func (client ContactsClient) UpdateResponder(resp *http.Response) (result Contact, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/devicesecuritygroups.go b/services/preview/security/mgmt/v3.0/security/devicesecuritygroups.go
index b60d94c6bd9c..8d20b62e3160 100644
--- a/services/preview/security/mgmt/v3.0/security/devicesecuritygroups.go
+++ b/services/preview/security/mgmt/v3.0/security/devicesecuritygroups.go
@@ -84,7 +84,7 @@ func (client DeviceSecurityGroupsClient) CreateOrUpdate(ctx context.Context, res
func (client DeviceSecurityGroupsClient) CreateOrUpdatePreparer(ctx context.Context, resourceID string, deviceSecurityGroupName string, deviceSecurityGroup DeviceSecurityGroup) (*http.Request, error) {
pathParameters := map[string]interface{}{
"deviceSecurityGroupName": autorest.Encode("path", deviceSecurityGroupName),
- "resourceId": autorest.Encode("path", resourceID),
+ "resourceId": resourceID,
}
const APIVersion = "2019-08-01"
@@ -113,7 +113,6 @@ func (client DeviceSecurityGroupsClient) CreateOrUpdateSender(req *http.Request)
func (client DeviceSecurityGroupsClient) CreateOrUpdateResponder(resp *http.Response) (result DeviceSecurityGroup, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -162,7 +161,7 @@ func (client DeviceSecurityGroupsClient) Delete(ctx context.Context, resourceID
func (client DeviceSecurityGroupsClient) DeletePreparer(ctx context.Context, resourceID string, deviceSecurityGroupName string) (*http.Request, error) {
pathParameters := map[string]interface{}{
"deviceSecurityGroupName": autorest.Encode("path", deviceSecurityGroupName),
- "resourceId": autorest.Encode("path", resourceID),
+ "resourceId": resourceID,
}
const APIVersion = "2019-08-01"
@@ -189,7 +188,6 @@ func (client DeviceSecurityGroupsClient) DeleteSender(req *http.Request) (*http.
func (client DeviceSecurityGroupsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
@@ -237,7 +235,7 @@ func (client DeviceSecurityGroupsClient) Get(ctx context.Context, resourceID str
func (client DeviceSecurityGroupsClient) GetPreparer(ctx context.Context, resourceID string, deviceSecurityGroupName string) (*http.Request, error) {
pathParameters := map[string]interface{}{
"deviceSecurityGroupName": autorest.Encode("path", deviceSecurityGroupName),
- "resourceId": autorest.Encode("path", resourceID),
+ "resourceId": resourceID,
}
const APIVersion = "2019-08-01"
@@ -264,7 +262,6 @@ func (client DeviceSecurityGroupsClient) GetSender(req *http.Request) (*http.Res
func (client DeviceSecurityGroupsClient) GetResponder(resp *http.Response) (result DeviceSecurityGroup, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -304,6 +301,9 @@ func (client DeviceSecurityGroupsClient) List(ctx context.Context, resourceID st
if err != nil {
err = autorest.NewErrorWithError(err, "security.DeviceSecurityGroupsClient", "List", resp, "Failure responding to request")
}
+ if result.dsgl.hasNextLink() && result.dsgl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -311,7 +311,7 @@ func (client DeviceSecurityGroupsClient) List(ctx context.Context, resourceID st
// ListPreparer prepares the List request.
func (client DeviceSecurityGroupsClient) ListPreparer(ctx context.Context, resourceID string) (*http.Request, error) {
pathParameters := map[string]interface{}{
- "resourceId": autorest.Encode("path", resourceID),
+ "resourceId": resourceID,
}
const APIVersion = "2019-08-01"
@@ -338,7 +338,6 @@ func (client DeviceSecurityGroupsClient) ListSender(req *http.Request) (*http.Re
func (client DeviceSecurityGroupsClient) ListResponder(resp *http.Response) (result DeviceSecurityGroupList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/discoveredsecuritysolutions.go b/services/preview/security/mgmt/v3.0/security/discoveredsecuritysolutions.go
index 5cad25154319..f199814657db 100644
--- a/services/preview/security/mgmt/v3.0/security/discoveredsecuritysolutions.go
+++ b/services/preview/security/mgmt/v3.0/security/discoveredsecuritysolutions.go
@@ -99,7 +99,7 @@ func (client DiscoveredSecuritySolutionsClient) GetPreparer(ctx context.Context,
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -123,7 +123,6 @@ func (client DiscoveredSecuritySolutionsClient) GetSender(req *http.Request) (*h
func (client DiscoveredSecuritySolutionsClient) GetResponder(resp *http.Response) (result DiscoveredSecuritySolution, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -167,6 +166,9 @@ func (client DiscoveredSecuritySolutionsClient) List(ctx context.Context) (resul
if err != nil {
err = autorest.NewErrorWithError(err, "security.DiscoveredSecuritySolutionsClient", "List", resp, "Failure responding to request")
}
+ if result.dssl.hasNextLink() && result.dssl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -177,7 +179,7 @@ func (client DiscoveredSecuritySolutionsClient) ListPreparer(ctx context.Context
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -201,7 +203,6 @@ func (client DiscoveredSecuritySolutionsClient) ListSender(req *http.Request) (*
func (client DiscoveredSecuritySolutionsClient) ListResponder(resp *http.Response) (result DiscoveredSecuritySolutionList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -282,6 +283,9 @@ func (client DiscoveredSecuritySolutionsClient) ListByHomeRegion(ctx context.Con
if err != nil {
err = autorest.NewErrorWithError(err, "security.DiscoveredSecuritySolutionsClient", "ListByHomeRegion", resp, "Failure responding to request")
}
+ if result.dssl.hasNextLink() && result.dssl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -293,7 +297,7 @@ func (client DiscoveredSecuritySolutionsClient) ListByHomeRegionPreparer(ctx con
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -317,7 +321,6 @@ func (client DiscoveredSecuritySolutionsClient) ListByHomeRegionSender(req *http
func (client DiscoveredSecuritySolutionsClient) ListByHomeRegionResponder(resp *http.Response) (result DiscoveredSecuritySolutionList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/enums.go b/services/preview/security/mgmt/v3.0/security/enums.go
new file mode 100644
index 000000000000..f5703d67f45c
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/enums.go
@@ -0,0 +1,1401 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// AadConnectivityState enumerates the values for aad connectivity state.
+type AadConnectivityState string
+
+const (
+ // Connected ...
+ Connected AadConnectivityState = "Connected"
+ // Discovered ...
+ Discovered AadConnectivityState = "Discovered"
+ // NotLicensed ...
+ NotLicensed AadConnectivityState = "NotLicensed"
+)
+
+// PossibleAadConnectivityStateValues returns an array of possible values for the AadConnectivityState const type.
+func PossibleAadConnectivityStateValues() []AadConnectivityState {
+ return []AadConnectivityState{Connected, Discovered, NotLicensed}
+}
+
+// Action enumerates the values for action.
+type Action string
+
+const (
+ // Add ...
+ Add Action = "Add"
+ // Recommended ...
+ Recommended Action = "Recommended"
+ // Remove ...
+ Remove Action = "Remove"
+)
+
+// PossibleActionValues returns an array of possible values for the Action const type.
+func PossibleActionValues() []Action {
+ return []Action{Add, Recommended, Remove}
+}
+
+// ActionType enumerates the values for action type.
+type ActionType string
+
+const (
+ // ActionTypeAutomationAction ...
+ ActionTypeAutomationAction ActionType = "AutomationAction"
+ // ActionTypeEventHub ...
+ ActionTypeEventHub ActionType = "EventHub"
+ // ActionTypeLogicApp ...
+ ActionTypeLogicApp ActionType = "LogicApp"
+ // ActionTypeWorkspace ...
+ ActionTypeWorkspace ActionType = "Workspace"
+)
+
+// PossibleActionTypeValues returns an array of possible values for the ActionType const type.
+func PossibleActionTypeValues() []ActionType {
+ return []ActionType{ActionTypeAutomationAction, ActionTypeEventHub, ActionTypeLogicApp, ActionTypeWorkspace}
+}
+
+// AlertIntent enumerates the values for alert intent.
+type AlertIntent string
+
+const (
+ // Collection ...
+ Collection AlertIntent = "Collection"
+ // CommandAndControl ...
+ CommandAndControl AlertIntent = "CommandAndControl"
+ // CredentialAccess ...
+ CredentialAccess AlertIntent = "CredentialAccess"
+ // DefenseEvasion ...
+ DefenseEvasion AlertIntent = "DefenseEvasion"
+ // Discovery ...
+ Discovery AlertIntent = "Discovery"
+ // Execution ...
+ Execution AlertIntent = "Execution"
+ // Exfiltration ...
+ Exfiltration AlertIntent = "Exfiltration"
+ // Exploitation ...
+ Exploitation AlertIntent = "Exploitation"
+ // Impact ...
+ Impact AlertIntent = "Impact"
+ // InitialAccess ...
+ InitialAccess AlertIntent = "InitialAccess"
+ // LateralMovement ...
+ LateralMovement AlertIntent = "LateralMovement"
+ // Persistence ...
+ Persistence AlertIntent = "Persistence"
+ // PreAttack ...
+ PreAttack AlertIntent = "PreAttack"
+ // PrivilegeEscalation ...
+ PrivilegeEscalation AlertIntent = "PrivilegeEscalation"
+ // Probing ...
+ Probing AlertIntent = "Probing"
+ // Unknown ...
+ Unknown AlertIntent = "Unknown"
+)
+
+// PossibleAlertIntentValues returns an array of possible values for the AlertIntent const type.
+func PossibleAlertIntentValues() []AlertIntent {
+ return []AlertIntent{Collection, CommandAndControl, CredentialAccess, DefenseEvasion, Discovery, Execution, Exfiltration, Exploitation, Impact, InitialAccess, LateralMovement, Persistence, PreAttack, PrivilegeEscalation, Probing, Unknown}
+}
+
+// AlertNotifications enumerates the values for alert notifications.
+type AlertNotifications string
+
+const (
+ // Off Don't get notifications on new alerts
+ Off AlertNotifications = "Off"
+ // On Get notifications on new alerts
+ On AlertNotifications = "On"
+)
+
+// PossibleAlertNotificationsValues returns an array of possible values for the AlertNotifications const type.
+func PossibleAlertNotificationsValues() []AlertNotifications {
+ return []AlertNotifications{Off, On}
+}
+
+// AlertSeverity enumerates the values for alert severity.
+type AlertSeverity string
+
+const (
+ // High ...
+ High AlertSeverity = "High"
+ // Informational ...
+ Informational AlertSeverity = "Informational"
+ // Low ...
+ Low AlertSeverity = "Low"
+ // Medium ...
+ Medium AlertSeverity = "Medium"
+)
+
+// PossibleAlertSeverityValues returns an array of possible values for the AlertSeverity const type.
+func PossibleAlertSeverityValues() []AlertSeverity {
+ return []AlertSeverity{High, Informational, Low, Medium}
+}
+
+// AlertsToAdmins enumerates the values for alerts to admins.
+type AlertsToAdmins string
+
+const (
+ // AlertsToAdminsOff Don't send notification on new alerts to the subscription's admins
+ AlertsToAdminsOff AlertsToAdmins = "Off"
+ // AlertsToAdminsOn Send notification on new alerts to the subscription's admins
+ AlertsToAdminsOn AlertsToAdmins = "On"
+)
+
+// PossibleAlertsToAdminsValues returns an array of possible values for the AlertsToAdmins const type.
+func PossibleAlertsToAdminsValues() []AlertsToAdmins {
+ return []AlertsToAdmins{AlertsToAdminsOff, AlertsToAdminsOn}
+}
+
+// AssessedResourceType enumerates the values for assessed resource type.
+type AssessedResourceType string
+
+const (
+ // AssessedResourceTypeAdditionalData ...
+ AssessedResourceTypeAdditionalData AssessedResourceType = "AdditionalData"
+ // AssessedResourceTypeContainerRegistryVulnerability ...
+ AssessedResourceTypeContainerRegistryVulnerability AssessedResourceType = "ContainerRegistryVulnerability"
+ // AssessedResourceTypeServerVulnerabilityAssessment ...
+ AssessedResourceTypeServerVulnerabilityAssessment AssessedResourceType = "ServerVulnerabilityAssessment"
+ // AssessedResourceTypeSQLServerVulnerability ...
+ AssessedResourceTypeSQLServerVulnerability AssessedResourceType = "SqlServerVulnerability"
+)
+
+// PossibleAssessedResourceTypeValues returns an array of possible values for the AssessedResourceType const type.
+func PossibleAssessedResourceTypeValues() []AssessedResourceType {
+ return []AssessedResourceType{AssessedResourceTypeAdditionalData, AssessedResourceTypeContainerRegistryVulnerability, AssessedResourceTypeServerVulnerabilityAssessment, AssessedResourceTypeSQLServerVulnerability}
+}
+
+// AssessmentStatusCode enumerates the values for assessment status code.
+type AssessmentStatusCode string
+
+const (
+ // Healthy The resource is healthy
+ Healthy AssessmentStatusCode = "Healthy"
+ // NotApplicable Assessment for this resource did not happen
+ NotApplicable AssessmentStatusCode = "NotApplicable"
+ // Unhealthy The resource has a security issue that needs to be addressed
+ Unhealthy AssessmentStatusCode = "Unhealthy"
+)
+
+// PossibleAssessmentStatusCodeValues returns an array of possible values for the AssessmentStatusCode const type.
+func PossibleAssessmentStatusCodeValues() []AssessmentStatusCode {
+ return []AssessmentStatusCode{Healthy, NotApplicable, Unhealthy}
+}
+
+// AssessmentType enumerates the values for assessment type.
+type AssessmentType string
+
+const (
+ // BuiltIn Azure Security Center managed assessments
+ BuiltIn AssessmentType = "BuiltIn"
+ // CustomerManaged User assessments pushed directly by the user or other third party to Azure Security
+ // Center
+ CustomerManaged AssessmentType = "CustomerManaged"
+ // CustomPolicy User defined policies that are automatically ingested from Azure Policy to Azure Security
+ // Center
+ CustomPolicy AssessmentType = "CustomPolicy"
+ // VerifiedPartner An assessment that was created by a verified 3rd party if the user connected it to ASC
+ VerifiedPartner AssessmentType = "VerifiedPartner"
+)
+
+// PossibleAssessmentTypeValues returns an array of possible values for the AssessmentType const type.
+func PossibleAssessmentTypeValues() []AssessmentType {
+ return []AssessmentType{BuiltIn, CustomerManaged, CustomPolicy, VerifiedPartner}
+}
+
+// AuthenticationProvisioningState enumerates the values for authentication provisioning state.
+type AuthenticationProvisioningState string
+
+const (
+ // Expired the connection is expired
+ Expired AuthenticationProvisioningState = "Expired"
+ // IncorrectPolicy Incorrect policy of the connector
+ IncorrectPolicy AuthenticationProvisioningState = "IncorrectPolicy"
+ // Invalid Invalid connector
+ Invalid AuthenticationProvisioningState = "Invalid"
+ // Valid Valid connector
+ Valid AuthenticationProvisioningState = "Valid"
+)
+
+// PossibleAuthenticationProvisioningStateValues returns an array of possible values for the AuthenticationProvisioningState const type.
+func PossibleAuthenticationProvisioningStateValues() []AuthenticationProvisioningState {
+ return []AuthenticationProvisioningState{Expired, IncorrectPolicy, Invalid, Valid}
+}
+
+// AuthenticationType enumerates the values for authentication type.
+type AuthenticationType string
+
+const (
+ // AuthenticationTypeAuthenticationDetailsProperties ...
+ AuthenticationTypeAuthenticationDetailsProperties AuthenticationType = "AuthenticationDetailsProperties"
+ // AuthenticationTypeAwsAssumeRole ...
+ AuthenticationTypeAwsAssumeRole AuthenticationType = "awsAssumeRole"
+ // AuthenticationTypeAwsCreds ...
+ AuthenticationTypeAwsCreds AuthenticationType = "awsCreds"
+ // AuthenticationTypeGcpCredentials ...
+ AuthenticationTypeGcpCredentials AuthenticationType = "gcpCredentials"
+)
+
+// PossibleAuthenticationTypeValues returns an array of possible values for the AuthenticationType const type.
+func PossibleAuthenticationTypeValues() []AuthenticationType {
+ return []AuthenticationType{AuthenticationTypeAuthenticationDetailsProperties, AuthenticationTypeAwsAssumeRole, AuthenticationTypeAwsCreds, AuthenticationTypeGcpCredentials}
+}
+
+// AutoProvision enumerates the values for auto provision.
+type AutoProvision string
+
+const (
+ // AutoProvisionOff Do not install security agent on the VMs automatically
+ AutoProvisionOff AutoProvision = "Off"
+ // AutoProvisionOn Install missing security agent on VMs automatically
+ AutoProvisionOn AutoProvision = "On"
+)
+
+// PossibleAutoProvisionValues returns an array of possible values for the AutoProvision const type.
+func PossibleAutoProvisionValues() []AutoProvision {
+ return []AutoProvision{AutoProvisionOff, AutoProvisionOn}
+}
+
+// Category enumerates the values for category.
+type Category string
+
+const (
+ // Compute ...
+ Compute Category = "Compute"
+ // Data ...
+ Data Category = "Data"
+ // IdentityAndAccess ...
+ IdentityAndAccess Category = "IdentityAndAccess"
+ // IoT ...
+ IoT Category = "IoT"
+ // Networking ...
+ Networking Category = "Networking"
+)
+
+// PossibleCategoryValues returns an array of possible values for the Category const type.
+func PossibleCategoryValues() []Category {
+ return []Category{Compute, Data, IdentityAndAccess, IoT, Networking}
+}
+
+// ConfigurationStatus enumerates the values for configuration status.
+type ConfigurationStatus string
+
+const (
+ // Configured ...
+ Configured ConfigurationStatus = "Configured"
+ // Failed ...
+ Failed ConfigurationStatus = "Failed"
+ // InProgress ...
+ InProgress ConfigurationStatus = "InProgress"
+ // NoStatus ...
+ NoStatus ConfigurationStatus = "NoStatus"
+ // NotConfigured ...
+ NotConfigured ConfigurationStatus = "NotConfigured"
+)
+
+// PossibleConfigurationStatusValues returns an array of possible values for the ConfigurationStatus const type.
+func PossibleConfigurationStatusValues() []ConfigurationStatus {
+ return []ConfigurationStatus{Configured, Failed, InProgress, NoStatus, NotConfigured}
+}
+
+// ConfigurationStatus1 enumerates the values for configuration status 1.
+type ConfigurationStatus1 string
+
+const (
+ // ConfigurationStatus1Configured ...
+ ConfigurationStatus1Configured ConfigurationStatus1 = "Configured"
+ // ConfigurationStatus1Failed ...
+ ConfigurationStatus1Failed ConfigurationStatus1 = "Failed"
+ // ConfigurationStatus1InProgress ...
+ ConfigurationStatus1InProgress ConfigurationStatus1 = "InProgress"
+ // ConfigurationStatus1NoStatus ...
+ ConfigurationStatus1NoStatus ConfigurationStatus1 = "NoStatus"
+ // ConfigurationStatus1NotConfigured ...
+ ConfigurationStatus1NotConfigured ConfigurationStatus1 = "NotConfigured"
+)
+
+// PossibleConfigurationStatus1Values returns an array of possible values for the ConfigurationStatus1 const type.
+func PossibleConfigurationStatus1Values() []ConfigurationStatus1 {
+ return []ConfigurationStatus1{ConfigurationStatus1Configured, ConfigurationStatus1Failed, ConfigurationStatus1InProgress, ConfigurationStatus1NoStatus, ConfigurationStatus1NotConfigured}
+}
+
+// ConfigurationStatus2 enumerates the values for configuration status 2.
+type ConfigurationStatus2 string
+
+const (
+ // ConfigurationStatus2Configured ...
+ ConfigurationStatus2Configured ConfigurationStatus2 = "Configured"
+ // ConfigurationStatus2Failed ...
+ ConfigurationStatus2Failed ConfigurationStatus2 = "Failed"
+ // ConfigurationStatus2InProgress ...
+ ConfigurationStatus2InProgress ConfigurationStatus2 = "InProgress"
+ // ConfigurationStatus2NoStatus ...
+ ConfigurationStatus2NoStatus ConfigurationStatus2 = "NoStatus"
+ // ConfigurationStatus2NotConfigured ...
+ ConfigurationStatus2NotConfigured ConfigurationStatus2 = "NotConfigured"
+)
+
+// PossibleConfigurationStatus2Values returns an array of possible values for the ConfigurationStatus2 const type.
+func PossibleConfigurationStatus2Values() []ConfigurationStatus2 {
+ return []ConfigurationStatus2{ConfigurationStatus2Configured, ConfigurationStatus2Failed, ConfigurationStatus2InProgress, ConfigurationStatus2NoStatus, ConfigurationStatus2NotConfigured}
+}
+
+// ConnectionType enumerates the values for connection type.
+type ConnectionType string
+
+const (
+ // External ...
+ External ConnectionType = "External"
+ // Internal ...
+ Internal ConnectionType = "Internal"
+)
+
+// PossibleConnectionTypeValues returns an array of possible values for the ConnectionType const type.
+func PossibleConnectionTypeValues() []ConnectionType {
+ return []ConnectionType{External, Internal}
+}
+
+// ControlType enumerates the values for control type.
+type ControlType string
+
+const (
+ // ControlTypeBuiltIn Azure Security Center managed assessments
+ ControlTypeBuiltIn ControlType = "BuiltIn"
+ // ControlTypeCustom Non Azure Security Center managed assessments
+ ControlTypeCustom ControlType = "Custom"
+)
+
+// PossibleControlTypeValues returns an array of possible values for the ControlType const type.
+func PossibleControlTypeValues() []ControlType {
+ return []ControlType{ControlTypeBuiltIn, ControlTypeCustom}
+}
+
+// DataSource enumerates the values for data source.
+type DataSource string
+
+const (
+ // TwinData Devices twin data
+ TwinData DataSource = "TwinData"
+)
+
+// PossibleDataSourceValues returns an array of possible values for the DataSource const type.
+func PossibleDataSourceValues() []DataSource {
+ return []DataSource{TwinData}
+}
+
+// Direction enumerates the values for direction.
+type Direction string
+
+const (
+ // Inbound ...
+ Inbound Direction = "Inbound"
+ // Outbound ...
+ Outbound Direction = "Outbound"
+)
+
+// PossibleDirectionValues returns an array of possible values for the Direction const type.
+func PossibleDirectionValues() []Direction {
+ return []Direction{Inbound, Outbound}
+}
+
+// EnforcementMode enumerates the values for enforcement mode.
+type EnforcementMode string
+
+const (
+ // Audit ...
+ Audit EnforcementMode = "Audit"
+ // Enforce ...
+ Enforce EnforcementMode = "Enforce"
+ // None ...
+ None EnforcementMode = "None"
+)
+
+// PossibleEnforcementModeValues returns an array of possible values for the EnforcementMode const type.
+func PossibleEnforcementModeValues() []EnforcementMode {
+ return []EnforcementMode{Audit, Enforce, None}
+}
+
+// EnforcementSupport enumerates the values for enforcement support.
+type EnforcementSupport string
+
+const (
+ // EnforcementSupportNotSupported ...
+ EnforcementSupportNotSupported EnforcementSupport = "NotSupported"
+ // EnforcementSupportSupported ...
+ EnforcementSupportSupported EnforcementSupport = "Supported"
+ // EnforcementSupportUnknown ...
+ EnforcementSupportUnknown EnforcementSupport = "Unknown"
+)
+
+// PossibleEnforcementSupportValues returns an array of possible values for the EnforcementSupport const type.
+func PossibleEnforcementSupportValues() []EnforcementSupport {
+ return []EnforcementSupport{EnforcementSupportNotSupported, EnforcementSupportSupported, EnforcementSupportUnknown}
+}
+
+// EventSource enumerates the values for event source.
+type EventSource string
+
+const (
+ // Alerts ...
+ Alerts EventSource = "Alerts"
+ // Assessments ...
+ Assessments EventSource = "Assessments"
+)
+
+// PossibleEventSourceValues returns an array of possible values for the EventSource const type.
+func PossibleEventSourceValues() []EventSource {
+ return []EventSource{Alerts, Assessments}
+}
+
+// Exe enumerates the values for exe.
+type Exe string
+
+const (
+ // ExeAudit ...
+ ExeAudit Exe = "Audit"
+ // ExeEnforce ...
+ ExeEnforce Exe = "Enforce"
+ // ExeNone ...
+ ExeNone Exe = "None"
+)
+
+// PossibleExeValues returns an array of possible values for the Exe const type.
+func PossibleExeValues() []Exe {
+ return []Exe{ExeAudit, ExeEnforce, ExeNone}
+}
+
+// Executable enumerates the values for executable.
+type Executable string
+
+const (
+ // ExecutableAudit ...
+ ExecutableAudit Executable = "Audit"
+ // ExecutableEnforce ...
+ ExecutableEnforce Executable = "Enforce"
+ // ExecutableNone ...
+ ExecutableNone Executable = "None"
+)
+
+// PossibleExecutableValues returns an array of possible values for the Executable const type.
+func PossibleExecutableValues() []Executable {
+ return []Executable{ExecutableAudit, ExecutableEnforce, ExecutableNone}
+}
+
+// ExpandControlsEnum enumerates the values for expand controls enum.
+type ExpandControlsEnum string
+
+const (
+ // Definition Add definition object for each control
+ Definition ExpandControlsEnum = "definition"
+)
+
+// PossibleExpandControlsEnumValues returns an array of possible values for the ExpandControlsEnum const type.
+func PossibleExpandControlsEnumValues() []ExpandControlsEnum {
+ return []ExpandControlsEnum{Definition}
+}
+
+// ExpandEnum enumerates the values for expand enum.
+type ExpandEnum string
+
+const (
+ // Links All links associated with an assessment
+ Links ExpandEnum = "links"
+ // Metadata Assessment metadata
+ Metadata ExpandEnum = "metadata"
+)
+
+// PossibleExpandEnumValues returns an array of possible values for the ExpandEnum const type.
+func PossibleExpandEnumValues() []ExpandEnum {
+ return []ExpandEnum{Links, Metadata}
+}
+
+// ExportData enumerates the values for export data.
+type ExportData string
+
+const (
+ // RawEvents Agent raw events
+ RawEvents ExportData = "RawEvents"
+)
+
+// PossibleExportDataValues returns an array of possible values for the ExportData const type.
+func PossibleExportDataValues() []ExportData {
+ return []ExportData{RawEvents}
+}
+
+// ExternalSecuritySolutionKind enumerates the values for external security solution kind.
+type ExternalSecuritySolutionKind string
+
+const (
+ // AAD ...
+ AAD ExternalSecuritySolutionKind = "AAD"
+ // ATA ...
+ ATA ExternalSecuritySolutionKind = "ATA"
+ // CEF ...
+ CEF ExternalSecuritySolutionKind = "CEF"
+)
+
+// PossibleExternalSecuritySolutionKindValues returns an array of possible values for the ExternalSecuritySolutionKind const type.
+func PossibleExternalSecuritySolutionKindValues() []ExternalSecuritySolutionKind {
+ return []ExternalSecuritySolutionKind{AAD, ATA, CEF}
+}
+
+// Family enumerates the values for family.
+type Family string
+
+const (
+ // Ngfw ...
+ Ngfw Family = "Ngfw"
+ // SaasWaf ...
+ SaasWaf Family = "SaasWaf"
+ // Va ...
+ Va Family = "Va"
+ // Waf ...
+ Waf Family = "Waf"
+)
+
+// PossibleFamilyValues returns an array of possible values for the Family const type.
+func PossibleFamilyValues() []Family {
+ return []Family{Ngfw, SaasWaf, Va, Waf}
+}
+
+// FileType enumerates the values for file type.
+type FileType string
+
+const (
+ // FileTypeDll ...
+ FileTypeDll FileType = "Dll"
+ // FileTypeExe ...
+ FileTypeExe FileType = "Exe"
+ // FileTypeExecutable ...
+ FileTypeExecutable FileType = "Executable"
+ // FileTypeMsi ...
+ FileTypeMsi FileType = "Msi"
+ // FileTypeScript ...
+ FileTypeScript FileType = "Script"
+ // FileTypeUnknown ...
+ FileTypeUnknown FileType = "Unknown"
+)
+
+// PossibleFileTypeValues returns an array of possible values for the FileType const type.
+func PossibleFileTypeValues() []FileType {
+ return []FileType{FileTypeDll, FileTypeExe, FileTypeExecutable, FileTypeMsi, FileTypeScript, FileTypeUnknown}
+}
+
+// HybridComputeProvisioningState enumerates the values for hybrid compute provisioning state.
+type HybridComputeProvisioningState string
+
+const (
+ // HybridComputeProvisioningStateExpired the service principal details are expired
+ HybridComputeProvisioningStateExpired HybridComputeProvisioningState = "Expired"
+ // HybridComputeProvisioningStateInvalid Invalid service principal details.
+ HybridComputeProvisioningStateInvalid HybridComputeProvisioningState = "Invalid"
+ // HybridComputeProvisioningStateValid Valid service principal details.
+ HybridComputeProvisioningStateValid HybridComputeProvisioningState = "Valid"
+)
+
+// PossibleHybridComputeProvisioningStateValues returns an array of possible values for the HybridComputeProvisioningState const type.
+func PossibleHybridComputeProvisioningStateValues() []HybridComputeProvisioningState {
+ return []HybridComputeProvisioningState{HybridComputeProvisioningStateExpired, HybridComputeProvisioningStateInvalid, HybridComputeProvisioningStateValid}
+}
+
+// ImplementationEffort enumerates the values for implementation effort.
+type ImplementationEffort string
+
+const (
+ // ImplementationEffortHigh ...
+ ImplementationEffortHigh ImplementationEffort = "High"
+ // ImplementationEffortLow ...
+ ImplementationEffortLow ImplementationEffort = "Low"
+ // ImplementationEffortModerate ...
+ ImplementationEffortModerate ImplementationEffort = "Moderate"
+)
+
+// PossibleImplementationEffortValues returns an array of possible values for the ImplementationEffort const type.
+func PossibleImplementationEffortValues() []ImplementationEffort {
+ return []ImplementationEffort{ImplementationEffortHigh, ImplementationEffortLow, ImplementationEffortModerate}
+}
+
+// Issue enumerates the values for issue.
+type Issue string
+
+const (
+ // ExecutableViolationsAudited ...
+ ExecutableViolationsAudited Issue = "ExecutableViolationsAudited"
+ // MsiAndScriptViolationsAudited ...
+ MsiAndScriptViolationsAudited Issue = "MsiAndScriptViolationsAudited"
+ // MsiAndScriptViolationsBlocked ...
+ MsiAndScriptViolationsBlocked Issue = "MsiAndScriptViolationsBlocked"
+ // RulesViolatedManually ...
+ RulesViolatedManually Issue = "RulesViolatedManually"
+ // ViolationsAudited ...
+ ViolationsAudited Issue = "ViolationsAudited"
+ // ViolationsBlocked ...
+ ViolationsBlocked Issue = "ViolationsBlocked"
+)
+
+// PossibleIssueValues returns an array of possible values for the Issue const type.
+func PossibleIssueValues() []Issue {
+ return []Issue{ExecutableViolationsAudited, MsiAndScriptViolationsAudited, MsiAndScriptViolationsBlocked, RulesViolatedManually, ViolationsAudited, ViolationsBlocked}
+}
+
+// KindEnum enumerates the values for kind enum.
+type KindEnum string
+
+const (
+ // KindDataExportSettings ...
+ KindDataExportSettings KindEnum = "DataExportSettings"
+ // KindSetting ...
+ KindSetting KindEnum = "Setting"
+ // KindSettingResource ...
+ KindSettingResource KindEnum = "SettingResource"
+)
+
+// PossibleKindEnumValues returns an array of possible values for the KindEnum const type.
+func PossibleKindEnumValues() []KindEnum {
+ return []KindEnum{KindDataExportSettings, KindSetting, KindSettingResource}
+}
+
+// KindEnum1 enumerates the values for kind enum 1.
+type KindEnum1 string
+
+const (
+ // KindAAD ...
+ KindAAD KindEnum1 = "AAD"
+ // KindATA ...
+ KindATA KindEnum1 = "ATA"
+ // KindCEF ...
+ KindCEF KindEnum1 = "CEF"
+ // KindExternalSecuritySolution ...
+ KindExternalSecuritySolution KindEnum1 = "ExternalSecuritySolution"
+)
+
+// PossibleKindEnum1Values returns an array of possible values for the KindEnum1 const type.
+func PossibleKindEnum1Values() []KindEnum1 {
+ return []KindEnum1{KindAAD, KindATA, KindCEF, KindExternalSecuritySolution}
+}
+
+// Msi enumerates the values for msi.
+type Msi string
+
+const (
+ // MsiAudit ...
+ MsiAudit Msi = "Audit"
+ // MsiEnforce ...
+ MsiEnforce Msi = "Enforce"
+ // MsiNone ...
+ MsiNone Msi = "None"
+)
+
+// PossibleMsiValues returns an array of possible values for the Msi const type.
+func PossibleMsiValues() []Msi {
+ return []Msi{MsiAudit, MsiEnforce, MsiNone}
+}
+
+// Operator enumerates the values for operator.
+type Operator string
+
+const (
+ // Contains ...
+ Contains Operator = "Contains"
+ // EndsWith ...
+ EndsWith Operator = "EndsWith"
+ // Equals ...
+ Equals Operator = "Equals"
+ // GreaterThan ...
+ GreaterThan Operator = "GreaterThan"
+ // GreaterThanOrEqualTo ...
+ GreaterThanOrEqualTo Operator = "GreaterThanOrEqualTo"
+ // LesserThan ...
+ LesserThan Operator = "LesserThan"
+ // LesserThanOrEqualTo ...
+ LesserThanOrEqualTo Operator = "LesserThanOrEqualTo"
+ // NotEquals ...
+ NotEquals Operator = "NotEquals"
+ // StartsWith ...
+ StartsWith Operator = "StartsWith"
+)
+
+// PossibleOperatorValues returns an array of possible values for the Operator const type.
+func PossibleOperatorValues() []Operator {
+ return []Operator{Contains, EndsWith, Equals, GreaterThan, GreaterThanOrEqualTo, LesserThan, LesserThanOrEqualTo, NotEquals, StartsWith}
+}
+
+// PermissionProperty enumerates the values for permission property.
+type PermissionProperty string
+
+const (
+ // AWSAmazonSSMAutomationRole The permission provides for EC2 Automation service to execute activities
+ // defined within Automation documents.
+ AWSAmazonSSMAutomationRole PermissionProperty = "AWS::AmazonSSMAutomationRole"
+ // AWSAWSSecurityHubReadOnlyAccess This permission provides read only access to AWS Security Hub resources.
+ AWSAWSSecurityHubReadOnlyAccess PermissionProperty = "AWS::AWSSecurityHubReadOnlyAccess"
+ // AWSSecurityAudit This permission grants access to read security configuration metadata.
+ AWSSecurityAudit PermissionProperty = "AWS::SecurityAudit"
+ // GCPSecurityCenterAdminViewer This permission provides read only access to GCP Security Command Center.
+ GCPSecurityCenterAdminViewer PermissionProperty = "GCP::Security Center Admin Viewer"
+)
+
+// PossiblePermissionPropertyValues returns an array of possible values for the PermissionProperty const type.
+func PossiblePermissionPropertyValues() []PermissionProperty {
+ return []PermissionProperty{AWSAmazonSSMAutomationRole, AWSAWSSecurityHubReadOnlyAccess, AWSSecurityAudit, GCPSecurityCenterAdminViewer}
+}
+
+// PricingTier enumerates the values for pricing tier.
+type PricingTier string
+
+const (
+ // Free Get free Azure security center experience with basic security features
+ Free PricingTier = "Free"
+ // Standard Get the standard Azure security center experience with advanced security features
+ Standard PricingTier = "Standard"
+)
+
+// PossiblePricingTierValues returns an array of possible values for the PricingTier const type.
+func PossiblePricingTierValues() []PricingTier {
+ return []PricingTier{Free, Standard}
+}
+
+// PropertyType enumerates the values for property type.
+type PropertyType string
+
+const (
+ // Boolean ...
+ Boolean PropertyType = "Boolean"
+ // Integer ...
+ Integer PropertyType = "Integer"
+ // Number ...
+ Number PropertyType = "Number"
+ // String ...
+ String PropertyType = "String"
+)
+
+// PossiblePropertyTypeValues returns an array of possible values for the PropertyType const type.
+func PossiblePropertyTypeValues() []PropertyType {
+ return []PropertyType{Boolean, Integer, Number, String}
+}
+
+// Protocol enumerates the values for protocol.
+type Protocol string
+
+const (
+ // All ...
+ All Protocol = "*"
+ // TCP ...
+ TCP Protocol = "TCP"
+ // UDP ...
+ UDP Protocol = "UDP"
+)
+
+// PossibleProtocolValues returns an array of possible values for the Protocol const type.
+func PossibleProtocolValues() []Protocol {
+ return []Protocol{All, TCP, UDP}
+}
+
+// ProvisioningState enumerates the values for provisioning state.
+type ProvisioningState string
+
+const (
+ // ProvisioningStateFailed ...
+ ProvisioningStateFailed ProvisioningState = "Failed"
+ // ProvisioningStateSucceeded ...
+ ProvisioningStateSucceeded ProvisioningState = "Succeeded"
+ // ProvisioningStateUpdating ...
+ ProvisioningStateUpdating ProvisioningState = "Updating"
+)
+
+// PossibleProvisioningStateValues returns an array of possible values for the ProvisioningState const type.
+func PossibleProvisioningStateValues() []ProvisioningState {
+ return []ProvisioningState{ProvisioningStateFailed, ProvisioningStateSucceeded, ProvisioningStateUpdating}
+}
+
+// ProvisioningState1 enumerates the values for provisioning state 1.
+type ProvisioningState1 string
+
+const (
+ // ProvisioningState1Canceled ...
+ ProvisioningState1Canceled ProvisioningState1 = "Canceled"
+ // ProvisioningState1Deprovisioning ...
+ ProvisioningState1Deprovisioning ProvisioningState1 = "Deprovisioning"
+ // ProvisioningState1Failed ...
+ ProvisioningState1Failed ProvisioningState1 = "Failed"
+ // ProvisioningState1Provisioning ...
+ ProvisioningState1Provisioning ProvisioningState1 = "Provisioning"
+ // ProvisioningState1Succeeded ...
+ ProvisioningState1Succeeded ProvisioningState1 = "Succeeded"
+)
+
+// PossibleProvisioningState1Values returns an array of possible values for the ProvisioningState1 const type.
+func PossibleProvisioningState1Values() []ProvisioningState1 {
+ return []ProvisioningState1{ProvisioningState1Canceled, ProvisioningState1Deprovisioning, ProvisioningState1Failed, ProvisioningState1Provisioning, ProvisioningState1Succeeded}
+}
+
+// Rank enumerates the values for rank.
+type Rank string
+
+const (
+ // RankCritical ...
+ RankCritical Rank = "Critical"
+ // RankHigh ...
+ RankHigh Rank = "High"
+ // RankLow ...
+ RankLow Rank = "Low"
+ // RankMedium ...
+ RankMedium Rank = "Medium"
+ // RankNone ...
+ RankNone Rank = "None"
+)
+
+// PossibleRankValues returns an array of possible values for the Rank const type.
+func PossibleRankValues() []Rank {
+ return []Rank{RankCritical, RankHigh, RankLow, RankMedium, RankNone}
+}
+
+// RecommendationAction enumerates the values for recommendation action.
+type RecommendationAction string
+
+const (
+ // RecommendationActionAdd ...
+ RecommendationActionAdd RecommendationAction = "Add"
+ // RecommendationActionRecommended ...
+ RecommendationActionRecommended RecommendationAction = "Recommended"
+ // RecommendationActionRemove ...
+ RecommendationActionRemove RecommendationAction = "Remove"
+)
+
+// PossibleRecommendationActionValues returns an array of possible values for the RecommendationAction const type.
+func PossibleRecommendationActionValues() []RecommendationAction {
+ return []RecommendationAction{RecommendationActionAdd, RecommendationActionRecommended, RecommendationActionRemove}
+}
+
+// RecommendationAction1 enumerates the values for recommendation action 1.
+type RecommendationAction1 string
+
+const (
+ // RecommendationAction1Add ...
+ RecommendationAction1Add RecommendationAction1 = "Add"
+ // RecommendationAction1Recommended ...
+ RecommendationAction1Recommended RecommendationAction1 = "Recommended"
+ // RecommendationAction1Remove ...
+ RecommendationAction1Remove RecommendationAction1 = "Remove"
+)
+
+// PossibleRecommendationAction1Values returns an array of possible values for the RecommendationAction1 const type.
+func PossibleRecommendationAction1Values() []RecommendationAction1 {
+ return []RecommendationAction1{RecommendationAction1Add, RecommendationAction1Recommended, RecommendationAction1Remove}
+}
+
+// RecommendationConfigStatus enumerates the values for recommendation config status.
+type RecommendationConfigStatus string
+
+const (
+ // Disabled ...
+ Disabled RecommendationConfigStatus = "Disabled"
+ // Enabled ...
+ Enabled RecommendationConfigStatus = "Enabled"
+)
+
+// PossibleRecommendationConfigStatusValues returns an array of possible values for the RecommendationConfigStatus const type.
+func PossibleRecommendationConfigStatusValues() []RecommendationConfigStatus {
+ return []RecommendationConfigStatus{Disabled, Enabled}
+}
+
+// RecommendationSeverity enumerates the values for recommendation severity.
+type RecommendationSeverity string
+
+const (
+ // RecommendationSeverityHealthy ...
+ RecommendationSeverityHealthy RecommendationSeverity = "Healthy"
+ // RecommendationSeverityHigh ...
+ RecommendationSeverityHigh RecommendationSeverity = "High"
+ // RecommendationSeverityLow ...
+ RecommendationSeverityLow RecommendationSeverity = "Low"
+ // RecommendationSeverityMedium ...
+ RecommendationSeverityMedium RecommendationSeverity = "Medium"
+ // RecommendationSeverityNotApplicable ...
+ RecommendationSeverityNotApplicable RecommendationSeverity = "NotApplicable"
+ // RecommendationSeverityOffByPolicy ...
+ RecommendationSeverityOffByPolicy RecommendationSeverity = "OffByPolicy"
+ // RecommendationSeverityUnknown ...
+ RecommendationSeverityUnknown RecommendationSeverity = "Unknown"
+)
+
+// PossibleRecommendationSeverityValues returns an array of possible values for the RecommendationSeverity const type.
+func PossibleRecommendationSeverityValues() []RecommendationSeverity {
+ return []RecommendationSeverity{RecommendationSeverityHealthy, RecommendationSeverityHigh, RecommendationSeverityLow, RecommendationSeverityMedium, RecommendationSeverityNotApplicable, RecommendationSeverityOffByPolicy, RecommendationSeverityUnknown}
+}
+
+// RecommendationStatus enumerates the values for recommendation status.
+type RecommendationStatus string
+
+const (
+ // RecommendationStatusNoStatus ...
+ RecommendationStatusNoStatus RecommendationStatus = "NoStatus"
+ // RecommendationStatusNotAvailable ...
+ RecommendationStatusNotAvailable RecommendationStatus = "NotAvailable"
+ // RecommendationStatusNotRecommended ...
+ RecommendationStatusNotRecommended RecommendationStatus = "NotRecommended"
+ // RecommendationStatusRecommended ...
+ RecommendationStatusRecommended RecommendationStatus = "Recommended"
+)
+
+// PossibleRecommendationStatusValues returns an array of possible values for the RecommendationStatus const type.
+func PossibleRecommendationStatusValues() []RecommendationStatus {
+ return []RecommendationStatus{RecommendationStatusNoStatus, RecommendationStatusNotAvailable, RecommendationStatusNotRecommended, RecommendationStatusRecommended}
+}
+
+// RecommendationType enumerates the values for recommendation type.
+type RecommendationType string
+
+const (
+ // IoTACRAuthentication Authentication schema used for pull an edge module from an ACR repository does not
+ // use Service Principal Authentication.
+ IoTACRAuthentication RecommendationType = "IoT_ACRAuthentication"
+ // IoTAgentSendsUnutilizedMessages IoT agent message size capacity is currently underutilized, causing an
+ // increase in the number of sent messages. Adjust message intervals for better utilization.
+ IoTAgentSendsUnutilizedMessages RecommendationType = "IoT_AgentSendsUnutilizedMessages"
+ // IoTBaseline Identified security related system configuration issues.
+ IoTBaseline RecommendationType = "IoT_Baseline"
+ // IoTEdgeHubMemOptimize You can optimize Edge Hub memory usage by turning off protocol heads for any
+ // protocols not used by Edge modules in your solution.
+ IoTEdgeHubMemOptimize RecommendationType = "IoT_EdgeHubMemOptimize"
+ // IoTEdgeLoggingOptions Logging is disabled for this edge module.
+ IoTEdgeLoggingOptions RecommendationType = "IoT_EdgeLoggingOptions"
+ // IoTInconsistentModuleSettings A minority within a device security group has inconsistent Edge Module
+ // settings with the rest of their group.
+ IoTInconsistentModuleSettings RecommendationType = "IoT_InconsistentModuleSettings"
+ // IoTInstallAgent Install the Azure Security of Things Agent.
+ IoTInstallAgent RecommendationType = "IoT_InstallAgent"
+ // IoTIPFilterDenyAll IP Filter Configuration should have rules defined for allowed traffic and should deny
+ // all other traffic by default.
+ IoTIPFilterDenyAll RecommendationType = "IoT_IPFilter_DenyAll"
+ // IoTIPFilterPermissiveRule An Allow IP Filter rules source IP range is too large. Overly permissive rules
+ // might expose your IoT hub to malicious intenders.
+ IoTIPFilterPermissiveRule RecommendationType = "IoT_IPFilter_PermissiveRule"
+ // IoTOpenPorts A listening endpoint was found on the device.
+ IoTOpenPorts RecommendationType = "IoT_OpenPorts"
+ // IoTPermissiveFirewallPolicy An Allowed firewall policy was found (INPUT/OUTPUT). The policy should Deny
+ // all traffic by default and define rules to allow necessary communication to/from the device.
+ IoTPermissiveFirewallPolicy RecommendationType = "IoT_PermissiveFirewallPolicy"
+ // IoTPermissiveInputFirewallRules A rule in the firewall has been found that contains a permissive pattern
+ // for a wide range of IP addresses or Ports.
+ IoTPermissiveInputFirewallRules RecommendationType = "IoT_PermissiveInputFirewallRules"
+ // IoTPermissiveOutputFirewallRules A rule in the firewall has been found that contains a permissive
+ // pattern for a wide range of IP addresses or Ports.
+ IoTPermissiveOutputFirewallRules RecommendationType = "IoT_PermissiveOutputFirewallRules"
+ // IoTPrivilegedDockerOptions Edge module is configured to run in privileged mode, with extensive Linux
+ // capabilities or with host-level network access (send/receive data to host machine).
+ IoTPrivilegedDockerOptions RecommendationType = "IoT_PrivilegedDockerOptions"
+ // IoTSharedCredentials Same authentication credentials to the IoT Hub used by multiple devices. This could
+ // indicate an illegitimate device impersonating a legitimate device. It also exposes the risk of device
+ // impersonation by an attacker.
+ IoTSharedCredentials RecommendationType = "IoT_SharedCredentials"
+ // IoTVulnerableTLSCipherSuite Insecure TLS configurations detected. Immediate upgrade recommended.
+ IoTVulnerableTLSCipherSuite RecommendationType = "IoT_VulnerableTLSCipherSuite"
+)
+
+// PossibleRecommendationTypeValues returns an array of possible values for the RecommendationType const type.
+func PossibleRecommendationTypeValues() []RecommendationType {
+ return []RecommendationType{IoTACRAuthentication, IoTAgentSendsUnutilizedMessages, IoTBaseline, IoTEdgeHubMemOptimize, IoTEdgeLoggingOptions, IoTInconsistentModuleSettings, IoTInstallAgent, IoTIPFilterDenyAll, IoTIPFilterPermissiveRule, IoTOpenPorts, IoTPermissiveFirewallPolicy, IoTPermissiveInputFirewallRules, IoTPermissiveOutputFirewallRules, IoTPrivilegedDockerOptions, IoTSharedCredentials, IoTVulnerableTLSCipherSuite}
+}
+
+// ReportedSeverity enumerates the values for reported severity.
+type ReportedSeverity string
+
+const (
+ // ReportedSeverityHigh ...
+ ReportedSeverityHigh ReportedSeverity = "High"
+ // ReportedSeverityInformational ...
+ ReportedSeverityInformational ReportedSeverity = "Informational"
+ // ReportedSeverityLow ...
+ ReportedSeverityLow ReportedSeverity = "Low"
+ // ReportedSeverityMedium ...
+ ReportedSeverityMedium ReportedSeverity = "Medium"
+)
+
+// PossibleReportedSeverityValues returns an array of possible values for the ReportedSeverity const type.
+func PossibleReportedSeverityValues() []ReportedSeverity {
+ return []ReportedSeverity{ReportedSeverityHigh, ReportedSeverityInformational, ReportedSeverityLow, ReportedSeverityMedium}
+}
+
+// ResourceStatus enumerates the values for resource status.
+type ResourceStatus string
+
+const (
+ // ResourceStatusHealthy This assessment on the resource is healthy
+ ResourceStatusHealthy ResourceStatus = "Healthy"
+ // ResourceStatusNotApplicable This assessment is not applicable to this resource
+ ResourceStatusNotApplicable ResourceStatus = "NotApplicable"
+ // ResourceStatusNotHealthy This assessment on the resource is not healthy
+ ResourceStatusNotHealthy ResourceStatus = "NotHealthy"
+ // ResourceStatusOffByPolicy This assessment is turned off by policy on this subscription
+ ResourceStatusOffByPolicy ResourceStatus = "OffByPolicy"
+)
+
+// PossibleResourceStatusValues returns an array of possible values for the ResourceStatus const type.
+func PossibleResourceStatusValues() []ResourceStatus {
+ return []ResourceStatus{ResourceStatusHealthy, ResourceStatusNotApplicable, ResourceStatusNotHealthy, ResourceStatusOffByPolicy}
+}
+
+// RuleState enumerates the values for rule state.
+type RuleState string
+
+const (
+ // RuleStateDisabled ...
+ RuleStateDisabled RuleState = "Disabled"
+ // RuleStateEnabled ...
+ RuleStateEnabled RuleState = "Enabled"
+ // RuleStateExpired ...
+ RuleStateExpired RuleState = "Expired"
+)
+
+// PossibleRuleStateValues returns an array of possible values for the RuleState const type.
+func PossibleRuleStateValues() []RuleState {
+ return []RuleState{RuleStateDisabled, RuleStateEnabled, RuleStateExpired}
+}
+
+// RuleType enumerates the values for rule type.
+type RuleType string
+
+const (
+ // RuleTypeActiveConnectionsNotInAllowedRange ...
+ RuleTypeActiveConnectionsNotInAllowedRange RuleType = "ActiveConnectionsNotInAllowedRange"
+ // RuleTypeAllowlistCustomAlertRule ...
+ RuleTypeAllowlistCustomAlertRule RuleType = "AllowlistCustomAlertRule"
+ // RuleTypeAmqpC2DMessagesNotInAllowedRange ...
+ RuleTypeAmqpC2DMessagesNotInAllowedRange RuleType = "AmqpC2DMessagesNotInAllowedRange"
+ // RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange ...
+ RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange RuleType = "AmqpC2DRejectedMessagesNotInAllowedRange"
+ // RuleTypeAmqpD2CMessagesNotInAllowedRange ...
+ RuleTypeAmqpD2CMessagesNotInAllowedRange RuleType = "AmqpD2CMessagesNotInAllowedRange"
+ // RuleTypeConnectionToIPNotAllowed ...
+ RuleTypeConnectionToIPNotAllowed RuleType = "ConnectionToIpNotAllowed"
+ // RuleTypeCustomAlertRule ...
+ RuleTypeCustomAlertRule RuleType = "CustomAlertRule"
+ // RuleTypeDenylistCustomAlertRule ...
+ RuleTypeDenylistCustomAlertRule RuleType = "DenylistCustomAlertRule"
+ // RuleTypeDirectMethodInvokesNotInAllowedRange ...
+ RuleTypeDirectMethodInvokesNotInAllowedRange RuleType = "DirectMethodInvokesNotInAllowedRange"
+ // RuleTypeFailedLocalLoginsNotInAllowedRange ...
+ RuleTypeFailedLocalLoginsNotInAllowedRange RuleType = "FailedLocalLoginsNotInAllowedRange"
+ // RuleTypeFileUploadsNotInAllowedRange ...
+ RuleTypeFileUploadsNotInAllowedRange RuleType = "FileUploadsNotInAllowedRange"
+ // RuleTypeHTTPC2DMessagesNotInAllowedRange ...
+ RuleTypeHTTPC2DMessagesNotInAllowedRange RuleType = "HttpC2DMessagesNotInAllowedRange"
+ // RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange ...
+ RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange RuleType = "HttpC2DRejectedMessagesNotInAllowedRange"
+ // RuleTypeHTTPD2CMessagesNotInAllowedRange ...
+ RuleTypeHTTPD2CMessagesNotInAllowedRange RuleType = "HttpD2CMessagesNotInAllowedRange"
+ // RuleTypeListCustomAlertRule ...
+ RuleTypeListCustomAlertRule RuleType = "ListCustomAlertRule"
+ // RuleTypeLocalUserNotAllowed ...
+ RuleTypeLocalUserNotAllowed RuleType = "LocalUserNotAllowed"
+ // RuleTypeMqttC2DMessagesNotInAllowedRange ...
+ RuleTypeMqttC2DMessagesNotInAllowedRange RuleType = "MqttC2DMessagesNotInAllowedRange"
+ // RuleTypeMqttC2DRejectedMessagesNotInAllowedRange ...
+ RuleTypeMqttC2DRejectedMessagesNotInAllowedRange RuleType = "MqttC2DRejectedMessagesNotInAllowedRange"
+ // RuleTypeMqttD2CMessagesNotInAllowedRange ...
+ RuleTypeMqttD2CMessagesNotInAllowedRange RuleType = "MqttD2CMessagesNotInAllowedRange"
+ // RuleTypeProcessNotAllowed ...
+ RuleTypeProcessNotAllowed RuleType = "ProcessNotAllowed"
+ // RuleTypeQueuePurgesNotInAllowedRange ...
+ RuleTypeQueuePurgesNotInAllowedRange RuleType = "QueuePurgesNotInAllowedRange"
+ // RuleTypeThresholdCustomAlertRule ...
+ RuleTypeThresholdCustomAlertRule RuleType = "ThresholdCustomAlertRule"
+ // RuleTypeTimeWindowCustomAlertRule ...
+ RuleTypeTimeWindowCustomAlertRule RuleType = "TimeWindowCustomAlertRule"
+ // RuleTypeTwinUpdatesNotInAllowedRange ...
+ RuleTypeTwinUpdatesNotInAllowedRange RuleType = "TwinUpdatesNotInAllowedRange"
+ // RuleTypeUnauthorizedOperationsNotInAllowedRange ...
+ RuleTypeUnauthorizedOperationsNotInAllowedRange RuleType = "UnauthorizedOperationsNotInAllowedRange"
+)
+
+// PossibleRuleTypeValues returns an array of possible values for the RuleType const type.
+func PossibleRuleTypeValues() []RuleType {
+ return []RuleType{RuleTypeActiveConnectionsNotInAllowedRange, RuleTypeAllowlistCustomAlertRule, RuleTypeAmqpC2DMessagesNotInAllowedRange, RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange, RuleTypeAmqpD2CMessagesNotInAllowedRange, RuleTypeConnectionToIPNotAllowed, RuleTypeCustomAlertRule, RuleTypeDenylistCustomAlertRule, RuleTypeDirectMethodInvokesNotInAllowedRange, RuleTypeFailedLocalLoginsNotInAllowedRange, RuleTypeFileUploadsNotInAllowedRange, RuleTypeHTTPC2DMessagesNotInAllowedRange, RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange, RuleTypeHTTPD2CMessagesNotInAllowedRange, RuleTypeListCustomAlertRule, RuleTypeLocalUserNotAllowed, RuleTypeMqttC2DMessagesNotInAllowedRange, RuleTypeMqttC2DRejectedMessagesNotInAllowedRange, RuleTypeMqttD2CMessagesNotInAllowedRange, RuleTypeProcessNotAllowed, RuleTypeQueuePurgesNotInAllowedRange, RuleTypeThresholdCustomAlertRule, RuleTypeTimeWindowCustomAlertRule, RuleTypeTwinUpdatesNotInAllowedRange, RuleTypeUnauthorizedOperationsNotInAllowedRange}
+}
+
+// Script enumerates the values for script.
+type Script string
+
+const (
+ // ScriptAudit ...
+ ScriptAudit Script = "Audit"
+ // ScriptEnforce ...
+ ScriptEnforce Script = "Enforce"
+ // ScriptNone ...
+ ScriptNone Script = "None"
+)
+
+// PossibleScriptValues returns an array of possible values for the Script const type.
+func PossibleScriptValues() []Script {
+ return []Script{ScriptAudit, ScriptEnforce, ScriptNone}
+}
+
+// Severity enumerates the values for severity.
+type Severity string
+
+const (
+ // SeverityHigh ...
+ SeverityHigh Severity = "High"
+ // SeverityLow ...
+ SeverityLow Severity = "Low"
+ // SeverityMedium ...
+ SeverityMedium Severity = "Medium"
+)
+
+// PossibleSeverityValues returns an array of possible values for the Severity const type.
+func PossibleSeverityValues() []Severity {
+ return []Severity{SeverityHigh, SeverityLow, SeverityMedium}
+}
+
+// SolutionStatus enumerates the values for solution status.
+type SolutionStatus string
+
+const (
+ // SolutionStatusDisabled ...
+ SolutionStatusDisabled SolutionStatus = "Disabled"
+ // SolutionStatusEnabled ...
+ SolutionStatusEnabled SolutionStatus = "Enabled"
+)
+
+// PossibleSolutionStatusValues returns an array of possible values for the SolutionStatus const type.
+func PossibleSolutionStatusValues() []SolutionStatus {
+ return []SolutionStatus{SolutionStatusDisabled, SolutionStatusEnabled}
+}
+
+// Source enumerates the values for source.
+type Source string
+
+const (
+ // SourceAzure ...
+ SourceAzure Source = "Azure"
+ // SourceOnPremise ...
+ SourceOnPremise Source = "OnPremise"
+ // SourceOnPremiseSQL ...
+ SourceOnPremiseSQL Source = "OnPremiseSql"
+ // SourceResourceDetails ...
+ SourceResourceDetails Source = "ResourceDetails"
+)
+
+// PossibleSourceValues returns an array of possible values for the Source const type.
+func PossibleSourceValues() []Source {
+ return []Source{SourceAzure, SourceOnPremise, SourceOnPremiseSQL, SourceResourceDetails}
+}
+
+// SourceSystem enumerates the values for source system.
+type SourceSystem string
+
+const (
+ // SourceSystemAzureAppLocker ...
+ SourceSystemAzureAppLocker SourceSystem = "Azure_AppLocker"
+ // SourceSystemAzureAuditD ...
+ SourceSystemAzureAuditD SourceSystem = "Azure_AuditD"
+ // SourceSystemNonAzureAppLocker ...
+ SourceSystemNonAzureAppLocker SourceSystem = "NonAzure_AppLocker"
+ // SourceSystemNonAzureAuditD ...
+ SourceSystemNonAzureAuditD SourceSystem = "NonAzure_AuditD"
+ // SourceSystemNone ...
+ SourceSystemNone SourceSystem = "None"
+)
+
+// PossibleSourceSystemValues returns an array of possible values for the SourceSystem const type.
+func PossibleSourceSystemValues() []SourceSystem {
+ return []SourceSystem{SourceSystemAzureAppLocker, SourceSystemAzureAuditD, SourceSystemNonAzureAppLocker, SourceSystemNonAzureAuditD, SourceSystemNone}
+}
+
+// State enumerates the values for state.
+type State string
+
+const (
+ // StateFailed At least one supported regulatory compliance control in the given standard has a state of
+ // failed
+ StateFailed State = "Failed"
+ // StatePassed All supported regulatory compliance controls in the given standard have a passed state
+ StatePassed State = "Passed"
+ // StateSkipped All supported regulatory compliance controls in the given standard have a state of skipped
+ StateSkipped State = "Skipped"
+ // StateUnsupported No supported regulatory compliance data for the given standard
+ StateUnsupported State = "Unsupported"
+)
+
+// PossibleStateValues returns an array of possible values for the State const type.
+func PossibleStateValues() []State {
+ return []State{StateFailed, StatePassed, StateSkipped, StateUnsupported}
+}
+
+// Status enumerates the values for status.
+type Status string
+
+const (
+ // Initiated ...
+ Initiated Status = "Initiated"
+ // Revoked ...
+ Revoked Status = "Revoked"
+)
+
+// PossibleStatusValues returns an array of possible values for the Status const type.
+func PossibleStatusValues() []Status {
+ return []Status{Initiated, Revoked}
+}
+
+// StatusReason enumerates the values for status reason.
+type StatusReason string
+
+const (
+ // StatusReasonExpired ...
+ StatusReasonExpired StatusReason = "Expired"
+ // StatusReasonNewerRequestInitiated ...
+ StatusReasonNewerRequestInitiated StatusReason = "NewerRequestInitiated"
+ // StatusReasonUserRequested ...
+ StatusReasonUserRequested StatusReason = "UserRequested"
+)
+
+// PossibleStatusReasonValues returns an array of possible values for the StatusReason const type.
+func PossibleStatusReasonValues() []StatusReason {
+ return []StatusReason{StatusReasonExpired, StatusReasonNewerRequestInitiated, StatusReasonUserRequested}
+}
+
+// SubAssessmentStatusCode enumerates the values for sub assessment status code.
+type SubAssessmentStatusCode string
+
+const (
+ // SubAssessmentStatusCodeHealthy The resource is healthy
+ SubAssessmentStatusCodeHealthy SubAssessmentStatusCode = "Healthy"
+ // SubAssessmentStatusCodeNotApplicable Assessment for this resource did not happen
+ SubAssessmentStatusCodeNotApplicable SubAssessmentStatusCode = "NotApplicable"
+ // SubAssessmentStatusCodeUnhealthy The resource has a security issue that needs to be addressed
+ SubAssessmentStatusCodeUnhealthy SubAssessmentStatusCode = "Unhealthy"
+)
+
+// PossibleSubAssessmentStatusCodeValues returns an array of possible values for the SubAssessmentStatusCode const type.
+func PossibleSubAssessmentStatusCodeValues() []SubAssessmentStatusCode {
+ return []SubAssessmentStatusCode{SubAssessmentStatusCodeHealthy, SubAssessmentStatusCodeNotApplicable, SubAssessmentStatusCodeUnhealthy}
+}
+
+// Threats enumerates the values for threats.
+type Threats string
+
+const (
+ // AccountBreach ...
+ AccountBreach Threats = "accountBreach"
+ // DataExfiltration ...
+ DataExfiltration Threats = "dataExfiltration"
+ // DataSpillage ...
+ DataSpillage Threats = "dataSpillage"
+ // DenialOfService ...
+ DenialOfService Threats = "denialOfService"
+ // ElevationOfPrivilege ...
+ ElevationOfPrivilege Threats = "elevationOfPrivilege"
+ // MaliciousInsider ...
+ MaliciousInsider Threats = "maliciousInsider"
+ // MissingCoverage ...
+ MissingCoverage Threats = "missingCoverage"
+ // ThreatResistance ...
+ ThreatResistance Threats = "threatResistance"
+)
+
+// PossibleThreatsValues returns an array of possible values for the Threats const type.
+func PossibleThreatsValues() []Threats {
+ return []Threats{AccountBreach, DataExfiltration, DataSpillage, DenialOfService, ElevationOfPrivilege, MaliciousInsider, MissingCoverage, ThreatResistance}
+}
+
+// TransportProtocol enumerates the values for transport protocol.
+type TransportProtocol string
+
+const (
+ // TransportProtocolTCP ...
+ TransportProtocolTCP TransportProtocol = "TCP"
+ // TransportProtocolUDP ...
+ TransportProtocolUDP TransportProtocol = "UDP"
+)
+
+// PossibleTransportProtocolValues returns an array of possible values for the TransportProtocol const type.
+func PossibleTransportProtocolValues() []TransportProtocol {
+ return []TransportProtocol{TransportProtocolTCP, TransportProtocolUDP}
+}
+
+// Type enumerates the values for type.
+type Type string
+
+const (
+ // BinarySignature ...
+ BinarySignature Type = "BinarySignature"
+ // File ...
+ File Type = "File"
+ // FileHash ...
+ FileHash Type = "FileHash"
+ // ProductSignature ...
+ ProductSignature Type = "ProductSignature"
+ // PublisherSignature ...
+ PublisherSignature Type = "PublisherSignature"
+ // VersionAndAboveSignature ...
+ VersionAndAboveSignature Type = "VersionAndAboveSignature"
+)
+
+// PossibleTypeValues returns an array of possible values for the Type const type.
+func PossibleTypeValues() []Type {
+ return []Type{BinarySignature, File, FileHash, ProductSignature, PublisherSignature, VersionAndAboveSignature}
+}
+
+// UnmaskedIPLoggingStatus enumerates the values for unmasked ip logging status.
+type UnmaskedIPLoggingStatus string
+
+const (
+ // UnmaskedIPLoggingStatusDisabled Unmasked IP logging is disabled
+ UnmaskedIPLoggingStatusDisabled UnmaskedIPLoggingStatus = "Disabled"
+ // UnmaskedIPLoggingStatusEnabled Unmasked IP logging is enabled
+ UnmaskedIPLoggingStatusEnabled UnmaskedIPLoggingStatus = "Enabled"
+)
+
+// PossibleUnmaskedIPLoggingStatusValues returns an array of possible values for the UnmaskedIPLoggingStatus const type.
+func PossibleUnmaskedIPLoggingStatusValues() []UnmaskedIPLoggingStatus {
+ return []UnmaskedIPLoggingStatus{UnmaskedIPLoggingStatusDisabled, UnmaskedIPLoggingStatusEnabled}
+}
+
+// UserImpact enumerates the values for user impact.
+type UserImpact string
+
+const (
+ // UserImpactHigh ...
+ UserImpactHigh UserImpact = "High"
+ // UserImpactLow ...
+ UserImpactLow UserImpact = "Low"
+ // UserImpactModerate ...
+ UserImpactModerate UserImpact = "Moderate"
+)
+
+// PossibleUserImpactValues returns an array of possible values for the UserImpact const type.
+func PossibleUserImpactValues() []UserImpact {
+ return []UserImpact{UserImpactHigh, UserImpactLow, UserImpactModerate}
+}
+
+// ValueType enumerates the values for value type.
+type ValueType string
+
+const (
+ // ValueTypeIPCidr An IP range in CIDR format (e.g. '192.168.0.1/8').
+ ValueTypeIPCidr ValueType = "IpCidr"
+ // ValueTypeString Any string value.
+ ValueTypeString ValueType = "String"
+)
+
+// PossibleValueTypeValues returns an array of possible values for the ValueType const type.
+func PossibleValueTypeValues() []ValueType {
+ return []ValueType{ValueTypeIPCidr, ValueTypeString}
+}
diff --git a/services/preview/security/mgmt/v3.0/security/externalsecuritysolutions.go b/services/preview/security/mgmt/v3.0/security/externalsecuritysolutions.go
index 614aa067c07b..1ab1c466384f 100644
--- a/services/preview/security/mgmt/v3.0/security/externalsecuritysolutions.go
+++ b/services/preview/security/mgmt/v3.0/security/externalsecuritysolutions.go
@@ -99,7 +99,7 @@ func (client ExternalSecuritySolutionsClient) GetPreparer(ctx context.Context, r
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -123,7 +123,6 @@ func (client ExternalSecuritySolutionsClient) GetSender(req *http.Request) (*htt
func (client ExternalSecuritySolutionsClient) GetResponder(resp *http.Response) (result ExternalSecuritySolutionModel, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -167,6 +166,9 @@ func (client ExternalSecuritySolutionsClient) List(ctx context.Context) (result
if err != nil {
err = autorest.NewErrorWithError(err, "security.ExternalSecuritySolutionsClient", "List", resp, "Failure responding to request")
}
+ if result.essl.hasNextLink() && result.essl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -177,7 +179,7 @@ func (client ExternalSecuritySolutionsClient) ListPreparer(ctx context.Context)
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -201,7 +203,6 @@ func (client ExternalSecuritySolutionsClient) ListSender(req *http.Request) (*ht
func (client ExternalSecuritySolutionsClient) ListResponder(resp *http.Response) (result ExternalSecuritySolutionList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -282,6 +283,9 @@ func (client ExternalSecuritySolutionsClient) ListByHomeRegion(ctx context.Conte
if err != nil {
err = autorest.NewErrorWithError(err, "security.ExternalSecuritySolutionsClient", "ListByHomeRegion", resp, "Failure responding to request")
}
+ if result.essl.hasNextLink() && result.essl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -293,7 +297,7 @@ func (client ExternalSecuritySolutionsClient) ListByHomeRegionPreparer(ctx conte
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -317,7 +321,6 @@ func (client ExternalSecuritySolutionsClient) ListByHomeRegionSender(req *http.R
func (client ExternalSecuritySolutionsClient) ListByHomeRegionResponder(resp *http.Response) (result ExternalSecuritySolutionList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/informationprotectionpolicies.go b/services/preview/security/mgmt/v3.0/security/informationprotectionpolicies.go
index b1ca96db2f94..22f070a19352 100644
--- a/services/preview/security/mgmt/v3.0/security/informationprotectionpolicies.go
+++ b/services/preview/security/mgmt/v3.0/security/informationprotectionpolicies.go
@@ -47,7 +47,8 @@ func NewInformationProtectionPoliciesClientWithBaseURI(baseURI string, subscript
// scope - scope of the query, can be subscription (/subscriptions/0b06d9ea-afe6-4779-bd59-30e5c2d9d13f) or
// management group (/providers/Microsoft.Management/managementGroups/mgName).
// informationProtectionPolicyName - name of the information protection policy.
-func (client InformationProtectionPoliciesClient) CreateOrUpdate(ctx context.Context, scope string, informationProtectionPolicyName string) (result InformationProtectionPolicy, err error) {
+// informationProtectionPolicy - information protection policy.
+func (client InformationProtectionPoliciesClient) CreateOrUpdate(ctx context.Context, scope string, informationProtectionPolicyName string, informationProtectionPolicy InformationProtectionPolicy) (result InformationProtectionPolicy, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/InformationProtectionPoliciesClient.CreateOrUpdate")
defer func() {
@@ -58,7 +59,7 @@ func (client InformationProtectionPoliciesClient) CreateOrUpdate(ctx context.Con
tracing.EndSpan(ctx, sc, err)
}()
}
- req, err := client.CreateOrUpdatePreparer(ctx, scope, informationProtectionPolicyName)
+ req, err := client.CreateOrUpdatePreparer(ctx, scope, informationProtectionPolicyName, informationProtectionPolicy)
if err != nil {
err = autorest.NewErrorWithError(err, "security.InformationProtectionPoliciesClient", "CreateOrUpdate", nil, "Failure preparing request")
return
@@ -80,10 +81,10 @@ func (client InformationProtectionPoliciesClient) CreateOrUpdate(ctx context.Con
}
// CreateOrUpdatePreparer prepares the CreateOrUpdate request.
-func (client InformationProtectionPoliciesClient) CreateOrUpdatePreparer(ctx context.Context, scope string, informationProtectionPolicyName string) (*http.Request, error) {
+func (client InformationProtectionPoliciesClient) CreateOrUpdatePreparer(ctx context.Context, scope string, informationProtectionPolicyName string, informationProtectionPolicy InformationProtectionPolicy) (*http.Request, error) {
pathParameters := map[string]interface{}{
"informationProtectionPolicyName": autorest.Encode("path", informationProtectionPolicyName),
- "scope": autorest.Encode("path", scope),
+ "scope": scope,
}
const APIVersion = "2017-08-01-preview"
@@ -92,9 +93,11 @@ func (client InformationProtectionPoliciesClient) CreateOrUpdatePreparer(ctx con
}
preparer := autorest.CreatePreparer(
+ autorest.AsContentType("application/json; charset=utf-8"),
autorest.AsPut(),
autorest.WithBaseURL(client.BaseURI),
autorest.WithPathParameters("/{scope}/providers/Microsoft.Security/informationProtectionPolicies/{informationProtectionPolicyName}", pathParameters),
+ autorest.WithJSON(informationProtectionPolicy),
autorest.WithQueryParameters(queryParameters))
return preparer.Prepare((&http.Request{}).WithContext(ctx))
}
@@ -110,7 +113,6 @@ func (client InformationProtectionPoliciesClient) CreateOrUpdateSender(req *http
func (client InformationProtectionPoliciesClient) CreateOrUpdateResponder(resp *http.Response) (result InformationProtectionPolicy, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -159,7 +161,7 @@ func (client InformationProtectionPoliciesClient) Get(ctx context.Context, scope
func (client InformationProtectionPoliciesClient) GetPreparer(ctx context.Context, scope string, informationProtectionPolicyName string) (*http.Request, error) {
pathParameters := map[string]interface{}{
"informationProtectionPolicyName": autorest.Encode("path", informationProtectionPolicyName),
- "scope": autorest.Encode("path", scope),
+ "scope": scope,
}
const APIVersion = "2017-08-01-preview"
@@ -186,7 +188,6 @@ func (client InformationProtectionPoliciesClient) GetSender(req *http.Request) (
func (client InformationProtectionPoliciesClient) GetResponder(resp *http.Response) (result InformationProtectionPolicy, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -227,6 +228,9 @@ func (client InformationProtectionPoliciesClient) List(ctx context.Context, scop
if err != nil {
err = autorest.NewErrorWithError(err, "security.InformationProtectionPoliciesClient", "List", resp, "Failure responding to request")
}
+ if result.ippl.hasNextLink() && result.ippl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -234,7 +238,7 @@ func (client InformationProtectionPoliciesClient) List(ctx context.Context, scop
// ListPreparer prepares the List request.
func (client InformationProtectionPoliciesClient) ListPreparer(ctx context.Context, scope string) (*http.Request, error) {
pathParameters := map[string]interface{}{
- "scope": autorest.Encode("path", scope),
+ "scope": scope,
}
const APIVersion = "2017-08-01-preview"
@@ -261,7 +265,6 @@ func (client InformationProtectionPoliciesClient) ListSender(req *http.Request)
func (client InformationProtectionPoliciesClient) ListResponder(resp *http.Response) (result InformationProtectionPolicyList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/iotalerts.go b/services/preview/security/mgmt/v3.0/security/iotalerts.go
new file mode 100644
index 000000000000..9058b8a9d07a
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/iotalerts.go
@@ -0,0 +1,278 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "context"
+ "github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
+ "github.com/Azure/go-autorest/autorest/validation"
+ "github.com/Azure/go-autorest/tracing"
+ "net/http"
+)
+
+// IotAlertsClient is the API spec for Microsoft.Security (Azure Security Center) resource provider
+type IotAlertsClient struct {
+ BaseClient
+}
+
+// NewIotAlertsClient creates an instance of the IotAlertsClient client.
+func NewIotAlertsClient(subscriptionID string, ascLocation string) IotAlertsClient {
+ return NewIotAlertsClientWithBaseURI(DefaultBaseURI, subscriptionID, ascLocation)
+}
+
+// NewIotAlertsClientWithBaseURI creates an instance of the IotAlertsClient client using a custom endpoint. Use this
+// when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack).
+func NewIotAlertsClientWithBaseURI(baseURI string, subscriptionID string, ascLocation string) IotAlertsClient {
+ return IotAlertsClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
+}
+
+// Get get IoT alert
+// Parameters:
+// resourceGroupName - the name of the resource group within the user's subscription. The name is case
+// insensitive.
+// solutionName - the name of the IoT Security solution.
+// iotAlertID - id of the alert
+func (client IotAlertsClient) Get(ctx context.Context, resourceGroupName string, solutionName string, iotAlertID string) (result IotAlert, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotAlertsClient.Get")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: resourceGroupName,
+ Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.IotAlertsClient", "Get", err.Error())
+ }
+
+ req, err := client.GetPreparer(ctx, resourceGroupName, solutionName, iotAlertID)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotAlertsClient", "Get", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.GetSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.IotAlertsClient", "Get", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.GetResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotAlertsClient", "Get", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// GetPreparer prepares the Get request.
+func (client IotAlertsClient) GetPreparer(ctx context.Context, resourceGroupName string, solutionName string, iotAlertID string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "iotAlertId": autorest.Encode("path", iotAlertID),
+ "resourceGroupName": autorest.Encode("path", resourceGroupName),
+ "solutionName": autorest.Encode("path", solutionName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2019-08-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotAlerts/{iotAlertId}", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// GetSender sends the Get request. The method will close the
+// http.Response Body if it receives an error.
+func (client IotAlertsClient) GetSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// GetResponder handles the response to the Get request. The method always
+// closes the http.Response Body.
+func (client IotAlertsClient) GetResponder(resp *http.Response) (result IotAlert, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// List list IoT alerts
+// Parameters:
+// resourceGroupName - the name of the resource group within the user's subscription. The name is case
+// insensitive.
+// solutionName - the name of the IoT Security solution.
+// minStartTimeUtc - filter by minimum startTimeUtc (ISO 8601 format)
+// maxStartTimeUtc - filter by maximum startTimeUtc (ISO 8601 format)
+// alertType - filter by alert type
+// limit - limit the number of items returned in a single page
+// skipToken - skip token used for pagination
+func (client IotAlertsClient) List(ctx context.Context, resourceGroupName string, solutionName string, minStartTimeUtc string, maxStartTimeUtc string, alertType string, limit *int32, skipToken string) (result IotAlertListPage, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotAlertsClient.List")
+ defer func() {
+ sc := -1
+ if result.ial.Response.Response != nil {
+ sc = result.ial.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: resourceGroupName,
+ Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.IotAlertsClient", "List", err.Error())
+ }
+
+ result.fn = client.listNextResults
+ req, err := client.ListPreparer(ctx, resourceGroupName, solutionName, minStartTimeUtc, maxStartTimeUtc, alertType, limit, skipToken)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotAlertsClient", "List", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.ial.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.IotAlertsClient", "List", resp, "Failure sending request")
+ return
+ }
+
+ result.ial, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotAlertsClient", "List", resp, "Failure responding to request")
+ }
+ if result.ial.hasNextLink() && result.ial.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
+
+ return
+}
+
+// ListPreparer prepares the List request.
+func (client IotAlertsClient) ListPreparer(ctx context.Context, resourceGroupName string, solutionName string, minStartTimeUtc string, maxStartTimeUtc string, alertType string, limit *int32, skipToken string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "resourceGroupName": autorest.Encode("path", resourceGroupName),
+ "solutionName": autorest.Encode("path", solutionName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2019-08-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+ if len(minStartTimeUtc) > 0 {
+ queryParameters["startTimeUtc>"] = autorest.Encode("query", minStartTimeUtc)
+ }
+ if len(maxStartTimeUtc) > 0 {
+ queryParameters["startTimeUtc<"] = autorest.Encode("query", maxStartTimeUtc)
+ }
+ if len(alertType) > 0 {
+ queryParameters["alertType"] = autorest.Encode("query", alertType)
+ }
+ if limit != nil {
+ queryParameters["$limit"] = autorest.Encode("query", *limit)
+ }
+ if len(skipToken) > 0 {
+ queryParameters["$skipToken"] = autorest.Encode("query", skipToken)
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotAlerts", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListSender sends the List request. The method will close the
+// http.Response Body if it receives an error.
+func (client IotAlertsClient) ListSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListResponder handles the response to the List request. The method always
+// closes the http.Response Body.
+func (client IotAlertsClient) ListResponder(resp *http.Response) (result IotAlertList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// listNextResults retrieves the next set of results, if any.
+func (client IotAlertsClient) listNextResults(ctx context.Context, lastResults IotAlertList) (result IotAlertList, err error) {
+ req, err := lastResults.iotAlertListPreparer(ctx)
+ if err != nil {
+ return result, autorest.NewErrorWithError(err, "security.IotAlertsClient", "listNextResults", nil, "Failure preparing next results request")
+ }
+ if req == nil {
+ return
+ }
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ return result, autorest.NewErrorWithError(err, "security.IotAlertsClient", "listNextResults", resp, "Failure sending next results request")
+ }
+ result, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotAlertsClient", "listNextResults", resp, "Failure responding to next results request")
+ }
+ return
+}
+
+// ListComplete enumerates all values, automatically crossing page boundaries as required.
+func (client IotAlertsClient) ListComplete(ctx context.Context, resourceGroupName string, solutionName string, minStartTimeUtc string, maxStartTimeUtc string, alertType string, limit *int32, skipToken string) (result IotAlertListIterator, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotAlertsClient.List")
+ defer func() {
+ sc := -1
+ if result.Response().Response.Response != nil {
+ sc = result.page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ result.page, err = client.List(ctx, resourceGroupName, solutionName, minStartTimeUtc, maxStartTimeUtc, alertType, limit, skipToken)
+ return
+}
diff --git a/services/preview/security/mgmt/v3.0/security/iotalerttypes.go b/services/preview/security/mgmt/v3.0/security/iotalerttypes.go
new file mode 100644
index 000000000000..808b7a24ecd2
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/iotalerttypes.go
@@ -0,0 +1,217 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "context"
+ "github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
+ "github.com/Azure/go-autorest/autorest/validation"
+ "github.com/Azure/go-autorest/tracing"
+ "net/http"
+)
+
+// IotAlertTypesClient is the API spec for Microsoft.Security (Azure Security Center) resource provider
+type IotAlertTypesClient struct {
+ BaseClient
+}
+
+// NewIotAlertTypesClient creates an instance of the IotAlertTypesClient client.
+func NewIotAlertTypesClient(subscriptionID string, ascLocation string) IotAlertTypesClient {
+ return NewIotAlertTypesClientWithBaseURI(DefaultBaseURI, subscriptionID, ascLocation)
+}
+
+// NewIotAlertTypesClientWithBaseURI creates an instance of the IotAlertTypesClient client using a custom endpoint.
+// Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack).
+func NewIotAlertTypesClientWithBaseURI(baseURI string, subscriptionID string, ascLocation string) IotAlertTypesClient {
+ return IotAlertTypesClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
+}
+
+// Get get IoT alert type
+// Parameters:
+// resourceGroupName - the name of the resource group within the user's subscription. The name is case
+// insensitive.
+// solutionName - the name of the IoT Security solution.
+// iotAlertTypeName - name of the alert type
+func (client IotAlertTypesClient) Get(ctx context.Context, resourceGroupName string, solutionName string, iotAlertTypeName string) (result IotAlertType, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotAlertTypesClient.Get")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: resourceGroupName,
+ Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.IotAlertTypesClient", "Get", err.Error())
+ }
+
+ req, err := client.GetPreparer(ctx, resourceGroupName, solutionName, iotAlertTypeName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotAlertTypesClient", "Get", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.GetSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.IotAlertTypesClient", "Get", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.GetResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotAlertTypesClient", "Get", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// GetPreparer prepares the Get request.
+func (client IotAlertTypesClient) GetPreparer(ctx context.Context, resourceGroupName string, solutionName string, iotAlertTypeName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "iotAlertTypeName": autorest.Encode("path", iotAlertTypeName),
+ "resourceGroupName": autorest.Encode("path", resourceGroupName),
+ "solutionName": autorest.Encode("path", solutionName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2019-08-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotAlertTypes/{iotAlertTypeName}", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// GetSender sends the Get request. The method will close the
+// http.Response Body if it receives an error.
+func (client IotAlertTypesClient) GetSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// GetResponder handles the response to the Get request. The method always
+// closes the http.Response Body.
+func (client IotAlertTypesClient) GetResponder(resp *http.Response) (result IotAlertType, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// List list IoT alert types
+// Parameters:
+// resourceGroupName - the name of the resource group within the user's subscription. The name is case
+// insensitive.
+// solutionName - the name of the IoT Security solution.
+func (client IotAlertTypesClient) List(ctx context.Context, resourceGroupName string, solutionName string) (result IotAlertTypeList, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotAlertTypesClient.List")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: resourceGroupName,
+ Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.IotAlertTypesClient", "List", err.Error())
+ }
+
+ req, err := client.ListPreparer(ctx, resourceGroupName, solutionName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotAlertTypesClient", "List", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.IotAlertTypesClient", "List", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotAlertTypesClient", "List", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// ListPreparer prepares the List request.
+func (client IotAlertTypesClient) ListPreparer(ctx context.Context, resourceGroupName string, solutionName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "resourceGroupName": autorest.Encode("path", resourceGroupName),
+ "solutionName": autorest.Encode("path", solutionName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2019-08-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotAlertTypes", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListSender sends the List request. The method will close the
+// http.Response Body if it receives an error.
+func (client IotAlertTypesClient) ListSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListResponder handles the response to the List request. The method always
+// closes the http.Response Body.
+func (client IotAlertTypesClient) ListResponder(resp *http.Response) (result IotAlertTypeList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
diff --git a/services/preview/security/mgmt/v3.0/security/iotrecommendations.go b/services/preview/security/mgmt/v3.0/security/iotrecommendations.go
new file mode 100644
index 000000000000..383e15b02e48
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/iotrecommendations.go
@@ -0,0 +1,271 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "context"
+ "github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
+ "github.com/Azure/go-autorest/autorest/validation"
+ "github.com/Azure/go-autorest/tracing"
+ "net/http"
+)
+
+// IotRecommendationsClient is the API spec for Microsoft.Security (Azure Security Center) resource provider
+type IotRecommendationsClient struct {
+ BaseClient
+}
+
+// NewIotRecommendationsClient creates an instance of the IotRecommendationsClient client.
+func NewIotRecommendationsClient(subscriptionID string, ascLocation string) IotRecommendationsClient {
+ return NewIotRecommendationsClientWithBaseURI(DefaultBaseURI, subscriptionID, ascLocation)
+}
+
+// NewIotRecommendationsClientWithBaseURI creates an instance of the IotRecommendationsClient client using a custom
+// endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure
+// stack).
+func NewIotRecommendationsClientWithBaseURI(baseURI string, subscriptionID string, ascLocation string) IotRecommendationsClient {
+ return IotRecommendationsClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
+}
+
+// Get get IoT recommendation
+// Parameters:
+// resourceGroupName - the name of the resource group within the user's subscription. The name is case
+// insensitive.
+// solutionName - the name of the IoT Security solution.
+// iotRecommendationID - id of the recommendation
+func (client IotRecommendationsClient) Get(ctx context.Context, resourceGroupName string, solutionName string, iotRecommendationID string) (result IotRecommendation, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotRecommendationsClient.Get")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: resourceGroupName,
+ Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.IotRecommendationsClient", "Get", err.Error())
+ }
+
+ req, err := client.GetPreparer(ctx, resourceGroupName, solutionName, iotRecommendationID)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationsClient", "Get", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.GetSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationsClient", "Get", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.GetResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationsClient", "Get", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// GetPreparer prepares the Get request.
+func (client IotRecommendationsClient) GetPreparer(ctx context.Context, resourceGroupName string, solutionName string, iotRecommendationID string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "iotRecommendationId": autorest.Encode("path", iotRecommendationID),
+ "resourceGroupName": autorest.Encode("path", resourceGroupName),
+ "solutionName": autorest.Encode("path", solutionName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2019-08-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendations/{iotRecommendationId}", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// GetSender sends the Get request. The method will close the
+// http.Response Body if it receives an error.
+func (client IotRecommendationsClient) GetSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// GetResponder handles the response to the Get request. The method always
+// closes the http.Response Body.
+func (client IotRecommendationsClient) GetResponder(resp *http.Response) (result IotRecommendation, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// List list IoT recommendations
+// Parameters:
+// resourceGroupName - the name of the resource group within the user's subscription. The name is case
+// insensitive.
+// solutionName - the name of the IoT Security solution.
+// recommendationType - filter by recommendation type
+// limit - limit the number of items returned in a single page
+// skipToken - skip token used for pagination
+func (client IotRecommendationsClient) List(ctx context.Context, resourceGroupName string, solutionName string, recommendationType string, limit *int32, skipToken string) (result IotRecommendationListPage, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotRecommendationsClient.List")
+ defer func() {
+ sc := -1
+ if result.irl.Response.Response != nil {
+ sc = result.irl.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: resourceGroupName,
+ Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.IotRecommendationsClient", "List", err.Error())
+ }
+
+ result.fn = client.listNextResults
+ req, err := client.ListPreparer(ctx, resourceGroupName, solutionName, recommendationType, limit, skipToken)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationsClient", "List", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.irl.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationsClient", "List", resp, "Failure sending request")
+ return
+ }
+
+ result.irl, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationsClient", "List", resp, "Failure responding to request")
+ }
+ if result.irl.hasNextLink() && result.irl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
+
+ return
+}
+
+// ListPreparer prepares the List request.
+func (client IotRecommendationsClient) ListPreparer(ctx context.Context, resourceGroupName string, solutionName string, recommendationType string, limit *int32, skipToken string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "resourceGroupName": autorest.Encode("path", resourceGroupName),
+ "solutionName": autorest.Encode("path", solutionName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2019-08-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+ if len(recommendationType) > 0 {
+ queryParameters["recommendationType"] = autorest.Encode("query", recommendationType)
+ }
+ if limit != nil {
+ queryParameters["$limit"] = autorest.Encode("query", *limit)
+ }
+ if len(skipToken) > 0 {
+ queryParameters["$skipToken"] = autorest.Encode("query", skipToken)
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendations", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListSender sends the List request. The method will close the
+// http.Response Body if it receives an error.
+func (client IotRecommendationsClient) ListSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListResponder handles the response to the List request. The method always
+// closes the http.Response Body.
+func (client IotRecommendationsClient) ListResponder(resp *http.Response) (result IotRecommendationList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// listNextResults retrieves the next set of results, if any.
+func (client IotRecommendationsClient) listNextResults(ctx context.Context, lastResults IotRecommendationList) (result IotRecommendationList, err error) {
+ req, err := lastResults.iotRecommendationListPreparer(ctx)
+ if err != nil {
+ return result, autorest.NewErrorWithError(err, "security.IotRecommendationsClient", "listNextResults", nil, "Failure preparing next results request")
+ }
+ if req == nil {
+ return
+ }
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ return result, autorest.NewErrorWithError(err, "security.IotRecommendationsClient", "listNextResults", resp, "Failure sending next results request")
+ }
+ result, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationsClient", "listNextResults", resp, "Failure responding to next results request")
+ }
+ return
+}
+
+// ListComplete enumerates all values, automatically crossing page boundaries as required.
+func (client IotRecommendationsClient) ListComplete(ctx context.Context, resourceGroupName string, solutionName string, recommendationType string, limit *int32, skipToken string) (result IotRecommendationListIterator, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotRecommendationsClient.List")
+ defer func() {
+ sc := -1
+ if result.Response().Response.Response != nil {
+ sc = result.page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ result.page, err = client.List(ctx, resourceGroupName, solutionName, recommendationType, limit, skipToken)
+ return
+}
diff --git a/services/preview/security/mgmt/v3.0/security/iotrecommendationtypes.go b/services/preview/security/mgmt/v3.0/security/iotrecommendationtypes.go
new file mode 100644
index 000000000000..2737e3dfa7df
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/iotrecommendationtypes.go
@@ -0,0 +1,218 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "context"
+ "github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
+ "github.com/Azure/go-autorest/autorest/validation"
+ "github.com/Azure/go-autorest/tracing"
+ "net/http"
+)
+
+// IotRecommendationTypesClient is the API spec for Microsoft.Security (Azure Security Center) resource provider
+type IotRecommendationTypesClient struct {
+ BaseClient
+}
+
+// NewIotRecommendationTypesClient creates an instance of the IotRecommendationTypesClient client.
+func NewIotRecommendationTypesClient(subscriptionID string, ascLocation string) IotRecommendationTypesClient {
+ return NewIotRecommendationTypesClientWithBaseURI(DefaultBaseURI, subscriptionID, ascLocation)
+}
+
+// NewIotRecommendationTypesClientWithBaseURI creates an instance of the IotRecommendationTypesClient client using a
+// custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds,
+// Azure stack).
+func NewIotRecommendationTypesClientWithBaseURI(baseURI string, subscriptionID string, ascLocation string) IotRecommendationTypesClient {
+ return IotRecommendationTypesClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
+}
+
+// Get get IoT recommendation type
+// Parameters:
+// resourceGroupName - the name of the resource group within the user's subscription. The name is case
+// insensitive.
+// solutionName - the name of the IoT Security solution.
+// iotRecommendationTypeName - name of the recommendation type
+func (client IotRecommendationTypesClient) Get(ctx context.Context, resourceGroupName string, solutionName string, iotRecommendationTypeName string) (result IotRecommendationType, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotRecommendationTypesClient.Get")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: resourceGroupName,
+ Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.IotRecommendationTypesClient", "Get", err.Error())
+ }
+
+ req, err := client.GetPreparer(ctx, resourceGroupName, solutionName, iotRecommendationTypeName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationTypesClient", "Get", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.GetSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationTypesClient", "Get", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.GetResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationTypesClient", "Get", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// GetPreparer prepares the Get request.
+func (client IotRecommendationTypesClient) GetPreparer(ctx context.Context, resourceGroupName string, solutionName string, iotRecommendationTypeName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "iotRecommendationTypeName": autorest.Encode("path", iotRecommendationTypeName),
+ "resourceGroupName": autorest.Encode("path", resourceGroupName),
+ "solutionName": autorest.Encode("path", solutionName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2019-08-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendationTypes/{iotRecommendationTypeName}", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// GetSender sends the Get request. The method will close the
+// http.Response Body if it receives an error.
+func (client IotRecommendationTypesClient) GetSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// GetResponder handles the response to the Get request. The method always
+// closes the http.Response Body.
+func (client IotRecommendationTypesClient) GetResponder(resp *http.Response) (result IotRecommendationType, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// List list IoT recommendation types
+// Parameters:
+// resourceGroupName - the name of the resource group within the user's subscription. The name is case
+// insensitive.
+// solutionName - the name of the IoT Security solution.
+func (client IotRecommendationTypesClient) List(ctx context.Context, resourceGroupName string, solutionName string) (result IotRecommendationTypeList, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotRecommendationTypesClient.List")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: resourceGroupName,
+ Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.IotRecommendationTypesClient", "List", err.Error())
+ }
+
+ req, err := client.ListPreparer(ctx, resourceGroupName, solutionName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationTypesClient", "List", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationTypesClient", "List", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.IotRecommendationTypesClient", "List", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// ListPreparer prepares the List request.
+func (client IotRecommendationTypesClient) ListPreparer(ctx context.Context, resourceGroupName string, solutionName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "resourceGroupName": autorest.Encode("path", resourceGroupName),
+ "solutionName": autorest.Encode("path", solutionName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2019-08-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/iotSecuritySolutions/{solutionName}/iotRecommendationTypes", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListSender sends the List request. The method will close the
+// http.Response Body if it receives an error.
+func (client IotRecommendationTypesClient) ListSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListResponder handles the response to the List request. The method always
+// closes the http.Response Body.
+func (client IotRecommendationTypesClient) ListResponder(resp *http.Response) (result IotRecommendationTypeList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
diff --git a/services/preview/security/mgmt/v3.0/security/iotsecuritysolution.go b/services/preview/security/mgmt/v3.0/security/iotsecuritysolution.go
index bcedd492e4e8..a61324ccdf9f 100644
--- a/services/preview/security/mgmt/v3.0/security/iotsecuritysolution.go
+++ b/services/preview/security/mgmt/v3.0/security/iotsecuritysolution.go
@@ -69,8 +69,7 @@ func (client IotSecuritySolutionClient) CreateOrUpdate(ctx context.Context, reso
{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
{TargetValue: iotSecuritySolutionData,
Constraints: []validation.Constraint{{Target: "iotSecuritySolutionData.IoTSecuritySolutionProperties", Name: validation.Null, Rule: false,
- Chain: []validation.Constraint{{Target: "iotSecuritySolutionData.IoTSecuritySolutionProperties.Workspace", Name: validation.Null, Rule: true, Chain: nil},
- {Target: "iotSecuritySolutionData.IoTSecuritySolutionProperties.DisplayName", Name: validation.Null, Rule: true, Chain: nil},
+ Chain: []validation.Constraint{{Target: "iotSecuritySolutionData.IoTSecuritySolutionProperties.DisplayName", Name: validation.Null, Rule: true, Chain: nil},
{Target: "iotSecuritySolutionData.IoTSecuritySolutionProperties.IotHubs", Name: validation.Null, Rule: true, Chain: nil},
{Target: "iotSecuritySolutionData.IoTSecuritySolutionProperties.UserDefinedResources", Name: validation.Null, Rule: false,
Chain: []validation.Constraint{{Target: "iotSecuritySolutionData.IoTSecuritySolutionProperties.UserDefinedResources.Query", Name: validation.Null, Rule: true, Chain: nil},
@@ -138,7 +137,6 @@ func (client IotSecuritySolutionClient) CreateOrUpdateSender(req *http.Request)
func (client IotSecuritySolutionClient) CreateOrUpdateResponder(resp *http.Response) (result IoTSecuritySolutionModel, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -225,7 +223,6 @@ func (client IotSecuritySolutionClient) DeleteSender(req *http.Request) (*http.R
func (client IotSecuritySolutionClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
@@ -311,7 +308,6 @@ func (client IotSecuritySolutionClient) GetSender(req *http.Request) (*http.Resp
func (client IotSecuritySolutionClient) GetResponder(resp *http.Response) (result IoTSecuritySolutionModel, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -363,6 +359,9 @@ func (client IotSecuritySolutionClient) ListByResourceGroup(ctx context.Context,
if err != nil {
err = autorest.NewErrorWithError(err, "security.IotSecuritySolutionClient", "ListByResourceGroup", resp, "Failure responding to request")
}
+ if result.itssl.hasNextLink() && result.itssl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -401,7 +400,6 @@ func (client IotSecuritySolutionClient) ListByResourceGroupSender(req *http.Requ
func (client IotSecuritySolutionClient) ListByResourceGroupResponder(resp *http.Response) (result IoTSecuritySolutionsList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -484,6 +482,9 @@ func (client IotSecuritySolutionClient) ListBySubscription(ctx context.Context,
if err != nil {
err = autorest.NewErrorWithError(err, "security.IotSecuritySolutionClient", "ListBySubscription", resp, "Failure responding to request")
}
+ if result.itssl.hasNextLink() && result.itssl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -521,7 +522,6 @@ func (client IotSecuritySolutionClient) ListBySubscriptionSender(req *http.Reque
func (client IotSecuritySolutionClient) ListBySubscriptionResponder(resp *http.Response) (result IoTSecuritySolutionsList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -649,7 +649,6 @@ func (client IotSecuritySolutionClient) UpdateSender(req *http.Request) (*http.R
func (client IotSecuritySolutionClient) UpdateResponder(resp *http.Response) (result IoTSecuritySolutionModel, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/iotsecuritysolutionanalytics.go b/services/preview/security/mgmt/v3.0/security/iotsecuritysolutionanalytics.go
index 05f89b37d815..9f537df7cab0 100644
--- a/services/preview/security/mgmt/v3.0/security/iotsecuritysolutionanalytics.go
+++ b/services/preview/security/mgmt/v3.0/security/iotsecuritysolutionanalytics.go
@@ -122,7 +122,6 @@ func (client IotSecuritySolutionAnalyticsClient) GetSender(req *http.Request) (*
func (client IotSecuritySolutionAnalyticsClient) GetResponder(resp *http.Response) (result IoTSecuritySolutionAnalyticsModel, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -209,7 +208,6 @@ func (client IotSecuritySolutionAnalyticsClient) ListSender(req *http.Request) (
func (client IotSecuritySolutionAnalyticsClient) ListResponder(resp *http.Response) (result IoTSecuritySolutionAnalyticsModelList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/iotsecuritysolutionsanalyticsaggregatedalert.go b/services/preview/security/mgmt/v3.0/security/iotsecuritysolutionsanalyticsaggregatedalert.go
index b99c93d8ea9c..872a957953af 100644
--- a/services/preview/security/mgmt/v3.0/security/iotsecuritysolutionsanalyticsaggregatedalert.go
+++ b/services/preview/security/mgmt/v3.0/security/iotsecuritysolutionsanalyticsaggregatedalert.go
@@ -126,7 +126,6 @@ func (client IotSecuritySolutionsAnalyticsAggregatedAlertClient) DismissSender(r
func (client IotSecuritySolutionsAnalyticsAggregatedAlertClient) DismissResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByClosing())
result.Response = resp
@@ -215,7 +214,6 @@ func (client IotSecuritySolutionsAnalyticsAggregatedAlertClient) GetSender(req *
func (client IotSecuritySolutionsAnalyticsAggregatedAlertClient) GetResponder(resp *http.Response) (result IoTSecurityAggregatedAlert, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -268,6 +266,9 @@ func (client IotSecuritySolutionsAnalyticsAggregatedAlertClient) List(ctx contex
if err != nil {
err = autorest.NewErrorWithError(err, "security.IotSecuritySolutionsAnalyticsAggregatedAlertClient", "List", resp, "Failure responding to request")
}
+ if result.itsaal.hasNextLink() && result.itsaal.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -307,7 +308,6 @@ func (client IotSecuritySolutionsAnalyticsAggregatedAlertClient) ListSender(req
func (client IotSecuritySolutionsAnalyticsAggregatedAlertClient) ListResponder(resp *http.Response) (result IoTSecurityAggregatedAlertList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/iotsecuritysolutionsanalyticsrecommendation.go b/services/preview/security/mgmt/v3.0/security/iotsecuritysolutionsanalyticsrecommendation.go
index 11766ff25f33..e38412b4d9fb 100644
--- a/services/preview/security/mgmt/v3.0/security/iotsecuritysolutionsanalyticsrecommendation.go
+++ b/services/preview/security/mgmt/v3.0/security/iotsecuritysolutionsanalyticsrecommendation.go
@@ -127,7 +127,6 @@ func (client IotSecuritySolutionsAnalyticsRecommendationClient) GetSender(req *h
func (client IotSecuritySolutionsAnalyticsRecommendationClient) GetResponder(resp *http.Response) (result IoTSecurityAggregatedRecommendation, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -181,6 +180,9 @@ func (client IotSecuritySolutionsAnalyticsRecommendationClient) List(ctx context
if err != nil {
err = autorest.NewErrorWithError(err, "security.IotSecuritySolutionsAnalyticsRecommendationClient", "List", resp, "Failure responding to request")
}
+ if result.itsarl.hasNextLink() && result.itsarl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -220,7 +222,6 @@ func (client IotSecuritySolutionsAnalyticsRecommendationClient) ListSender(req *
func (client IotSecuritySolutionsAnalyticsRecommendationClient) ListResponder(resp *http.Response) (result IoTSecurityAggregatedRecommendationList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/jitnetworkaccesspolicies.go b/services/preview/security/mgmt/v3.0/security/jitnetworkaccesspolicies.go
index 82115488a008..b0dfcb15030f 100644
--- a/services/preview/security/mgmt/v3.0/security/jitnetworkaccesspolicies.go
+++ b/services/preview/security/mgmt/v3.0/security/jitnetworkaccesspolicies.go
@@ -102,7 +102,7 @@ func (client JitNetworkAccessPoliciesClient) CreateOrUpdatePreparer(ctx context.
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -132,7 +132,6 @@ func (client JitNetworkAccessPoliciesClient) CreateOrUpdateSender(req *http.Requ
func (client JitNetworkAccessPoliciesClient) CreateOrUpdateResponder(resp *http.Response) (result JitNetworkAccessPolicy, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -196,7 +195,7 @@ func (client JitNetworkAccessPoliciesClient) DeletePreparer(ctx context.Context,
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -220,7 +219,6 @@ func (client JitNetworkAccessPoliciesClient) DeleteSender(req *http.Request) (*h
func (client JitNetworkAccessPoliciesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
@@ -283,7 +281,7 @@ func (client JitNetworkAccessPoliciesClient) GetPreparer(ctx context.Context, re
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -307,7 +305,6 @@ func (client JitNetworkAccessPoliciesClient) GetSender(req *http.Request) (*http
func (client JitNetworkAccessPoliciesClient) GetResponder(resp *http.Response) (result JitNetworkAccessPolicy, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -374,7 +371,7 @@ func (client JitNetworkAccessPoliciesClient) InitiatePreparer(ctx context.Contex
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -400,7 +397,6 @@ func (client JitNetworkAccessPoliciesClient) InitiateSender(req *http.Request) (
func (client JitNetworkAccessPoliciesClient) InitiateResponder(resp *http.Response) (result JitNetworkAccessRequest, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -444,6 +440,9 @@ func (client JitNetworkAccessPoliciesClient) List(ctx context.Context) (result J
if err != nil {
err = autorest.NewErrorWithError(err, "security.JitNetworkAccessPoliciesClient", "List", resp, "Failure responding to request")
}
+ if result.jnapl.hasNextLink() && result.jnapl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -454,7 +453,7 @@ func (client JitNetworkAccessPoliciesClient) ListPreparer(ctx context.Context) (
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -478,7 +477,6 @@ func (client JitNetworkAccessPoliciesClient) ListSender(req *http.Request) (*htt
func (client JitNetworkAccessPoliciesClient) ListResponder(resp *http.Response) (result JitNetworkAccessPoliciesList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -559,6 +557,9 @@ func (client JitNetworkAccessPoliciesClient) ListByRegion(ctx context.Context) (
if err != nil {
err = autorest.NewErrorWithError(err, "security.JitNetworkAccessPoliciesClient", "ListByRegion", resp, "Failure responding to request")
}
+ if result.jnapl.hasNextLink() && result.jnapl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -570,7 +571,7 @@ func (client JitNetworkAccessPoliciesClient) ListByRegionPreparer(ctx context.Co
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -594,7 +595,6 @@ func (client JitNetworkAccessPoliciesClient) ListByRegionSender(req *http.Reques
func (client JitNetworkAccessPoliciesClient) ListByRegionResponder(resp *http.Response) (result JitNetworkAccessPoliciesList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -683,6 +683,9 @@ func (client JitNetworkAccessPoliciesClient) ListByResourceGroup(ctx context.Con
if err != nil {
err = autorest.NewErrorWithError(err, "security.JitNetworkAccessPoliciesClient", "ListByResourceGroup", resp, "Failure responding to request")
}
+ if result.jnapl.hasNextLink() && result.jnapl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -694,7 +697,7 @@ func (client JitNetworkAccessPoliciesClient) ListByResourceGroupPreparer(ctx con
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -718,7 +721,6 @@ func (client JitNetworkAccessPoliciesClient) ListByResourceGroupSender(req *http
func (client JitNetworkAccessPoliciesClient) ListByResourceGroupResponder(resp *http.Response) (result JitNetworkAccessPoliciesList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -807,6 +809,9 @@ func (client JitNetworkAccessPoliciesClient) ListByResourceGroupAndRegion(ctx co
if err != nil {
err = autorest.NewErrorWithError(err, "security.JitNetworkAccessPoliciesClient", "ListByResourceGroupAndRegion", resp, "Failure responding to request")
}
+ if result.jnapl.hasNextLink() && result.jnapl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -819,7 +824,7 @@ func (client JitNetworkAccessPoliciesClient) ListByResourceGroupAndRegionPrepare
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -843,7 +848,6 @@ func (client JitNetworkAccessPoliciesClient) ListByResourceGroupAndRegionSender(
func (client JitNetworkAccessPoliciesClient) ListByResourceGroupAndRegionResponder(resp *http.Response) (result JitNetworkAccessPoliciesList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/locations.go b/services/preview/security/mgmt/v3.0/security/locations.go
index cd6fdf271b9a..cccea770f716 100644
--- a/services/preview/security/mgmt/v3.0/security/locations.go
+++ b/services/preview/security/mgmt/v3.0/security/locations.go
@@ -112,7 +112,6 @@ func (client LocationsClient) GetSender(req *http.Request) (*http.Response, erro
func (client LocationsClient) GetResponder(resp *http.Response) (result AscLocation, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -158,6 +157,9 @@ func (client LocationsClient) List(ctx context.Context) (result AscLocationListP
if err != nil {
err = autorest.NewErrorWithError(err, "security.LocationsClient", "List", resp, "Failure responding to request")
}
+ if result.all.hasNextLink() && result.all.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -192,7 +194,6 @@ func (client LocationsClient) ListSender(req *http.Request) (*http.Response, err
func (client LocationsClient) ListResponder(resp *http.Response) (result AscLocationList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/models.go b/services/preview/security/mgmt/v3.0/security/models.go
index fd736271261b..af127ab48010 100644
--- a/services/preview/security/mgmt/v3.0/security/models.go
+++ b/services/preview/security/mgmt/v3.0/security/models.go
@@ -21,6 +21,7 @@ import (
"context"
"encoding/json"
"github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
"github.com/Azure/go-autorest/autorest/date"
"github.com/Azure/go-autorest/autorest/to"
"github.com/Azure/go-autorest/tracing"
@@ -31,1239 +32,405 @@ import (
// The package's fully qualified name.
const fqdn = "github.com/Azure/azure-sdk-for-go/services/preview/security/mgmt/v3.0/security"
-// AadConnectivityState enumerates the values for aad connectivity state.
-type AadConnectivityState string
-
-const (
- // Connected ...
- Connected AadConnectivityState = "Connected"
- // Discovered ...
- Discovered AadConnectivityState = "Discovered"
- // NotLicensed ...
- NotLicensed AadConnectivityState = "NotLicensed"
-)
-
-// PossibleAadConnectivityStateValues returns an array of possible values for the AadConnectivityState const type.
-func PossibleAadConnectivityStateValues() []AadConnectivityState {
- return []AadConnectivityState{Connected, Discovered, NotLicensed}
+// AadConnectivityState1 describes an Azure resource with kind
+type AadConnectivityState1 struct {
+ // ConnectivityState - Possible values include: 'Discovered', 'NotLicensed', 'Connected'
+ ConnectivityState AadConnectivityState `json:"connectivityState,omitempty"`
}
-// Action enumerates the values for action.
-type Action string
-
-const (
- // Add ...
- Add Action = "Add"
- // Recommended ...
- Recommended Action = "Recommended"
- // Remove ...
- Remove Action = "Remove"
-)
-
-// PossibleActionValues returns an array of possible values for the Action const type.
-func PossibleActionValues() []Action {
- return []Action{Add, Recommended, Remove}
+// AadExternalSecuritySolution represents an AAD identity protection solution which sends logs to an OMS
+// workspace.
+type AadExternalSecuritySolution struct {
+ Properties *AadSolutionProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ // Kind - Possible values include: 'KindExternalSecuritySolution', 'KindCEF', 'KindATA', 'KindAAD'
+ Kind KindEnum1 `json:"kind,omitempty"`
}
-// ActionType enumerates the values for action type.
-type ActionType string
-
-const (
- // ActionTypeAutomationAction ...
- ActionTypeAutomationAction ActionType = "AutomationAction"
- // ActionTypeEventHub ...
- ActionTypeEventHub ActionType = "EventHub"
- // ActionTypeLogicApp ...
- ActionTypeLogicApp ActionType = "LogicApp"
- // ActionTypeWorkspace ...
- ActionTypeWorkspace ActionType = "Workspace"
-)
-
-// PossibleActionTypeValues returns an array of possible values for the ActionType const type.
-func PossibleActionTypeValues() []ActionType {
- return []ActionType{ActionTypeAutomationAction, ActionTypeEventHub, ActionTypeLogicApp, ActionTypeWorkspace}
+// MarshalJSON is the custom marshaler for AadExternalSecuritySolution.
+func (aess AadExternalSecuritySolution) MarshalJSON() ([]byte, error) {
+ aess.Kind = KindAAD
+ objectMap := make(map[string]interface{})
+ if aess.Properties != nil {
+ objectMap["properties"] = aess.Properties
+ }
+ if aess.Kind != "" {
+ objectMap["kind"] = aess.Kind
+ }
+ return json.Marshal(objectMap)
}
-// AlertNotifications enumerates the values for alert notifications.
-type AlertNotifications string
-
-const (
- // Off Don't get notifications on new alerts
- Off AlertNotifications = "Off"
- // On Get notifications on new alerts
- On AlertNotifications = "On"
-)
-
-// PossibleAlertNotificationsValues returns an array of possible values for the AlertNotifications const type.
-func PossibleAlertNotificationsValues() []AlertNotifications {
- return []AlertNotifications{Off, On}
+// AsCefExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AadExternalSecuritySolution.
+func (aess AadExternalSecuritySolution) AsCefExternalSecuritySolution() (*CefExternalSecuritySolution, bool) {
+ return nil, false
}
-// AlertsToAdmins enumerates the values for alerts to admins.
-type AlertsToAdmins string
-
-const (
- // AlertsToAdminsOff Don't send notification on new alerts to the subscription's admins
- AlertsToAdminsOff AlertsToAdmins = "Off"
- // AlertsToAdminsOn Send notification on new alerts to the subscription's admins
- AlertsToAdminsOn AlertsToAdmins = "On"
-)
-
-// PossibleAlertsToAdminsValues returns an array of possible values for the AlertsToAdmins const type.
-func PossibleAlertsToAdminsValues() []AlertsToAdmins {
- return []AlertsToAdmins{AlertsToAdminsOff, AlertsToAdminsOn}
+// AsAtaExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AadExternalSecuritySolution.
+func (aess AadExternalSecuritySolution) AsAtaExternalSecuritySolution() (*AtaExternalSecuritySolution, bool) {
+ return nil, false
}
-// AssessedResourceType enumerates the values for assessed resource type.
-type AssessedResourceType string
-
-const (
- // AssessedResourceTypeAdditionalData ...
- AssessedResourceTypeAdditionalData AssessedResourceType = "AdditionalData"
- // AssessedResourceTypeContainerRegistryVulnerability ...
- AssessedResourceTypeContainerRegistryVulnerability AssessedResourceType = "ContainerRegistryVulnerability"
- // AssessedResourceTypeServerVulnerabilityAssessment ...
- AssessedResourceTypeServerVulnerabilityAssessment AssessedResourceType = "ServerVulnerabilityAssessment"
- // AssessedResourceTypeSQLServerVulnerability ...
- AssessedResourceTypeSQLServerVulnerability AssessedResourceType = "SqlServerVulnerability"
-)
-
-// PossibleAssessedResourceTypeValues returns an array of possible values for the AssessedResourceType const type.
-func PossibleAssessedResourceTypeValues() []AssessedResourceType {
- return []AssessedResourceType{AssessedResourceTypeAdditionalData, AssessedResourceTypeContainerRegistryVulnerability, AssessedResourceTypeServerVulnerabilityAssessment, AssessedResourceTypeSQLServerVulnerability}
+// AsAadExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AadExternalSecuritySolution.
+func (aess AadExternalSecuritySolution) AsAadExternalSecuritySolution() (*AadExternalSecuritySolution, bool) {
+ return &aess, true
}
-// AssessmentStatusCode enumerates the values for assessment status code.
-type AssessmentStatusCode string
-
-const (
- // Healthy The resource is healthy
- Healthy AssessmentStatusCode = "Healthy"
- // NotApplicable Assessment for this resource did not happen
- NotApplicable AssessmentStatusCode = "NotApplicable"
- // Unhealthy The resource has a security issue that needs to be addressed
- Unhealthy AssessmentStatusCode = "Unhealthy"
-)
-
-// PossibleAssessmentStatusCodeValues returns an array of possible values for the AssessmentStatusCode const type.
-func PossibleAssessmentStatusCodeValues() []AssessmentStatusCode {
- return []AssessmentStatusCode{Healthy, NotApplicable, Unhealthy}
-}
-
-// AssessmentType enumerates the values for assessment type.
-type AssessmentType string
-
-const (
- // BuiltIn Azure Security Center managed assessments
- BuiltIn AssessmentType = "BuiltIn"
- // CustomerManaged User assessments pushed directly by the user or other third party to Azure Security
- // Center
- CustomerManaged AssessmentType = "CustomerManaged"
- // CustomPolicy User defined policies that are automatically ingested from Azure Policy to Azure Security
- // Center
- CustomPolicy AssessmentType = "CustomPolicy"
- // VerifiedPartner An assessment that was created by a verified 3rd party if the user connected it to ASC
- VerifiedPartner AssessmentType = "VerifiedPartner"
-)
-
-// PossibleAssessmentTypeValues returns an array of possible values for the AssessmentType const type.
-func PossibleAssessmentTypeValues() []AssessmentType {
- return []AssessmentType{BuiltIn, CustomerManaged, CustomPolicy, VerifiedPartner}
+// AsExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AadExternalSecuritySolution.
+func (aess AadExternalSecuritySolution) AsExternalSecuritySolution() (*ExternalSecuritySolution, bool) {
+ return nil, false
}
-// AutoProvision enumerates the values for auto provision.
-type AutoProvision string
-
-const (
- // AutoProvisionOff Do not install security agent on the VMs automatically
- AutoProvisionOff AutoProvision = "Off"
- // AutoProvisionOn Install missing security agent on VMs automatically
- AutoProvisionOn AutoProvision = "On"
-)
-
-// PossibleAutoProvisionValues returns an array of possible values for the AutoProvision const type.
-func PossibleAutoProvisionValues() []AutoProvision {
- return []AutoProvision{AutoProvisionOff, AutoProvisionOn}
-}
-
-// Category enumerates the values for category.
-type Category string
-
-const (
- // Compute ...
- Compute Category = "Compute"
- // Data ...
- Data Category = "Data"
- // IdentityAndAccess ...
- IdentityAndAccess Category = "IdentityAndAccess"
- // IoT ...
- IoT Category = "IoT"
- // Networking ...
- Networking Category = "Networking"
-)
-
-// PossibleCategoryValues returns an array of possible values for the Category const type.
-func PossibleCategoryValues() []Category {
- return []Category{Compute, Data, IdentityAndAccess, IoT, Networking}
-}
-
-// ConfigurationStatus enumerates the values for configuration status.
-type ConfigurationStatus string
-
-const (
- // Configured ...
- Configured ConfigurationStatus = "Configured"
- // Failed ...
- Failed ConfigurationStatus = "Failed"
- // InProgress ...
- InProgress ConfigurationStatus = "InProgress"
- // NoStatus ...
- NoStatus ConfigurationStatus = "NoStatus"
- // NotConfigured ...
- NotConfigured ConfigurationStatus = "NotConfigured"
-)
-
-// PossibleConfigurationStatusValues returns an array of possible values for the ConfigurationStatus const type.
-func PossibleConfigurationStatusValues() []ConfigurationStatus {
- return []ConfigurationStatus{Configured, Failed, InProgress, NoStatus, NotConfigured}
-}
-
-// ConfigurationStatus1 enumerates the values for configuration status 1.
-type ConfigurationStatus1 string
-
-const (
- // ConfigurationStatus1Configured ...
- ConfigurationStatus1Configured ConfigurationStatus1 = "Configured"
- // ConfigurationStatus1Failed ...
- ConfigurationStatus1Failed ConfigurationStatus1 = "Failed"
- // ConfigurationStatus1InProgress ...
- ConfigurationStatus1InProgress ConfigurationStatus1 = "InProgress"
- // ConfigurationStatus1NoStatus ...
- ConfigurationStatus1NoStatus ConfigurationStatus1 = "NoStatus"
- // ConfigurationStatus1NotConfigured ...
- ConfigurationStatus1NotConfigured ConfigurationStatus1 = "NotConfigured"
-)
-
-// PossibleConfigurationStatus1Values returns an array of possible values for the ConfigurationStatus1 const type.
-func PossibleConfigurationStatus1Values() []ConfigurationStatus1 {
- return []ConfigurationStatus1{ConfigurationStatus1Configured, ConfigurationStatus1Failed, ConfigurationStatus1InProgress, ConfigurationStatus1NoStatus, ConfigurationStatus1NotConfigured}
-}
-
-// ConfigurationStatus2 enumerates the values for configuration status 2.
-type ConfigurationStatus2 string
-
-const (
- // ConfigurationStatus2Configured ...
- ConfigurationStatus2Configured ConfigurationStatus2 = "Configured"
- // ConfigurationStatus2Failed ...
- ConfigurationStatus2Failed ConfigurationStatus2 = "Failed"
- // ConfigurationStatus2InProgress ...
- ConfigurationStatus2InProgress ConfigurationStatus2 = "InProgress"
- // ConfigurationStatus2NoStatus ...
- ConfigurationStatus2NoStatus ConfigurationStatus2 = "NoStatus"
- // ConfigurationStatus2NotConfigured ...
- ConfigurationStatus2NotConfigured ConfigurationStatus2 = "NotConfigured"
-)
-
-// PossibleConfigurationStatus2Values returns an array of possible values for the ConfigurationStatus2 const type.
-func PossibleConfigurationStatus2Values() []ConfigurationStatus2 {
- return []ConfigurationStatus2{ConfigurationStatus2Configured, ConfigurationStatus2Failed, ConfigurationStatus2InProgress, ConfigurationStatus2NoStatus, ConfigurationStatus2NotConfigured}
+// AsBasicExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AadExternalSecuritySolution.
+func (aess AadExternalSecuritySolution) AsBasicExternalSecuritySolution() (BasicExternalSecuritySolution, bool) {
+ return &aess, true
}
-// ConnectionType enumerates the values for connection type.
-type ConnectionType string
-
-const (
- // External ...
- External ConnectionType = "External"
- // Internal ...
- Internal ConnectionType = "Internal"
-)
-
-// PossibleConnectionTypeValues returns an array of possible values for the ConnectionType const type.
-func PossibleConnectionTypeValues() []ConnectionType {
- return []ConnectionType{External, Internal}
+// AadSolutionProperties ...
+type AadSolutionProperties struct {
+ DeviceVendor *string `json:"deviceVendor,omitempty"`
+ DeviceType *string `json:"deviceType,omitempty"`
+ Workspace *ConnectedWorkspace `json:"workspace,omitempty"`
+ // ConnectivityState - Possible values include: 'Discovered', 'NotLicensed', 'Connected'
+ ConnectivityState AadConnectivityState `json:"connectivityState,omitempty"`
}
-// DataSource enumerates the values for data source.
-type DataSource string
-
-const (
- // TwinData Devices twin data
- TwinData DataSource = "TwinData"
-)
-
-// PossibleDataSourceValues returns an array of possible values for the DataSource const type.
-func PossibleDataSourceValues() []DataSource {
- return []DataSource{TwinData}
+// ActiveConnectionsNotInAllowedRange number of active connections is not in allowed range.
+type ActiveConnectionsNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
}
-// EnforcementMode enumerates the values for enforcement mode.
-type EnforcementMode string
-
-const (
- // Audit ...
- Audit EnforcementMode = "Audit"
- // Enforce ...
- Enforce EnforcementMode = "Enforce"
- // None ...
- None EnforcementMode = "None"
-)
-
-// PossibleEnforcementModeValues returns an array of possible values for the EnforcementMode const type.
-func PossibleEnforcementModeValues() []EnforcementMode {
- return []EnforcementMode{Audit, Enforce, None}
+// MarshalJSON is the custom marshaler for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ acniar.RuleType = RuleTypeActiveConnectionsNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if acniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = acniar.TimeWindowSize
+ }
+ if acniar.MinThreshold != nil {
+ objectMap["minThreshold"] = acniar.MinThreshold
+ }
+ if acniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = acniar.MaxThreshold
+ }
+ if acniar.IsEnabled != nil {
+ objectMap["isEnabled"] = acniar.IsEnabled
+ }
+ if acniar.RuleType != "" {
+ objectMap["ruleType"] = acniar.RuleType
+ }
+ return json.Marshal(objectMap)
}
-// EnforcementMode1 enumerates the values for enforcement mode 1.
-type EnforcementMode1 string
-
-const (
- // EnforcementMode1Audit ...
- EnforcementMode1Audit EnforcementMode1 = "Audit"
- // EnforcementMode1Enforce ...
- EnforcementMode1Enforce EnforcementMode1 = "Enforce"
- // EnforcementMode1None ...
- EnforcementMode1None EnforcementMode1 = "None"
-)
-
-// PossibleEnforcementMode1Values returns an array of possible values for the EnforcementMode1 const type.
-func PossibleEnforcementMode1Values() []EnforcementMode1 {
- return []EnforcementMode1{EnforcementMode1Audit, EnforcementMode1Enforce, EnforcementMode1None}
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
}
-// EnforcementSupport enumerates the values for enforcement support.
-type EnforcementSupport string
-
-const (
- // NotSupported ...
- NotSupported EnforcementSupport = "NotSupported"
- // Supported ...
- Supported EnforcementSupport = "Supported"
- // Unknown ...
- Unknown EnforcementSupport = "Unknown"
-)
-
-// PossibleEnforcementSupportValues returns an array of possible values for the EnforcementSupport const type.
-func PossibleEnforcementSupportValues() []EnforcementSupport {
- return []EnforcementSupport{NotSupported, Supported, Unknown}
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &acniar, true
}
-// EventSource enumerates the values for event source.
-type EventSource string
-
-const (
- // Alerts ...
- Alerts EventSource = "Alerts"
- // Assessments ...
- Assessments EventSource = "Assessments"
-)
-
-// PossibleEventSourceValues returns an array of possible values for the EventSource const type.
-func PossibleEventSourceValues() []EventSource {
- return []EventSource{Alerts, Assessments}
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
}
-// Exe enumerates the values for exe.
-type Exe string
-
-const (
- // ExeAudit ...
- ExeAudit Exe = "Audit"
- // ExeEnforce ...
- ExeEnforce Exe = "Enforce"
- // ExeNone ...
- ExeNone Exe = "None"
-)
-
-// PossibleExeValues returns an array of possible values for the Exe const type.
-func PossibleExeValues() []Exe {
- return []Exe{ExeAudit, ExeEnforce, ExeNone}
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &acniar, true
}
-// Executable enumerates the values for executable.
-type Executable string
-
-const (
- // ExecutableAudit ...
- ExecutableAudit Executable = "Audit"
- // ExecutableEnforce ...
- ExecutableEnforce Executable = "Enforce"
- // ExecutableNone ...
- ExecutableNone Executable = "None"
-)
-
-// PossibleExecutableValues returns an array of possible values for the Executable const type.
-func PossibleExecutableValues() []Executable {
- return []Executable{ExecutableAudit, ExecutableEnforce, ExecutableNone}
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// ExpandEnum enumerates the values for expand enum.
-type ExpandEnum string
-
-const (
- // Links All links associated with an assessment
- Links ExpandEnum = "links"
- // Metadata Assessment metadata
- Metadata ExpandEnum = "metadata"
-)
-
-// PossibleExpandEnumValues returns an array of possible values for the ExpandEnum const type.
-func PossibleExpandEnumValues() []ExpandEnum {
- return []ExpandEnum{Links, Metadata}
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// ExportData enumerates the values for export data.
-type ExportData string
-
-const (
- // RawEvents Agent raw events
- RawEvents ExportData = "RawEvents"
-)
-
-// PossibleExportDataValues returns an array of possible values for the ExportData const type.
-func PossibleExportDataValues() []ExportData {
- return []ExportData{RawEvents}
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
}
-// ExternalSecuritySolutionKind enumerates the values for external security solution kind.
-type ExternalSecuritySolutionKind string
-
-const (
- // AAD ...
- AAD ExternalSecuritySolutionKind = "AAD"
- // ATA ...
- ATA ExternalSecuritySolutionKind = "ATA"
- // CEF ...
- CEF ExternalSecuritySolutionKind = "CEF"
-)
-
-// PossibleExternalSecuritySolutionKindValues returns an array of possible values for the ExternalSecuritySolutionKind const type.
-func PossibleExternalSecuritySolutionKindValues() []ExternalSecuritySolutionKind {
- return []ExternalSecuritySolutionKind{AAD, ATA, CEF}
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
}
-// Family enumerates the values for family.
-type Family string
-
-const (
- // Ngfw ...
- Ngfw Family = "Ngfw"
- // SaasWaf ...
- SaasWaf Family = "SaasWaf"
- // Va ...
- Va Family = "Va"
- // Waf ...
- Waf Family = "Waf"
-)
-
-// PossibleFamilyValues returns an array of possible values for the Family const type.
-func PossibleFamilyValues() []Family {
- return []Family{Ngfw, SaasWaf, Va, Waf}
-}
-
-// FileType enumerates the values for file type.
-type FileType string
-
-const (
- // FileTypeDll ...
- FileTypeDll FileType = "Dll"
- // FileTypeExe ...
- FileTypeExe FileType = "Exe"
- // FileTypeExecutable ...
- FileTypeExecutable FileType = "Executable"
- // FileTypeMsi ...
- FileTypeMsi FileType = "Msi"
- // FileTypeScript ...
- FileTypeScript FileType = "Script"
- // FileTypeUnknown ...
- FileTypeUnknown FileType = "Unknown"
-)
-
-// PossibleFileTypeValues returns an array of possible values for the FileType const type.
-func PossibleFileTypeValues() []FileType {
- return []FileType{FileTypeDll, FileTypeExe, FileTypeExecutable, FileTypeMsi, FileTypeScript, FileTypeUnknown}
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
}
-// ImplementationEffort enumerates the values for implementation effort.
-type ImplementationEffort string
-
-const (
- // High ...
- High ImplementationEffort = "High"
- // Low ...
- Low ImplementationEffort = "Low"
- // Moderate ...
- Moderate ImplementationEffort = "Moderate"
-)
-
-// PossibleImplementationEffortValues returns an array of possible values for the ImplementationEffort const type.
-func PossibleImplementationEffortValues() []ImplementationEffort {
- return []ImplementationEffort{High, Low, Moderate}
-}
-
-// Issue enumerates the values for issue.
-type Issue string
-
-const (
- // ExecutableViolationsAudited ...
- ExecutableViolationsAudited Issue = "ExecutableViolationsAudited"
- // MsiAndScriptViolationsAudited ...
- MsiAndScriptViolationsAudited Issue = "MsiAndScriptViolationsAudited"
- // MsiAndScriptViolationsBlocked ...
- MsiAndScriptViolationsBlocked Issue = "MsiAndScriptViolationsBlocked"
- // RulesViolatedManually ...
- RulesViolatedManually Issue = "RulesViolatedManually"
- // ViolationsAudited ...
- ViolationsAudited Issue = "ViolationsAudited"
- // ViolationsBlocked ...
- ViolationsBlocked Issue = "ViolationsBlocked"
-)
-
-// PossibleIssueValues returns an array of possible values for the Issue const type.
-func PossibleIssueValues() []Issue {
- return []Issue{ExecutableViolationsAudited, MsiAndScriptViolationsAudited, MsiAndScriptViolationsBlocked, RulesViolatedManually, ViolationsAudited, ViolationsBlocked}
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
}
-// KindEnum enumerates the values for kind enum.
-type KindEnum string
-
-const (
- // KindAAD ...
- KindAAD KindEnum = "AAD"
- // KindATA ...
- KindATA KindEnum = "ATA"
- // KindCEF ...
- KindCEF KindEnum = "CEF"
- // KindExternalSecuritySolution ...
- KindExternalSecuritySolution KindEnum = "ExternalSecuritySolution"
-)
-
-// PossibleKindEnumValues returns an array of possible values for the KindEnum const type.
-func PossibleKindEnumValues() []KindEnum {
- return []KindEnum{KindAAD, KindATA, KindCEF, KindExternalSecuritySolution}
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
}
-// Msi enumerates the values for msi.
-type Msi string
-
-const (
- // MsiAudit ...
- MsiAudit Msi = "Audit"
- // MsiEnforce ...
- MsiEnforce Msi = "Enforce"
- // MsiNone ...
- MsiNone Msi = "None"
-)
-
-// PossibleMsiValues returns an array of possible values for the Msi const type.
-func PossibleMsiValues() []Msi {
- return []Msi{MsiAudit, MsiEnforce, MsiNone}
-}
-
-// Operator enumerates the values for operator.
-type Operator string
-
-const (
- // Contains ...
- Contains Operator = "Contains"
- // EndsWith ...
- EndsWith Operator = "EndsWith"
- // Equals ...
- Equals Operator = "Equals"
- // GreaterThan ...
- GreaterThan Operator = "GreaterThan"
- // GreaterThanOrEqualTo ...
- GreaterThanOrEqualTo Operator = "GreaterThanOrEqualTo"
- // LesserThan ...
- LesserThan Operator = "LesserThan"
- // LesserThanOrEqualTo ...
- LesserThanOrEqualTo Operator = "LesserThanOrEqualTo"
- // NotEquals ...
- NotEquals Operator = "NotEquals"
- // StartsWith ...
- StartsWith Operator = "StartsWith"
-)
-
-// PossibleOperatorValues returns an array of possible values for the Operator const type.
-func PossibleOperatorValues() []Operator {
- return []Operator{Contains, EndsWith, Equals, GreaterThan, GreaterThanOrEqualTo, LesserThan, LesserThanOrEqualTo, NotEquals, StartsWith}
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
}
-// PricingTier enumerates the values for pricing tier.
-type PricingTier string
-
-const (
- // Free Get free Azure security center experience with basic security features
- Free PricingTier = "Free"
- // Standard Get the standard Azure security center experience with advanced security features
- Standard PricingTier = "Standard"
-)
-
-// PossiblePricingTierValues returns an array of possible values for the PricingTier const type.
-func PossiblePricingTierValues() []PricingTier {
- return []PricingTier{Free, Standard}
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return &acniar, true
}
-// PropertyType enumerates the values for property type.
-type PropertyType string
-
-const (
- // Boolean ...
- Boolean PropertyType = "Boolean"
- // Integer ...
- Integer PropertyType = "Integer"
- // Number ...
- Number PropertyType = "Number"
- // String ...
- String PropertyType = "String"
-)
-
-// PossiblePropertyTypeValues returns an array of possible values for the PropertyType const type.
-func PossiblePropertyTypeValues() []PropertyType {
- return []PropertyType{Boolean, Integer, Number, String}
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Protocol enumerates the values for protocol.
-type Protocol string
-
-const (
- // All ...
- All Protocol = "*"
- // TCP ...
- TCP Protocol = "TCP"
- // UDP ...
- UDP Protocol = "UDP"
-)
-
-// PossibleProtocolValues returns an array of possible values for the Protocol const type.
-func PossibleProtocolValues() []Protocol {
- return []Protocol{All, TCP, UDP}
-}
-
-// ProvisioningState enumerates the values for provisioning state.
-type ProvisioningState string
-
-const (
- // ProvisioningStateCanceled ...
- ProvisioningStateCanceled ProvisioningState = "Canceled"
- // ProvisioningStateDeprovisioning ...
- ProvisioningStateDeprovisioning ProvisioningState = "Deprovisioning"
- // ProvisioningStateFailed ...
- ProvisioningStateFailed ProvisioningState = "Failed"
- // ProvisioningStateProvisioning ...
- ProvisioningStateProvisioning ProvisioningState = "Provisioning"
- // ProvisioningStateSucceeded ...
- ProvisioningStateSucceeded ProvisioningState = "Succeeded"
-)
-
-// PossibleProvisioningStateValues returns an array of possible values for the ProvisioningState const type.
-func PossibleProvisioningStateValues() []ProvisioningState {
- return []ProvisioningState{ProvisioningStateCanceled, ProvisioningStateDeprovisioning, ProvisioningStateFailed, ProvisioningStateProvisioning, ProvisioningStateSucceeded}
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// RecommendationAction enumerates the values for recommendation action.
-type RecommendationAction string
-
-const (
- // RecommendationActionAdd ...
- RecommendationActionAdd RecommendationAction = "Add"
- // RecommendationActionRecommended ...
- RecommendationActionRecommended RecommendationAction = "Recommended"
- // RecommendationActionRemove ...
- RecommendationActionRemove RecommendationAction = "Remove"
-)
-
-// PossibleRecommendationActionValues returns an array of possible values for the RecommendationAction const type.
-func PossibleRecommendationActionValues() []RecommendationAction {
- return []RecommendationAction{RecommendationActionAdd, RecommendationActionRecommended, RecommendationActionRemove}
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// RecommendationAction1 enumerates the values for recommendation action 1.
-type RecommendationAction1 string
-
-const (
- // RecommendationAction1Add ...
- RecommendationAction1Add RecommendationAction1 = "Add"
- // RecommendationAction1Recommended ...
- RecommendationAction1Recommended RecommendationAction1 = "Recommended"
- // RecommendationAction1Remove ...
- RecommendationAction1Remove RecommendationAction1 = "Remove"
-)
-
-// PossibleRecommendationAction1Values returns an array of possible values for the RecommendationAction1 const type.
-func PossibleRecommendationAction1Values() []RecommendationAction1 {
- return []RecommendationAction1{RecommendationAction1Add, RecommendationAction1Recommended, RecommendationAction1Remove}
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// RecommendationConfigStatus enumerates the values for recommendation config status.
-type RecommendationConfigStatus string
-
-const (
- // Disabled ...
- Disabled RecommendationConfigStatus = "Disabled"
- // Enabled ...
- Enabled RecommendationConfigStatus = "Enabled"
-)
-
-// PossibleRecommendationConfigStatusValues returns an array of possible values for the RecommendationConfigStatus const type.
-func PossibleRecommendationConfigStatusValues() []RecommendationConfigStatus {
- return []RecommendationConfigStatus{Disabled, Enabled}
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// RecommendationStatus enumerates the values for recommendation status.
-type RecommendationStatus string
-
-const (
- // RecommendationStatusNoStatus ...
- RecommendationStatusNoStatus RecommendationStatus = "NoStatus"
- // RecommendationStatusNotAvailable ...
- RecommendationStatusNotAvailable RecommendationStatus = "NotAvailable"
- // RecommendationStatusNotRecommended ...
- RecommendationStatusNotRecommended RecommendationStatus = "NotRecommended"
- // RecommendationStatusRecommended ...
- RecommendationStatusRecommended RecommendationStatus = "Recommended"
-)
-
-// PossibleRecommendationStatusValues returns an array of possible values for the RecommendationStatus const type.
-func PossibleRecommendationStatusValues() []RecommendationStatus {
- return []RecommendationStatus{RecommendationStatusNoStatus, RecommendationStatusNotAvailable, RecommendationStatusNotRecommended, RecommendationStatusRecommended}
-}
-
-// RecommendationType enumerates the values for recommendation type.
-type RecommendationType string
-
-const (
- // IoTACRAuthentication Authentication schema used for pull an edge module from an ACR repository does not
- // use Service Principal Authentication.
- IoTACRAuthentication RecommendationType = "IoT_ACRAuthentication"
- // IoTAgentSendsUnutilizedMessages IoT agent message size capacity is currently underutilized, causing an
- // increase in the number of sent messages. Adjust message intervals for better utilization.
- IoTAgentSendsUnutilizedMessages RecommendationType = "IoT_AgentSendsUnutilizedMessages"
- // IoTBaseline Identified security related system configuration issues.
- IoTBaseline RecommendationType = "IoT_Baseline"
- // IoTEdgeHubMemOptimize You can optimize Edge Hub memory usage by turning off protocol heads for any
- // protocols not used by Edge modules in your solution.
- IoTEdgeHubMemOptimize RecommendationType = "IoT_EdgeHubMemOptimize"
- // IoTEdgeLoggingOptions Logging is disabled for this edge module.
- IoTEdgeLoggingOptions RecommendationType = "IoT_EdgeLoggingOptions"
- // IoTInconsistentModuleSettings A minority within a device security group has inconsistent Edge Module
- // settings with the rest of their group.
- IoTInconsistentModuleSettings RecommendationType = "IoT_InconsistentModuleSettings"
- // IoTInstallAgent Install the Azure Security of Things Agent.
- IoTInstallAgent RecommendationType = "IoT_InstallAgent"
- // IoTIPFilterDenyAll IP Filter Configuration should have rules defined for allowed traffic and should deny
- // all other traffic by default.
- IoTIPFilterDenyAll RecommendationType = "IoT_IPFilter_DenyAll"
- // IoTIPFilterPermissiveRule An Allow IP Filter rules source IP range is too large. Overly permissive rules
- // might expose your IoT hub to malicious intenders.
- IoTIPFilterPermissiveRule RecommendationType = "IoT_IPFilter_PermissiveRule"
- // IoTOpenPorts A listening endpoint was found on the device.
- IoTOpenPorts RecommendationType = "IoT_OpenPorts"
- // IoTPermissiveFirewallPolicy An Allowed firewall policy was found (INPUT/OUTPUT). The policy should Deny
- // all traffic by default and define rules to allow necessary communication to/from the device.
- IoTPermissiveFirewallPolicy RecommendationType = "IoT_PermissiveFirewallPolicy"
- // IoTPermissiveInputFirewallRules A rule in the firewall has been found that contains a permissive pattern
- // for a wide range of IP addresses or Ports.
- IoTPermissiveInputFirewallRules RecommendationType = "IoT_PermissiveInputFirewallRules"
- // IoTPermissiveOutputFirewallRules A rule in the firewall has been found that contains a permissive
- // pattern for a wide range of IP addresses or Ports.
- IoTPermissiveOutputFirewallRules RecommendationType = "IoT_PermissiveOutputFirewallRules"
- // IoTPrivilegedDockerOptions Edge module is configured to run in privileged mode, with extensive Linux
- // capabilities or with host-level network access (send/receive data to host machine).
- IoTPrivilegedDockerOptions RecommendationType = "IoT_PrivilegedDockerOptions"
- // IoTSharedCredentials Same authentication credentials to the IoT Hub used by multiple devices. This could
- // indicate an illegitimate device impersonating a legitimate device. It also exposes the risk of device
- // impersonation by an attacker.
- IoTSharedCredentials RecommendationType = "IoT_SharedCredentials"
- // IoTVulnerableTLSCipherSuite Insecure TLS configurations detected. Immediate upgrade recommended.
- IoTVulnerableTLSCipherSuite RecommendationType = "IoT_VulnerableTLSCipherSuite"
-)
-
-// PossibleRecommendationTypeValues returns an array of possible values for the RecommendationType const type.
-func PossibleRecommendationTypeValues() []RecommendationType {
- return []RecommendationType{IoTACRAuthentication, IoTAgentSendsUnutilizedMessages, IoTBaseline, IoTEdgeHubMemOptimize, IoTEdgeLoggingOptions, IoTInconsistentModuleSettings, IoTInstallAgent, IoTIPFilterDenyAll, IoTIPFilterPermissiveRule, IoTOpenPorts, IoTPermissiveFirewallPolicy, IoTPermissiveInputFirewallRules, IoTPermissiveOutputFirewallRules, IoTPrivilegedDockerOptions, IoTSharedCredentials, IoTVulnerableTLSCipherSuite}
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// ReportedSeverity enumerates the values for reported severity.
-type ReportedSeverity string
-
-const (
- // ReportedSeverityHigh ...
- ReportedSeverityHigh ReportedSeverity = "High"
- // ReportedSeverityInformational ...
- ReportedSeverityInformational ReportedSeverity = "Informational"
- // ReportedSeverityLow ...
- ReportedSeverityLow ReportedSeverity = "Low"
- // ReportedSeverityMedium ...
- ReportedSeverityMedium ReportedSeverity = "Medium"
-)
-
-// PossibleReportedSeverityValues returns an array of possible values for the ReportedSeverity const type.
-func PossibleReportedSeverityValues() []ReportedSeverity {
- return []ReportedSeverity{ReportedSeverityHigh, ReportedSeverityInformational, ReportedSeverityLow, ReportedSeverityMedium}
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// ResourceStatus enumerates the values for resource status.
-type ResourceStatus string
-
-const (
- // ResourceStatusHealthy This assessment on the resource is healthy
- ResourceStatusHealthy ResourceStatus = "Healthy"
- // ResourceStatusNotApplicable This assessment is not applicable to this resource
- ResourceStatusNotApplicable ResourceStatus = "NotApplicable"
- // ResourceStatusNotHealthy This assessment on the resource is not healthy
- ResourceStatusNotHealthy ResourceStatus = "NotHealthy"
- // ResourceStatusOffByPolicy This assessment is turned off by policy on this subscription
- ResourceStatusOffByPolicy ResourceStatus = "OffByPolicy"
-)
-
-// PossibleResourceStatusValues returns an array of possible values for the ResourceStatus const type.
-func PossibleResourceStatusValues() []ResourceStatus {
- return []ResourceStatus{ResourceStatusHealthy, ResourceStatusNotApplicable, ResourceStatusNotHealthy, ResourceStatusOffByPolicy}
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Script enumerates the values for script.
-type Script string
-
-const (
- // ScriptAudit ...
- ScriptAudit Script = "Audit"
- // ScriptEnforce ...
- ScriptEnforce Script = "Enforce"
- // ScriptNone ...
- ScriptNone Script = "None"
-)
-
-// PossibleScriptValues returns an array of possible values for the Script const type.
-func PossibleScriptValues() []Script {
- return []Script{ScriptAudit, ScriptEnforce, ScriptNone}
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// SettingKind enumerates the values for setting kind.
-type SettingKind string
-
-const (
- // SettingKindAlertSuppressionSetting ...
- SettingKindAlertSuppressionSetting SettingKind = "AlertSuppressionSetting"
- // SettingKindDataExportSetting ...
- SettingKindDataExportSetting SettingKind = "DataExportSetting"
-)
-
-// PossibleSettingKindValues returns an array of possible values for the SettingKind const type.
-func PossibleSettingKindValues() []SettingKind {
- return []SettingKind{SettingKindAlertSuppressionSetting, SettingKindDataExportSetting}
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
}
-// Severity enumerates the values for severity.
-type Severity string
-
-const (
- // SeverityHigh ...
- SeverityHigh Severity = "High"
- // SeverityLow ...
- SeverityLow Severity = "Low"
- // SeverityMedium ...
- SeverityMedium Severity = "Medium"
-)
-
-// PossibleSeverityValues returns an array of possible values for the Severity const type.
-func PossibleSeverityValues() []Severity {
- return []Severity{SeverityHigh, SeverityLow, SeverityMedium}
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
}
-// SolutionStatus enumerates the values for solution status.
-type SolutionStatus string
-
-const (
- // SolutionStatusDisabled ...
- SolutionStatusDisabled SolutionStatus = "Disabled"
- // SolutionStatusEnabled ...
- SolutionStatusEnabled SolutionStatus = "Enabled"
-)
-
-// PossibleSolutionStatusValues returns an array of possible values for the SolutionStatus const type.
-func PossibleSolutionStatusValues() []SolutionStatus {
- return []SolutionStatus{SolutionStatusDisabled, SolutionStatusEnabled}
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
}
-// Source enumerates the values for source.
-type Source string
-
-const (
- // SourceAzure ...
- SourceAzure Source = "Azure"
- // SourceOnPremise ...
- SourceOnPremise Source = "OnPremise"
- // SourceResourceDetails ...
- SourceResourceDetails Source = "ResourceDetails"
-)
-
-// PossibleSourceValues returns an array of possible values for the Source const type.
-func PossibleSourceValues() []Source {
- return []Source{SourceAzure, SourceOnPremise, SourceResourceDetails}
-}
-
-// SourceSystem enumerates the values for source system.
-type SourceSystem string
-
-const (
- // SourceSystemAzureAppLocker ...
- SourceSystemAzureAppLocker SourceSystem = "Azure_AppLocker"
- // SourceSystemAzureAuditD ...
- SourceSystemAzureAuditD SourceSystem = "Azure_AuditD"
- // SourceSystemNonAzureAppLocker ...
- SourceSystemNonAzureAppLocker SourceSystem = "NonAzure_AppLocker"
- // SourceSystemNonAzureAuditD ...
- SourceSystemNonAzureAuditD SourceSystem = "NonAzure_AuditD"
- // SourceSystemNone ...
- SourceSystemNone SourceSystem = "None"
-)
-
-// PossibleSourceSystemValues returns an array of possible values for the SourceSystem const type.
-func PossibleSourceSystemValues() []SourceSystem {
- return []SourceSystem{SourceSystemAzureAppLocker, SourceSystemAzureAuditD, SourceSystemNonAzureAppLocker, SourceSystemNonAzureAuditD, SourceSystemNone}
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
}
-// State enumerates the values for state.
-type State string
-
-const (
- // StateFailed At least one supported regulatory compliance control in the given standard has a state of
- // failed
- StateFailed State = "Failed"
- // StatePassed All supported regulatory compliance controls in the given standard have a passed state
- StatePassed State = "Passed"
- // StateSkipped All supported regulatory compliance controls in the given standard have a state of skipped
- StateSkipped State = "Skipped"
- // StateUnsupported No supported regulatory compliance data for the given standard
- StateUnsupported State = "Unsupported"
-)
-
-// PossibleStateValues returns an array of possible values for the State const type.
-func PossibleStateValues() []State {
- return []State{StateFailed, StatePassed, StateSkipped, StateUnsupported}
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
}
-// Status enumerates the values for status.
-type Status string
-
-const (
- // Initiated ...
- Initiated Status = "Initiated"
- // Revoked ...
- Revoked Status = "Revoked"
-)
-
-// PossibleStatusValues returns an array of possible values for the Status const type.
-func PossibleStatusValues() []Status {
- return []Status{Initiated, Revoked}
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
}
-// StatusReason enumerates the values for status reason.
-type StatusReason string
-
-const (
- // Expired ...
- Expired StatusReason = "Expired"
- // NewerRequestInitiated ...
- NewerRequestInitiated StatusReason = "NewerRequestInitiated"
- // UserRequested ...
- UserRequested StatusReason = "UserRequested"
-)
-
-// PossibleStatusReasonValues returns an array of possible values for the StatusReason const type.
-func PossibleStatusReasonValues() []StatusReason {
- return []StatusReason{Expired, NewerRequestInitiated, UserRequested}
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
}
-// SubAssessmentStatusCode enumerates the values for sub assessment status code.
-type SubAssessmentStatusCode string
-
-const (
- // SubAssessmentStatusCodeHealthy The resource is healthy
- SubAssessmentStatusCodeHealthy SubAssessmentStatusCode = "Healthy"
- // SubAssessmentStatusCodeNotApplicable Assessment for this resource did not happen
- SubAssessmentStatusCodeNotApplicable SubAssessmentStatusCode = "NotApplicable"
- // SubAssessmentStatusCodeUnhealthy The resource has a security issue that needs to be addressed
- SubAssessmentStatusCodeUnhealthy SubAssessmentStatusCode = "Unhealthy"
-)
-
-// PossibleSubAssessmentStatusCodeValues returns an array of possible values for the SubAssessmentStatusCode const type.
-func PossibleSubAssessmentStatusCodeValues() []SubAssessmentStatusCode {
- return []SubAssessmentStatusCode{SubAssessmentStatusCodeHealthy, SubAssessmentStatusCodeNotApplicable, SubAssessmentStatusCodeUnhealthy}
-}
-
-// Threats enumerates the values for threats.
-type Threats string
-
-const (
- // AccountBreach ...
- AccountBreach Threats = "accountBreach"
- // DataExfiltration ...
- DataExfiltration Threats = "dataExfiltration"
- // DataSpillage ...
- DataSpillage Threats = "dataSpillage"
- // DenialOfService ...
- DenialOfService Threats = "denialOfService"
- // ElevationOfPrivilege ...
- ElevationOfPrivilege Threats = "elevationOfPrivilege"
- // MaliciousInsider ...
- MaliciousInsider Threats = "maliciousInsider"
- // MissingCoverage ...
- MissingCoverage Threats = "missingCoverage"
- // ThreatResistance ...
- ThreatResistance Threats = "threatResistance"
-)
-
-// PossibleThreatsValues returns an array of possible values for the Threats const type.
-func PossibleThreatsValues() []Threats {
- return []Threats{AccountBreach, DataExfiltration, DataSpillage, DenialOfService, ElevationOfPrivilege, MaliciousInsider, MissingCoverage, ThreatResistance}
-}
-
-// Type enumerates the values for type.
-type Type string
-
-const (
- // BinarySignature ...
- BinarySignature Type = "BinarySignature"
- // File ...
- File Type = "File"
- // FileHash ...
- FileHash Type = "FileHash"
- // ProductSignature ...
- ProductSignature Type = "ProductSignature"
- // PublisherSignature ...
- PublisherSignature Type = "PublisherSignature"
- // VersionAndAboveSignature ...
- VersionAndAboveSignature Type = "VersionAndAboveSignature"
-)
-
-// PossibleTypeValues returns an array of possible values for the Type const type.
-func PossibleTypeValues() []Type {
- return []Type{BinarySignature, File, FileHash, ProductSignature, PublisherSignature, VersionAndAboveSignature}
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &acniar, true
}
-// UnmaskedIPLoggingStatus enumerates the values for unmasked ip logging status.
-type UnmaskedIPLoggingStatus string
-
-const (
- // UnmaskedIPLoggingStatusDisabled Unmasked IP logging is disabled
- UnmaskedIPLoggingStatusDisabled UnmaskedIPLoggingStatus = "Disabled"
- // UnmaskedIPLoggingStatusEnabled Unmasked IP logging is enabled
- UnmaskedIPLoggingStatusEnabled UnmaskedIPLoggingStatus = "Enabled"
-)
-
-// PossibleUnmaskedIPLoggingStatusValues returns an array of possible values for the UnmaskedIPLoggingStatus const type.
-func PossibleUnmaskedIPLoggingStatusValues() []UnmaskedIPLoggingStatus {
- return []UnmaskedIPLoggingStatus{UnmaskedIPLoggingStatusDisabled, UnmaskedIPLoggingStatusEnabled}
+// AdaptiveApplicationControlGroup ...
+type AdaptiveApplicationControlGroup struct {
+ autorest.Response `json:"-"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ *AdaptiveApplicationControlGroupData `json:"properties,omitempty"`
}
-// UserImpact enumerates the values for user impact.
-type UserImpact string
-
-const (
- // UserImpactHigh ...
- UserImpactHigh UserImpact = "High"
- // UserImpactLow ...
- UserImpactLow UserImpact = "Low"
- // UserImpactModerate ...
- UserImpactModerate UserImpact = "Moderate"
-)
-
-// PossibleUserImpactValues returns an array of possible values for the UserImpact const type.
-func PossibleUserImpactValues() []UserImpact {
- return []UserImpact{UserImpactHigh, UserImpactLow, UserImpactModerate}
-}
-
-// ValueType enumerates the values for value type.
-type ValueType string
-
-const (
- // ValueTypeIPCidr An IP range in CIDR format (e.g. '192.168.0.1/8').
- ValueTypeIPCidr ValueType = "IpCidr"
- // ValueTypeString Any string value.
- ValueTypeString ValueType = "String"
-)
-
-// PossibleValueTypeValues returns an array of possible values for the ValueType const type.
-func PossibleValueTypeValues() []ValueType {
- return []ValueType{ValueTypeIPCidr, ValueTypeString}
-}
-
-// AadConnectivityState1 describes an Azure resource with kind
-type AadConnectivityState1 struct {
- // ConnectivityState - Possible values include: 'Discovered', 'NotLicensed', 'Connected'
- ConnectivityState AadConnectivityState `json:"connectivityState,omitempty"`
-}
-
-// AadExternalSecuritySolution represents an AAD identity protection solution which sends logs to an OMS
-// workspace.
-type AadExternalSecuritySolution struct {
- Properties *AadSolutionProperties `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
- // Location - READ-ONLY; Location where the resource is stored
- Location *string `json:"location,omitempty"`
- // Kind - Possible values include: 'KindExternalSecuritySolution', 'KindCEF', 'KindATA', 'KindAAD'
- Kind KindEnum `json:"kind,omitempty"`
-}
-
-// MarshalJSON is the custom marshaler for AadExternalSecuritySolution.
-func (aess AadExternalSecuritySolution) MarshalJSON() ([]byte, error) {
- aess.Kind = KindAAD
+// MarshalJSON is the custom marshaler for AdaptiveApplicationControlGroup.
+func (aacg AdaptiveApplicationControlGroup) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if aess.Properties != nil {
- objectMap["properties"] = aess.Properties
- }
- if aess.Kind != "" {
- objectMap["kind"] = aess.Kind
+ if aacg.AdaptiveApplicationControlGroupData != nil {
+ objectMap["properties"] = aacg.AdaptiveApplicationControlGroupData
}
return json.Marshal(objectMap)
}
-// AsCefExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AadExternalSecuritySolution.
-func (aess AadExternalSecuritySolution) AsCefExternalSecuritySolution() (*CefExternalSecuritySolution, bool) {
- return nil, false
-}
-
-// AsAtaExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AadExternalSecuritySolution.
-func (aess AadExternalSecuritySolution) AsAtaExternalSecuritySolution() (*AtaExternalSecuritySolution, bool) {
- return nil, false
-}
-
-// AsAadExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AadExternalSecuritySolution.
-func (aess AadExternalSecuritySolution) AsAadExternalSecuritySolution() (*AadExternalSecuritySolution, bool) {
- return &aess, true
-}
-
-// AsExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AadExternalSecuritySolution.
-func (aess AadExternalSecuritySolution) AsExternalSecuritySolution() (*ExternalSecuritySolution, bool) {
- return nil, false
-}
-
-// AsBasicExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AadExternalSecuritySolution.
-func (aess AadExternalSecuritySolution) AsBasicExternalSecuritySolution() (BasicExternalSecuritySolution, bool) {
- return &aess, true
-}
-
-// AadSolutionProperties ...
-type AadSolutionProperties struct {
- DeviceVendor *string `json:"deviceVendor,omitempty"`
- DeviceType *string `json:"deviceType,omitempty"`
- Workspace *ConnectedWorkspace `json:"workspace,omitempty"`
- // ConnectivityState - Possible values include: 'Discovered', 'NotLicensed', 'Connected'
- ConnectivityState AadConnectivityState `json:"connectivityState,omitempty"`
-}
-
-// BasicAdditionalData details of the sub-assessment
-type BasicAdditionalData interface {
- AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool)
- AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool)
- AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool)
- AsAdditionalData() (*AdditionalData, bool)
-}
-
-// AdditionalData details of the sub-assessment
-type AdditionalData struct {
- // AssessedResourceType - Possible values include: 'AssessedResourceTypeAdditionalData', 'AssessedResourceTypeSQLServerVulnerability', 'AssessedResourceTypeContainerRegistryVulnerability', 'AssessedResourceTypeServerVulnerabilityAssessment'
- AssessedResourceType AssessedResourceType `json:"assessedResourceType,omitempty"`
-}
-
-func unmarshalBasicAdditionalData(body []byte) (BasicAdditionalData, error) {
- var m map[string]interface{}
+// UnmarshalJSON is the custom unmarshaler for AdaptiveApplicationControlGroup struct.
+func (aacg *AdaptiveApplicationControlGroup) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
- return nil, err
- }
-
- switch m["assessedResourceType"] {
- case string(AssessedResourceTypeSQLServerVulnerability):
- var ssvp SQLServerVulnerabilityProperties
- err := json.Unmarshal(body, &ssvp)
- return ssvp, err
- case string(AssessedResourceTypeContainerRegistryVulnerability):
- var crvp ContainerRegistryVulnerabilityProperties
- err := json.Unmarshal(body, &crvp)
- return crvp, err
- case string(AssessedResourceTypeServerVulnerabilityAssessment):
- var svp ServerVulnerabilityProperties
- err := json.Unmarshal(body, &svp)
- return svp, err
- default:
- var ad AdditionalData
- err := json.Unmarshal(body, &ad)
- return ad, err
+ return err
}
-}
-func unmarshalBasicAdditionalDataArray(body []byte) ([]BasicAdditionalData, error) {
- var rawMessages []*json.RawMessage
- err := json.Unmarshal(body, &rawMessages)
- if err != nil {
- return nil, err
+ for k, v := range m {
+ switch k {
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ aacg.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ aacg.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ aacg.Type = &typeVar
+ }
+ case "location":
+ if v != nil {
+ var location string
+ err = json.Unmarshal(*v, &location)
+ if err != nil {
+ return err
+ }
+ aacg.Location = &location
+ }
+ case "properties":
+ if v != nil {
+ var adaptiveApplicationControlGroupData AdaptiveApplicationControlGroupData
+ err = json.Unmarshal(*v, &adaptiveApplicationControlGroupData)
+ if err != nil {
+ return err
+ }
+ aacg.AdaptiveApplicationControlGroupData = &adaptiveApplicationControlGroupData
+ }
+ }
}
- adArray := make([]BasicAdditionalData, len(rawMessages))
+ return nil
+}
- for index, rawMessage := range rawMessages {
- ad, err := unmarshalBasicAdditionalData(*rawMessage)
- if err != nil {
- return nil, err
- }
- adArray[index] = ad
- }
- return adArray, nil
+// AdaptiveApplicationControlGroupData represents a machines group and set of rules to be allowed running on a
+// machine
+type AdaptiveApplicationControlGroupData struct {
+ // EnforcementMode - Possible values include: 'Audit', 'Enforce', 'None'
+ EnforcementMode EnforcementMode `json:"enforcementMode,omitempty"`
+ ProtectionMode *ProtectionMode `json:"protectionMode,omitempty"`
+ // ConfigurationStatus - READ-ONLY; Possible values include: 'ConfigurationStatus2Configured', 'ConfigurationStatus2NotConfigured', 'ConfigurationStatus2InProgress', 'ConfigurationStatus2Failed', 'ConfigurationStatus2NoStatus'
+ ConfigurationStatus ConfigurationStatus2 `json:"configurationStatus,omitempty"`
+ // RecommendationStatus - READ-ONLY; Possible values include: 'RecommendationStatusRecommended', 'RecommendationStatusNotRecommended', 'RecommendationStatusNotAvailable', 'RecommendationStatusNoStatus'
+ RecommendationStatus RecommendationStatus `json:"recommendationStatus,omitempty"`
+ // Issues - READ-ONLY
+ Issues *[]AdaptiveApplicationControlIssueSummary `json:"issues,omitempty"`
+ // SourceSystem - READ-ONLY; Possible values include: 'SourceSystemAzureAppLocker', 'SourceSystemAzureAuditD', 'SourceSystemNonAzureAppLocker', 'SourceSystemNonAzureAuditD', 'SourceSystemNone'
+ SourceSystem SourceSystem `json:"sourceSystem,omitempty"`
+ VMRecommendations *[]VMRecommendation `json:"vmRecommendations,omitempty"`
+ PathRecommendations *[]PathRecommendation `json:"pathRecommendations,omitempty"`
}
-// MarshalJSON is the custom marshaler for AdditionalData.
-func (ad AdditionalData) MarshalJSON() ([]byte, error) {
- ad.AssessedResourceType = AssessedResourceTypeAdditionalData
+// MarshalJSON is the custom marshaler for AdaptiveApplicationControlGroupData.
+func (aacgd AdaptiveApplicationControlGroupData) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if ad.AssessedResourceType != "" {
- objectMap["assessedResourceType"] = ad.AssessedResourceType
+ if aacgd.EnforcementMode != "" {
+ objectMap["enforcementMode"] = aacgd.EnforcementMode
+ }
+ if aacgd.ProtectionMode != nil {
+ objectMap["protectionMode"] = aacgd.ProtectionMode
+ }
+ if aacgd.VMRecommendations != nil {
+ objectMap["vmRecommendations"] = aacgd.VMRecommendations
+ }
+ if aacgd.PathRecommendations != nil {
+ objectMap["pathRecommendations"] = aacgd.PathRecommendations
}
return json.Marshal(objectMap)
}
-// AsSQLServerVulnerabilityProperties is the BasicAdditionalData implementation for AdditionalData.
-func (ad AdditionalData) AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool) {
- return nil, false
-}
-
-// AsContainerRegistryVulnerabilityProperties is the BasicAdditionalData implementation for AdditionalData.
-func (ad AdditionalData) AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool) {
- return nil, false
-}
-
-// AsServerVulnerabilityProperties is the BasicAdditionalData implementation for AdditionalData.
-func (ad AdditionalData) AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool) {
- return nil, false
-}
-
-// AsAdditionalData is the BasicAdditionalData implementation for AdditionalData.
-func (ad AdditionalData) AsAdditionalData() (*AdditionalData, bool) {
- return &ad, true
-}
-
-// AsBasicAdditionalData is the BasicAdditionalData implementation for AdditionalData.
-func (ad AdditionalData) AsBasicAdditionalData() (BasicAdditionalData, bool) {
- return &ad, true
+// AdaptiveApplicationControlGroups represents a list of machine groups and set of rules that are recommended
+// by Azure Security Center to be allowed
+type AdaptiveApplicationControlGroups struct {
+ autorest.Response `json:"-"`
+ Value *[]AdaptiveApplicationControlGroup `json:"value,omitempty"`
}
-// AdvancedThreatProtectionProperties the Advanced Threat Protection settings.
-type AdvancedThreatProtectionProperties struct {
- // IsEnabled - Indicates whether Advanced Threat Protection is enabled.
- IsEnabled *bool `json:"isEnabled,omitempty"`
+// AdaptiveApplicationControlIssueSummary represents a summary of the alerts of the machine group
+type AdaptiveApplicationControlIssueSummary struct {
+ // Issue - Possible values include: 'ViolationsAudited', 'ViolationsBlocked', 'MsiAndScriptViolationsAudited', 'MsiAndScriptViolationsBlocked', 'ExecutableViolationsAudited', 'RulesViolatedManually'
+ Issue Issue `json:"issue,omitempty"`
+ // NumberOfVms - The number of machines in the group that have this alert
+ NumberOfVms *float64 `json:"numberOfVms,omitempty"`
}
-// AdvancedThreatProtectionSetting the Advanced Threat Protection resource.
-type AdvancedThreatProtectionSetting struct {
- autorest.Response `json:"-"`
- *AdvancedThreatProtectionProperties `json:"properties,omitempty"`
+// AdaptiveNetworkHardening the resource whose properties describes the Adaptive Network Hardening settings for
+// some Azure resource
+type AdaptiveNetworkHardening struct {
+ autorest.Response `json:"-"`
+ // AdaptiveNetworkHardeningProperties - Properties of the Adaptive Network Hardening resource
+ *AdaptiveNetworkHardeningProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
@@ -1272,17 +439,17 @@ type AdvancedThreatProtectionSetting struct {
Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for AdvancedThreatProtectionSetting.
-func (atps AdvancedThreatProtectionSetting) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for AdaptiveNetworkHardening.
+func (anh AdaptiveNetworkHardening) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if atps.AdvancedThreatProtectionProperties != nil {
- objectMap["properties"] = atps.AdvancedThreatProtectionProperties
+ if anh.AdaptiveNetworkHardeningProperties != nil {
+ objectMap["properties"] = anh.AdaptiveNetworkHardeningProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for AdvancedThreatProtectionSetting struct.
-func (atps *AdvancedThreatProtectionSetting) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for AdaptiveNetworkHardening struct.
+func (anh *AdaptiveNetworkHardening) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -1292,12 +459,12 @@ func (atps *AdvancedThreatProtectionSetting) UnmarshalJSON(body []byte) error {
switch k {
case "properties":
if v != nil {
- var advancedThreatProtectionProperties AdvancedThreatProtectionProperties
- err = json.Unmarshal(*v, &advancedThreatProtectionProperties)
+ var adaptiveNetworkHardeningProperties AdaptiveNetworkHardeningProperties
+ err = json.Unmarshal(*v, &adaptiveNetworkHardeningProperties)
if err != nil {
return err
}
- atps.AdvancedThreatProtectionProperties = &advancedThreatProtectionProperties
+ anh.AdaptiveNetworkHardeningProperties = &adaptiveNetworkHardeningProperties
}
case "id":
if v != nil {
@@ -1306,7 +473,7 @@ func (atps *AdvancedThreatProtectionSetting) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- atps.ID = &ID
+ anh.ID = &ID
}
case "name":
if v != nil {
@@ -1315,7 +482,7 @@ func (atps *AdvancedThreatProtectionSetting) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- atps.Name = &name
+ anh.Name = &name
}
case "type":
if v != nil {
@@ -1324,7 +491,7 @@ func (atps *AdvancedThreatProtectionSetting) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- atps.Type = &typeVar
+ anh.Type = &typeVar
}
}
}
@@ -1332,158 +499,68 @@ func (atps *AdvancedThreatProtectionSetting) UnmarshalJSON(body []byte) error {
return nil
}
-// Alert security alert
-type Alert struct {
- autorest.Response `json:"-"`
- *AlertProperties `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
+// AdaptiveNetworkHardeningEnforceRequest ...
+type AdaptiveNetworkHardeningEnforceRequest struct {
+ // Rules - The rules to enforce
+ Rules *[]Rule `json:"rules,omitempty"`
+ // NetworkSecurityGroups - The Azure resource IDs of the effective network security groups that will be updated with the created security rules from the Adaptive Network Hardening rules
+ NetworkSecurityGroups *[]string `json:"networkSecurityGroups,omitempty"`
}
-// MarshalJSON is the custom marshaler for Alert.
-func (a Alert) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- if a.AlertProperties != nil {
- objectMap["properties"] = a.AlertProperties
- }
- return json.Marshal(objectMap)
+// AdaptiveNetworkHardeningProperties adaptive Network Hardening resource properties
+type AdaptiveNetworkHardeningProperties struct {
+ // Rules - The security rules which are recommended to be effective on the VM
+ Rules *[]Rule `json:"rules,omitempty"`
+ // RulesCalculationTime - The UTC time on which the rules were calculated
+ RulesCalculationTime *date.Time `json:"rulesCalculationTime,omitempty"`
+ // EffectiveNetworkSecurityGroups - The Network Security Groups effective on the network interfaces of the protected resource
+ EffectiveNetworkSecurityGroups *[]EffectiveNetworkSecurityGroups `json:"effectiveNetworkSecurityGroups,omitempty"`
}
-// UnmarshalJSON is the custom unmarshaler for Alert struct.
-func (a *Alert) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
+// AdaptiveNetworkHardeningsEnforceFuture an abstraction for monitoring and retrieving the results of a
+// long-running operation.
+type AdaptiveNetworkHardeningsEnforceFuture struct {
+ azure.Future
+}
+
+// Result returns the result of the asynchronous operation.
+// If the operation has not completed it will return an error.
+func (future *AdaptiveNetworkHardeningsEnforceFuture) Result(client AdaptiveNetworkHardeningsClient) (ar autorest.Response, err error) {
+ var done bool
+ done, err = future.DoneWithContext(context.Background(), client)
if err != nil {
- return err
+ err = autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsEnforceFuture", "Result", future.Response(), "Polling failure")
+ return
}
- for k, v := range m {
- switch k {
- case "properties":
- if v != nil {
- var alertProperties AlertProperties
- err = json.Unmarshal(*v, &alertProperties)
- if err != nil {
- return err
- }
- a.AlertProperties = &alertProperties
- }
- case "id":
- if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- a.ID = &ID
- }
- case "name":
- if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
- if err != nil {
- return err
- }
- a.Name = &name
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- a.Type = &typeVar
- }
- }
- }
-
- return nil
-}
-
-// AlertConfidenceReason factors that increase our confidence that the alert is a true positive
-type AlertConfidenceReason struct {
- // Type - READ-ONLY; Type of confidence factor
- Type *string `json:"type,omitempty"`
- // Reason - READ-ONLY; description of the confidence reason
- Reason *string `json:"reason,omitempty"`
-}
-
-// AlertEntity changing set of properties depending on the entity type.
-type AlertEntity struct {
- // AdditionalProperties - Unmatched properties from the message are deserialized this collection
- AdditionalProperties map[string]interface{} `json:""`
- // Type - READ-ONLY; Type of entity
- Type *string `json:"type,omitempty"`
-}
-
-// MarshalJSON is the custom marshaler for AlertEntity.
-func (ae AlertEntity) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- for k, v := range ae.AdditionalProperties {
- objectMap[k] = v
- }
- return json.Marshal(objectMap)
-}
-
-// UnmarshalJSON is the custom unmarshaler for AlertEntity struct.
-func (ae *AlertEntity) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
- if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
- default:
- if v != nil {
- var additionalProperties interface{}
- err = json.Unmarshal(*v, &additionalProperties)
- if err != nil {
- return err
- }
- if ae.AdditionalProperties == nil {
- ae.AdditionalProperties = make(map[string]interface{})
- }
- ae.AdditionalProperties[k] = additionalProperties
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- ae.Type = &typeVar
- }
- }
+ if !done {
+ err = azure.NewAsyncOpIncompleteError("security.AdaptiveNetworkHardeningsEnforceFuture")
+ return
}
-
- return nil
+ ar.Response = future.Response()
+ return
}
-// AlertList list of security alerts
-type AlertList struct {
+// AdaptiveNetworkHardeningsList response for ListAdaptiveNetworkHardenings API service call
+type AdaptiveNetworkHardeningsList struct {
autorest.Response `json:"-"`
- Value *[]Alert `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
+ // Value - A list of Adaptive Network Hardenings resources
+ Value *[]AdaptiveNetworkHardening `json:"value,omitempty"`
+ // NextLink - The URL to get the next set of results
NextLink *string `json:"nextLink,omitempty"`
}
-// AlertListIterator provides access to a complete listing of Alert values.
-type AlertListIterator struct {
+// AdaptiveNetworkHardeningsListIterator provides access to a complete listing of AdaptiveNetworkHardening
+// values.
+type AdaptiveNetworkHardeningsListIterator struct {
i int
- page AlertListPage
+ page AdaptiveNetworkHardeningsListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *AlertListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *AdaptiveNetworkHardeningsListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AlertListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/AdaptiveNetworkHardeningsListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -1508,62 +585,67 @@ func (iter *AlertListIterator) NextWithContext(ctx context.Context) (err error)
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *AlertListIterator) Next() error {
+func (iter *AdaptiveNetworkHardeningsListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter AlertListIterator) NotDone() bool {
+func (iter AdaptiveNetworkHardeningsListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter AlertListIterator) Response() AlertList {
+func (iter AdaptiveNetworkHardeningsListIterator) Response() AdaptiveNetworkHardeningsList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter AlertListIterator) Value() Alert {
+func (iter AdaptiveNetworkHardeningsListIterator) Value() AdaptiveNetworkHardening {
if !iter.page.NotDone() {
- return Alert{}
+ return AdaptiveNetworkHardening{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the AlertListIterator type.
-func NewAlertListIterator(page AlertListPage) AlertListIterator {
- return AlertListIterator{page: page}
+// Creates a new instance of the AdaptiveNetworkHardeningsListIterator type.
+func NewAdaptiveNetworkHardeningsListIterator(page AdaptiveNetworkHardeningsListPage) AdaptiveNetworkHardeningsListIterator {
+ return AdaptiveNetworkHardeningsListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (al AlertList) IsEmpty() bool {
- return al.Value == nil || len(*al.Value) == 0
+func (anhl AdaptiveNetworkHardeningsList) IsEmpty() bool {
+ return anhl.Value == nil || len(*anhl.Value) == 0
}
-// alertListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (anhl AdaptiveNetworkHardeningsList) hasNextLink() bool {
+ return anhl.NextLink != nil && len(*anhl.NextLink) != 0
+}
+
+// adaptiveNetworkHardeningsListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (al AlertList) alertListPreparer(ctx context.Context) (*http.Request, error) {
- if al.NextLink == nil || len(to.String(al.NextLink)) < 1 {
+func (anhl AdaptiveNetworkHardeningsList) adaptiveNetworkHardeningsListPreparer(ctx context.Context) (*http.Request, error) {
+ if !anhl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(al.NextLink)))
+ autorest.WithBaseURL(to.String(anhl.NextLink)))
}
-// AlertListPage contains a page of Alert values.
-type AlertListPage struct {
- fn func(context.Context, AlertList) (AlertList, error)
- al AlertList
+// AdaptiveNetworkHardeningsListPage contains a page of AdaptiveNetworkHardening values.
+type AdaptiveNetworkHardeningsListPage struct {
+ fn func(context.Context, AdaptiveNetworkHardeningsList) (AdaptiveNetworkHardeningsList, error)
+ anhl AdaptiveNetworkHardeningsList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *AlertListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *AdaptiveNetworkHardeningsListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AlertListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/AdaptiveNetworkHardeningsListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -1572,279 +654,172 @@ func (page *AlertListPage) NextWithContext(ctx context.Context) (err error) {
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.al)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.anhl)
+ if err != nil {
+ return err
+ }
+ page.anhl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.al = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *AlertListPage) Next() error {
+func (page *AdaptiveNetworkHardeningsListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page AlertListPage) NotDone() bool {
- return !page.al.IsEmpty()
+func (page AdaptiveNetworkHardeningsListPage) NotDone() bool {
+ return !page.anhl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page AlertListPage) Response() AlertList {
- return page.al
+func (page AdaptiveNetworkHardeningsListPage) Response() AdaptiveNetworkHardeningsList {
+ return page.anhl
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page AlertListPage) Values() []Alert {
- if page.al.IsEmpty() {
+func (page AdaptiveNetworkHardeningsListPage) Values() []AdaptiveNetworkHardening {
+ if page.anhl.IsEmpty() {
return nil
}
- return *page.al.Value
+ return *page.anhl.Value
}
-// Creates a new instance of the AlertListPage type.
-func NewAlertListPage(getNextPage func(context.Context, AlertList) (AlertList, error)) AlertListPage {
- return AlertListPage{fn: getNextPage}
+// Creates a new instance of the AdaptiveNetworkHardeningsListPage type.
+func NewAdaptiveNetworkHardeningsListPage(getNextPage func(context.Context, AdaptiveNetworkHardeningsList) (AdaptiveNetworkHardeningsList, error)) AdaptiveNetworkHardeningsListPage {
+ return AdaptiveNetworkHardeningsListPage{fn: getNextPage}
}
-// AlertProperties describes security alert properties.
-type AlertProperties struct {
- // State - READ-ONLY; State of the alert (Active, Dismissed etc.)
- State *string `json:"state,omitempty"`
- // ReportedTimeUtc - READ-ONLY; The time the incident was reported to Microsoft.Security in UTC
- ReportedTimeUtc *date.Time `json:"reportedTimeUtc,omitempty"`
- // VendorName - READ-ONLY; Name of the vendor that discovered the incident
- VendorName *string `json:"vendorName,omitempty"`
- // AlertName - READ-ONLY; Name of the alert type
- AlertName *string `json:"alertName,omitempty"`
- // AlertDisplayName - READ-ONLY; Display name of the alert type
- AlertDisplayName *string `json:"alertDisplayName,omitempty"`
- // DetectedTimeUtc - READ-ONLY; The time the incident was detected by the vendor
- DetectedTimeUtc *date.Time `json:"detectedTimeUtc,omitempty"`
- // Description - READ-ONLY; Description of the incident and what it means
- Description *string `json:"description,omitempty"`
- // RemediationSteps - READ-ONLY; Recommended steps to reradiate the incident
- RemediationSteps *string `json:"remediationSteps,omitempty"`
- // ActionTaken - READ-ONLY; The action that was taken as a response to the alert (Active, Blocked etc.)
- ActionTaken *string `json:"actionTaken,omitempty"`
- // ReportedSeverity - READ-ONLY; Estimated severity of this alert. Possible values include: 'ReportedSeverityInformational', 'ReportedSeverityLow', 'ReportedSeverityMedium', 'ReportedSeverityHigh'
- ReportedSeverity ReportedSeverity `json:"reportedSeverity,omitempty"`
- // CompromisedEntity - READ-ONLY; The entity that the incident happened on
- CompromisedEntity *string `json:"compromisedEntity,omitempty"`
- // AssociatedResource - READ-ONLY; Azure resource ID of the associated resource
- AssociatedResource *string `json:"associatedResource,omitempty"`
- ExtendedProperties map[string]interface{} `json:"extendedProperties"`
- // SystemSource - READ-ONLY; The type of the alerted resource (Azure, Non-Azure)
- SystemSource *string `json:"systemSource,omitempty"`
- // CanBeInvestigated - READ-ONLY; Whether this alert can be investigated with Azure Security Center
- CanBeInvestigated *bool `json:"canBeInvestigated,omitempty"`
- // IsIncident - READ-ONLY; Whether this alert is for incident type or not (otherwise - single alert)
- IsIncident *bool `json:"isIncident,omitempty"`
- // Entities - objects that are related to this alerts
- Entities *[]AlertEntity `json:"entities,omitempty"`
- // ConfidenceScore - READ-ONLY; level of confidence we have on the alert
- ConfidenceScore *float64 `json:"confidenceScore,omitempty"`
- // ConfidenceReasons - reasons the alert got the confidenceScore value
- ConfidenceReasons *[]AlertConfidenceReason `json:"confidenceReasons,omitempty"`
- // SubscriptionID - READ-ONLY; Azure subscription ID of the resource that had the security alert or the subscription ID of the workspace that this resource reports to
- SubscriptionID *string `json:"subscriptionId,omitempty"`
- // InstanceID - READ-ONLY; Instance ID of the alert.
- InstanceID *string `json:"instanceId,omitempty"`
- // WorkspaceArmID - READ-ONLY; Azure resource ID of the workspace that the alert was reported to.
- WorkspaceArmID *string `json:"workspaceArmId,omitempty"`
- // CorrelationKey - READ-ONLY; Alerts with the same CorrelationKey will be grouped together in Ibiza.
- CorrelationKey *string `json:"correlationKey,omitempty"`
+// BasicAdditionalData details of the sub-assessment
+type BasicAdditionalData interface {
+ AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool)
+ AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool)
+ AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool)
+ AsAdditionalData() (*AdditionalData, bool)
}
-// MarshalJSON is the custom marshaler for AlertProperties.
-func (ap AlertProperties) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- if ap.ExtendedProperties != nil {
- objectMap["extendedProperties"] = ap.ExtendedProperties
- }
- if ap.Entities != nil {
- objectMap["entities"] = ap.Entities
- }
- if ap.ConfidenceReasons != nil {
- objectMap["confidenceReasons"] = ap.ConfidenceReasons
- }
- return json.Marshal(objectMap)
+// AdditionalData details of the sub-assessment
+type AdditionalData struct {
+ // AssessedResourceType - Possible values include: 'AssessedResourceTypeAdditionalData', 'AssessedResourceTypeSQLServerVulnerability', 'AssessedResourceTypeContainerRegistryVulnerability', 'AssessedResourceTypeServerVulnerabilityAssessment'
+ AssessedResourceType AssessedResourceType `json:"assessedResourceType,omitempty"`
}
-// AllowedConnectionsList list of all possible traffic between Azure resources
-type AllowedConnectionsList struct {
- autorest.Response `json:"-"`
- // Value - READ-ONLY
- Value *[]AllowedConnectionsResource `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
-}
+func unmarshalBasicAdditionalData(body []byte) (BasicAdditionalData, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return nil, err
+ }
-// AllowedConnectionsListIterator provides access to a complete listing of AllowedConnectionsResource
-// values.
-type AllowedConnectionsListIterator struct {
- i int
- page AllowedConnectionsListPage
+ switch m["assessedResourceType"] {
+ case string(AssessedResourceTypeSQLServerVulnerability):
+ var ssvp SQLServerVulnerabilityProperties
+ err := json.Unmarshal(body, &ssvp)
+ return ssvp, err
+ case string(AssessedResourceTypeContainerRegistryVulnerability):
+ var crvp ContainerRegistryVulnerabilityProperties
+ err := json.Unmarshal(body, &crvp)
+ return crvp, err
+ case string(AssessedResourceTypeServerVulnerabilityAssessment):
+ var svp ServerVulnerabilityProperties
+ err := json.Unmarshal(body, &svp)
+ return svp, err
+ default:
+ var ad AdditionalData
+ err := json.Unmarshal(body, &ad)
+ return ad, err
+ }
}
-
-// NextWithContext advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-func (iter *AllowedConnectionsListIterator) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AllowedConnectionsListIterator.NextWithContext")
- defer func() {
- sc := -1
- if iter.Response().Response.Response != nil {
- sc = iter.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- iter.i++
- if iter.i < len(iter.page.Values()) {
- return nil
- }
- err = iter.page.NextWithContext(ctx)
+func unmarshalBasicAdditionalDataArray(body []byte) ([]BasicAdditionalData, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
if err != nil {
- iter.i--
- return err
+ return nil, err
}
- iter.i = 0
- return nil
-}
-
-// Next advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (iter *AllowedConnectionsListIterator) Next() error {
- return iter.NextWithContext(context.Background())
-}
-
-// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter AllowedConnectionsListIterator) NotDone() bool {
- return iter.page.NotDone() && iter.i < len(iter.page.Values())
-}
-// Response returns the raw server response from the last page request.
-func (iter AllowedConnectionsListIterator) Response() AllowedConnectionsList {
- return iter.page.Response()
-}
+ adArray := make([]BasicAdditionalData, len(rawMessages))
-// Value returns the current value or a zero-initialized value if the
-// iterator has advanced beyond the end of the collection.
-func (iter AllowedConnectionsListIterator) Value() AllowedConnectionsResource {
- if !iter.page.NotDone() {
- return AllowedConnectionsResource{}
+ for index, rawMessage := range rawMessages {
+ ad, err := unmarshalBasicAdditionalData(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ adArray[index] = ad
}
- return iter.page.Values()[iter.i]
-}
-
-// Creates a new instance of the AllowedConnectionsListIterator type.
-func NewAllowedConnectionsListIterator(page AllowedConnectionsListPage) AllowedConnectionsListIterator {
- return AllowedConnectionsListIterator{page: page}
-}
-
-// IsEmpty returns true if the ListResult contains no values.
-func (ACL AllowedConnectionsList) IsEmpty() bool {
- return ACL.Value == nil || len(*ACL.Value) == 0
+ return adArray, nil
}
-// allowedConnectionsListPreparer prepares a request to retrieve the next set of results.
-// It returns nil if no more results exist.
-func (ACL AllowedConnectionsList) allowedConnectionsListPreparer(ctx context.Context) (*http.Request, error) {
- if ACL.NextLink == nil || len(to.String(ACL.NextLink)) < 1 {
- return nil, nil
+// MarshalJSON is the custom marshaler for AdditionalData.
+func (ad AdditionalData) MarshalJSON() ([]byte, error) {
+ ad.AssessedResourceType = AssessedResourceTypeAdditionalData
+ objectMap := make(map[string]interface{})
+ if ad.AssessedResourceType != "" {
+ objectMap["assessedResourceType"] = ad.AssessedResourceType
}
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(ACL.NextLink)))
-}
-
-// AllowedConnectionsListPage contains a page of AllowedConnectionsResource values.
-type AllowedConnectionsListPage struct {
- fn func(context.Context, AllowedConnectionsList) (AllowedConnectionsList, error)
- ACL AllowedConnectionsList
+ return json.Marshal(objectMap)
}
-// NextWithContext advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-func (page *AllowedConnectionsListPage) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AllowedConnectionsListPage.NextWithContext")
- defer func() {
- sc := -1
- if page.Response().Response.Response != nil {
- sc = page.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- next, err := page.fn(ctx, page.ACL)
- if err != nil {
- return err
- }
- page.ACL = next
- return nil
+// AsSQLServerVulnerabilityProperties is the BasicAdditionalData implementation for AdditionalData.
+func (ad AdditionalData) AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool) {
+ return nil, false
}
-// Next advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (page *AllowedConnectionsListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsContainerRegistryVulnerabilityProperties is the BasicAdditionalData implementation for AdditionalData.
+func (ad AdditionalData) AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool) {
+ return nil, false
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page AllowedConnectionsListPage) NotDone() bool {
- return !page.ACL.IsEmpty()
+// AsServerVulnerabilityProperties is the BasicAdditionalData implementation for AdditionalData.
+func (ad AdditionalData) AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page AllowedConnectionsListPage) Response() AllowedConnectionsList {
- return page.ACL
+// AsAdditionalData is the BasicAdditionalData implementation for AdditionalData.
+func (ad AdditionalData) AsAdditionalData() (*AdditionalData, bool) {
+ return &ad, true
}
-// Values returns the slice of values for the current page or nil if there are no values.
-func (page AllowedConnectionsListPage) Values() []AllowedConnectionsResource {
- if page.ACL.IsEmpty() {
- return nil
- }
- return *page.ACL.Value
+// AsBasicAdditionalData is the BasicAdditionalData implementation for AdditionalData.
+func (ad AdditionalData) AsBasicAdditionalData() (BasicAdditionalData, bool) {
+ return &ad, true
}
-// Creates a new instance of the AllowedConnectionsListPage type.
-func NewAllowedConnectionsListPage(getNextPage func(context.Context, AllowedConnectionsList) (AllowedConnectionsList, error)) AllowedConnectionsListPage {
- return AllowedConnectionsListPage{fn: getNextPage}
+// AdvancedThreatProtectionProperties the Advanced Threat Protection settings.
+type AdvancedThreatProtectionProperties struct {
+ // IsEnabled - Indicates whether Advanced Threat Protection is enabled.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
}
-// AllowedConnectionsResource the resource whose properties describes the allowed traffic between Azure
-// resources
-type AllowedConnectionsResource struct {
- autorest.Response `json:"-"`
+// AdvancedThreatProtectionSetting the Advanced Threat Protection resource.
+type AdvancedThreatProtectionSetting struct {
+ autorest.Response `json:"-"`
+ *AdvancedThreatProtectionProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
Name *string `json:"name,omitempty"`
// Type - READ-ONLY; Resource type
Type *string `json:"type,omitempty"`
- // Location - READ-ONLY; Location where the resource is stored
- Location *string `json:"location,omitempty"`
- // AllowedConnectionsResourceProperties - READ-ONLY
- *AllowedConnectionsResourceProperties `json:"properties,omitempty"`
}
-// MarshalJSON is the custom marshaler for AllowedConnectionsResource.
-func (acr AllowedConnectionsResource) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for AdvancedThreatProtectionSetting.
+func (atps AdvancedThreatProtectionSetting) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
+ if atps.AdvancedThreatProtectionProperties != nil {
+ objectMap["properties"] = atps.AdvancedThreatProtectionProperties
+ }
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for AllowedConnectionsResource struct.
-func (acr *AllowedConnectionsResource) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for AdvancedThreatProtectionSetting struct.
+func (atps *AdvancedThreatProtectionSetting) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -1852,6 +827,15 @@ func (acr *AllowedConnectionsResource) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
+ case "properties":
+ if v != nil {
+ var advancedThreatProtectionProperties AdvancedThreatProtectionProperties
+ err = json.Unmarshal(*v, &advancedThreatProtectionProperties)
+ if err != nil {
+ return err
+ }
+ atps.AdvancedThreatProtectionProperties = &advancedThreatProtectionProperties
+ }
case "id":
if v != nil {
var ID string
@@ -1859,7 +843,7 @@ func (acr *AllowedConnectionsResource) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- acr.ID = &ID
+ atps.ID = &ID
}
case "name":
if v != nil {
@@ -1868,7 +852,7 @@ func (acr *AllowedConnectionsResource) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- acr.Name = &name
+ atps.Name = &name
}
case "type":
if v != nil {
@@ -1877,25 +861,7 @@ func (acr *AllowedConnectionsResource) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- acr.Type = &typeVar
- }
- case "location":
- if v != nil {
- var location string
- err = json.Unmarshal(*v, &location)
- if err != nil {
- return err
- }
- acr.Location = &location
- }
- case "properties":
- if v != nil {
- var allowedConnectionsResourceProperties AllowedConnectionsResourceProperties
- err = json.Unmarshal(*v, &allowedConnectionsResourceProperties)
- if err != nil {
- return err
- }
- acr.AllowedConnectionsResourceProperties = &allowedConnectionsResourceProperties
+ atps.Type = &typeVar
}
}
}
@@ -1903,56 +869,29 @@ func (acr *AllowedConnectionsResource) UnmarshalJSON(body []byte) error {
return nil
}
-// AllowedConnectionsResourceProperties describes the allowed traffic between Azure resources
-type AllowedConnectionsResourceProperties struct {
- // CalculatedDateTime - READ-ONLY; The UTC time on which the allowed connections resource was calculated
- CalculatedDateTime *date.Time `json:"calculatedDateTime,omitempty"`
- // ConnectableResources - READ-ONLY; List of connectable resources
- ConnectableResources *[]ConnectableResource `json:"connectableResources,omitempty"`
-}
-
-// AllowlistCustomAlertRule a custom alert rule that checks if a value (depends on the custom alert type)
-// is allowed.
-type AllowlistCustomAlertRule struct {
- // AllowlistValues - The values to allow. The format of the values depends on the rule type.
- AllowlistValues *[]string `json:"allowlistValues,omitempty"`
- // ValueType - READ-ONLY; The value type of the items in the list. Possible values include: 'ValueTypeIPCidr', 'ValueTypeString'
- ValueType ValueType `json:"valueType,omitempty"`
- // DisplayName - READ-ONLY; The display name of the custom alert.
- DisplayName *string `json:"displayName,omitempty"`
- // Description - READ-ONLY; The description of the custom alert.
- Description *string `json:"description,omitempty"`
- // IsEnabled - Status of the custom alert.
- IsEnabled *bool `json:"isEnabled,omitempty"`
- // RuleType - The type of the custom alert rule.
- RuleType *string `json:"ruleType,omitempty"`
-}
-
-// AppWhitelistingGroup ...
-type AppWhitelistingGroup struct {
+// Alert security alert
+type Alert struct {
autorest.Response `json:"-"`
+ *AlertProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
Name *string `json:"name,omitempty"`
// Type - READ-ONLY; Resource type
Type *string `json:"type,omitempty"`
- // Location - READ-ONLY; Location where the resource is stored
- Location *string `json:"location,omitempty"`
- *AppWhitelistingGroupData `json:"properties,omitempty"`
}
-// MarshalJSON is the custom marshaler for AppWhitelistingGroup.
-func (awg AppWhitelistingGroup) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for Alert.
+func (a Alert) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if awg.AppWhitelistingGroupData != nil {
- objectMap["properties"] = awg.AppWhitelistingGroupData
+ if a.AlertProperties != nil {
+ objectMap["properties"] = a.AlertProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for AppWhitelistingGroup struct.
-func (awg *AppWhitelistingGroup) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for Alert struct.
+func (a *Alert) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -1960,6 +899,15 @@ func (awg *AppWhitelistingGroup) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
+ case "properties":
+ if v != nil {
+ var alertProperties AlertProperties
+ err = json.Unmarshal(*v, &alertProperties)
+ if err != nil {
+ return err
+ }
+ a.AlertProperties = &alertProperties
+ }
case "id":
if v != nil {
var ID string
@@ -1967,7 +915,7 @@ func (awg *AppWhitelistingGroup) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- awg.ID = &ID
+ a.ID = &ID
}
case "name":
if v != nil {
@@ -1976,7 +924,7 @@ func (awg *AppWhitelistingGroup) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- awg.Name = &name
+ a.Name = &name
}
case "type":
if v != nil {
@@ -1985,25 +933,7 @@ func (awg *AppWhitelistingGroup) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- awg.Type = &typeVar
- }
- case "location":
- if v != nil {
- var location string
- err = json.Unmarshal(*v, &location)
- if err != nil {
- return err
- }
- awg.Location = &location
- }
- case "properties":
- if v != nil {
- var appWhitelistingGroupData AppWhitelistingGroupData
- err = json.Unmarshal(*v, &appWhitelistingGroupData)
- if err != nil {
- return err
- }
- awg.AppWhitelistingGroupData = &appWhitelistingGroupData
+ a.Type = &typeVar
}
}
}
@@ -2011,80 +941,101 @@ func (awg *AppWhitelistingGroup) UnmarshalJSON(body []byte) error {
return nil
}
-// AppWhitelistingGroupData represents a VM/server group and set of rules that are Recommended by Azure
-// Security Center to be allowed
-type AppWhitelistingGroupData struct {
- // EnforcementMode - Possible values include: 'Audit', 'Enforce', 'None'
- EnforcementMode EnforcementMode `json:"enforcementMode,omitempty"`
- ProtectionMode *ProtectionMode `json:"protectionMode,omitempty"`
- // ConfigurationStatus - Possible values include: 'ConfigurationStatus2Configured', 'ConfigurationStatus2NotConfigured', 'ConfigurationStatus2InProgress', 'ConfigurationStatus2Failed', 'ConfigurationStatus2NoStatus'
- ConfigurationStatus ConfigurationStatus2 `json:"configurationStatus,omitempty"`
- // RecommendationStatus - Possible values include: 'RecommendationStatusRecommended', 'RecommendationStatusNotRecommended', 'RecommendationStatusNotAvailable', 'RecommendationStatusNoStatus'
- RecommendationStatus RecommendationStatus `json:"recommendationStatus,omitempty"`
- Issues *[]AppWhitelistingIssueSummary `json:"issues,omitempty"`
- // SourceSystem - Possible values include: 'SourceSystemAzureAppLocker', 'SourceSystemAzureAuditD', 'SourceSystemNonAzureAppLocker', 'SourceSystemNonAzureAuditD', 'SourceSystemNone'
- SourceSystem SourceSystem `json:"sourceSystem,omitempty"`
- VMRecommendations *[]VMRecommendation `json:"vmRecommendations,omitempty"`
- PathRecommendations *[]PathRecommendation `json:"pathRecommendations,omitempty"`
+// AlertConfidenceReason factors that increase our confidence that the alert is a true positive
+type AlertConfidenceReason struct {
+ // Type - READ-ONLY; Type of confidence factor
+ Type *string `json:"type,omitempty"`
+ // Reason - READ-ONLY; description of the confidence reason
+ Reason *string `json:"reason,omitempty"`
}
-// AppWhitelistingGroups represents a list of VM/server groups and set of rules that are Recommended by
-// Azure Security Center to be allowed
-type AppWhitelistingGroups struct {
- autorest.Response `json:"-"`
- Value *[]AppWhitelistingGroup `json:"value,omitempty"`
+// MarshalJSON is the custom marshaler for AlertConfidenceReason.
+func (acr AlertConfidenceReason) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
}
-// AppWhitelistingIssueSummary represents a summary of the alerts of the VM/server group
-type AppWhitelistingIssueSummary struct {
- // Issue - Possible values include: 'ViolationsAudited', 'ViolationsBlocked', 'MsiAndScriptViolationsAudited', 'MsiAndScriptViolationsBlocked', 'ExecutableViolationsAudited', 'RulesViolatedManually'
- Issue Issue `json:"issue,omitempty"`
- // NumberOfVms - The number of machines in the VM/server group that have this alert
- NumberOfVms *float64 `json:"numberOfVms,omitempty"`
+// AlertEntity changing set of properties depending on the entity type.
+type AlertEntity struct {
+ // AdditionalProperties - Unmatched properties from the message are deserialized this collection
+ AdditionalProperties map[string]interface{} `json:""`
+ // Type - READ-ONLY; Type of entity
+ Type *string `json:"type,omitempty"`
}
-// AppWhitelistingPutGroupData the altered data of the recommended VM/server group policy
-type AppWhitelistingPutGroupData struct {
- // EnforcementMode - The enforcement mode of the group. Can also be defined per collection type by using ProtectionMode. Possible values include: 'EnforcementMode1Audit', 'EnforcementMode1Enforce', 'EnforcementMode1None'
- EnforcementMode EnforcementMode1 `json:"enforcementMode,omitempty"`
- // ProtectionMode - The protection mode of the group per collection type. Can also be defined for all collection types by using EnforcementMode
- ProtectionMode *ProtectionMode `json:"protectionMode,omitempty"`
- VMRecommendations *[]VMRecommendation `json:"vmRecommendations,omitempty"`
- PathRecommendations *[]PathRecommendation `json:"pathRecommendations,omitempty"`
+// MarshalJSON is the custom marshaler for AlertEntity.
+func (ae AlertEntity) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ for k, v := range ae.AdditionalProperties {
+ objectMap[k] = v
+ }
+ return json.Marshal(objectMap)
}
-// AscLocation the ASC location of the subscription is in the "name" field
-type AscLocation struct {
- autorest.Response `json:"-"`
- Properties interface{} `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
+// UnmarshalJSON is the custom unmarshaler for AlertEntity struct.
+func (ae *AlertEntity) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ default:
+ if v != nil {
+ var additionalProperties interface{}
+ err = json.Unmarshal(*v, &additionalProperties)
+ if err != nil {
+ return err
+ }
+ if ae.AdditionalProperties == nil {
+ ae.AdditionalProperties = make(map[string]interface{})
+ }
+ ae.AdditionalProperties[k] = additionalProperties
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ ae.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
}
-// AscLocationList list of locations where ASC saves your data
-type AscLocationList struct {
+// AlertList list of security alerts
+type AlertList struct {
autorest.Response `json:"-"`
- // Value - READ-ONLY
- Value *[]AscLocation `json:"value,omitempty"`
+ Value *[]Alert `json:"value,omitempty"`
// NextLink - READ-ONLY; The URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// AscLocationListIterator provides access to a complete listing of AscLocation values.
-type AscLocationListIterator struct {
+// MarshalJSON is the custom marshaler for AlertList.
+func (al AlertList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if al.Value != nil {
+ objectMap["value"] = al.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// AlertListIterator provides access to a complete listing of Alert values.
+type AlertListIterator struct {
i int
- page AscLocationListPage
+ page AlertListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *AscLocationListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *AlertListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AscLocationListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/AlertListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -2109,62 +1060,67 @@ func (iter *AscLocationListIterator) NextWithContext(ctx context.Context) (err e
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *AscLocationListIterator) Next() error {
+func (iter *AlertListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter AscLocationListIterator) NotDone() bool {
+func (iter AlertListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter AscLocationListIterator) Response() AscLocationList {
+func (iter AlertListIterator) Response() AlertList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter AscLocationListIterator) Value() AscLocation {
+func (iter AlertListIterator) Value() Alert {
if !iter.page.NotDone() {
- return AscLocation{}
+ return Alert{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the AscLocationListIterator type.
-func NewAscLocationListIterator(page AscLocationListPage) AscLocationListIterator {
- return AscLocationListIterator{page: page}
+// Creates a new instance of the AlertListIterator type.
+func NewAlertListIterator(page AlertListPage) AlertListIterator {
+ return AlertListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (all AscLocationList) IsEmpty() bool {
- return all.Value == nil || len(*all.Value) == 0
+func (al AlertList) IsEmpty() bool {
+ return al.Value == nil || len(*al.Value) == 0
}
-// ascLocationListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (al AlertList) hasNextLink() bool {
+ return al.NextLink != nil && len(*al.NextLink) != 0
+}
+
+// alertListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (all AscLocationList) ascLocationListPreparer(ctx context.Context) (*http.Request, error) {
- if all.NextLink == nil || len(to.String(all.NextLink)) < 1 {
+func (al AlertList) alertListPreparer(ctx context.Context) (*http.Request, error) {
+ if !al.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(all.NextLink)))
+ autorest.WithBaseURL(to.String(al.NextLink)))
}
-// AscLocationListPage contains a page of AscLocation values.
-type AscLocationListPage struct {
- fn func(context.Context, AscLocationList) (AscLocationList, error)
- all AscLocationList
+// AlertListPage contains a page of Alert values.
+type AlertListPage struct {
+ fn func(context.Context, AlertList) (AlertList, error)
+ al AlertList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *AscLocationListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *AlertListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AscLocationListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/AlertListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -2173,48 +1129,117 @@ func (page *AscLocationListPage) NextWithContext(ctx context.Context) (err error
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.all)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.al)
+ if err != nil {
+ return err
+ }
+ page.al = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.all = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *AscLocationListPage) Next() error {
+func (page *AlertListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page AscLocationListPage) NotDone() bool {
- return !page.all.IsEmpty()
+func (page AlertListPage) NotDone() bool {
+ return !page.al.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page AscLocationListPage) Response() AscLocationList {
- return page.all
+func (page AlertListPage) Response() AlertList {
+ return page.al
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page AscLocationListPage) Values() []AscLocation {
- if page.all.IsEmpty() {
+func (page AlertListPage) Values() []Alert {
+ if page.al.IsEmpty() {
return nil
}
- return *page.all.Value
+ return *page.al.Value
}
-// Creates a new instance of the AscLocationListPage type.
-func NewAscLocationListPage(getNextPage func(context.Context, AscLocationList) (AscLocationList, error)) AscLocationListPage {
- return AscLocationListPage{fn: getNextPage}
+// Creates a new instance of the AlertListPage type.
+func NewAlertListPage(getNextPage func(context.Context, AlertList) (AlertList, error)) AlertListPage {
+ return AlertListPage{fn: getNextPage}
}
-// Assessment security assessment on a resource
-type Assessment struct {
- autorest.Response `json:"-"`
- *AssessmentProperties `json:"properties,omitempty"`
+// AlertProperties describes security alert properties.
+type AlertProperties struct {
+ // State - READ-ONLY; State of the alert (Active, Dismissed etc.)
+ State *string `json:"state,omitempty"`
+ // ReportedTimeUtc - READ-ONLY; The time the incident was reported to Microsoft.Security in UTC
+ ReportedTimeUtc *date.Time `json:"reportedTimeUtc,omitempty"`
+ // VendorName - READ-ONLY; Name of the vendor that discovered the incident
+ VendorName *string `json:"vendorName,omitempty"`
+ // AlertName - READ-ONLY; Name of the alert type
+ AlertName *string `json:"alertName,omitempty"`
+ // AlertDisplayName - READ-ONLY; Display name of the alert type
+ AlertDisplayName *string `json:"alertDisplayName,omitempty"`
+ // DetectedTimeUtc - READ-ONLY; The time the incident was detected by the vendor
+ DetectedTimeUtc *date.Time `json:"detectedTimeUtc,omitempty"`
+ // Description - READ-ONLY; Description of the incident and what it means
+ Description *string `json:"description,omitempty"`
+ // RemediationSteps - READ-ONLY; Recommended steps to reradiate the incident
+ RemediationSteps *string `json:"remediationSteps,omitempty"`
+ // ActionTaken - READ-ONLY; The action that was taken as a response to the alert (Active, Blocked etc.)
+ ActionTaken *string `json:"actionTaken,omitempty"`
+ // ReportedSeverity - READ-ONLY; Estimated severity of this alert. Possible values include: 'ReportedSeverityInformational', 'ReportedSeverityLow', 'ReportedSeverityMedium', 'ReportedSeverityHigh'
+ ReportedSeverity ReportedSeverity `json:"reportedSeverity,omitempty"`
+ // CompromisedEntity - READ-ONLY; The entity that the incident happened on
+ CompromisedEntity *string `json:"compromisedEntity,omitempty"`
+ // AssociatedResource - READ-ONLY; Azure resource ID of the associated resource
+ AssociatedResource *string `json:"associatedResource,omitempty"`
+ ExtendedProperties map[string]interface{} `json:"extendedProperties"`
+ // SystemSource - READ-ONLY; The type of the alerted resource (Azure, Non-Azure)
+ SystemSource *string `json:"systemSource,omitempty"`
+ // CanBeInvestigated - READ-ONLY; Whether this alert can be investigated with Azure Security Center
+ CanBeInvestigated *bool `json:"canBeInvestigated,omitempty"`
+ // IsIncident - READ-ONLY; Whether this alert is for incident type or not (otherwise - single alert)
+ IsIncident *bool `json:"isIncident,omitempty"`
+ // Entities - objects that are related to this alerts
+ Entities *[]AlertEntity `json:"entities,omitempty"`
+ // ConfidenceScore - READ-ONLY; level of confidence we have on the alert
+ ConfidenceScore *float64 `json:"confidenceScore,omitempty"`
+ // ConfidenceReasons - reasons the alert got the confidenceScore value
+ ConfidenceReasons *[]AlertConfidenceReason `json:"confidenceReasons,omitempty"`
+ // SubscriptionID - READ-ONLY; Azure subscription ID of the resource that had the security alert or the subscription ID of the workspace that this resource reports to
+ SubscriptionID *string `json:"subscriptionId,omitempty"`
+ // InstanceID - READ-ONLY; Instance ID of the alert.
+ InstanceID *string `json:"instanceId,omitempty"`
+ // WorkspaceArmID - READ-ONLY; Azure resource ID of the workspace that the alert was reported to.
+ WorkspaceArmID *string `json:"workspaceArmId,omitempty"`
+ // CorrelationKey - READ-ONLY; Alerts with the same CorrelationKey will be grouped together in Ibiza.
+ CorrelationKey *string `json:"correlationKey,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AlertProperties.
+func (ap AlertProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if ap.ExtendedProperties != nil {
+ objectMap["extendedProperties"] = ap.ExtendedProperties
+ }
+ if ap.Entities != nil {
+ objectMap["entities"] = ap.Entities
+ }
+ if ap.ConfidenceReasons != nil {
+ objectMap["confidenceReasons"] = ap.ConfidenceReasons
+ }
+ return json.Marshal(objectMap)
+}
+
+// AlertsSuppressionRule describes the suppression rule
+type AlertsSuppressionRule struct {
+ autorest.Response `json:"-"`
+ *AlertsSuppressionRuleProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
@@ -2223,17 +1248,17 @@ type Assessment struct {
Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for Assessment.
-func (a Assessment) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for AlertsSuppressionRule.
+func (asr AlertsSuppressionRule) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if a.AssessmentProperties != nil {
- objectMap["properties"] = a.AssessmentProperties
+ if asr.AlertsSuppressionRuleProperties != nil {
+ objectMap["properties"] = asr.AlertsSuppressionRuleProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for Assessment struct.
-func (a *Assessment) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for AlertsSuppressionRule struct.
+func (asr *AlertsSuppressionRule) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -2243,12 +1268,12 @@ func (a *Assessment) UnmarshalJSON(body []byte) error {
switch k {
case "properties":
if v != nil {
- var assessmentProperties AssessmentProperties
- err = json.Unmarshal(*v, &assessmentProperties)
+ var alertsSuppressionRuleProperties AlertsSuppressionRuleProperties
+ err = json.Unmarshal(*v, &alertsSuppressionRuleProperties)
if err != nil {
return err
}
- a.AssessmentProperties = &assessmentProperties
+ asr.AlertsSuppressionRuleProperties = &alertsSuppressionRuleProperties
}
case "id":
if v != nil {
@@ -2257,7 +1282,7 @@ func (a *Assessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.ID = &ID
+ asr.ID = &ID
}
case "name":
if v != nil {
@@ -2266,7 +1291,7 @@ func (a *Assessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.Name = &name
+ asr.Name = &name
}
case "type":
if v != nil {
@@ -2275,7 +1300,7 @@ func (a *Assessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.Type = &typeVar
+ asr.Type = &typeVar
}
}
}
@@ -2283,32 +1308,76 @@ func (a *Assessment) UnmarshalJSON(body []byte) error {
return nil
}
-// AssessmentLinks links relevant to the assessment
-type AssessmentLinks struct {
- // AzurePortalURI - READ-ONLY; Link to assessment in Azure Portal
- AzurePortalURI *string `json:"azurePortalUri,omitempty"`
+// AlertsSuppressionRuleProperties describes AlertsSuppressionRule properties
+type AlertsSuppressionRuleProperties struct {
+ // AlertType - Type of the alert to automatically suppress. For all alert types, use '*'
+ AlertType *string `json:"alertType,omitempty"`
+ // LastModifiedUtc - READ-ONLY; The last time this rule was modified
+ LastModifiedUtc *date.Time `json:"lastModifiedUtc,omitempty"`
+ // ExpirationDateUtc - Expiration date of the rule, if value is not provided or provided as null this field will default to the maximum allowed expiration date.
+ ExpirationDateUtc *date.Time `json:"expirationDateUtc,omitempty"`
+ // Reason - The reason for dismissing the alert
+ Reason *string `json:"reason,omitempty"`
+ // State - Possible states of the rule. Possible values include: 'RuleStateEnabled', 'RuleStateDisabled', 'RuleStateExpired'
+ State RuleState `json:"state,omitempty"`
+ // Comment - Any comment regarding the rule
+ Comment *string `json:"comment,omitempty"`
+ // SuppressionAlertsScope - The suppression conditions
+ SuppressionAlertsScope *SuppressionAlertsScope `json:"suppressionAlertsScope,omitempty"`
}
-// AssessmentList page of a security assessments list
-type AssessmentList struct {
+// MarshalJSON is the custom marshaler for AlertsSuppressionRuleProperties.
+func (asrp AlertsSuppressionRuleProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if asrp.AlertType != nil {
+ objectMap["alertType"] = asrp.AlertType
+ }
+ if asrp.ExpirationDateUtc != nil {
+ objectMap["expirationDateUtc"] = asrp.ExpirationDateUtc
+ }
+ if asrp.Reason != nil {
+ objectMap["reason"] = asrp.Reason
+ }
+ if asrp.State != "" {
+ objectMap["state"] = asrp.State
+ }
+ if asrp.Comment != nil {
+ objectMap["comment"] = asrp.Comment
+ }
+ if asrp.SuppressionAlertsScope != nil {
+ objectMap["suppressionAlertsScope"] = asrp.SuppressionAlertsScope
+ }
+ return json.Marshal(objectMap)
+}
+
+// AlertsSuppressionRulesList suppression rules list for subscription.
+type AlertsSuppressionRulesList struct {
autorest.Response `json:"-"`
- // Value - READ-ONLY; Collection of security assessments in this page
- Value *[]Assessment `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
+ Value *[]AlertsSuppressionRule `json:"value,omitempty"`
+ // NextLink - READ-ONLY; URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// AssessmentListIterator provides access to a complete listing of Assessment values.
-type AssessmentListIterator struct {
+// MarshalJSON is the custom marshaler for AlertsSuppressionRulesList.
+func (asrl AlertsSuppressionRulesList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if asrl.Value != nil {
+ objectMap["value"] = asrl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// AlertsSuppressionRulesListIterator provides access to a complete listing of AlertsSuppressionRule values.
+type AlertsSuppressionRulesListIterator struct {
i int
- page AssessmentListPage
+ page AlertsSuppressionRulesListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *AssessmentListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *AlertsSuppressionRulesListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AssessmentListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/AlertsSuppressionRulesListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -2333,62 +1402,67 @@ func (iter *AssessmentListIterator) NextWithContext(ctx context.Context) (err er
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *AssessmentListIterator) Next() error {
+func (iter *AlertsSuppressionRulesListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter AssessmentListIterator) NotDone() bool {
+func (iter AlertsSuppressionRulesListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter AssessmentListIterator) Response() AssessmentList {
+func (iter AlertsSuppressionRulesListIterator) Response() AlertsSuppressionRulesList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter AssessmentListIterator) Value() Assessment {
+func (iter AlertsSuppressionRulesListIterator) Value() AlertsSuppressionRule {
if !iter.page.NotDone() {
- return Assessment{}
+ return AlertsSuppressionRule{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the AssessmentListIterator type.
-func NewAssessmentListIterator(page AssessmentListPage) AssessmentListIterator {
- return AssessmentListIterator{page: page}
+// Creates a new instance of the AlertsSuppressionRulesListIterator type.
+func NewAlertsSuppressionRulesListIterator(page AlertsSuppressionRulesListPage) AlertsSuppressionRulesListIterator {
+ return AlertsSuppressionRulesListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (al AssessmentList) IsEmpty() bool {
- return al.Value == nil || len(*al.Value) == 0
+func (asrl AlertsSuppressionRulesList) IsEmpty() bool {
+ return asrl.Value == nil || len(*asrl.Value) == 0
}
-// assessmentListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (asrl AlertsSuppressionRulesList) hasNextLink() bool {
+ return asrl.NextLink != nil && len(*asrl.NextLink) != 0
+}
+
+// alertsSuppressionRulesListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (al AssessmentList) assessmentListPreparer(ctx context.Context) (*http.Request, error) {
- if al.NextLink == nil || len(to.String(al.NextLink)) < 1 {
+func (asrl AlertsSuppressionRulesList) alertsSuppressionRulesListPreparer(ctx context.Context) (*http.Request, error) {
+ if !asrl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(al.NextLink)))
+ autorest.WithBaseURL(to.String(asrl.NextLink)))
}
-// AssessmentListPage contains a page of Assessment values.
-type AssessmentListPage struct {
- fn func(context.Context, AssessmentList) (AssessmentList, error)
- al AssessmentList
+// AlertsSuppressionRulesListPage contains a page of AlertsSuppressionRule values.
+type AlertsSuppressionRulesListPage struct {
+ fn func(context.Context, AlertsSuppressionRulesList) (AlertsSuppressionRulesList, error)
+ asrl AlertsSuppressionRulesList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *AssessmentListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *AlertsSuppressionRulesListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AssessmentListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/AlertsSuppressionRulesListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -2397,136 +1471,75 @@ func (page *AssessmentListPage) NextWithContext(ctx context.Context) (err error)
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.al)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.asrl)
+ if err != nil {
+ return err
+ }
+ page.asrl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.al = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *AssessmentListPage) Next() error {
+func (page *AlertsSuppressionRulesListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page AssessmentListPage) NotDone() bool {
- return !page.al.IsEmpty()
+func (page AlertsSuppressionRulesListPage) NotDone() bool {
+ return !page.asrl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page AssessmentListPage) Response() AssessmentList {
- return page.al
+func (page AlertsSuppressionRulesListPage) Response() AlertsSuppressionRulesList {
+ return page.asrl
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page AssessmentListPage) Values() []Assessment {
- if page.al.IsEmpty() {
+func (page AlertsSuppressionRulesListPage) Values() []AlertsSuppressionRule {
+ if page.asrl.IsEmpty() {
return nil
}
- return *page.al.Value
-}
-
-// Creates a new instance of the AssessmentListPage type.
-func NewAssessmentListPage(getNextPage func(context.Context, AssessmentList) (AssessmentList, error)) AssessmentListPage {
- return AssessmentListPage{fn: getNextPage}
-}
-
-// AssessmentMetadata security assessment metadata
-type AssessmentMetadata struct {
- autorest.Response `json:"-"`
- *AssessmentMetadataProperties `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
-}
-
-// MarshalJSON is the custom marshaler for AssessmentMetadata.
-func (am AssessmentMetadata) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- if am.AssessmentMetadataProperties != nil {
- objectMap["properties"] = am.AssessmentMetadataProperties
- }
- return json.Marshal(objectMap)
+ return *page.asrl.Value
}
-// UnmarshalJSON is the custom unmarshaler for AssessmentMetadata struct.
-func (am *AssessmentMetadata) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
- if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
- case "properties":
- if v != nil {
- var assessmentMetadataProperties AssessmentMetadataProperties
- err = json.Unmarshal(*v, &assessmentMetadataProperties)
- if err != nil {
- return err
- }
- am.AssessmentMetadataProperties = &assessmentMetadataProperties
- }
- case "id":
- if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- am.ID = &ID
- }
- case "name":
- if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
- if err != nil {
- return err
- }
- am.Name = &name
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- am.Type = &typeVar
- }
- }
- }
-
- return nil
+// Creates a new instance of the AlertsSuppressionRulesListPage type.
+func NewAlertsSuppressionRulesListPage(getNextPage func(context.Context, AlertsSuppressionRulesList) (AlertsSuppressionRulesList, error)) AlertsSuppressionRulesListPage {
+ return AlertsSuppressionRulesListPage{fn: getNextPage}
}
-// AssessmentMetadataList list of security assessment metadata
-type AssessmentMetadataList struct {
+// AllowedConnectionsList list of all possible traffic between Azure resources
+type AllowedConnectionsList struct {
autorest.Response `json:"-"`
// Value - READ-ONLY
- Value *[]AssessmentMetadata `json:"value,omitempty"`
+ Value *[]AllowedConnectionsResource `json:"value,omitempty"`
// NextLink - READ-ONLY; The URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// AssessmentMetadataListIterator provides access to a complete listing of AssessmentMetadata values.
-type AssessmentMetadataListIterator struct {
+// MarshalJSON is the custom marshaler for AllowedConnectionsList.
+func (ACL AllowedConnectionsList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// AllowedConnectionsListIterator provides access to a complete listing of AllowedConnectionsResource values.
+type AllowedConnectionsListIterator struct {
i int
- page AssessmentMetadataListPage
+ page AllowedConnectionsListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *AssessmentMetadataListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *AllowedConnectionsListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AssessmentMetadataListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/AllowedConnectionsListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -2551,62 +1564,67 @@ func (iter *AssessmentMetadataListIterator) NextWithContext(ctx context.Context)
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *AssessmentMetadataListIterator) Next() error {
+func (iter *AllowedConnectionsListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter AssessmentMetadataListIterator) NotDone() bool {
+func (iter AllowedConnectionsListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter AssessmentMetadataListIterator) Response() AssessmentMetadataList {
+func (iter AllowedConnectionsListIterator) Response() AllowedConnectionsList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter AssessmentMetadataListIterator) Value() AssessmentMetadata {
+func (iter AllowedConnectionsListIterator) Value() AllowedConnectionsResource {
if !iter.page.NotDone() {
- return AssessmentMetadata{}
+ return AllowedConnectionsResource{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the AssessmentMetadataListIterator type.
-func NewAssessmentMetadataListIterator(page AssessmentMetadataListPage) AssessmentMetadataListIterator {
- return AssessmentMetadataListIterator{page: page}
+// Creates a new instance of the AllowedConnectionsListIterator type.
+func NewAllowedConnectionsListIterator(page AllowedConnectionsListPage) AllowedConnectionsListIterator {
+ return AllowedConnectionsListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (aml AssessmentMetadataList) IsEmpty() bool {
- return aml.Value == nil || len(*aml.Value) == 0
+func (ACL AllowedConnectionsList) IsEmpty() bool {
+ return ACL.Value == nil || len(*ACL.Value) == 0
}
-// assessmentMetadataListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (ACL AllowedConnectionsList) hasNextLink() bool {
+ return ACL.NextLink != nil && len(*ACL.NextLink) != 0
+}
+
+// allowedConnectionsListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (aml AssessmentMetadataList) assessmentMetadataListPreparer(ctx context.Context) (*http.Request, error) {
- if aml.NextLink == nil || len(to.String(aml.NextLink)) < 1 {
+func (ACL AllowedConnectionsList) allowedConnectionsListPreparer(ctx context.Context) (*http.Request, error) {
+ if !ACL.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(aml.NextLink)))
+ autorest.WithBaseURL(to.String(ACL.NextLink)))
}
-// AssessmentMetadataListPage contains a page of AssessmentMetadata values.
-type AssessmentMetadataListPage struct {
- fn func(context.Context, AssessmentMetadataList) (AssessmentMetadataList, error)
- aml AssessmentMetadataList
+// AllowedConnectionsListPage contains a page of AllowedConnectionsResource values.
+type AllowedConnectionsListPage struct {
+ fn func(context.Context, AllowedConnectionsList) (AllowedConnectionsList, error)
+ ACL AllowedConnectionsList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *AssessmentMetadataListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *AllowedConnectionsListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AssessmentMetadataListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/AllowedConnectionsListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -2615,124 +1633,73 @@ func (page *AssessmentMetadataListPage) NextWithContext(ctx context.Context) (er
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.aml)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.ACL)
+ if err != nil {
+ return err
+ }
+ page.ACL = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.aml = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *AssessmentMetadataListPage) Next() error {
+func (page *AllowedConnectionsListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page AssessmentMetadataListPage) NotDone() bool {
- return !page.aml.IsEmpty()
+func (page AllowedConnectionsListPage) NotDone() bool {
+ return !page.ACL.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page AssessmentMetadataListPage) Response() AssessmentMetadataList {
- return page.aml
+func (page AllowedConnectionsListPage) Response() AllowedConnectionsList {
+ return page.ACL
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page AssessmentMetadataListPage) Values() []AssessmentMetadata {
- if page.aml.IsEmpty() {
+func (page AllowedConnectionsListPage) Values() []AllowedConnectionsResource {
+ if page.ACL.IsEmpty() {
return nil
}
- return *page.aml.Value
+ return *page.ACL.Value
}
-// Creates a new instance of the AssessmentMetadataListPage type.
-func NewAssessmentMetadataListPage(getNextPage func(context.Context, AssessmentMetadataList) (AssessmentMetadataList, error)) AssessmentMetadataListPage {
- return AssessmentMetadataListPage{fn: getNextPage}
+// Creates a new instance of the AllowedConnectionsListPage type.
+func NewAllowedConnectionsListPage(getNextPage func(context.Context, AllowedConnectionsList) (AllowedConnectionsList, error)) AllowedConnectionsListPage {
+ return AllowedConnectionsListPage{fn: getNextPage}
}
-// AssessmentMetadataPartnerData describes the partner that created the assessment
-type AssessmentMetadataPartnerData struct {
- // PartnerName - Name of the company of the partner
- PartnerName *string `json:"partnerName,omitempty"`
- // ProductName - Name of the product of the partner that created the assessment
- ProductName *string `json:"productName,omitempty"`
- // Secret - Secret to authenticate the partner and verify it created the assessment - write only
- Secret *string `json:"secret,omitempty"`
+// AllowedConnectionsResource the resource whose properties describes the allowed traffic between Azure
+// resources
+type AllowedConnectionsResource struct {
+ autorest.Response `json:"-"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ // AllowedConnectionsResourceProperties - READ-ONLY
+ *AllowedConnectionsResourceProperties `json:"properties,omitempty"`
}
-// AssessmentMetadataProperties describes properties of an assessment metadata.
-type AssessmentMetadataProperties struct {
- // DisplayName - User friendly display name of the assessment
- DisplayName *string `json:"displayName,omitempty"`
- // PolicyDefinitionID - READ-ONLY; Azure resource ID of the policy definition that turns this assessment calculation on
- PolicyDefinitionID *string `json:"policyDefinitionId,omitempty"`
- // Description - Human readable description of the assessment
- Description *string `json:"description,omitempty"`
- // RemediationDescription - Human readable description of what you should do to mitigate this security issue
- RemediationDescription *string `json:"remediationDescription,omitempty"`
- Category *[]Category `json:"category,omitempty"`
- // Severity - The severity level of the assessment. Possible values include: 'SeverityLow', 'SeverityMedium', 'SeverityHigh'
- Severity Severity `json:"severity,omitempty"`
- // UserImpact - The user impact of the assessment. Possible values include: 'UserImpactLow', 'UserImpactModerate', 'UserImpactHigh'
- UserImpact UserImpact `json:"userImpact,omitempty"`
- // ImplementationEffort - The implementation effort required to remediate this assessment. Possible values include: 'Low', 'Moderate', 'High'
- ImplementationEffort ImplementationEffort `json:"implementationEffort,omitempty"`
- Threats *[]Threats `json:"threats,omitempty"`
- // Preview - True if this assessment is in preview release status
- Preview *bool `json:"preview,omitempty"`
- // AssessmentType - BuiltIn if the assessment based on built-in Azure Policy definition, Custom if the assessment based on custom Azure Policy definition. Possible values include: 'BuiltIn', 'CustomPolicy', 'CustomerManaged', 'VerifiedPartner'
- AssessmentType AssessmentType `json:"assessmentType,omitempty"`
- PartnerData *AssessmentMetadataPartnerData `json:"partnerData,omitempty"`
-}
-
-// AssessmentPartnerData data regarding 3rd party partner integration
-type AssessmentPartnerData struct {
- // PartnerName - Name of the company of the partner
- PartnerName *string `json:"partnerName,omitempty"`
- // Secret - secret to authenticate the partner - write only
- Secret *string `json:"secret,omitempty"`
-}
-
-// AssessmentProperties describes properties of an assessment.
-type AssessmentProperties struct {
- ResourceDetails BasicResourceDetails `json:"resourceDetails,omitempty"`
- // DisplayName - READ-ONLY; User friendly display name of the assessment
- DisplayName *string `json:"displayName,omitempty"`
- Status *AssessmentStatus `json:"status,omitempty"`
- // AdditionalData - Additional data regarding the assessment
- AdditionalData map[string]*string `json:"additionalData"`
- Links *AssessmentLinks `json:"links,omitempty"`
- Metadata *AssessmentMetadataProperties `json:"metadata,omitempty"`
- PartnersData *AssessmentPartnerData `json:"partnersData,omitempty"`
-}
-
-// MarshalJSON is the custom marshaler for AssessmentProperties.
-func (ap AssessmentProperties) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for AllowedConnectionsResource.
+func (acr AllowedConnectionsResource) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- objectMap["resourceDetails"] = ap.ResourceDetails
- if ap.Status != nil {
- objectMap["status"] = ap.Status
- }
- if ap.AdditionalData != nil {
- objectMap["additionalData"] = ap.AdditionalData
- }
- if ap.Links != nil {
- objectMap["links"] = ap.Links
- }
- if ap.Metadata != nil {
- objectMap["metadata"] = ap.Metadata
- }
- if ap.PartnersData != nil {
- objectMap["partnersData"] = ap.PartnersData
- }
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for AssessmentProperties struct.
-func (ap *AssessmentProperties) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for AllowedConnectionsResource struct.
+func (acr *AllowedConnectionsResource) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -2740,67 +1707,50 @@ func (ap *AssessmentProperties) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
- case "resourceDetails":
- if v != nil {
- resourceDetails, err := unmarshalBasicResourceDetails(*v)
- if err != nil {
- return err
- }
- ap.ResourceDetails = resourceDetails
- }
- case "displayName":
- if v != nil {
- var displayName string
- err = json.Unmarshal(*v, &displayName)
- if err != nil {
- return err
- }
- ap.DisplayName = &displayName
- }
- case "status":
+ case "id":
if v != nil {
- var status AssessmentStatus
- err = json.Unmarshal(*v, &status)
+ var ID string
+ err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
- ap.Status = &status
+ acr.ID = &ID
}
- case "additionalData":
+ case "name":
if v != nil {
- var additionalData map[string]*string
- err = json.Unmarshal(*v, &additionalData)
+ var name string
+ err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
- ap.AdditionalData = additionalData
+ acr.Name = &name
}
- case "links":
+ case "type":
if v != nil {
- var links AssessmentLinks
- err = json.Unmarshal(*v, &links)
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
- ap.Links = &links
+ acr.Type = &typeVar
}
- case "metadata":
+ case "location":
if v != nil {
- var metadata AssessmentMetadataProperties
- err = json.Unmarshal(*v, &metadata)
+ var location string
+ err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
- ap.Metadata = &metadata
+ acr.Location = &location
}
- case "partnersData":
+ case "properties":
if v != nil {
- var partnersData AssessmentPartnerData
- err = json.Unmarshal(*v, &partnersData)
+ var allowedConnectionsResourceProperties AllowedConnectionsResourceProperties
+ err = json.Unmarshal(*v, &allowedConnectionsResourceProperties)
if err != nil {
return err
}
- ap.PartnersData = &partnersData
+ acr.AllowedConnectionsResourceProperties = &allowedConnectionsResourceProperties
}
}
}
@@ -2808,204 +1758,8416 @@ func (ap *AssessmentProperties) UnmarshalJSON(body []byte) error {
return nil
}
-// AssessmentStatus the result of the assessment
-type AssessmentStatus struct {
- // Code - Programmatic code for the status of the assessment. Possible values include: 'Healthy', 'Unhealthy', 'NotApplicable'
- Code AssessmentStatusCode `json:"code,omitempty"`
- // Cause - Programmatic code for the cause of the assessment status
- Cause *string `json:"cause,omitempty"`
- // Description - Human readable description of the assessment status
+// AllowedConnectionsResourceProperties describes the allowed traffic between Azure resources
+type AllowedConnectionsResourceProperties struct {
+ // CalculatedDateTime - READ-ONLY; The UTC time on which the allowed connections resource was calculated
+ CalculatedDateTime *date.Time `json:"calculatedDateTime,omitempty"`
+ // ConnectableResources - READ-ONLY; List of connectable resources
+ ConnectableResources *[]ConnectableResource `json:"connectableResources,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AllowedConnectionsResourceProperties.
+func (acrp AllowedConnectionsResourceProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// BasicAllowlistCustomAlertRule a custom alert rule that checks if a value (depends on the custom alert type) is
+// allowed.
+type BasicAllowlistCustomAlertRule interface {
+ AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool)
+ AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool)
+ AsProcessNotAllowed() (*ProcessNotAllowed, bool)
+ AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool)
+}
+
+// AllowlistCustomAlertRule a custom alert rule that checks if a value (depends on the custom alert type) is
+// allowed.
+type AllowlistCustomAlertRule struct {
+ // AllowlistValues - The values to allow. The format of the values depends on the rule type.
+ AllowlistValues *[]string `json:"allowlistValues,omitempty"`
+ // ValueType - READ-ONLY; The value type of the items in the list. Possible values include: 'ValueTypeIPCidr', 'ValueTypeString'
+ ValueType ValueType `json:"valueType,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
}
-// AtaExternalSecuritySolution represents an ATA security solution which sends logs to an OMS workspace
-type AtaExternalSecuritySolution struct {
- Properties *AtaSolutionProperties `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
- // Location - READ-ONLY; Location where the resource is stored
- Location *string `json:"location,omitempty"`
- // Kind - Possible values include: 'KindExternalSecuritySolution', 'KindCEF', 'KindATA', 'KindAAD'
- Kind KindEnum `json:"kind,omitempty"`
+func unmarshalBasicAllowlistCustomAlertRule(body []byte) (BasicAllowlistCustomAlertRule, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return nil, err
+ }
+
+ switch m["ruleType"] {
+ case string(RuleTypeConnectionToIPNotAllowed):
+ var ctina ConnectionToIPNotAllowed
+ err := json.Unmarshal(body, &ctina)
+ return ctina, err
+ case string(RuleTypeLocalUserNotAllowed):
+ var luna LocalUserNotAllowed
+ err := json.Unmarshal(body, &luna)
+ return luna, err
+ case string(RuleTypeProcessNotAllowed):
+ var pna ProcessNotAllowed
+ err := json.Unmarshal(body, &pna)
+ return pna, err
+ default:
+ var acar AllowlistCustomAlertRule
+ err := json.Unmarshal(body, &acar)
+ return acar, err
+ }
}
+func unmarshalBasicAllowlistCustomAlertRuleArray(body []byte) ([]BasicAllowlistCustomAlertRule, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
+ if err != nil {
+ return nil, err
+ }
-// MarshalJSON is the custom marshaler for AtaExternalSecuritySolution.
-func (aess AtaExternalSecuritySolution) MarshalJSON() ([]byte, error) {
- aess.Kind = KindATA
+ acarArray := make([]BasicAllowlistCustomAlertRule, len(rawMessages))
+
+ for index, rawMessage := range rawMessages {
+ acar, err := unmarshalBasicAllowlistCustomAlertRule(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ acarArray[index] = acar
+ }
+ return acarArray, nil
+}
+
+// MarshalJSON is the custom marshaler for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) MarshalJSON() ([]byte, error) {
+ acar.RuleType = RuleTypeAllowlistCustomAlertRule
objectMap := make(map[string]interface{})
- if aess.Properties != nil {
- objectMap["properties"] = aess.Properties
+ if acar.AllowlistValues != nil {
+ objectMap["allowlistValues"] = acar.AllowlistValues
}
- if aess.Kind != "" {
- objectMap["kind"] = aess.Kind
+ if acar.IsEnabled != nil {
+ objectMap["isEnabled"] = acar.IsEnabled
+ }
+ if acar.RuleType != "" {
+ objectMap["ruleType"] = acar.RuleType
}
return json.Marshal(objectMap)
}
-// AsCefExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AtaExternalSecuritySolution.
-func (aess AtaExternalSecuritySolution) AsCefExternalSecuritySolution() (*CefExternalSecuritySolution, bool) {
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
return nil, false
}
-// AsAtaExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AtaExternalSecuritySolution.
-func (aess AtaExternalSecuritySolution) AsAtaExternalSecuritySolution() (*AtaExternalSecuritySolution, bool) {
- return &aess, true
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return nil, false
}
-// AsAadExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AtaExternalSecuritySolution.
-func (aess AtaExternalSecuritySolution) AsAadExternalSecuritySolution() (*AadExternalSecuritySolution, bool) {
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
return nil, false
}
-// AsExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AtaExternalSecuritySolution.
-func (aess AtaExternalSecuritySolution) AsExternalSecuritySolution() (*ExternalSecuritySolution, bool) {
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
return nil, false
}
-// AsBasicExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AtaExternalSecuritySolution.
-func (aess AtaExternalSecuritySolution) AsBasicExternalSecuritySolution() (BasicExternalSecuritySolution, bool) {
- return &aess, true
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return &acar, true
}
-// AtaSolutionProperties ...
-type AtaSolutionProperties struct {
- LastEventReceived *string `json:"lastEventReceived,omitempty"`
- // AdditionalProperties - Unmatched properties from the message are deserialized this collection
- AdditionalProperties map[string]interface{} `json:""`
- DeviceVendor *string `json:"deviceVendor,omitempty"`
- DeviceType *string `json:"deviceType,omitempty"`
- Workspace *ConnectedWorkspace `json:"workspace,omitempty"`
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return &acar, true
}
-// MarshalJSON is the custom marshaler for AtaSolutionProperties.
-func (asp AtaSolutionProperties) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- if asp.LastEventReceived != nil {
- objectMap["lastEventReceived"] = asp.LastEventReceived
- }
- if asp.DeviceVendor != nil {
- objectMap["deviceVendor"] = asp.DeviceVendor
- }
- if asp.DeviceType != nil {
- objectMap["deviceType"] = asp.DeviceType
- }
- if asp.Workspace != nil {
- objectMap["workspace"] = asp.Workspace
- }
- for k, v := range asp.AdditionalProperties {
- objectMap[k] = v
- }
- return json.Marshal(objectMap)
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
}
-// UnmarshalJSON is the custom unmarshaler for AtaSolutionProperties struct.
-func (asp *AtaSolutionProperties) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
- if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
- case "lastEventReceived":
- if v != nil {
- var lastEventReceived string
- err = json.Unmarshal(*v, &lastEventReceived)
- if err != nil {
- return err
- }
- asp.LastEventReceived = &lastEventReceived
- }
- default:
- if v != nil {
- var additionalProperties interface{}
- err = json.Unmarshal(*v, &additionalProperties)
- if err != nil {
- return err
- }
- if asp.AdditionalProperties == nil {
- asp.AdditionalProperties = make(map[string]interface{})
- }
- asp.AdditionalProperties[k] = additionalProperties
- }
- case "deviceVendor":
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return &acar, true
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &acar, true
+}
+
+// AmqpC2DMessagesNotInAllowedRange number of cloud to device messages (AMQP protocol) is not in allowed range.
+type AmqpC2DMessagesNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ acmniar.RuleType = RuleTypeAmqpC2DMessagesNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if acmniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = acmniar.TimeWindowSize
+ }
+ if acmniar.MinThreshold != nil {
+ objectMap["minThreshold"] = acmniar.MinThreshold
+ }
+ if acmniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = acmniar.MaxThreshold
+ }
+ if acmniar.IsEnabled != nil {
+ objectMap["isEnabled"] = acmniar.IsEnabled
+ }
+ if acmniar.RuleType != "" {
+ objectMap["ruleType"] = acmniar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &acmniar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &acmniar, true
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return &acmniar, true
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DMessagesNotInAllowedRange.
+func (acmniar AmqpC2DMessagesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &acmniar, true
+}
+
+// AmqpC2DRejectedMessagesNotInAllowedRange number of rejected cloud to device messages (AMQP protocol) is not
+// in allowed range.
+type AmqpC2DRejectedMessagesNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ acrmniar.RuleType = RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if acrmniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = acrmniar.TimeWindowSize
+ }
+ if acrmniar.MinThreshold != nil {
+ objectMap["minThreshold"] = acrmniar.MinThreshold
+ }
+ if acrmniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = acrmniar.MaxThreshold
+ }
+ if acrmniar.IsEnabled != nil {
+ objectMap["isEnabled"] = acrmniar.IsEnabled
+ }
+ if acrmniar.RuleType != "" {
+ objectMap["ruleType"] = acrmniar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &acrmniar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &acrmniar, true
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return &acrmniar, true
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for AmqpC2DRejectedMessagesNotInAllowedRange.
+func (acrmniar AmqpC2DRejectedMessagesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &acrmniar, true
+}
+
+// AmqpD2CMessagesNotInAllowedRange number of device to cloud messages (AMQP protocol) is not in allowed range.
+type AmqpD2CMessagesNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ admniar.RuleType = RuleTypeAmqpD2CMessagesNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if admniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = admniar.TimeWindowSize
+ }
+ if admniar.MinThreshold != nil {
+ objectMap["minThreshold"] = admniar.MinThreshold
+ }
+ if admniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = admniar.MaxThreshold
+ }
+ if admniar.IsEnabled != nil {
+ objectMap["isEnabled"] = admniar.IsEnabled
+ }
+ if admniar.RuleType != "" {
+ objectMap["ruleType"] = admniar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &admniar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &admniar, true
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return &admniar, true
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for AmqpD2CMessagesNotInAllowedRange.
+func (admniar AmqpD2CMessagesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &admniar, true
+}
+
+// AscLocation the ASC location of the subscription is in the "name" field
+type AscLocation struct {
+ autorest.Response `json:"-"`
+ Properties interface{} `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AscLocation.
+func (al AscLocation) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if al.Properties != nil {
+ objectMap["properties"] = al.Properties
+ }
+ return json.Marshal(objectMap)
+}
+
+// AscLocationList list of locations where ASC saves your data
+type AscLocationList struct {
+ autorest.Response `json:"-"`
+ // Value - READ-ONLY
+ Value *[]AscLocation `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AscLocationList.
+func (all AscLocationList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// AscLocationListIterator provides access to a complete listing of AscLocation values.
+type AscLocationListIterator struct {
+ i int
+ page AscLocationListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *AscLocationListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AscLocationListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *AscLocationListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter AscLocationListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter AscLocationListIterator) Response() AscLocationList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter AscLocationListIterator) Value() AscLocation {
+ if !iter.page.NotDone() {
+ return AscLocation{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the AscLocationListIterator type.
+func NewAscLocationListIterator(page AscLocationListPage) AscLocationListIterator {
+ return AscLocationListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (all AscLocationList) IsEmpty() bool {
+ return all.Value == nil || len(*all.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (all AscLocationList) hasNextLink() bool {
+ return all.NextLink != nil && len(*all.NextLink) != 0
+}
+
+// ascLocationListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (all AscLocationList) ascLocationListPreparer(ctx context.Context) (*http.Request, error) {
+ if !all.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(all.NextLink)))
+}
+
+// AscLocationListPage contains a page of AscLocation values.
+type AscLocationListPage struct {
+ fn func(context.Context, AscLocationList) (AscLocationList, error)
+ all AscLocationList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *AscLocationListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AscLocationListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.all)
+ if err != nil {
+ return err
+ }
+ page.all = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *AscLocationListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page AscLocationListPage) NotDone() bool {
+ return !page.all.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page AscLocationListPage) Response() AscLocationList {
+ return page.all
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page AscLocationListPage) Values() []AscLocation {
+ if page.all.IsEmpty() {
+ return nil
+ }
+ return *page.all.Value
+}
+
+// Creates a new instance of the AscLocationListPage type.
+func NewAscLocationListPage(getNextPage func(context.Context, AscLocationList) (AscLocationList, error)) AscLocationListPage {
+ return AscLocationListPage{fn: getNextPage}
+}
+
+// Assessment security assessment on a resource
+type Assessment struct {
+ autorest.Response `json:"-"`
+ *AssessmentProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for Assessment.
+func (a Assessment) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if a.AssessmentProperties != nil {
+ objectMap["properties"] = a.AssessmentProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for Assessment struct.
+func (a *Assessment) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var assessmentProperties AssessmentProperties
+ err = json.Unmarshal(*v, &assessmentProperties)
+ if err != nil {
+ return err
+ }
+ a.AssessmentProperties = &assessmentProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ a.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ a.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ a.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// AssessmentLinks links relevant to the assessment
+type AssessmentLinks struct {
+ // AzurePortalURI - READ-ONLY; Link to assessment in Azure Portal
+ AzurePortalURI *string `json:"azurePortalUri,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AssessmentLinks.
+func (al AssessmentLinks) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// AssessmentList page of a security assessments list
+type AssessmentList struct {
+ autorest.Response `json:"-"`
+ // Value - READ-ONLY; Collection of security assessments in this page
+ Value *[]Assessment `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AssessmentList.
+func (al AssessmentList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// AssessmentListIterator provides access to a complete listing of Assessment values.
+type AssessmentListIterator struct {
+ i int
+ page AssessmentListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *AssessmentListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AssessmentListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *AssessmentListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter AssessmentListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter AssessmentListIterator) Response() AssessmentList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter AssessmentListIterator) Value() Assessment {
+ if !iter.page.NotDone() {
+ return Assessment{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the AssessmentListIterator type.
+func NewAssessmentListIterator(page AssessmentListPage) AssessmentListIterator {
+ return AssessmentListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (al AssessmentList) IsEmpty() bool {
+ return al.Value == nil || len(*al.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (al AssessmentList) hasNextLink() bool {
+ return al.NextLink != nil && len(*al.NextLink) != 0
+}
+
+// assessmentListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (al AssessmentList) assessmentListPreparer(ctx context.Context) (*http.Request, error) {
+ if !al.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(al.NextLink)))
+}
+
+// AssessmentListPage contains a page of Assessment values.
+type AssessmentListPage struct {
+ fn func(context.Context, AssessmentList) (AssessmentList, error)
+ al AssessmentList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *AssessmentListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AssessmentListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.al)
+ if err != nil {
+ return err
+ }
+ page.al = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *AssessmentListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page AssessmentListPage) NotDone() bool {
+ return !page.al.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page AssessmentListPage) Response() AssessmentList {
+ return page.al
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page AssessmentListPage) Values() []Assessment {
+ if page.al.IsEmpty() {
+ return nil
+ }
+ return *page.al.Value
+}
+
+// Creates a new instance of the AssessmentListPage type.
+func NewAssessmentListPage(getNextPage func(context.Context, AssessmentList) (AssessmentList, error)) AssessmentListPage {
+ return AssessmentListPage{fn: getNextPage}
+}
+
+// AssessmentMetadata security assessment metadata
+type AssessmentMetadata struct {
+ autorest.Response `json:"-"`
+ *AssessmentMetadataProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AssessmentMetadata.
+func (am AssessmentMetadata) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if am.AssessmentMetadataProperties != nil {
+ objectMap["properties"] = am.AssessmentMetadataProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for AssessmentMetadata struct.
+func (am *AssessmentMetadata) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var assessmentMetadataProperties AssessmentMetadataProperties
+ err = json.Unmarshal(*v, &assessmentMetadataProperties)
+ if err != nil {
+ return err
+ }
+ am.AssessmentMetadataProperties = &assessmentMetadataProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ am.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ am.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ am.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// AssessmentMetadataList list of security assessment metadata
+type AssessmentMetadataList struct {
+ autorest.Response `json:"-"`
+ // Value - READ-ONLY
+ Value *[]AssessmentMetadata `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AssessmentMetadataList.
+func (aml AssessmentMetadataList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// AssessmentMetadataListIterator provides access to a complete listing of AssessmentMetadata values.
+type AssessmentMetadataListIterator struct {
+ i int
+ page AssessmentMetadataListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *AssessmentMetadataListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AssessmentMetadataListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *AssessmentMetadataListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter AssessmentMetadataListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter AssessmentMetadataListIterator) Response() AssessmentMetadataList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter AssessmentMetadataListIterator) Value() AssessmentMetadata {
+ if !iter.page.NotDone() {
+ return AssessmentMetadata{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the AssessmentMetadataListIterator type.
+func NewAssessmentMetadataListIterator(page AssessmentMetadataListPage) AssessmentMetadataListIterator {
+ return AssessmentMetadataListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (aml AssessmentMetadataList) IsEmpty() bool {
+ return aml.Value == nil || len(*aml.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (aml AssessmentMetadataList) hasNextLink() bool {
+ return aml.NextLink != nil && len(*aml.NextLink) != 0
+}
+
+// assessmentMetadataListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (aml AssessmentMetadataList) assessmentMetadataListPreparer(ctx context.Context) (*http.Request, error) {
+ if !aml.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(aml.NextLink)))
+}
+
+// AssessmentMetadataListPage contains a page of AssessmentMetadata values.
+type AssessmentMetadataListPage struct {
+ fn func(context.Context, AssessmentMetadataList) (AssessmentMetadataList, error)
+ aml AssessmentMetadataList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *AssessmentMetadataListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AssessmentMetadataListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.aml)
+ if err != nil {
+ return err
+ }
+ page.aml = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *AssessmentMetadataListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page AssessmentMetadataListPage) NotDone() bool {
+ return !page.aml.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page AssessmentMetadataListPage) Response() AssessmentMetadataList {
+ return page.aml
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page AssessmentMetadataListPage) Values() []AssessmentMetadata {
+ if page.aml.IsEmpty() {
+ return nil
+ }
+ return *page.aml.Value
+}
+
+// Creates a new instance of the AssessmentMetadataListPage type.
+func NewAssessmentMetadataListPage(getNextPage func(context.Context, AssessmentMetadataList) (AssessmentMetadataList, error)) AssessmentMetadataListPage {
+ return AssessmentMetadataListPage{fn: getNextPage}
+}
+
+// AssessmentMetadataPartnerData describes the partner that created the assessment
+type AssessmentMetadataPartnerData struct {
+ // PartnerName - Name of the company of the partner
+ PartnerName *string `json:"partnerName,omitempty"`
+ // ProductName - Name of the product of the partner that created the assessment
+ ProductName *string `json:"productName,omitempty"`
+ // Secret - Secret to authenticate the partner and verify it created the assessment - write only
+ Secret *string `json:"secret,omitempty"`
+}
+
+// AssessmentMetadataProperties describes properties of an assessment metadata.
+type AssessmentMetadataProperties struct {
+ // DisplayName - User friendly display name of the assessment
+ DisplayName *string `json:"displayName,omitempty"`
+ // PolicyDefinitionID - READ-ONLY; Azure resource ID of the policy definition that turns this assessment calculation on
+ PolicyDefinitionID *string `json:"policyDefinitionId,omitempty"`
+ // Description - Human readable description of the assessment
+ Description *string `json:"description,omitempty"`
+ // RemediationDescription - Human readable description of what you should do to mitigate this security issue
+ RemediationDescription *string `json:"remediationDescription,omitempty"`
+ Category *[]Category `json:"category,omitempty"`
+ // Severity - The severity level of the assessment. Possible values include: 'SeverityLow', 'SeverityMedium', 'SeverityHigh'
+ Severity Severity `json:"severity,omitempty"`
+ // UserImpact - The user impact of the assessment. Possible values include: 'UserImpactLow', 'UserImpactModerate', 'UserImpactHigh'
+ UserImpact UserImpact `json:"userImpact,omitempty"`
+ // ImplementationEffort - The implementation effort required to remediate this assessment. Possible values include: 'ImplementationEffortLow', 'ImplementationEffortModerate', 'ImplementationEffortHigh'
+ ImplementationEffort ImplementationEffort `json:"implementationEffort,omitempty"`
+ Threats *[]Threats `json:"threats,omitempty"`
+ // Preview - True if this assessment is in preview release status
+ Preview *bool `json:"preview,omitempty"`
+ // AssessmentType - BuiltIn if the assessment based on built-in Azure Policy definition, Custom if the assessment based on custom Azure Policy definition. Possible values include: 'BuiltIn', 'CustomPolicy', 'CustomerManaged', 'VerifiedPartner'
+ AssessmentType AssessmentType `json:"assessmentType,omitempty"`
+ PartnerData *AssessmentMetadataPartnerData `json:"partnerData,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AssessmentMetadataProperties.
+func (amp AssessmentMetadataProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if amp.DisplayName != nil {
+ objectMap["displayName"] = amp.DisplayName
+ }
+ if amp.Description != nil {
+ objectMap["description"] = amp.Description
+ }
+ if amp.RemediationDescription != nil {
+ objectMap["remediationDescription"] = amp.RemediationDescription
+ }
+ if amp.Category != nil {
+ objectMap["category"] = amp.Category
+ }
+ if amp.Severity != "" {
+ objectMap["severity"] = amp.Severity
+ }
+ if amp.UserImpact != "" {
+ objectMap["userImpact"] = amp.UserImpact
+ }
+ if amp.ImplementationEffort != "" {
+ objectMap["implementationEffort"] = amp.ImplementationEffort
+ }
+ if amp.Threats != nil {
+ objectMap["threats"] = amp.Threats
+ }
+ if amp.Preview != nil {
+ objectMap["preview"] = amp.Preview
+ }
+ if amp.AssessmentType != "" {
+ objectMap["assessmentType"] = amp.AssessmentType
+ }
+ if amp.PartnerData != nil {
+ objectMap["partnerData"] = amp.PartnerData
+ }
+ return json.Marshal(objectMap)
+}
+
+// AssessmentPartnerData data regarding 3rd party partner integration
+type AssessmentPartnerData struct {
+ // PartnerName - Name of the company of the partner
+ PartnerName *string `json:"partnerName,omitempty"`
+ // Secret - secret to authenticate the partner - write only
+ Secret *string `json:"secret,omitempty"`
+}
+
+// AssessmentProperties describes properties of an assessment.
+type AssessmentProperties struct {
+ ResourceDetails BasicResourceDetails `json:"resourceDetails,omitempty"`
+ // DisplayName - READ-ONLY; User friendly display name of the assessment
+ DisplayName *string `json:"displayName,omitempty"`
+ Status *AssessmentStatus `json:"status,omitempty"`
+ // AdditionalData - Additional data regarding the assessment
+ AdditionalData map[string]*string `json:"additionalData"`
+ Links *AssessmentLinks `json:"links,omitempty"`
+ Metadata *AssessmentMetadataProperties `json:"metadata,omitempty"`
+ PartnersData *AssessmentPartnerData `json:"partnersData,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AssessmentProperties.
+func (ap AssessmentProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ objectMap["resourceDetails"] = ap.ResourceDetails
+ if ap.Status != nil {
+ objectMap["status"] = ap.Status
+ }
+ if ap.AdditionalData != nil {
+ objectMap["additionalData"] = ap.AdditionalData
+ }
+ if ap.Links != nil {
+ objectMap["links"] = ap.Links
+ }
+ if ap.Metadata != nil {
+ objectMap["metadata"] = ap.Metadata
+ }
+ if ap.PartnersData != nil {
+ objectMap["partnersData"] = ap.PartnersData
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for AssessmentProperties struct.
+func (ap *AssessmentProperties) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "resourceDetails":
+ if v != nil {
+ resourceDetails, err := unmarshalBasicResourceDetails(*v)
+ if err != nil {
+ return err
+ }
+ ap.ResourceDetails = resourceDetails
+ }
+ case "displayName":
+ if v != nil {
+ var displayName string
+ err = json.Unmarshal(*v, &displayName)
+ if err != nil {
+ return err
+ }
+ ap.DisplayName = &displayName
+ }
+ case "status":
+ if v != nil {
+ var status AssessmentStatus
+ err = json.Unmarshal(*v, &status)
+ if err != nil {
+ return err
+ }
+ ap.Status = &status
+ }
+ case "additionalData":
+ if v != nil {
+ var additionalData map[string]*string
+ err = json.Unmarshal(*v, &additionalData)
+ if err != nil {
+ return err
+ }
+ ap.AdditionalData = additionalData
+ }
+ case "links":
+ if v != nil {
+ var links AssessmentLinks
+ err = json.Unmarshal(*v, &links)
+ if err != nil {
+ return err
+ }
+ ap.Links = &links
+ }
+ case "metadata":
+ if v != nil {
+ var metadata AssessmentMetadataProperties
+ err = json.Unmarshal(*v, &metadata)
+ if err != nil {
+ return err
+ }
+ ap.Metadata = &metadata
+ }
+ case "partnersData":
+ if v != nil {
+ var partnersData AssessmentPartnerData
+ err = json.Unmarshal(*v, &partnersData)
+ if err != nil {
+ return err
+ }
+ ap.PartnersData = &partnersData
+ }
+ }
+ }
+
+ return nil
+}
+
+// AssessmentStatus the result of the assessment
+type AssessmentStatus struct {
+ // Code - Programmatic code for the status of the assessment. Possible values include: 'Healthy', 'Unhealthy', 'NotApplicable'
+ Code AssessmentStatusCode `json:"code,omitempty"`
+ // Cause - Programmatic code for the cause of the assessment status
+ Cause *string `json:"cause,omitempty"`
+ // Description - Human readable description of the assessment status
+ Description *string `json:"description,omitempty"`
+}
+
+// AtaExternalSecuritySolution represents an ATA security solution which sends logs to an OMS workspace
+type AtaExternalSecuritySolution struct {
+ Properties *AtaSolutionProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ // Kind - Possible values include: 'KindExternalSecuritySolution', 'KindCEF', 'KindATA', 'KindAAD'
+ Kind KindEnum1 `json:"kind,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AtaExternalSecuritySolution.
+func (aess AtaExternalSecuritySolution) MarshalJSON() ([]byte, error) {
+ aess.Kind = KindATA
+ objectMap := make(map[string]interface{})
+ if aess.Properties != nil {
+ objectMap["properties"] = aess.Properties
+ }
+ if aess.Kind != "" {
+ objectMap["kind"] = aess.Kind
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsCefExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AtaExternalSecuritySolution.
+func (aess AtaExternalSecuritySolution) AsCefExternalSecuritySolution() (*CefExternalSecuritySolution, bool) {
+ return nil, false
+}
+
+// AsAtaExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AtaExternalSecuritySolution.
+func (aess AtaExternalSecuritySolution) AsAtaExternalSecuritySolution() (*AtaExternalSecuritySolution, bool) {
+ return &aess, true
+}
+
+// AsAadExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AtaExternalSecuritySolution.
+func (aess AtaExternalSecuritySolution) AsAadExternalSecuritySolution() (*AadExternalSecuritySolution, bool) {
+ return nil, false
+}
+
+// AsExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AtaExternalSecuritySolution.
+func (aess AtaExternalSecuritySolution) AsExternalSecuritySolution() (*ExternalSecuritySolution, bool) {
+ return nil, false
+}
+
+// AsBasicExternalSecuritySolution is the BasicExternalSecuritySolution implementation for AtaExternalSecuritySolution.
+func (aess AtaExternalSecuritySolution) AsBasicExternalSecuritySolution() (BasicExternalSecuritySolution, bool) {
+ return &aess, true
+}
+
+// AtaSolutionProperties ...
+type AtaSolutionProperties struct {
+ LastEventReceived *string `json:"lastEventReceived,omitempty"`
+ // AdditionalProperties - Unmatched properties from the message are deserialized this collection
+ AdditionalProperties map[string]interface{} `json:""`
+ DeviceVendor *string `json:"deviceVendor,omitempty"`
+ DeviceType *string `json:"deviceType,omitempty"`
+ Workspace *ConnectedWorkspace `json:"workspace,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AtaSolutionProperties.
+func (asp AtaSolutionProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if asp.LastEventReceived != nil {
+ objectMap["lastEventReceived"] = asp.LastEventReceived
+ }
+ if asp.DeviceVendor != nil {
+ objectMap["deviceVendor"] = asp.DeviceVendor
+ }
+ if asp.DeviceType != nil {
+ objectMap["deviceType"] = asp.DeviceType
+ }
+ if asp.Workspace != nil {
+ objectMap["workspace"] = asp.Workspace
+ }
+ for k, v := range asp.AdditionalProperties {
+ objectMap[k] = v
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for AtaSolutionProperties struct.
+func (asp *AtaSolutionProperties) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "lastEventReceived":
+ if v != nil {
+ var lastEventReceived string
+ err = json.Unmarshal(*v, &lastEventReceived)
+ if err != nil {
+ return err
+ }
+ asp.LastEventReceived = &lastEventReceived
+ }
+ default:
+ if v != nil {
+ var additionalProperties interface{}
+ err = json.Unmarshal(*v, &additionalProperties)
+ if err != nil {
+ return err
+ }
+ if asp.AdditionalProperties == nil {
+ asp.AdditionalProperties = make(map[string]interface{})
+ }
+ asp.AdditionalProperties[k] = additionalProperties
+ }
+ case "deviceVendor":
+ if v != nil {
+ var deviceVendor string
+ err = json.Unmarshal(*v, &deviceVendor)
+ if err != nil {
+ return err
+ }
+ asp.DeviceVendor = &deviceVendor
+ }
+ case "deviceType":
+ if v != nil {
+ var deviceType string
+ err = json.Unmarshal(*v, &deviceType)
+ if err != nil {
+ return err
+ }
+ asp.DeviceType = &deviceType
+ }
+ case "workspace":
+ if v != nil {
+ var workspace ConnectedWorkspace
+ err = json.Unmarshal(*v, &workspace)
+ if err != nil {
+ return err
+ }
+ asp.Workspace = &workspace
+ }
+ }
+ }
+
+ return nil
+}
+
+// BasicAuthenticationDetailsProperties settings for cloud authentication management
+type BasicAuthenticationDetailsProperties interface {
+ AsAwsCredsAuthenticationDetailsProperties() (*AwsCredsAuthenticationDetailsProperties, bool)
+ AsAwAssumeRoleAuthenticationDetailsProperties() (*AwAssumeRoleAuthenticationDetailsProperties, bool)
+ AsGcpCredentialsDetailsProperties() (*GcpCredentialsDetailsProperties, bool)
+ AsAuthenticationDetailsProperties() (*AuthenticationDetailsProperties, bool)
+}
+
+// AuthenticationDetailsProperties settings for cloud authentication management
+type AuthenticationDetailsProperties struct {
+ // AuthenticationProvisioningState - READ-ONLY; State of the multi-cloud connector. Possible values include: 'Valid', 'Invalid', 'Expired', 'IncorrectPolicy'
+ AuthenticationProvisioningState AuthenticationProvisioningState `json:"authenticationProvisioningState,omitempty"`
+ // GrantedPermissions - READ-ONLY; The permissions detected in the cloud account.
+ GrantedPermissions *[]PermissionProperty `json:"grantedPermissions,omitempty"`
+ // AuthenticationType - Possible values include: 'AuthenticationTypeAuthenticationDetailsProperties', 'AuthenticationTypeAwsCreds', 'AuthenticationTypeAwsAssumeRole', 'AuthenticationTypeGcpCredentials'
+ AuthenticationType AuthenticationType `json:"authenticationType,omitempty"`
+}
+
+func unmarshalBasicAuthenticationDetailsProperties(body []byte) (BasicAuthenticationDetailsProperties, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return nil, err
+ }
+
+ switch m["authenticationType"] {
+ case string(AuthenticationTypeAwsCreds):
+ var acadp AwsCredsAuthenticationDetailsProperties
+ err := json.Unmarshal(body, &acadp)
+ return acadp, err
+ case string(AuthenticationTypeAwsAssumeRole):
+ var aaradp AwAssumeRoleAuthenticationDetailsProperties
+ err := json.Unmarshal(body, &aaradp)
+ return aaradp, err
+ case string(AuthenticationTypeGcpCredentials):
+ var gcdp GcpCredentialsDetailsProperties
+ err := json.Unmarshal(body, &gcdp)
+ return gcdp, err
+ default:
+ var adp AuthenticationDetailsProperties
+ err := json.Unmarshal(body, &adp)
+ return adp, err
+ }
+}
+func unmarshalBasicAuthenticationDetailsPropertiesArray(body []byte) ([]BasicAuthenticationDetailsProperties, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
+ if err != nil {
+ return nil, err
+ }
+
+ adpArray := make([]BasicAuthenticationDetailsProperties, len(rawMessages))
+
+ for index, rawMessage := range rawMessages {
+ adp, err := unmarshalBasicAuthenticationDetailsProperties(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ adpArray[index] = adp
+ }
+ return adpArray, nil
+}
+
+// MarshalJSON is the custom marshaler for AuthenticationDetailsProperties.
+func (adp AuthenticationDetailsProperties) MarshalJSON() ([]byte, error) {
+ adp.AuthenticationType = AuthenticationTypeAuthenticationDetailsProperties
+ objectMap := make(map[string]interface{})
+ if adp.AuthenticationType != "" {
+ objectMap["authenticationType"] = adp.AuthenticationType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsAwsCredsAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AuthenticationDetailsProperties.
+func (adp AuthenticationDetailsProperties) AsAwsCredsAuthenticationDetailsProperties() (*AwsCredsAuthenticationDetailsProperties, bool) {
+ return nil, false
+}
+
+// AsAwAssumeRoleAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AuthenticationDetailsProperties.
+func (adp AuthenticationDetailsProperties) AsAwAssumeRoleAuthenticationDetailsProperties() (*AwAssumeRoleAuthenticationDetailsProperties, bool) {
+ return nil, false
+}
+
+// AsGcpCredentialsDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AuthenticationDetailsProperties.
+func (adp AuthenticationDetailsProperties) AsGcpCredentialsDetailsProperties() (*GcpCredentialsDetailsProperties, bool) {
+ return nil, false
+}
+
+// AsAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AuthenticationDetailsProperties.
+func (adp AuthenticationDetailsProperties) AsAuthenticationDetailsProperties() (*AuthenticationDetailsProperties, bool) {
+ return &adp, true
+}
+
+// AsBasicAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AuthenticationDetailsProperties.
+func (adp AuthenticationDetailsProperties) AsBasicAuthenticationDetailsProperties() (BasicAuthenticationDetailsProperties, bool) {
+ return &adp, true
+}
+
+// Automation the security automation resource.
+type Automation struct {
+ autorest.Response `json:"-"`
+ // AutomationProperties - Security automation data
+ *AutomationProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ // Kind - Kind of the resource
+ Kind *string `json:"kind,omitempty"`
+ // Etag - Entity tag is used for comparing two or more entities from the same requested resource.
+ Etag *string `json:"etag,omitempty"`
+ // Tags - A list of key value pairs that describe the resource.
+ Tags map[string]*string `json:"tags"`
+}
+
+// MarshalJSON is the custom marshaler for Automation.
+func (a Automation) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if a.AutomationProperties != nil {
+ objectMap["properties"] = a.AutomationProperties
+ }
+ if a.Kind != nil {
+ objectMap["kind"] = a.Kind
+ }
+ if a.Etag != nil {
+ objectMap["etag"] = a.Etag
+ }
+ if a.Tags != nil {
+ objectMap["tags"] = a.Tags
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for Automation struct.
+func (a *Automation) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var automationProperties AutomationProperties
+ err = json.Unmarshal(*v, &automationProperties)
+ if err != nil {
+ return err
+ }
+ a.AutomationProperties = &automationProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ a.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ a.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ a.Type = &typeVar
+ }
+ case "location":
+ if v != nil {
+ var location string
+ err = json.Unmarshal(*v, &location)
+ if err != nil {
+ return err
+ }
+ a.Location = &location
+ }
+ case "kind":
+ if v != nil {
+ var kind string
+ err = json.Unmarshal(*v, &kind)
+ if err != nil {
+ return err
+ }
+ a.Kind = &kind
+ }
+ case "etag":
+ if v != nil {
+ var etag string
+ err = json.Unmarshal(*v, &etag)
+ if err != nil {
+ return err
+ }
+ a.Etag = &etag
+ }
+ case "tags":
+ if v != nil {
+ var tags map[string]*string
+ err = json.Unmarshal(*v, &tags)
+ if err != nil {
+ return err
+ }
+ a.Tags = tags
+ }
+ }
+ }
+
+ return nil
+}
+
+// BasicAutomationAction the action that should be triggered.
+type BasicAutomationAction interface {
+ AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool)
+ AsAutomationActionEventHub() (*AutomationActionEventHub, bool)
+ AsAutomationActionWorkspace() (*AutomationActionWorkspace, bool)
+ AsAutomationAction() (*AutomationAction, bool)
+}
+
+// AutomationAction the action that should be triggered.
+type AutomationAction struct {
+ // ActionType - Possible values include: 'ActionTypeAutomationAction', 'ActionTypeLogicApp', 'ActionTypeEventHub', 'ActionTypeWorkspace'
+ ActionType ActionType `json:"actionType,omitempty"`
+}
+
+func unmarshalBasicAutomationAction(body []byte) (BasicAutomationAction, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return nil, err
+ }
+
+ switch m["actionType"] {
+ case string(ActionTypeLogicApp):
+ var aala AutomationActionLogicApp
+ err := json.Unmarshal(body, &aala)
+ return aala, err
+ case string(ActionTypeEventHub):
+ var aaeh AutomationActionEventHub
+ err := json.Unmarshal(body, &aaeh)
+ return aaeh, err
+ case string(ActionTypeWorkspace):
+ var aaw AutomationActionWorkspace
+ err := json.Unmarshal(body, &aaw)
+ return aaw, err
+ default:
+ var aa AutomationAction
+ err := json.Unmarshal(body, &aa)
+ return aa, err
+ }
+}
+func unmarshalBasicAutomationActionArray(body []byte) ([]BasicAutomationAction, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
+ if err != nil {
+ return nil, err
+ }
+
+ aaArray := make([]BasicAutomationAction, len(rawMessages))
+
+ for index, rawMessage := range rawMessages {
+ aa, err := unmarshalBasicAutomationAction(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ aaArray[index] = aa
+ }
+ return aaArray, nil
+}
+
+// MarshalJSON is the custom marshaler for AutomationAction.
+func (aa AutomationAction) MarshalJSON() ([]byte, error) {
+ aa.ActionType = ActionTypeAutomationAction
+ objectMap := make(map[string]interface{})
+ if aa.ActionType != "" {
+ objectMap["actionType"] = aa.ActionType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsAutomationActionLogicApp is the BasicAutomationAction implementation for AutomationAction.
+func (aa AutomationAction) AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool) {
+ return nil, false
+}
+
+// AsAutomationActionEventHub is the BasicAutomationAction implementation for AutomationAction.
+func (aa AutomationAction) AsAutomationActionEventHub() (*AutomationActionEventHub, bool) {
+ return nil, false
+}
+
+// AsAutomationActionWorkspace is the BasicAutomationAction implementation for AutomationAction.
+func (aa AutomationAction) AsAutomationActionWorkspace() (*AutomationActionWorkspace, bool) {
+ return nil, false
+}
+
+// AsAutomationAction is the BasicAutomationAction implementation for AutomationAction.
+func (aa AutomationAction) AsAutomationAction() (*AutomationAction, bool) {
+ return &aa, true
+}
+
+// AsBasicAutomationAction is the BasicAutomationAction implementation for AutomationAction.
+func (aa AutomationAction) AsBasicAutomationAction() (BasicAutomationAction, bool) {
+ return &aa, true
+}
+
+// AutomationActionEventHub the target Event Hub to which event data will be exported. To learn more about
+// Security Center continuous export capabilities, visit https://aka.ms/ASCExportLearnMore
+type AutomationActionEventHub struct {
+ // EventHubResourceID - The target Event Hub Azure Resource ID.
+ EventHubResourceID *string `json:"eventHubResourceId,omitempty"`
+ // SasPolicyName - READ-ONLY; The target Event Hub SAS policy name.
+ SasPolicyName *string `json:"sasPolicyName,omitempty"`
+ // ConnectionString - The target Event Hub connection string (it will not be included in any response).
+ ConnectionString *string `json:"connectionString,omitempty"`
+ // ActionType - Possible values include: 'ActionTypeAutomationAction', 'ActionTypeLogicApp', 'ActionTypeEventHub', 'ActionTypeWorkspace'
+ ActionType ActionType `json:"actionType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AutomationActionEventHub.
+func (aaeh AutomationActionEventHub) MarshalJSON() ([]byte, error) {
+ aaeh.ActionType = ActionTypeEventHub
+ objectMap := make(map[string]interface{})
+ if aaeh.EventHubResourceID != nil {
+ objectMap["eventHubResourceId"] = aaeh.EventHubResourceID
+ }
+ if aaeh.ConnectionString != nil {
+ objectMap["connectionString"] = aaeh.ConnectionString
+ }
+ if aaeh.ActionType != "" {
+ objectMap["actionType"] = aaeh.ActionType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsAutomationActionLogicApp is the BasicAutomationAction implementation for AutomationActionEventHub.
+func (aaeh AutomationActionEventHub) AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool) {
+ return nil, false
+}
+
+// AsAutomationActionEventHub is the BasicAutomationAction implementation for AutomationActionEventHub.
+func (aaeh AutomationActionEventHub) AsAutomationActionEventHub() (*AutomationActionEventHub, bool) {
+ return &aaeh, true
+}
+
+// AsAutomationActionWorkspace is the BasicAutomationAction implementation for AutomationActionEventHub.
+func (aaeh AutomationActionEventHub) AsAutomationActionWorkspace() (*AutomationActionWorkspace, bool) {
+ return nil, false
+}
+
+// AsAutomationAction is the BasicAutomationAction implementation for AutomationActionEventHub.
+func (aaeh AutomationActionEventHub) AsAutomationAction() (*AutomationAction, bool) {
+ return nil, false
+}
+
+// AsBasicAutomationAction is the BasicAutomationAction implementation for AutomationActionEventHub.
+func (aaeh AutomationActionEventHub) AsBasicAutomationAction() (BasicAutomationAction, bool) {
+ return &aaeh, true
+}
+
+// AutomationActionLogicApp the logic app action that should be triggered. To learn more about Security
+// Center's Workflow Automation capabilities, visit https://aka.ms/ASCWorkflowAutomationLearnMore
+type AutomationActionLogicApp struct {
+ // LogicAppResourceID - The triggered Logic App Azure Resource ID. This can also reside on other subscriptions, given that you have permissions to trigger the Logic App
+ LogicAppResourceID *string `json:"logicAppResourceId,omitempty"`
+ // URI - The Logic App trigger URI endpoint (it will not be included in any response).
+ URI *string `json:"uri,omitempty"`
+ // ActionType - Possible values include: 'ActionTypeAutomationAction', 'ActionTypeLogicApp', 'ActionTypeEventHub', 'ActionTypeWorkspace'
+ ActionType ActionType `json:"actionType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AutomationActionLogicApp.
+func (aala AutomationActionLogicApp) MarshalJSON() ([]byte, error) {
+ aala.ActionType = ActionTypeLogicApp
+ objectMap := make(map[string]interface{})
+ if aala.LogicAppResourceID != nil {
+ objectMap["logicAppResourceId"] = aala.LogicAppResourceID
+ }
+ if aala.URI != nil {
+ objectMap["uri"] = aala.URI
+ }
+ if aala.ActionType != "" {
+ objectMap["actionType"] = aala.ActionType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsAutomationActionLogicApp is the BasicAutomationAction implementation for AutomationActionLogicApp.
+func (aala AutomationActionLogicApp) AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool) {
+ return &aala, true
+}
+
+// AsAutomationActionEventHub is the BasicAutomationAction implementation for AutomationActionLogicApp.
+func (aala AutomationActionLogicApp) AsAutomationActionEventHub() (*AutomationActionEventHub, bool) {
+ return nil, false
+}
+
+// AsAutomationActionWorkspace is the BasicAutomationAction implementation for AutomationActionLogicApp.
+func (aala AutomationActionLogicApp) AsAutomationActionWorkspace() (*AutomationActionWorkspace, bool) {
+ return nil, false
+}
+
+// AsAutomationAction is the BasicAutomationAction implementation for AutomationActionLogicApp.
+func (aala AutomationActionLogicApp) AsAutomationAction() (*AutomationAction, bool) {
+ return nil, false
+}
+
+// AsBasicAutomationAction is the BasicAutomationAction implementation for AutomationActionLogicApp.
+func (aala AutomationActionLogicApp) AsBasicAutomationAction() (BasicAutomationAction, bool) {
+ return &aala, true
+}
+
+// AutomationActionWorkspace the Log Analytics Workspace to which event data will be exported. Security alerts
+// data will reside in the 'SecurityAlert' table and the assessments data will reside in the
+// 'SecurityRecommendation' table (under the 'Security'/'SecurityCenterFree' solutions). Note that in order to
+// view the data in the workspace, the Security Center Log Analytics free/standard solution needs to be enabled
+// on that workspace. To learn more about Security Center continuous export capabilities, visit
+// https://aka.ms/ASCExportLearnMore
+type AutomationActionWorkspace struct {
+ // WorkspaceResourceID - The fully qualified Log Analytics Workspace Azure Resource ID.
+ WorkspaceResourceID *string `json:"workspaceResourceId,omitempty"`
+ // ActionType - Possible values include: 'ActionTypeAutomationAction', 'ActionTypeLogicApp', 'ActionTypeEventHub', 'ActionTypeWorkspace'
+ ActionType ActionType `json:"actionType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AutomationActionWorkspace.
+func (aaw AutomationActionWorkspace) MarshalJSON() ([]byte, error) {
+ aaw.ActionType = ActionTypeWorkspace
+ objectMap := make(map[string]interface{})
+ if aaw.WorkspaceResourceID != nil {
+ objectMap["workspaceResourceId"] = aaw.WorkspaceResourceID
+ }
+ if aaw.ActionType != "" {
+ objectMap["actionType"] = aaw.ActionType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsAutomationActionLogicApp is the BasicAutomationAction implementation for AutomationActionWorkspace.
+func (aaw AutomationActionWorkspace) AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool) {
+ return nil, false
+}
+
+// AsAutomationActionEventHub is the BasicAutomationAction implementation for AutomationActionWorkspace.
+func (aaw AutomationActionWorkspace) AsAutomationActionEventHub() (*AutomationActionEventHub, bool) {
+ return nil, false
+}
+
+// AsAutomationActionWorkspace is the BasicAutomationAction implementation for AutomationActionWorkspace.
+func (aaw AutomationActionWorkspace) AsAutomationActionWorkspace() (*AutomationActionWorkspace, bool) {
+ return &aaw, true
+}
+
+// AsAutomationAction is the BasicAutomationAction implementation for AutomationActionWorkspace.
+func (aaw AutomationActionWorkspace) AsAutomationAction() (*AutomationAction, bool) {
+ return nil, false
+}
+
+// AsBasicAutomationAction is the BasicAutomationAction implementation for AutomationActionWorkspace.
+func (aaw AutomationActionWorkspace) AsBasicAutomationAction() (BasicAutomationAction, bool) {
+ return &aaw, true
+}
+
+// AutomationList list of security automations response.
+type AutomationList struct {
+ autorest.Response `json:"-"`
+ // Value - The list of security automations under the given scope.
+ Value *[]Automation `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AutomationList.
+func (al AutomationList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if al.Value != nil {
+ objectMap["value"] = al.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// AutomationListIterator provides access to a complete listing of Automation values.
+type AutomationListIterator struct {
+ i int
+ page AutomationListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *AutomationListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AutomationListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *AutomationListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter AutomationListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter AutomationListIterator) Response() AutomationList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter AutomationListIterator) Value() Automation {
+ if !iter.page.NotDone() {
+ return Automation{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the AutomationListIterator type.
+func NewAutomationListIterator(page AutomationListPage) AutomationListIterator {
+ return AutomationListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (al AutomationList) IsEmpty() bool {
+ return al.Value == nil || len(*al.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (al AutomationList) hasNextLink() bool {
+ return al.NextLink != nil && len(*al.NextLink) != 0
+}
+
+// automationListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (al AutomationList) automationListPreparer(ctx context.Context) (*http.Request, error) {
+ if !al.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(al.NextLink)))
+}
+
+// AutomationListPage contains a page of Automation values.
+type AutomationListPage struct {
+ fn func(context.Context, AutomationList) (AutomationList, error)
+ al AutomationList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *AutomationListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AutomationListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.al)
+ if err != nil {
+ return err
+ }
+ page.al = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *AutomationListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page AutomationListPage) NotDone() bool {
+ return !page.al.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page AutomationListPage) Response() AutomationList {
+ return page.al
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page AutomationListPage) Values() []Automation {
+ if page.al.IsEmpty() {
+ return nil
+ }
+ return *page.al.Value
+}
+
+// Creates a new instance of the AutomationListPage type.
+func NewAutomationListPage(getNextPage func(context.Context, AutomationList) (AutomationList, error)) AutomationListPage {
+ return AutomationListPage{fn: getNextPage}
+}
+
+// AutomationProperties a set of properties that defines the behavior of the automation configuration. To learn
+// more about the supported security events data models schemas - please visit
+// https://aka.ms/ASCAutomationSchemas.
+type AutomationProperties struct {
+ // Description - The security automation description.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Indicates whether the security automation is enabled.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // Scopes - A collection of scopes on which the security automations logic is applied. Supported scopes are the subscription itself or a resource group under that subscription. The automation will only apply on defined scopes.
+ Scopes *[]AutomationScope `json:"scopes,omitempty"`
+ // Sources - A collection of the source event types which evaluate the security automation set of rules.
+ Sources *[]AutomationSource `json:"sources,omitempty"`
+ // Actions - A collection of the actions which are triggered if all the configured rules evaluations, within at least one rule set, are true.
+ Actions *[]BasicAutomationAction `json:"actions,omitempty"`
+}
+
+// UnmarshalJSON is the custom unmarshaler for AutomationProperties struct.
+func (ap *AutomationProperties) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "description":
+ if v != nil {
+ var description string
+ err = json.Unmarshal(*v, &description)
+ if err != nil {
+ return err
+ }
+ ap.Description = &description
+ }
+ case "isEnabled":
+ if v != nil {
+ var isEnabled bool
+ err = json.Unmarshal(*v, &isEnabled)
+ if err != nil {
+ return err
+ }
+ ap.IsEnabled = &isEnabled
+ }
+ case "scopes":
+ if v != nil {
+ var scopes []AutomationScope
+ err = json.Unmarshal(*v, &scopes)
+ if err != nil {
+ return err
+ }
+ ap.Scopes = &scopes
+ }
+ case "sources":
+ if v != nil {
+ var sources []AutomationSource
+ err = json.Unmarshal(*v, &sources)
+ if err != nil {
+ return err
+ }
+ ap.Sources = &sources
+ }
+ case "actions":
+ if v != nil {
+ actions, err := unmarshalBasicAutomationActionArray(*v)
+ if err != nil {
+ return err
+ }
+ ap.Actions = &actions
+ }
+ }
+ }
+
+ return nil
+}
+
+// AutomationRuleSet a rule set which evaluates all its rules upon an event interception. Only when all the
+// included rules in the rule set will be evaluated as 'true', will the event trigger the defined actions.
+type AutomationRuleSet struct {
+ Rules *[]AutomationTriggeringRule `json:"rules,omitempty"`
+}
+
+// AutomationScope a single automation scope.
+type AutomationScope struct {
+ // Description - The resources scope description.
+ Description *string `json:"description,omitempty"`
+ // ScopePath - The resources scope path. Can be the subscription on which the automation is defined on or a resource group under that subscription (fully qualified Azure resource IDs).
+ ScopePath *string `json:"scopePath,omitempty"`
+}
+
+// AutomationSource the source event types which evaluate the security automation set of rules. For example -
+// security alerts and security assessments. To learn more about the supported security events data models
+// schemas - please visit https://aka.ms/ASCAutomationSchemas.
+type AutomationSource struct {
+ // EventSource - A valid event source type. Possible values include: 'Assessments', 'Alerts'
+ EventSource EventSource `json:"eventSource,omitempty"`
+ // RuleSets - A set of rules which evaluate upon event interception. A logical disjunction is applied between defined rule sets (logical 'or').
+ RuleSets *[]AutomationRuleSet `json:"ruleSets,omitempty"`
+}
+
+// AutomationTriggeringRule a rule which is evaluated upon event interception. The rule is configured by
+// comparing a specific value from the event model to an expected value. This comparison is done by using one
+// of the supported operators set.
+type AutomationTriggeringRule struct {
+ // PropertyJPath - The JPath of the entity model property that should be checked.
+ PropertyJPath *string `json:"propertyJPath,omitempty"`
+ // PropertyType - The data type of the compared operands (string, integer, floating point number or a boolean [true/false]]. Possible values include: 'String', 'Integer', 'Number', 'Boolean'
+ PropertyType PropertyType `json:"propertyType,omitempty"`
+ // ExpectedValue - The expected value.
+ ExpectedValue *string `json:"expectedValue,omitempty"`
+ // Operator - A valid comparer operator to use. A case-insensitive comparison will be applied for String PropertyType. Possible values include: 'Equals', 'GreaterThan', 'GreaterThanOrEqualTo', 'LesserThan', 'LesserThanOrEqualTo', 'NotEquals', 'Contains', 'StartsWith', 'EndsWith'
+ Operator Operator `json:"operator,omitempty"`
+}
+
+// AutomationValidationStatus the security automation model state property bag.
+type AutomationValidationStatus struct {
+ autorest.Response `json:"-"`
+ // IsValid - Indicates whether the model is valid or not.
+ IsValid *bool `json:"isValid,omitempty"`
+ // Message - The validation message.
+ Message *string `json:"message,omitempty"`
+}
+
+// AutoProvisioningSetting auto provisioning setting
+type AutoProvisioningSetting struct {
+ autorest.Response `json:"-"`
+ // AutoProvisioningSettingProperties - Auto provisioning setting data
+ *AutoProvisioningSettingProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AutoProvisioningSetting.
+func (aps AutoProvisioningSetting) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if aps.AutoProvisioningSettingProperties != nil {
+ objectMap["properties"] = aps.AutoProvisioningSettingProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for AutoProvisioningSetting struct.
+func (aps *AutoProvisioningSetting) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var autoProvisioningSettingProperties AutoProvisioningSettingProperties
+ err = json.Unmarshal(*v, &autoProvisioningSettingProperties)
+ if err != nil {
+ return err
+ }
+ aps.AutoProvisioningSettingProperties = &autoProvisioningSettingProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ aps.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ aps.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ aps.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// AutoProvisioningSettingList list of all the auto provisioning settings response
+type AutoProvisioningSettingList struct {
+ autorest.Response `json:"-"`
+ // Value - List of all the auto provisioning settings
+ Value *[]AutoProvisioningSetting `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AutoProvisioningSettingList.
+func (apsl AutoProvisioningSettingList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if apsl.Value != nil {
+ objectMap["value"] = apsl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// AutoProvisioningSettingListIterator provides access to a complete listing of AutoProvisioningSetting values.
+type AutoProvisioningSettingListIterator struct {
+ i int
+ page AutoProvisioningSettingListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *AutoProvisioningSettingListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AutoProvisioningSettingListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *AutoProvisioningSettingListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter AutoProvisioningSettingListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter AutoProvisioningSettingListIterator) Response() AutoProvisioningSettingList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter AutoProvisioningSettingListIterator) Value() AutoProvisioningSetting {
+ if !iter.page.NotDone() {
+ return AutoProvisioningSetting{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the AutoProvisioningSettingListIterator type.
+func NewAutoProvisioningSettingListIterator(page AutoProvisioningSettingListPage) AutoProvisioningSettingListIterator {
+ return AutoProvisioningSettingListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (apsl AutoProvisioningSettingList) IsEmpty() bool {
+ return apsl.Value == nil || len(*apsl.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (apsl AutoProvisioningSettingList) hasNextLink() bool {
+ return apsl.NextLink != nil && len(*apsl.NextLink) != 0
+}
+
+// autoProvisioningSettingListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (apsl AutoProvisioningSettingList) autoProvisioningSettingListPreparer(ctx context.Context) (*http.Request, error) {
+ if !apsl.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(apsl.NextLink)))
+}
+
+// AutoProvisioningSettingListPage contains a page of AutoProvisioningSetting values.
+type AutoProvisioningSettingListPage struct {
+ fn func(context.Context, AutoProvisioningSettingList) (AutoProvisioningSettingList, error)
+ apsl AutoProvisioningSettingList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *AutoProvisioningSettingListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/AutoProvisioningSettingListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.apsl)
+ if err != nil {
+ return err
+ }
+ page.apsl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *AutoProvisioningSettingListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page AutoProvisioningSettingListPage) NotDone() bool {
+ return !page.apsl.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page AutoProvisioningSettingListPage) Response() AutoProvisioningSettingList {
+ return page.apsl
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page AutoProvisioningSettingListPage) Values() []AutoProvisioningSetting {
+ if page.apsl.IsEmpty() {
+ return nil
+ }
+ return *page.apsl.Value
+}
+
+// Creates a new instance of the AutoProvisioningSettingListPage type.
+func NewAutoProvisioningSettingListPage(getNextPage func(context.Context, AutoProvisioningSettingList) (AutoProvisioningSettingList, error)) AutoProvisioningSettingListPage {
+ return AutoProvisioningSettingListPage{fn: getNextPage}
+}
+
+// AutoProvisioningSettingProperties describes properties of an auto provisioning setting
+type AutoProvisioningSettingProperties struct {
+ // AutoProvision - Describes what kind of security agent provisioning action to take. Possible values include: 'AutoProvisionOn', 'AutoProvisionOff'
+ AutoProvision AutoProvision `json:"autoProvision,omitempty"`
+}
+
+// AwAssumeRoleAuthenticationDetailsProperties AWS cloud account connector based assume role, the role enables
+// delegating access to your AWS resources. The role is composed of role arn and external id, for more details,
+// refer to Creating a
+// Role to Delegate Permissions to an IAM User (write only)
+type AwAssumeRoleAuthenticationDetailsProperties struct {
+ // AccountID - READ-ONLY; The ID of the cloud account
+ AccountID *string `json:"accountId,omitempty"`
+ // AwsAssumeRoleArn - Assumed role ID is an identifier that you can use to create temporary security credentials.
+ AwsAssumeRoleArn *string `json:"awsAssumeRoleArn,omitempty"`
+ // AwsExternalID - A unique identifier that is required when you assume a role in another account.
+ AwsExternalID *string `json:"awsExternalId,omitempty"`
+ // AuthenticationProvisioningState - READ-ONLY; State of the multi-cloud connector. Possible values include: 'Valid', 'Invalid', 'Expired', 'IncorrectPolicy'
+ AuthenticationProvisioningState AuthenticationProvisioningState `json:"authenticationProvisioningState,omitempty"`
+ // GrantedPermissions - READ-ONLY; The permissions detected in the cloud account.
+ GrantedPermissions *[]PermissionProperty `json:"grantedPermissions,omitempty"`
+ // AuthenticationType - Possible values include: 'AuthenticationTypeAuthenticationDetailsProperties', 'AuthenticationTypeAwsCreds', 'AuthenticationTypeAwsAssumeRole', 'AuthenticationTypeGcpCredentials'
+ AuthenticationType AuthenticationType `json:"authenticationType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AwAssumeRoleAuthenticationDetailsProperties.
+func (aaradp AwAssumeRoleAuthenticationDetailsProperties) MarshalJSON() ([]byte, error) {
+ aaradp.AuthenticationType = AuthenticationTypeAwsAssumeRole
+ objectMap := make(map[string]interface{})
+ if aaradp.AwsAssumeRoleArn != nil {
+ objectMap["awsAssumeRoleArn"] = aaradp.AwsAssumeRoleArn
+ }
+ if aaradp.AwsExternalID != nil {
+ objectMap["awsExternalId"] = aaradp.AwsExternalID
+ }
+ if aaradp.AuthenticationType != "" {
+ objectMap["authenticationType"] = aaradp.AuthenticationType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsAwsCredsAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AwAssumeRoleAuthenticationDetailsProperties.
+func (aaradp AwAssumeRoleAuthenticationDetailsProperties) AsAwsCredsAuthenticationDetailsProperties() (*AwsCredsAuthenticationDetailsProperties, bool) {
+ return nil, false
+}
+
+// AsAwAssumeRoleAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AwAssumeRoleAuthenticationDetailsProperties.
+func (aaradp AwAssumeRoleAuthenticationDetailsProperties) AsAwAssumeRoleAuthenticationDetailsProperties() (*AwAssumeRoleAuthenticationDetailsProperties, bool) {
+ return &aaradp, true
+}
+
+// AsGcpCredentialsDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AwAssumeRoleAuthenticationDetailsProperties.
+func (aaradp AwAssumeRoleAuthenticationDetailsProperties) AsGcpCredentialsDetailsProperties() (*GcpCredentialsDetailsProperties, bool) {
+ return nil, false
+}
+
+// AsAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AwAssumeRoleAuthenticationDetailsProperties.
+func (aaradp AwAssumeRoleAuthenticationDetailsProperties) AsAuthenticationDetailsProperties() (*AuthenticationDetailsProperties, bool) {
+ return nil, false
+}
+
+// AsBasicAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AwAssumeRoleAuthenticationDetailsProperties.
+func (aaradp AwAssumeRoleAuthenticationDetailsProperties) AsBasicAuthenticationDetailsProperties() (BasicAuthenticationDetailsProperties, bool) {
+ return &aaradp, true
+}
+
+// AwsCredsAuthenticationDetailsProperties AWS cloud account connector based credentials, the credentials is
+// composed of access key id and secret key, for more details, refer to Creating an IAM User in Your
+// AWS Account (write only)
+type AwsCredsAuthenticationDetailsProperties struct {
+ // AccountID - READ-ONLY; The ID of the cloud account
+ AccountID *string `json:"accountId,omitempty"`
+ // AwsAccessKeyID - Public key element of the AWS credential object (write only)
+ AwsAccessKeyID *string `json:"awsAccessKeyId,omitempty"`
+ // AwsSecretAccessKey - Secret key element of the AWS credential object (write only)
+ AwsSecretAccessKey *string `json:"awsSecretAccessKey,omitempty"`
+ // AuthenticationProvisioningState - READ-ONLY; State of the multi-cloud connector. Possible values include: 'Valid', 'Invalid', 'Expired', 'IncorrectPolicy'
+ AuthenticationProvisioningState AuthenticationProvisioningState `json:"authenticationProvisioningState,omitempty"`
+ // GrantedPermissions - READ-ONLY; The permissions detected in the cloud account.
+ GrantedPermissions *[]PermissionProperty `json:"grantedPermissions,omitempty"`
+ // AuthenticationType - Possible values include: 'AuthenticationTypeAuthenticationDetailsProperties', 'AuthenticationTypeAwsCreds', 'AuthenticationTypeAwsAssumeRole', 'AuthenticationTypeGcpCredentials'
+ AuthenticationType AuthenticationType `json:"authenticationType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AwsCredsAuthenticationDetailsProperties.
+func (acadp AwsCredsAuthenticationDetailsProperties) MarshalJSON() ([]byte, error) {
+ acadp.AuthenticationType = AuthenticationTypeAwsCreds
+ objectMap := make(map[string]interface{})
+ if acadp.AwsAccessKeyID != nil {
+ objectMap["awsAccessKeyId"] = acadp.AwsAccessKeyID
+ }
+ if acadp.AwsSecretAccessKey != nil {
+ objectMap["awsSecretAccessKey"] = acadp.AwsSecretAccessKey
+ }
+ if acadp.AuthenticationType != "" {
+ objectMap["authenticationType"] = acadp.AuthenticationType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsAwsCredsAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AwsCredsAuthenticationDetailsProperties.
+func (acadp AwsCredsAuthenticationDetailsProperties) AsAwsCredsAuthenticationDetailsProperties() (*AwsCredsAuthenticationDetailsProperties, bool) {
+ return &acadp, true
+}
+
+// AsAwAssumeRoleAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AwsCredsAuthenticationDetailsProperties.
+func (acadp AwsCredsAuthenticationDetailsProperties) AsAwAssumeRoleAuthenticationDetailsProperties() (*AwAssumeRoleAuthenticationDetailsProperties, bool) {
+ return nil, false
+}
+
+// AsGcpCredentialsDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AwsCredsAuthenticationDetailsProperties.
+func (acadp AwsCredsAuthenticationDetailsProperties) AsGcpCredentialsDetailsProperties() (*GcpCredentialsDetailsProperties, bool) {
+ return nil, false
+}
+
+// AsAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AwsCredsAuthenticationDetailsProperties.
+func (acadp AwsCredsAuthenticationDetailsProperties) AsAuthenticationDetailsProperties() (*AuthenticationDetailsProperties, bool) {
+ return nil, false
+}
+
+// AsBasicAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for AwsCredsAuthenticationDetailsProperties.
+func (acadp AwsCredsAuthenticationDetailsProperties) AsBasicAuthenticationDetailsProperties() (BasicAuthenticationDetailsProperties, bool) {
+ return &acadp, true
+}
+
+// AzureResourceDetails details of the Azure resource that was assessed
+type AzureResourceDetails struct {
+ // ID - READ-ONLY; Azure resource Id of the assessed resource
+ ID *string `json:"id,omitempty"`
+ // Source - Possible values include: 'SourceResourceDetails', 'SourceOnPremiseSQL', 'SourceOnPremise', 'SourceAzure'
+ Source Source `json:"source,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AzureResourceDetails.
+func (ard AzureResourceDetails) MarshalJSON() ([]byte, error) {
+ ard.Source = SourceAzure
+ objectMap := make(map[string]interface{})
+ if ard.Source != "" {
+ objectMap["source"] = ard.Source
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsOnPremiseSQLResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
+func (ard AzureResourceDetails) AsOnPremiseSQLResourceDetails() (*OnPremiseSQLResourceDetails, bool) {
+ return nil, false
+}
+
+// AsOnPremiseResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
+func (ard AzureResourceDetails) AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool) {
+ return nil, false
+}
+
+// AsBasicOnPremiseResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
+func (ard AzureResourceDetails) AsBasicOnPremiseResourceDetails() (BasicOnPremiseResourceDetails, bool) {
+ return nil, false
+}
+
+// AsAzureResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
+func (ard AzureResourceDetails) AsAzureResourceDetails() (*AzureResourceDetails, bool) {
+ return &ard, true
+}
+
+// AsResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
+func (ard AzureResourceDetails) AsResourceDetails() (*ResourceDetails, bool) {
+ return nil, false
+}
+
+// AsBasicResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
+func (ard AzureResourceDetails) AsBasicResourceDetails() (BasicResourceDetails, bool) {
+ return &ard, true
+}
+
+// AzureResourceLink describes an Azure resource with kind
+type AzureResourceLink struct {
+ // ID - READ-ONLY; Azure resource Id
+ ID *string `json:"id,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AzureResourceLink.
+func (arl AzureResourceLink) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// CefExternalSecuritySolution represents a security solution which sends CEF logs to an OMS workspace
+type CefExternalSecuritySolution struct {
+ Properties *CefSolutionProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ // Kind - Possible values include: 'KindExternalSecuritySolution', 'KindCEF', 'KindATA', 'KindAAD'
+ Kind KindEnum1 `json:"kind,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for CefExternalSecuritySolution.
+func (cess CefExternalSecuritySolution) MarshalJSON() ([]byte, error) {
+ cess.Kind = KindCEF
+ objectMap := make(map[string]interface{})
+ if cess.Properties != nil {
+ objectMap["properties"] = cess.Properties
+ }
+ if cess.Kind != "" {
+ objectMap["kind"] = cess.Kind
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsCefExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
+func (cess CefExternalSecuritySolution) AsCefExternalSecuritySolution() (*CefExternalSecuritySolution, bool) {
+ return &cess, true
+}
+
+// AsAtaExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
+func (cess CefExternalSecuritySolution) AsAtaExternalSecuritySolution() (*AtaExternalSecuritySolution, bool) {
+ return nil, false
+}
+
+// AsAadExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
+func (cess CefExternalSecuritySolution) AsAadExternalSecuritySolution() (*AadExternalSecuritySolution, bool) {
+ return nil, false
+}
+
+// AsExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
+func (cess CefExternalSecuritySolution) AsExternalSecuritySolution() (*ExternalSecuritySolution, bool) {
+ return nil, false
+}
+
+// AsBasicExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
+func (cess CefExternalSecuritySolution) AsBasicExternalSecuritySolution() (BasicExternalSecuritySolution, bool) {
+ return &cess, true
+}
+
+// CefSolutionProperties ...
+type CefSolutionProperties struct {
+ Hostname *string `json:"hostname,omitempty"`
+ Agent *string `json:"agent,omitempty"`
+ LastEventReceived *string `json:"lastEventReceived,omitempty"`
+ // AdditionalProperties - Unmatched properties from the message are deserialized this collection
+ AdditionalProperties map[string]interface{} `json:""`
+ DeviceVendor *string `json:"deviceVendor,omitempty"`
+ DeviceType *string `json:"deviceType,omitempty"`
+ Workspace *ConnectedWorkspace `json:"workspace,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for CefSolutionProperties.
+func (csp CefSolutionProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if csp.Hostname != nil {
+ objectMap["hostname"] = csp.Hostname
+ }
+ if csp.Agent != nil {
+ objectMap["agent"] = csp.Agent
+ }
+ if csp.LastEventReceived != nil {
+ objectMap["lastEventReceived"] = csp.LastEventReceived
+ }
+ if csp.DeviceVendor != nil {
+ objectMap["deviceVendor"] = csp.DeviceVendor
+ }
+ if csp.DeviceType != nil {
+ objectMap["deviceType"] = csp.DeviceType
+ }
+ if csp.Workspace != nil {
+ objectMap["workspace"] = csp.Workspace
+ }
+ for k, v := range csp.AdditionalProperties {
+ objectMap[k] = v
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for CefSolutionProperties struct.
+func (csp *CefSolutionProperties) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "hostname":
+ if v != nil {
+ var hostname string
+ err = json.Unmarshal(*v, &hostname)
+ if err != nil {
+ return err
+ }
+ csp.Hostname = &hostname
+ }
+ case "agent":
+ if v != nil {
+ var agent string
+ err = json.Unmarshal(*v, &agent)
+ if err != nil {
+ return err
+ }
+ csp.Agent = &agent
+ }
+ case "lastEventReceived":
+ if v != nil {
+ var lastEventReceived string
+ err = json.Unmarshal(*v, &lastEventReceived)
+ if err != nil {
+ return err
+ }
+ csp.LastEventReceived = &lastEventReceived
+ }
+ default:
+ if v != nil {
+ var additionalProperties interface{}
+ err = json.Unmarshal(*v, &additionalProperties)
+ if err != nil {
+ return err
+ }
+ if csp.AdditionalProperties == nil {
+ csp.AdditionalProperties = make(map[string]interface{})
+ }
+ csp.AdditionalProperties[k] = additionalProperties
+ }
+ case "deviceVendor":
+ if v != nil {
+ var deviceVendor string
+ err = json.Unmarshal(*v, &deviceVendor)
+ if err != nil {
+ return err
+ }
+ csp.DeviceVendor = &deviceVendor
+ }
+ case "deviceType":
+ if v != nil {
+ var deviceType string
+ err = json.Unmarshal(*v, &deviceType)
+ if err != nil {
+ return err
+ }
+ csp.DeviceType = &deviceType
+ }
+ case "workspace":
+ if v != nil {
+ var workspace ConnectedWorkspace
+ err = json.Unmarshal(*v, &workspace)
+ if err != nil {
+ return err
+ }
+ csp.Workspace = &workspace
+ }
+ }
+ }
+
+ return nil
+}
+
+// CloudError error response structure.
+type CloudError struct {
+ // CloudErrorBody - Error data
+ *CloudErrorBody `json:"error,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for CloudError.
+func (ce CloudError) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if ce.CloudErrorBody != nil {
+ objectMap["error"] = ce.CloudErrorBody
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for CloudError struct.
+func (ce *CloudError) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "error":
+ if v != nil {
+ var cloudErrorBody CloudErrorBody
+ err = json.Unmarshal(*v, &cloudErrorBody)
+ if err != nil {
+ return err
+ }
+ ce.CloudErrorBody = &cloudErrorBody
+ }
+ }
+ }
+
+ return nil
+}
+
+// CloudErrorBody error details.
+type CloudErrorBody struct {
+ // Code - READ-ONLY; An identifier for the error. Codes are invariant and are intended to be consumed programmatically.
+ Code *string `json:"code,omitempty"`
+ // Message - READ-ONLY; A message describing the error, intended to be suitable for display in a user interface.
+ Message *string `json:"message,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for CloudErrorBody.
+func (ceb CloudErrorBody) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// Compliance compliance of a scope
+type Compliance struct {
+ autorest.Response `json:"-"`
+ // ComplianceProperties - Compliance data
+ *ComplianceProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for Compliance.
+func (c Compliance) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if c.ComplianceProperties != nil {
+ objectMap["properties"] = c.ComplianceProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for Compliance struct.
+func (c *Compliance) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var complianceProperties ComplianceProperties
+ err = json.Unmarshal(*v, &complianceProperties)
+ if err != nil {
+ return err
+ }
+ c.ComplianceProperties = &complianceProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ c.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ c.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ c.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// ComplianceList list of Compliance objects response
+type ComplianceList struct {
+ autorest.Response `json:"-"`
+ // Value - List of Compliance objects
+ Value *[]Compliance `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ComplianceList.
+func (cl ComplianceList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if cl.Value != nil {
+ objectMap["value"] = cl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// ComplianceListIterator provides access to a complete listing of Compliance values.
+type ComplianceListIterator struct {
+ i int
+ page ComplianceListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *ComplianceListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ComplianceListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *ComplianceListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter ComplianceListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter ComplianceListIterator) Response() ComplianceList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter ComplianceListIterator) Value() Compliance {
+ if !iter.page.NotDone() {
+ return Compliance{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the ComplianceListIterator type.
+func NewComplianceListIterator(page ComplianceListPage) ComplianceListIterator {
+ return ComplianceListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (cl ComplianceList) IsEmpty() bool {
+ return cl.Value == nil || len(*cl.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (cl ComplianceList) hasNextLink() bool {
+ return cl.NextLink != nil && len(*cl.NextLink) != 0
+}
+
+// complianceListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (cl ComplianceList) complianceListPreparer(ctx context.Context) (*http.Request, error) {
+ if !cl.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(cl.NextLink)))
+}
+
+// ComplianceListPage contains a page of Compliance values.
+type ComplianceListPage struct {
+ fn func(context.Context, ComplianceList) (ComplianceList, error)
+ cl ComplianceList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *ComplianceListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ComplianceListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.cl)
+ if err != nil {
+ return err
+ }
+ page.cl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *ComplianceListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page ComplianceListPage) NotDone() bool {
+ return !page.cl.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page ComplianceListPage) Response() ComplianceList {
+ return page.cl
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page ComplianceListPage) Values() []Compliance {
+ if page.cl.IsEmpty() {
+ return nil
+ }
+ return *page.cl.Value
+}
+
+// Creates a new instance of the ComplianceListPage type.
+func NewComplianceListPage(getNextPage func(context.Context, ComplianceList) (ComplianceList, error)) ComplianceListPage {
+ return ComplianceListPage{fn: getNextPage}
+}
+
+// ComplianceProperties the Compliance score (percentage) of a Subscription is a sum of all Resources'
+// Compliances under the given Subscription. A Resource Compliance is defined as the compliant ('healthy')
+// Policy Definitions out of all Policy Definitions applicable to a given resource.
+type ComplianceProperties struct {
+ // AssessmentTimestampUtcDate - READ-ONLY; The timestamp when the Compliance calculation was conducted.
+ AssessmentTimestampUtcDate *date.Time `json:"assessmentTimestampUtcDate,omitempty"`
+ // ResourceCount - READ-ONLY; The resource count of the given subscription for which the Compliance calculation was conducted (needed for Management Group Compliance calculation).
+ ResourceCount *int32 `json:"resourceCount,omitempty"`
+ // AssessmentResult - READ-ONLY; An array of segment, which is the actually the compliance assessment.
+ AssessmentResult *[]ComplianceSegment `json:"assessmentResult,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ComplianceProperties.
+func (cp ComplianceProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// ComplianceResult a compliance result
+type ComplianceResult struct {
+ autorest.Response `json:"-"`
+ // ComplianceResultProperties - Compliance result data
+ *ComplianceResultProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ComplianceResult.
+func (cr ComplianceResult) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if cr.ComplianceResultProperties != nil {
+ objectMap["properties"] = cr.ComplianceResultProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for ComplianceResult struct.
+func (cr *ComplianceResult) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var complianceResultProperties ComplianceResultProperties
+ err = json.Unmarshal(*v, &complianceResultProperties)
+ if err != nil {
+ return err
+ }
+ cr.ComplianceResultProperties = &complianceResultProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ cr.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ cr.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ cr.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// ComplianceResultList list of compliance results response
+type ComplianceResultList struct {
+ autorest.Response `json:"-"`
+ // Value - List of compliance results
+ Value *[]ComplianceResult `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ComplianceResultList.
+func (crl ComplianceResultList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if crl.Value != nil {
+ objectMap["value"] = crl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// ComplianceResultListIterator provides access to a complete listing of ComplianceResult values.
+type ComplianceResultListIterator struct {
+ i int
+ page ComplianceResultListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *ComplianceResultListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ComplianceResultListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *ComplianceResultListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter ComplianceResultListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter ComplianceResultListIterator) Response() ComplianceResultList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter ComplianceResultListIterator) Value() ComplianceResult {
+ if !iter.page.NotDone() {
+ return ComplianceResult{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the ComplianceResultListIterator type.
+func NewComplianceResultListIterator(page ComplianceResultListPage) ComplianceResultListIterator {
+ return ComplianceResultListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (crl ComplianceResultList) IsEmpty() bool {
+ return crl.Value == nil || len(*crl.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (crl ComplianceResultList) hasNextLink() bool {
+ return crl.NextLink != nil && len(*crl.NextLink) != 0
+}
+
+// complianceResultListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (crl ComplianceResultList) complianceResultListPreparer(ctx context.Context) (*http.Request, error) {
+ if !crl.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(crl.NextLink)))
+}
+
+// ComplianceResultListPage contains a page of ComplianceResult values.
+type ComplianceResultListPage struct {
+ fn func(context.Context, ComplianceResultList) (ComplianceResultList, error)
+ crl ComplianceResultList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *ComplianceResultListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ComplianceResultListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.crl)
+ if err != nil {
+ return err
+ }
+ page.crl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *ComplianceResultListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page ComplianceResultListPage) NotDone() bool {
+ return !page.crl.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page ComplianceResultListPage) Response() ComplianceResultList {
+ return page.crl
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page ComplianceResultListPage) Values() []ComplianceResult {
+ if page.crl.IsEmpty() {
+ return nil
+ }
+ return *page.crl.Value
+}
+
+// Creates a new instance of the ComplianceResultListPage type.
+func NewComplianceResultListPage(getNextPage func(context.Context, ComplianceResultList) (ComplianceResultList, error)) ComplianceResultListPage {
+ return ComplianceResultListPage{fn: getNextPage}
+}
+
+// ComplianceResultProperties compliance result data
+type ComplianceResultProperties struct {
+ // ResourceStatus - READ-ONLY; The status of the resource regarding a single assessment. Possible values include: 'ResourceStatusHealthy', 'ResourceStatusNotApplicable', 'ResourceStatusOffByPolicy', 'ResourceStatusNotHealthy'
+ ResourceStatus ResourceStatus `json:"resourceStatus,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ComplianceResultProperties.
+func (crp ComplianceResultProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// ComplianceSegment a segment of a compliance assessment.
+type ComplianceSegment struct {
+ // SegmentType - READ-ONLY; The segment type, e.g. compliant, non-compliance, insufficient coverage, N/A, etc.
+ SegmentType *string `json:"segmentType,omitempty"`
+ // Percentage - READ-ONLY; The size (%) of the segment.
+ Percentage *float64 `json:"percentage,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ComplianceSegment.
+func (cs ComplianceSegment) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// ConnectableResource describes the allowed inbound and outbound traffic of an Azure resource
+type ConnectableResource struct {
+ // ID - READ-ONLY; The Azure resource id
+ ID *string `json:"id,omitempty"`
+ // InboundConnectedResources - READ-ONLY; The list of Azure resources that the resource has inbound allowed connection from
+ InboundConnectedResources *[]ConnectedResource `json:"inboundConnectedResources,omitempty"`
+ // OutboundConnectedResources - READ-ONLY; The list of Azure resources that the resource has outbound allowed connection to
+ OutboundConnectedResources *[]ConnectedResource `json:"outboundConnectedResources,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ConnectableResource.
+func (cr ConnectableResource) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// ConnectedResource describes properties of a connected resource
+type ConnectedResource struct {
+ // ConnectedResourceID - READ-ONLY; The Azure resource id of the connected resource
+ ConnectedResourceID *string `json:"connectedResourceId,omitempty"`
+ // TCPPorts - READ-ONLY; The allowed tcp ports
+ TCPPorts *string `json:"tcpPorts,omitempty"`
+ // UDPPorts - READ-ONLY; The allowed udp ports
+ UDPPorts *string `json:"udpPorts,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ConnectedResource.
+func (cr ConnectedResource) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// ConnectedWorkspace ...
+type ConnectedWorkspace struct {
+ // ID - Azure resource ID of the connected OMS workspace
+ ID *string `json:"id,omitempty"`
+}
+
+// ConnectionToIPNotAllowed outbound connection to an ip that isn't allowed. Allow list consists of ipv4 or
+// ipv6 range in CIDR notation.
+type ConnectionToIPNotAllowed struct {
+ // AllowlistValues - The values to allow. The format of the values depends on the rule type.
+ AllowlistValues *[]string `json:"allowlistValues,omitempty"`
+ // ValueType - READ-ONLY; The value type of the items in the list. Possible values include: 'ValueTypeIPCidr', 'ValueTypeString'
+ ValueType ValueType `json:"valueType,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) MarshalJSON() ([]byte, error) {
+ ctina.RuleType = RuleTypeConnectionToIPNotAllowed
+ objectMap := make(map[string]interface{})
+ if ctina.AllowlistValues != nil {
+ objectMap["allowlistValues"] = ctina.AllowlistValues
+ }
+ if ctina.IsEnabled != nil {
+ objectMap["isEnabled"] = ctina.IsEnabled
+ }
+ if ctina.RuleType != "" {
+ objectMap["ruleType"] = ctina.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return &ctina, true
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return &ctina, true
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return &ctina, true
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for ConnectionToIPNotAllowed.
+func (ctina ConnectionToIPNotAllowed) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &ctina, true
+}
+
+// ConnectorSetting the connector setting
+type ConnectorSetting struct {
+ autorest.Response `json:"-"`
+ // ConnectorSettingProperties - Connector setting data
+ *ConnectorSettingProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ConnectorSetting.
+func (cs ConnectorSetting) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if cs.ConnectorSettingProperties != nil {
+ objectMap["properties"] = cs.ConnectorSettingProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for ConnectorSetting struct.
+func (cs *ConnectorSetting) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var connectorSettingProperties ConnectorSettingProperties
+ err = json.Unmarshal(*v, &connectorSettingProperties)
+ if err != nil {
+ return err
+ }
+ cs.ConnectorSettingProperties = &connectorSettingProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ cs.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ cs.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ cs.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// ConnectorSettingList for a subscription, list of all cloud account connectors and their settings
+type ConnectorSettingList struct {
+ autorest.Response `json:"-"`
+ // Value - List of all the cloud account connector settings
+ Value *[]ConnectorSetting `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ConnectorSettingList.
+func (csl ConnectorSettingList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if csl.Value != nil {
+ objectMap["value"] = csl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// ConnectorSettingListIterator provides access to a complete listing of ConnectorSetting values.
+type ConnectorSettingListIterator struct {
+ i int
+ page ConnectorSettingListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *ConnectorSettingListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ConnectorSettingListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *ConnectorSettingListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter ConnectorSettingListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter ConnectorSettingListIterator) Response() ConnectorSettingList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter ConnectorSettingListIterator) Value() ConnectorSetting {
+ if !iter.page.NotDone() {
+ return ConnectorSetting{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the ConnectorSettingListIterator type.
+func NewConnectorSettingListIterator(page ConnectorSettingListPage) ConnectorSettingListIterator {
+ return ConnectorSettingListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (csl ConnectorSettingList) IsEmpty() bool {
+ return csl.Value == nil || len(*csl.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (csl ConnectorSettingList) hasNextLink() bool {
+ return csl.NextLink != nil && len(*csl.NextLink) != 0
+}
+
+// connectorSettingListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (csl ConnectorSettingList) connectorSettingListPreparer(ctx context.Context) (*http.Request, error) {
+ if !csl.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(csl.NextLink)))
+}
+
+// ConnectorSettingListPage contains a page of ConnectorSetting values.
+type ConnectorSettingListPage struct {
+ fn func(context.Context, ConnectorSettingList) (ConnectorSettingList, error)
+ csl ConnectorSettingList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *ConnectorSettingListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ConnectorSettingListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.csl)
+ if err != nil {
+ return err
+ }
+ page.csl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *ConnectorSettingListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page ConnectorSettingListPage) NotDone() bool {
+ return !page.csl.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page ConnectorSettingListPage) Response() ConnectorSettingList {
+ return page.csl
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page ConnectorSettingListPage) Values() []ConnectorSetting {
+ if page.csl.IsEmpty() {
+ return nil
+ }
+ return *page.csl.Value
+}
+
+// Creates a new instance of the ConnectorSettingListPage type.
+func NewConnectorSettingListPage(getNextPage func(context.Context, ConnectorSettingList) (ConnectorSettingList, error)) ConnectorSettingListPage {
+ return ConnectorSettingListPage{fn: getNextPage}
+}
+
+// ConnectorSettingProperties describes properties of an connector setting
+type ConnectorSettingProperties struct {
+ // HybridComputeSettings - Settings for hybrid compute management, these settings are relevant only Arc autoProvision (Hybrid Compute).
+ HybridComputeSettings *HybridComputeSettingsProperties `json:"hybridComputeSettings,omitempty"`
+ // AuthenticationDetails - Settings for authentication management, these settings are relevant only for the cloud connector.
+ AuthenticationDetails BasicAuthenticationDetailsProperties `json:"authenticationDetails,omitempty"`
+}
+
+// UnmarshalJSON is the custom unmarshaler for ConnectorSettingProperties struct.
+func (csp *ConnectorSettingProperties) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "hybridComputeSettings":
+ if v != nil {
+ var hybridComputeSettings HybridComputeSettingsProperties
+ err = json.Unmarshal(*v, &hybridComputeSettings)
+ if err != nil {
+ return err
+ }
+ csp.HybridComputeSettings = &hybridComputeSettings
+ }
+ case "authenticationDetails":
+ if v != nil {
+ authenticationDetails, err := unmarshalBasicAuthenticationDetailsProperties(*v)
+ if err != nil {
+ return err
+ }
+ csp.AuthenticationDetails = authenticationDetails
+ }
+ }
+ }
+
+ return nil
+}
+
+// Contact contact details for security issues
+type Contact struct {
+ autorest.Response `json:"-"`
+ // ContactProperties - Security contact data
+ *ContactProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for Contact.
+func (c Contact) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if c.ContactProperties != nil {
+ objectMap["properties"] = c.ContactProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for Contact struct.
+func (c *Contact) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var contactProperties ContactProperties
+ err = json.Unmarshal(*v, &contactProperties)
+ if err != nil {
+ return err
+ }
+ c.ContactProperties = &contactProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ c.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ c.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ c.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// ContactList list of security contacts response
+type ContactList struct {
+ autorest.Response `json:"-"`
+ // Value - READ-ONLY; List of security contacts
+ Value *[]Contact `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ContactList.
+func (cl ContactList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// ContactListIterator provides access to a complete listing of Contact values.
+type ContactListIterator struct {
+ i int
+ page ContactListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *ContactListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ContactListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *ContactListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter ContactListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter ContactListIterator) Response() ContactList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter ContactListIterator) Value() Contact {
+ if !iter.page.NotDone() {
+ return Contact{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the ContactListIterator type.
+func NewContactListIterator(page ContactListPage) ContactListIterator {
+ return ContactListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (cl ContactList) IsEmpty() bool {
+ return cl.Value == nil || len(*cl.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (cl ContactList) hasNextLink() bool {
+ return cl.NextLink != nil && len(*cl.NextLink) != 0
+}
+
+// contactListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (cl ContactList) contactListPreparer(ctx context.Context) (*http.Request, error) {
+ if !cl.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(cl.NextLink)))
+}
+
+// ContactListPage contains a page of Contact values.
+type ContactListPage struct {
+ fn func(context.Context, ContactList) (ContactList, error)
+ cl ContactList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *ContactListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ContactListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.cl)
+ if err != nil {
+ return err
+ }
+ page.cl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *ContactListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page ContactListPage) NotDone() bool {
+ return !page.cl.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page ContactListPage) Response() ContactList {
+ return page.cl
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page ContactListPage) Values() []Contact {
+ if page.cl.IsEmpty() {
+ return nil
+ }
+ return *page.cl.Value
+}
+
+// Creates a new instance of the ContactListPage type.
+func NewContactListPage(getNextPage func(context.Context, ContactList) (ContactList, error)) ContactListPage {
+ return ContactListPage{fn: getNextPage}
+}
+
+// ContactProperties describes security contact properties
+type ContactProperties struct {
+ // Email - The email of this security contact
+ Email *string `json:"email,omitempty"`
+ // Phone - The phone number of this security contact
+ Phone *string `json:"phone,omitempty"`
+ // AlertNotifications - Whether to send security alerts notifications to the security contact. Possible values include: 'On', 'Off'
+ AlertNotifications AlertNotifications `json:"alertNotifications,omitempty"`
+ // AlertsToAdmins - Whether to send security alerts notifications to subscription admins. Possible values include: 'AlertsToAdminsOn', 'AlertsToAdminsOff'
+ AlertsToAdmins AlertsToAdmins `json:"alertsToAdmins,omitempty"`
+}
+
+// ContainerRegistryVulnerabilityProperties additional context fields for container registry Vulnerability
+// assessment
+type ContainerRegistryVulnerabilityProperties struct {
+ // Type - READ-ONLY; Vulnerability Type. e.g: Vulnerability, Potential Vulnerability, Information Gathered, Vulnerability
+ Type *string `json:"type,omitempty"`
+ // Cvss - READ-ONLY; Dictionary from cvss version to cvss details object
+ Cvss map[string]*CVSS `json:"cvss"`
+ // Patchable - READ-ONLY; Indicates whether a patch is available or not
+ Patchable *bool `json:"patchable,omitempty"`
+ // Cve - READ-ONLY; List of CVEs
+ Cve *[]CVE `json:"cve,omitempty"`
+ // PublishedTime - READ-ONLY; Published time
+ PublishedTime *date.Time `json:"publishedTime,omitempty"`
+ // VendorReferences - READ-ONLY
+ VendorReferences *[]VendorReference `json:"vendorReferences,omitempty"`
+ // RepositoryName - READ-ONLY; Name of the repository which the vulnerable image belongs to
+ RepositoryName *string `json:"repositoryName,omitempty"`
+ // ImageDigest - READ-ONLY; Digest of the vulnerable image
+ ImageDigest *string `json:"imageDigest,omitempty"`
+ // AssessedResourceType - Possible values include: 'AssessedResourceTypeAdditionalData', 'AssessedResourceTypeSQLServerVulnerability', 'AssessedResourceTypeContainerRegistryVulnerability', 'AssessedResourceTypeServerVulnerabilityAssessment'
+ AssessedResourceType AssessedResourceType `json:"assessedResourceType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ContainerRegistryVulnerabilityProperties.
+func (crvp ContainerRegistryVulnerabilityProperties) MarshalJSON() ([]byte, error) {
+ crvp.AssessedResourceType = AssessedResourceTypeContainerRegistryVulnerability
+ objectMap := make(map[string]interface{})
+ if crvp.AssessedResourceType != "" {
+ objectMap["assessedResourceType"] = crvp.AssessedResourceType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsSQLServerVulnerabilityProperties is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
+func (crvp ContainerRegistryVulnerabilityProperties) AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool) {
+ return nil, false
+}
+
+// AsContainerRegistryVulnerabilityProperties is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
+func (crvp ContainerRegistryVulnerabilityProperties) AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool) {
+ return &crvp, true
+}
+
+// AsServerVulnerabilityProperties is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
+func (crvp ContainerRegistryVulnerabilityProperties) AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool) {
+ return nil, false
+}
+
+// AsAdditionalData is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
+func (crvp ContainerRegistryVulnerabilityProperties) AsAdditionalData() (*AdditionalData, bool) {
+ return nil, false
+}
+
+// AsBasicAdditionalData is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
+func (crvp ContainerRegistryVulnerabilityProperties) AsBasicAdditionalData() (BasicAdditionalData, bool) {
+ return &crvp, true
+}
+
+// BasicCustomAlertRule a custom alert rule.
+type BasicCustomAlertRule interface {
+ AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool)
+ AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool)
+ AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool)
+ AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool)
+ AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool)
+ AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool)
+ AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool)
+ AsListCustomAlertRule() (*ListCustomAlertRule, bool)
+ AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool)
+ AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool)
+ AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool)
+ AsProcessNotAllowed() (*ProcessNotAllowed, bool)
+ AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool)
+ AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool)
+ AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool)
+ AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool)
+ AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool)
+ AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool)
+ AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool)
+ AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool)
+ AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool)
+ AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool)
+ AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool)
+ AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool)
+ AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool)
+ AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool)
+ AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool)
+ AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool)
+ AsCustomAlertRule() (*CustomAlertRule, bool)
+}
+
+// CustomAlertRule a custom alert rule.
+type CustomAlertRule struct {
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+func unmarshalBasicCustomAlertRule(body []byte) (BasicCustomAlertRule, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return nil, err
+ }
+
+ switch m["ruleType"] {
+ case string(RuleTypeThresholdCustomAlertRule):
+ var tcar ThresholdCustomAlertRule
+ err := json.Unmarshal(body, &tcar)
+ return tcar, err
+ case string(RuleTypeTimeWindowCustomAlertRule):
+ var twcar TimeWindowCustomAlertRule
+ err := json.Unmarshal(body, &twcar)
+ return twcar, err
+ case string(RuleTypeAllowlistCustomAlertRule):
+ var acar AllowlistCustomAlertRule
+ err := json.Unmarshal(body, &acar)
+ return acar, err
+ case string(RuleTypeDenylistCustomAlertRule):
+ var dcar DenylistCustomAlertRule
+ err := json.Unmarshal(body, &dcar)
+ return dcar, err
+ case string(RuleTypeListCustomAlertRule):
+ var lcar ListCustomAlertRule
+ err := json.Unmarshal(body, &lcar)
+ return lcar, err
+ case string(RuleTypeConnectionToIPNotAllowed):
+ var ctina ConnectionToIPNotAllowed
+ err := json.Unmarshal(body, &ctina)
+ return ctina, err
+ case string(RuleTypeLocalUserNotAllowed):
+ var luna LocalUserNotAllowed
+ err := json.Unmarshal(body, &luna)
+ return luna, err
+ case string(RuleTypeProcessNotAllowed):
+ var pna ProcessNotAllowed
+ err := json.Unmarshal(body, &pna)
+ return pna, err
+ case string(RuleTypeActiveConnectionsNotInAllowedRange):
+ var acniar ActiveConnectionsNotInAllowedRange
+ err := json.Unmarshal(body, &acniar)
+ return acniar, err
+ case string(RuleTypeAmqpC2DMessagesNotInAllowedRange):
+ var acmniar AmqpC2DMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &acmniar)
+ return acmniar, err
+ case string(RuleTypeMqttC2DMessagesNotInAllowedRange):
+ var mcmniar MqttC2DMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &mcmniar)
+ return mcmniar, err
+ case string(RuleTypeHTTPC2DMessagesNotInAllowedRange):
+ var hcmniar HTTPC2DMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &hcmniar)
+ return hcmniar, err
+ case string(RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange):
+ var acrmniar AmqpC2DRejectedMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &acrmniar)
+ return acrmniar, err
+ case string(RuleTypeMqttC2DRejectedMessagesNotInAllowedRange):
+ var mcrmniar MqttC2DRejectedMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &mcrmniar)
+ return mcrmniar, err
+ case string(RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange):
+ var hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &hcrmniar)
+ return hcrmniar, err
+ case string(RuleTypeAmqpD2CMessagesNotInAllowedRange):
+ var admniar AmqpD2CMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &admniar)
+ return admniar, err
+ case string(RuleTypeMqttD2CMessagesNotInAllowedRange):
+ var mdmniar MqttD2CMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &mdmniar)
+ return mdmniar, err
+ case string(RuleTypeHTTPD2CMessagesNotInAllowedRange):
+ var hdmniar HTTPD2CMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &hdmniar)
+ return hdmniar, err
+ case string(RuleTypeDirectMethodInvokesNotInAllowedRange):
+ var dminiar DirectMethodInvokesNotInAllowedRange
+ err := json.Unmarshal(body, &dminiar)
+ return dminiar, err
+ case string(RuleTypeFailedLocalLoginsNotInAllowedRange):
+ var fllniar FailedLocalLoginsNotInAllowedRange
+ err := json.Unmarshal(body, &fllniar)
+ return fllniar, err
+ case string(RuleTypeFileUploadsNotInAllowedRange):
+ var funiar FileUploadsNotInAllowedRange
+ err := json.Unmarshal(body, &funiar)
+ return funiar, err
+ case string(RuleTypeQueuePurgesNotInAllowedRange):
+ var qpniar QueuePurgesNotInAllowedRange
+ err := json.Unmarshal(body, &qpniar)
+ return qpniar, err
+ case string(RuleTypeTwinUpdatesNotInAllowedRange):
+ var tuniar TwinUpdatesNotInAllowedRange
+ err := json.Unmarshal(body, &tuniar)
+ return tuniar, err
+ case string(RuleTypeUnauthorizedOperationsNotInAllowedRange):
+ var uoniar UnauthorizedOperationsNotInAllowedRange
+ err := json.Unmarshal(body, &uoniar)
+ return uoniar, err
+ default:
+ var car CustomAlertRule
+ err := json.Unmarshal(body, &car)
+ return car, err
+ }
+}
+func unmarshalBasicCustomAlertRuleArray(body []byte) ([]BasicCustomAlertRule, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
+ if err != nil {
+ return nil, err
+ }
+
+ carArray := make([]BasicCustomAlertRule, len(rawMessages))
+
+ for index, rawMessage := range rawMessages {
+ car, err := unmarshalBasicCustomAlertRule(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ carArray[index] = car
+ }
+ return carArray, nil
+}
+
+// MarshalJSON is the custom marshaler for CustomAlertRule.
+func (car CustomAlertRule) MarshalJSON() ([]byte, error) {
+ car.RuleType = RuleTypeCustomAlertRule
+ objectMap := make(map[string]interface{})
+ if car.IsEnabled != nil {
+ objectMap["isEnabled"] = car.IsEnabled
+ }
+ if car.RuleType != "" {
+ objectMap["ruleType"] = car.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return &car, true
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for CustomAlertRule.
+func (car CustomAlertRule) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &car, true
+}
+
+// CVE CVE details
+type CVE struct {
+ // Title - READ-ONLY; CVE title
+ Title *string `json:"title,omitempty"`
+ // Link - READ-ONLY; Link url
+ Link *string `json:"link,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for CVE.
+func (c CVE) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// CVSS CVSS details
+type CVSS struct {
+ // Base - READ-ONLY; CVSS base
+ Base *float64 `json:"base,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for CVSS.
+func (c CVSS) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// DataExportSettingProperties the data export setting properties
+type DataExportSettingProperties struct {
+ // Enabled - Is the data export setting is enabled
+ Enabled *bool `json:"enabled,omitempty"`
+}
+
+// DataExportSettings represents a data export setting
+type DataExportSettings struct {
+ // DataExportSettingProperties - Data export setting data
+ *DataExportSettingProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Kind - Possible values include: 'KindSettingResource', 'KindSetting', 'KindDataExportSettings'
+ Kind KindEnum `json:"kind,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for DataExportSettings.
+func (desVar DataExportSettings) MarshalJSON() ([]byte, error) {
+ desVar.Kind = KindDataExportSettings
+ objectMap := make(map[string]interface{})
+ if desVar.DataExportSettingProperties != nil {
+ objectMap["properties"] = desVar.DataExportSettingProperties
+ }
+ if desVar.Kind != "" {
+ objectMap["kind"] = desVar.Kind
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsSetting is the BasicSettingResource implementation for DataExportSettings.
+func (desVar DataExportSettings) AsSetting() (*Setting, bool) {
+ return nil, false
+}
+
+// AsBasicSetting is the BasicSettingResource implementation for DataExportSettings.
+func (desVar DataExportSettings) AsBasicSetting() (BasicSetting, bool) {
+ return &desVar, true
+}
+
+// AsDataExportSettings is the BasicSettingResource implementation for DataExportSettings.
+func (desVar DataExportSettings) AsDataExportSettings() (*DataExportSettings, bool) {
+ return &desVar, true
+}
+
+// AsSettingResource is the BasicSettingResource implementation for DataExportSettings.
+func (desVar DataExportSettings) AsSettingResource() (*SettingResource, bool) {
+ return nil, false
+}
+
+// AsBasicSettingResource is the BasicSettingResource implementation for DataExportSettings.
+func (desVar DataExportSettings) AsBasicSettingResource() (BasicSettingResource, bool) {
+ return &desVar, true
+}
+
+// UnmarshalJSON is the custom unmarshaler for DataExportSettings struct.
+func (desVar *DataExportSettings) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var dataExportSettingProperties DataExportSettingProperties
+ err = json.Unmarshal(*v, &dataExportSettingProperties)
+ if err != nil {
+ return err
+ }
+ desVar.DataExportSettingProperties = &dataExportSettingProperties
+ }
+ case "kind":
+ if v != nil {
+ var kind KindEnum
+ err = json.Unmarshal(*v, &kind)
+ if err != nil {
+ return err
+ }
+ desVar.Kind = kind
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ desVar.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ desVar.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ desVar.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// DenylistCustomAlertRule a custom alert rule that checks if a value (depends on the custom alert type) is
+// denied.
+type DenylistCustomAlertRule struct {
+ // DenylistValues - The values to deny. The format of the values depends on the rule type.
+ DenylistValues *[]string `json:"denylistValues,omitempty"`
+ // ValueType - READ-ONLY; The value type of the items in the list. Possible values include: 'ValueTypeIPCidr', 'ValueTypeString'
+ ValueType ValueType `json:"valueType,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) MarshalJSON() ([]byte, error) {
+ dcar.RuleType = RuleTypeDenylistCustomAlertRule
+ objectMap := make(map[string]interface{})
+ if dcar.DenylistValues != nil {
+ objectMap["denylistValues"] = dcar.DenylistValues
+ }
+ if dcar.IsEnabled != nil {
+ objectMap["isEnabled"] = dcar.IsEnabled
+ }
+ if dcar.RuleType != "" {
+ objectMap["ruleType"] = dcar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return &dcar, true
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return &dcar, true
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for DenylistCustomAlertRule.
+func (dcar DenylistCustomAlertRule) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &dcar, true
+}
+
+// DeviceSecurityGroup the device security group resource
+type DeviceSecurityGroup struct {
+ autorest.Response `json:"-"`
+ // DeviceSecurityGroupProperties - Device Security group data
+ *DeviceSecurityGroupProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for DeviceSecurityGroup.
+func (dsg DeviceSecurityGroup) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if dsg.DeviceSecurityGroupProperties != nil {
+ objectMap["properties"] = dsg.DeviceSecurityGroupProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for DeviceSecurityGroup struct.
+func (dsg *DeviceSecurityGroup) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var deviceSecurityGroupProperties DeviceSecurityGroupProperties
+ err = json.Unmarshal(*v, &deviceSecurityGroupProperties)
+ if err != nil {
+ return err
+ }
+ dsg.DeviceSecurityGroupProperties = &deviceSecurityGroupProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ dsg.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ dsg.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ dsg.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// DeviceSecurityGroupList list of device security groups
+type DeviceSecurityGroupList struct {
+ autorest.Response `json:"-"`
+ // Value - List of device security group objects
+ Value *[]DeviceSecurityGroup `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for DeviceSecurityGroupList.
+func (dsgl DeviceSecurityGroupList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if dsgl.Value != nil {
+ objectMap["value"] = dsgl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// DeviceSecurityGroupListIterator provides access to a complete listing of DeviceSecurityGroup values.
+type DeviceSecurityGroupListIterator struct {
+ i int
+ page DeviceSecurityGroupListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *DeviceSecurityGroupListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/DeviceSecurityGroupListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *DeviceSecurityGroupListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter DeviceSecurityGroupListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter DeviceSecurityGroupListIterator) Response() DeviceSecurityGroupList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter DeviceSecurityGroupListIterator) Value() DeviceSecurityGroup {
+ if !iter.page.NotDone() {
+ return DeviceSecurityGroup{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the DeviceSecurityGroupListIterator type.
+func NewDeviceSecurityGroupListIterator(page DeviceSecurityGroupListPage) DeviceSecurityGroupListIterator {
+ return DeviceSecurityGroupListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (dsgl DeviceSecurityGroupList) IsEmpty() bool {
+ return dsgl.Value == nil || len(*dsgl.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (dsgl DeviceSecurityGroupList) hasNextLink() bool {
+ return dsgl.NextLink != nil && len(*dsgl.NextLink) != 0
+}
+
+// deviceSecurityGroupListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (dsgl DeviceSecurityGroupList) deviceSecurityGroupListPreparer(ctx context.Context) (*http.Request, error) {
+ if !dsgl.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(dsgl.NextLink)))
+}
+
+// DeviceSecurityGroupListPage contains a page of DeviceSecurityGroup values.
+type DeviceSecurityGroupListPage struct {
+ fn func(context.Context, DeviceSecurityGroupList) (DeviceSecurityGroupList, error)
+ dsgl DeviceSecurityGroupList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *DeviceSecurityGroupListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/DeviceSecurityGroupListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.dsgl)
+ if err != nil {
+ return err
+ }
+ page.dsgl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *DeviceSecurityGroupListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page DeviceSecurityGroupListPage) NotDone() bool {
+ return !page.dsgl.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page DeviceSecurityGroupListPage) Response() DeviceSecurityGroupList {
+ return page.dsgl
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page DeviceSecurityGroupListPage) Values() []DeviceSecurityGroup {
+ if page.dsgl.IsEmpty() {
+ return nil
+ }
+ return *page.dsgl.Value
+}
+
+// Creates a new instance of the DeviceSecurityGroupListPage type.
+func NewDeviceSecurityGroupListPage(getNextPage func(context.Context, DeviceSecurityGroupList) (DeviceSecurityGroupList, error)) DeviceSecurityGroupListPage {
+ return DeviceSecurityGroupListPage{fn: getNextPage}
+}
+
+// DeviceSecurityGroupProperties describes properties of a security group.
+type DeviceSecurityGroupProperties struct {
+ // ThresholdRules - The list of custom alert threshold rules.
+ ThresholdRules *[]BasicThresholdCustomAlertRule `json:"thresholdRules,omitempty"`
+ // TimeWindowRules - The list of custom alert time-window rules.
+ TimeWindowRules *[]BasicTimeWindowCustomAlertRule `json:"timeWindowRules,omitempty"`
+ // AllowlistRules - The allow-list custom alert rules.
+ AllowlistRules *[]BasicAllowlistCustomAlertRule `json:"allowlistRules,omitempty"`
+ // DenylistRules - The deny-list custom alert rules.
+ DenylistRules *[]DenylistCustomAlertRule `json:"denylistRules,omitempty"`
+}
+
+// UnmarshalJSON is the custom unmarshaler for DeviceSecurityGroupProperties struct.
+func (dsgp *DeviceSecurityGroupProperties) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "thresholdRules":
+ if v != nil {
+ thresholdRules, err := unmarshalBasicThresholdCustomAlertRuleArray(*v)
+ if err != nil {
+ return err
+ }
+ dsgp.ThresholdRules = &thresholdRules
+ }
+ case "timeWindowRules":
+ if v != nil {
+ timeWindowRules, err := unmarshalBasicTimeWindowCustomAlertRuleArray(*v)
+ if err != nil {
+ return err
+ }
+ dsgp.TimeWindowRules = &timeWindowRules
+ }
+ case "allowlistRules":
+ if v != nil {
+ allowlistRules, err := unmarshalBasicAllowlistCustomAlertRuleArray(*v)
+ if err != nil {
+ return err
+ }
+ dsgp.AllowlistRules = &allowlistRules
+ }
+ case "denylistRules":
+ if v != nil {
+ var denylistRules []DenylistCustomAlertRule
+ err = json.Unmarshal(*v, &denylistRules)
+ if err != nil {
+ return err
+ }
+ dsgp.DenylistRules = &denylistRules
+ }
+ }
+ }
+
+ return nil
+}
+
+// DirectMethodInvokesNotInAllowedRange number of direct method invokes is not in allowed range.
+type DirectMethodInvokesNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ dminiar.RuleType = RuleTypeDirectMethodInvokesNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if dminiar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = dminiar.TimeWindowSize
+ }
+ if dminiar.MinThreshold != nil {
+ objectMap["minThreshold"] = dminiar.MinThreshold
+ }
+ if dminiar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = dminiar.MaxThreshold
+ }
+ if dminiar.IsEnabled != nil {
+ objectMap["isEnabled"] = dminiar.IsEnabled
+ }
+ if dminiar.RuleType != "" {
+ objectMap["ruleType"] = dminiar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &dminiar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &dminiar, true
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return &dminiar, true
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for DirectMethodInvokesNotInAllowedRange.
+func (dminiar DirectMethodInvokesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &dminiar, true
+}
+
+// DiscoveredSecuritySolution ...
+type DiscoveredSecuritySolution struct {
+ autorest.Response `json:"-"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ *DiscoveredSecuritySolutionProperties `json:"properties,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for DiscoveredSecuritySolution.
+func (dss DiscoveredSecuritySolution) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if dss.DiscoveredSecuritySolutionProperties != nil {
+ objectMap["properties"] = dss.DiscoveredSecuritySolutionProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for DiscoveredSecuritySolution struct.
+func (dss *DiscoveredSecuritySolution) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ dss.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ dss.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ dss.Type = &typeVar
+ }
+ case "location":
+ if v != nil {
+ var location string
+ err = json.Unmarshal(*v, &location)
+ if err != nil {
+ return err
+ }
+ dss.Location = &location
+ }
+ case "properties":
+ if v != nil {
+ var discoveredSecuritySolutionProperties DiscoveredSecuritySolutionProperties
+ err = json.Unmarshal(*v, &discoveredSecuritySolutionProperties)
+ if err != nil {
+ return err
+ }
+ dss.DiscoveredSecuritySolutionProperties = &discoveredSecuritySolutionProperties
+ }
+ }
+ }
+
+ return nil
+}
+
+// DiscoveredSecuritySolutionList ...
+type DiscoveredSecuritySolutionList struct {
+ autorest.Response `json:"-"`
+ Value *[]DiscoveredSecuritySolution `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for DiscoveredSecuritySolutionList.
+func (dssl DiscoveredSecuritySolutionList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if dssl.Value != nil {
+ objectMap["value"] = dssl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// DiscoveredSecuritySolutionListIterator provides access to a complete listing of DiscoveredSecuritySolution
+// values.
+type DiscoveredSecuritySolutionListIterator struct {
+ i int
+ page DiscoveredSecuritySolutionListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *DiscoveredSecuritySolutionListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/DiscoveredSecuritySolutionListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *DiscoveredSecuritySolutionListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter DiscoveredSecuritySolutionListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter DiscoveredSecuritySolutionListIterator) Response() DiscoveredSecuritySolutionList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter DiscoveredSecuritySolutionListIterator) Value() DiscoveredSecuritySolution {
+ if !iter.page.NotDone() {
+ return DiscoveredSecuritySolution{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the DiscoveredSecuritySolutionListIterator type.
+func NewDiscoveredSecuritySolutionListIterator(page DiscoveredSecuritySolutionListPage) DiscoveredSecuritySolutionListIterator {
+ return DiscoveredSecuritySolutionListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (dssl DiscoveredSecuritySolutionList) IsEmpty() bool {
+ return dssl.Value == nil || len(*dssl.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (dssl DiscoveredSecuritySolutionList) hasNextLink() bool {
+ return dssl.NextLink != nil && len(*dssl.NextLink) != 0
+}
+
+// discoveredSecuritySolutionListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (dssl DiscoveredSecuritySolutionList) discoveredSecuritySolutionListPreparer(ctx context.Context) (*http.Request, error) {
+ if !dssl.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(dssl.NextLink)))
+}
+
+// DiscoveredSecuritySolutionListPage contains a page of DiscoveredSecuritySolution values.
+type DiscoveredSecuritySolutionListPage struct {
+ fn func(context.Context, DiscoveredSecuritySolutionList) (DiscoveredSecuritySolutionList, error)
+ dssl DiscoveredSecuritySolutionList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *DiscoveredSecuritySolutionListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/DiscoveredSecuritySolutionListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.dssl)
+ if err != nil {
+ return err
+ }
+ page.dssl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *DiscoveredSecuritySolutionListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page DiscoveredSecuritySolutionListPage) NotDone() bool {
+ return !page.dssl.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page DiscoveredSecuritySolutionListPage) Response() DiscoveredSecuritySolutionList {
+ return page.dssl
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page DiscoveredSecuritySolutionListPage) Values() []DiscoveredSecuritySolution {
+ if page.dssl.IsEmpty() {
+ return nil
+ }
+ return *page.dssl.Value
+}
+
+// Creates a new instance of the DiscoveredSecuritySolutionListPage type.
+func NewDiscoveredSecuritySolutionListPage(getNextPage func(context.Context, DiscoveredSecuritySolutionList) (DiscoveredSecuritySolutionList, error)) DiscoveredSecuritySolutionListPage {
+ return DiscoveredSecuritySolutionListPage{fn: getNextPage}
+}
+
+// DiscoveredSecuritySolutionProperties ...
+type DiscoveredSecuritySolutionProperties struct {
+ // SecurityFamily - The security family of the discovered solution. Possible values include: 'Waf', 'Ngfw', 'SaasWaf', 'Va'
+ SecurityFamily Family `json:"securityFamily,omitempty"`
+ // Offer - The security solutions' image offer
+ Offer *string `json:"offer,omitempty"`
+ // Publisher - The security solutions' image publisher
+ Publisher *string `json:"publisher,omitempty"`
+ // Sku - The security solutions' image sku
+ Sku *string `json:"sku,omitempty"`
+}
+
+// EffectiveNetworkSecurityGroups describes the Network Security Groups effective on a network interface
+type EffectiveNetworkSecurityGroups struct {
+ // NetworkInterface - The Azure resource ID of the network interface
+ NetworkInterface *string `json:"networkInterface,omitempty"`
+ // NetworkSecurityGroups - The Network Security Groups effective on the network interface
+ NetworkSecurityGroups *[]string `json:"networkSecurityGroups,omitempty"`
+}
+
+// ETag entity tag is used for comparing two or more entities from the same requested resource.
+type ETag struct {
+ // Etag - Entity tag is used for comparing two or more entities from the same requested resource.
+ Etag *string `json:"etag,omitempty"`
+}
+
+// BasicExternalSecuritySolution represents a security solution external to Azure Security Center which sends
+// information to an OMS workspace and whose data is displayed by Azure Security Center.
+type BasicExternalSecuritySolution interface {
+ AsCefExternalSecuritySolution() (*CefExternalSecuritySolution, bool)
+ AsAtaExternalSecuritySolution() (*AtaExternalSecuritySolution, bool)
+ AsAadExternalSecuritySolution() (*AadExternalSecuritySolution, bool)
+ AsExternalSecuritySolution() (*ExternalSecuritySolution, bool)
+}
+
+// ExternalSecuritySolution represents a security solution external to Azure Security Center which sends
+// information to an OMS workspace and whose data is displayed by Azure Security Center.
+type ExternalSecuritySolution struct {
+ autorest.Response `json:"-"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ // Kind - Possible values include: 'KindExternalSecuritySolution', 'KindCEF', 'KindATA', 'KindAAD'
+ Kind KindEnum1 `json:"kind,omitempty"`
+}
+
+func unmarshalBasicExternalSecuritySolution(body []byte) (BasicExternalSecuritySolution, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return nil, err
+ }
+
+ switch m["kind"] {
+ case string(KindCEF):
+ var cess CefExternalSecuritySolution
+ err := json.Unmarshal(body, &cess)
+ return cess, err
+ case string(KindATA):
+ var aess AtaExternalSecuritySolution
+ err := json.Unmarshal(body, &aess)
+ return aess, err
+ case string(KindAAD):
+ var aess AadExternalSecuritySolution
+ err := json.Unmarshal(body, &aess)
+ return aess, err
+ default:
+ var ess ExternalSecuritySolution
+ err := json.Unmarshal(body, &ess)
+ return ess, err
+ }
+}
+func unmarshalBasicExternalSecuritySolutionArray(body []byte) ([]BasicExternalSecuritySolution, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
+ if err != nil {
+ return nil, err
+ }
+
+ essArray := make([]BasicExternalSecuritySolution, len(rawMessages))
+
+ for index, rawMessage := range rawMessages {
+ ess, err := unmarshalBasicExternalSecuritySolution(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ essArray[index] = ess
+ }
+ return essArray, nil
+}
+
+// MarshalJSON is the custom marshaler for ExternalSecuritySolution.
+func (ess ExternalSecuritySolution) MarshalJSON() ([]byte, error) {
+ ess.Kind = KindExternalSecuritySolution
+ objectMap := make(map[string]interface{})
+ if ess.Kind != "" {
+ objectMap["kind"] = ess.Kind
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsCefExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
+func (ess ExternalSecuritySolution) AsCefExternalSecuritySolution() (*CefExternalSecuritySolution, bool) {
+ return nil, false
+}
+
+// AsAtaExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
+func (ess ExternalSecuritySolution) AsAtaExternalSecuritySolution() (*AtaExternalSecuritySolution, bool) {
+ return nil, false
+}
+
+// AsAadExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
+func (ess ExternalSecuritySolution) AsAadExternalSecuritySolution() (*AadExternalSecuritySolution, bool) {
+ return nil, false
+}
+
+// AsExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
+func (ess ExternalSecuritySolution) AsExternalSecuritySolution() (*ExternalSecuritySolution, bool) {
+ return &ess, true
+}
+
+// AsBasicExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
+func (ess ExternalSecuritySolution) AsBasicExternalSecuritySolution() (BasicExternalSecuritySolution, bool) {
+ return &ess, true
+}
+
+// ExternalSecuritySolutionKind1 describes an Azure resource with kind
+type ExternalSecuritySolutionKind1 struct {
+ // Kind - The kind of the external solution. Possible values include: 'CEF', 'ATA', 'AAD'
+ Kind ExternalSecuritySolutionKind `json:"kind,omitempty"`
+}
+
+// ExternalSecuritySolutionList ...
+type ExternalSecuritySolutionList struct {
+ autorest.Response `json:"-"`
+ Value *[]BasicExternalSecuritySolution `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ExternalSecuritySolutionList.
+func (essl ExternalSecuritySolutionList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if essl.Value != nil {
+ objectMap["value"] = essl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for ExternalSecuritySolutionList struct.
+func (essl *ExternalSecuritySolutionList) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "value":
+ if v != nil {
+ value, err := unmarshalBasicExternalSecuritySolutionArray(*v)
+ if err != nil {
+ return err
+ }
+ essl.Value = &value
+ }
+ case "nextLink":
+ if v != nil {
+ var nextLink string
+ err = json.Unmarshal(*v, &nextLink)
+ if err != nil {
+ return err
+ }
+ essl.NextLink = &nextLink
+ }
+ }
+ }
+
+ return nil
+}
+
+// ExternalSecuritySolutionListIterator provides access to a complete listing of ExternalSecuritySolution
+// values.
+type ExternalSecuritySolutionListIterator struct {
+ i int
+ page ExternalSecuritySolutionListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *ExternalSecuritySolutionListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ExternalSecuritySolutionListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *ExternalSecuritySolutionListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter ExternalSecuritySolutionListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter ExternalSecuritySolutionListIterator) Response() ExternalSecuritySolutionList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter ExternalSecuritySolutionListIterator) Value() BasicExternalSecuritySolution {
+ if !iter.page.NotDone() {
+ return ExternalSecuritySolution{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the ExternalSecuritySolutionListIterator type.
+func NewExternalSecuritySolutionListIterator(page ExternalSecuritySolutionListPage) ExternalSecuritySolutionListIterator {
+ return ExternalSecuritySolutionListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (essl ExternalSecuritySolutionList) IsEmpty() bool {
+ return essl.Value == nil || len(*essl.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (essl ExternalSecuritySolutionList) hasNextLink() bool {
+ return essl.NextLink != nil && len(*essl.NextLink) != 0
+}
+
+// externalSecuritySolutionListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (essl ExternalSecuritySolutionList) externalSecuritySolutionListPreparer(ctx context.Context) (*http.Request, error) {
+ if !essl.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(essl.NextLink)))
+}
+
+// ExternalSecuritySolutionListPage contains a page of BasicExternalSecuritySolution values.
+type ExternalSecuritySolutionListPage struct {
+ fn func(context.Context, ExternalSecuritySolutionList) (ExternalSecuritySolutionList, error)
+ essl ExternalSecuritySolutionList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *ExternalSecuritySolutionListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/ExternalSecuritySolutionListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.essl)
+ if err != nil {
+ return err
+ }
+ page.essl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *ExternalSecuritySolutionListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page ExternalSecuritySolutionListPage) NotDone() bool {
+ return !page.essl.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page ExternalSecuritySolutionListPage) Response() ExternalSecuritySolutionList {
+ return page.essl
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page ExternalSecuritySolutionListPage) Values() []BasicExternalSecuritySolution {
+ if page.essl.IsEmpty() {
+ return nil
+ }
+ return *page.essl.Value
+}
+
+// Creates a new instance of the ExternalSecuritySolutionListPage type.
+func NewExternalSecuritySolutionListPage(getNextPage func(context.Context, ExternalSecuritySolutionList) (ExternalSecuritySolutionList, error)) ExternalSecuritySolutionListPage {
+ return ExternalSecuritySolutionListPage{fn: getNextPage}
+}
+
+// ExternalSecuritySolutionModel ...
+type ExternalSecuritySolutionModel struct {
+ autorest.Response `json:"-"`
+ Value BasicExternalSecuritySolution `json:"value,omitempty"`
+}
+
+// UnmarshalJSON is the custom unmarshaler for ExternalSecuritySolutionModel struct.
+func (essm *ExternalSecuritySolutionModel) UnmarshalJSON(body []byte) error {
+ ess, err := unmarshalBasicExternalSecuritySolution(body)
+ if err != nil {
+ return err
+ }
+ essm.Value = ess
+
+ return nil
+}
+
+// ExternalSecuritySolutionProperties the solution properties (correspond to the solution kind)
+type ExternalSecuritySolutionProperties struct {
+ // AdditionalProperties - Unmatched properties from the message are deserialized this collection
+ AdditionalProperties map[string]interface{} `json:""`
+ DeviceVendor *string `json:"deviceVendor,omitempty"`
+ DeviceType *string `json:"deviceType,omitempty"`
+ Workspace *ConnectedWorkspace `json:"workspace,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ExternalSecuritySolutionProperties.
+func (essp ExternalSecuritySolutionProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if essp.DeviceVendor != nil {
+ objectMap["deviceVendor"] = essp.DeviceVendor
+ }
+ if essp.DeviceType != nil {
+ objectMap["deviceType"] = essp.DeviceType
+ }
+ if essp.Workspace != nil {
+ objectMap["workspace"] = essp.Workspace
+ }
+ for k, v := range essp.AdditionalProperties {
+ objectMap[k] = v
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for ExternalSecuritySolutionProperties struct.
+func (essp *ExternalSecuritySolutionProperties) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ default:
+ if v != nil {
+ var additionalProperties interface{}
+ err = json.Unmarshal(*v, &additionalProperties)
+ if err != nil {
+ return err
+ }
+ if essp.AdditionalProperties == nil {
+ essp.AdditionalProperties = make(map[string]interface{})
+ }
+ essp.AdditionalProperties[k] = additionalProperties
+ }
+ case "deviceVendor":
+ if v != nil {
+ var deviceVendor string
+ err = json.Unmarshal(*v, &deviceVendor)
+ if err != nil {
+ return err
+ }
+ essp.DeviceVendor = &deviceVendor
+ }
+ case "deviceType":
+ if v != nil {
+ var deviceType string
+ err = json.Unmarshal(*v, &deviceType)
+ if err != nil {
+ return err
+ }
+ essp.DeviceType = &deviceType
+ }
+ case "workspace":
+ if v != nil {
+ var workspace ConnectedWorkspace
+ err = json.Unmarshal(*v, &workspace)
+ if err != nil {
+ return err
+ }
+ essp.Workspace = &workspace
+ }
+ }
+ }
+
+ return nil
+}
+
+// FailedLocalLoginsNotInAllowedRange number of failed local logins is not in allowed range.
+type FailedLocalLoginsNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ fllniar.RuleType = RuleTypeFailedLocalLoginsNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if fllniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = fllniar.TimeWindowSize
+ }
+ if fllniar.MinThreshold != nil {
+ objectMap["minThreshold"] = fllniar.MinThreshold
+ }
+ if fllniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = fllniar.MaxThreshold
+ }
+ if fllniar.IsEnabled != nil {
+ objectMap["isEnabled"] = fllniar.IsEnabled
+ }
+ if fllniar.RuleType != "" {
+ objectMap["ruleType"] = fllniar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &fllniar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &fllniar, true
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return &fllniar, true
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for FailedLocalLoginsNotInAllowedRange.
+func (fllniar FailedLocalLoginsNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &fllniar, true
+}
+
+// FileUploadsNotInAllowedRange number of file uploads is not in allowed range.
+type FileUploadsNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ funiar.RuleType = RuleTypeFileUploadsNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if funiar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = funiar.TimeWindowSize
+ }
+ if funiar.MinThreshold != nil {
+ objectMap["minThreshold"] = funiar.MinThreshold
+ }
+ if funiar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = funiar.MaxThreshold
+ }
+ if funiar.IsEnabled != nil {
+ objectMap["isEnabled"] = funiar.IsEnabled
+ }
+ if funiar.RuleType != "" {
+ objectMap["ruleType"] = funiar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &funiar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &funiar, true
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return &funiar, true
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for FileUploadsNotInAllowedRange.
+func (funiar FileUploadsNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &funiar, true
+}
+
+// GcpCredentialsDetailsProperties GCP cloud account connector based service to service credentials, the
+// credentials is composed of organization id and json api key (write only)
+type GcpCredentialsDetailsProperties struct {
+ // OrganizationID - The Organization ID of the GCP cloud account
+ OrganizationID *string `json:"organizationId,omitempty"`
+ // Type - Type field of the API key (write only)
+ Type *string `json:"type,omitempty"`
+ // ProjectID - Project Id field of the API key (write only)
+ ProjectID *string `json:"projectId,omitempty"`
+ // PrivateKeyID - Private key Id field of the API key (write only)
+ PrivateKeyID *string `json:"privateKeyId,omitempty"`
+ // PrivateKey - Private key field of the API key (write only)
+ PrivateKey *string `json:"privateKey,omitempty"`
+ // ClientEmail - Client email field of the API key (write only)
+ ClientEmail *string `json:"clientEmail,omitempty"`
+ // ClientID - Client Id field of the API key (write only)
+ ClientID *string `json:"clientId,omitempty"`
+ // AuthURI - Auth Uri field of the API key (write only)
+ AuthURI *string `json:"authUri,omitempty"`
+ // TokenURI - Token Uri field of the API key (write only)
+ TokenURI *string `json:"tokenUri,omitempty"`
+ // AuthProviderX509CertURL - Auth provider x509 certificate url field of the API key (write only)
+ AuthProviderX509CertURL *string `json:"authProviderX509CertUrl,omitempty"`
+ // ClientX509CertURL - Client x509 certificate url field of the API key (write only)
+ ClientX509CertURL *string `json:"clientX509CertUrl,omitempty"`
+ // AuthenticationProvisioningState - READ-ONLY; State of the multi-cloud connector. Possible values include: 'Valid', 'Invalid', 'Expired', 'IncorrectPolicy'
+ AuthenticationProvisioningState AuthenticationProvisioningState `json:"authenticationProvisioningState,omitempty"`
+ // GrantedPermissions - READ-ONLY; The permissions detected in the cloud account.
+ GrantedPermissions *[]PermissionProperty `json:"grantedPermissions,omitempty"`
+ // AuthenticationType - Possible values include: 'AuthenticationTypeAuthenticationDetailsProperties', 'AuthenticationTypeAwsCreds', 'AuthenticationTypeAwsAssumeRole', 'AuthenticationTypeGcpCredentials'
+ AuthenticationType AuthenticationType `json:"authenticationType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for GcpCredentialsDetailsProperties.
+func (gcdp GcpCredentialsDetailsProperties) MarshalJSON() ([]byte, error) {
+ gcdp.AuthenticationType = AuthenticationTypeGcpCredentials
+ objectMap := make(map[string]interface{})
+ if gcdp.OrganizationID != nil {
+ objectMap["organizationId"] = gcdp.OrganizationID
+ }
+ if gcdp.Type != nil {
+ objectMap["type"] = gcdp.Type
+ }
+ if gcdp.ProjectID != nil {
+ objectMap["projectId"] = gcdp.ProjectID
+ }
+ if gcdp.PrivateKeyID != nil {
+ objectMap["privateKeyId"] = gcdp.PrivateKeyID
+ }
+ if gcdp.PrivateKey != nil {
+ objectMap["privateKey"] = gcdp.PrivateKey
+ }
+ if gcdp.ClientEmail != nil {
+ objectMap["clientEmail"] = gcdp.ClientEmail
+ }
+ if gcdp.ClientID != nil {
+ objectMap["clientId"] = gcdp.ClientID
+ }
+ if gcdp.AuthURI != nil {
+ objectMap["authUri"] = gcdp.AuthURI
+ }
+ if gcdp.TokenURI != nil {
+ objectMap["tokenUri"] = gcdp.TokenURI
+ }
+ if gcdp.AuthProviderX509CertURL != nil {
+ objectMap["authProviderX509CertUrl"] = gcdp.AuthProviderX509CertURL
+ }
+ if gcdp.ClientX509CertURL != nil {
+ objectMap["clientX509CertUrl"] = gcdp.ClientX509CertURL
+ }
+ if gcdp.AuthenticationType != "" {
+ objectMap["authenticationType"] = gcdp.AuthenticationType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsAwsCredsAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for GcpCredentialsDetailsProperties.
+func (gcdp GcpCredentialsDetailsProperties) AsAwsCredsAuthenticationDetailsProperties() (*AwsCredsAuthenticationDetailsProperties, bool) {
+ return nil, false
+}
+
+// AsAwAssumeRoleAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for GcpCredentialsDetailsProperties.
+func (gcdp GcpCredentialsDetailsProperties) AsAwAssumeRoleAuthenticationDetailsProperties() (*AwAssumeRoleAuthenticationDetailsProperties, bool) {
+ return nil, false
+}
+
+// AsGcpCredentialsDetailsProperties is the BasicAuthenticationDetailsProperties implementation for GcpCredentialsDetailsProperties.
+func (gcdp GcpCredentialsDetailsProperties) AsGcpCredentialsDetailsProperties() (*GcpCredentialsDetailsProperties, bool) {
+ return &gcdp, true
+}
+
+// AsAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for GcpCredentialsDetailsProperties.
+func (gcdp GcpCredentialsDetailsProperties) AsAuthenticationDetailsProperties() (*AuthenticationDetailsProperties, bool) {
+ return nil, false
+}
+
+// AsBasicAuthenticationDetailsProperties is the BasicAuthenticationDetailsProperties implementation for GcpCredentialsDetailsProperties.
+func (gcdp GcpCredentialsDetailsProperties) AsBasicAuthenticationDetailsProperties() (BasicAuthenticationDetailsProperties, bool) {
+ return &gcdp, true
+}
+
+// HTTPC2DMessagesNotInAllowedRange number of cloud to device messages (HTTP protocol) is not in allowed range.
+type HTTPC2DMessagesNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ hcmniar.RuleType = RuleTypeHTTPC2DMessagesNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if hcmniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = hcmniar.TimeWindowSize
+ }
+ if hcmniar.MinThreshold != nil {
+ objectMap["minThreshold"] = hcmniar.MinThreshold
+ }
+ if hcmniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = hcmniar.MaxThreshold
+ }
+ if hcmniar.IsEnabled != nil {
+ objectMap["isEnabled"] = hcmniar.IsEnabled
+ }
+ if hcmniar.RuleType != "" {
+ objectMap["ruleType"] = hcmniar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &hcmniar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &hcmniar, true
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return &hcmniar, true
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DMessagesNotInAllowedRange.
+func (hcmniar HTTPC2DMessagesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &hcmniar, true
+}
+
+// HTTPC2DRejectedMessagesNotInAllowedRange number of rejected cloud to device messages (HTTP protocol) is not
+// in allowed range.
+type HTTPC2DRejectedMessagesNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ hcrmniar.RuleType = RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if hcrmniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = hcrmniar.TimeWindowSize
+ }
+ if hcrmniar.MinThreshold != nil {
+ objectMap["minThreshold"] = hcrmniar.MinThreshold
+ }
+ if hcrmniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = hcrmniar.MaxThreshold
+ }
+ if hcrmniar.IsEnabled != nil {
+ objectMap["isEnabled"] = hcrmniar.IsEnabled
+ }
+ if hcrmniar.RuleType != "" {
+ objectMap["ruleType"] = hcrmniar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &hcrmniar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &hcrmniar, true
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return &hcrmniar, true
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for HTTPC2DRejectedMessagesNotInAllowedRange.
+func (hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &hcrmniar, true
+}
+
+// HTTPD2CMessagesNotInAllowedRange number of device to cloud messages (HTTP protocol) is not in allowed range.
+type HTTPD2CMessagesNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ hdmniar.RuleType = RuleTypeHTTPD2CMessagesNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if hdmniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = hdmniar.TimeWindowSize
+ }
+ if hdmniar.MinThreshold != nil {
+ objectMap["minThreshold"] = hdmniar.MinThreshold
+ }
+ if hdmniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = hdmniar.MaxThreshold
+ }
+ if hdmniar.IsEnabled != nil {
+ objectMap["isEnabled"] = hdmniar.IsEnabled
+ }
+ if hdmniar.RuleType != "" {
+ objectMap["ruleType"] = hdmniar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &hdmniar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &hdmniar, true
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return &hdmniar, true
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for HTTPD2CMessagesNotInAllowedRange.
+func (hdmniar HTTPD2CMessagesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &hdmniar, true
+}
+
+// HybridComputeSettingsProperties settings for hybrid compute management
+type HybridComputeSettingsProperties struct {
+ // HybridComputeProvisioningState - READ-ONLY; State of the service principal and its secret. Possible values include: 'HybridComputeProvisioningStateValid', 'HybridComputeProvisioningStateInvalid', 'HybridComputeProvisioningStateExpired'
+ HybridComputeProvisioningState HybridComputeProvisioningState `json:"hybridComputeProvisioningState,omitempty"`
+ // AutoProvision - Whether or not to automatically install Azure Arc (hybrid compute) agents on machines. Possible values include: 'AutoProvisionOn', 'AutoProvisionOff'
+ AutoProvision AutoProvision `json:"autoProvision,omitempty"`
+ // ResourceGroupName - The name of the resource group where Arc (Hybrid Compute) connectors are connected.
+ ResourceGroupName *string `json:"resourceGroupName,omitempty"`
+ // Region - The location where the meta data of machines will be stored
+ Region *string `json:"region,omitempty"`
+ // ProxyServer - For a non-Azure machine that is not connected directly to the internet, specify a proxy server that the non-Azure machine can use.
+ ProxyServer *ProxyServerProperties `json:"proxyServer,omitempty"`
+ // ServicePrincipal - An object to access resources that are secured by an Azure AD tenant.
+ ServicePrincipal *ServicePrincipalProperties `json:"servicePrincipal,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for HybridComputeSettingsProperties.
+func (hcsp HybridComputeSettingsProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if hcsp.AutoProvision != "" {
+ objectMap["autoProvision"] = hcsp.AutoProvision
+ }
+ if hcsp.ResourceGroupName != nil {
+ objectMap["resourceGroupName"] = hcsp.ResourceGroupName
+ }
+ if hcsp.Region != nil {
+ objectMap["region"] = hcsp.Region
+ }
+ if hcsp.ProxyServer != nil {
+ objectMap["proxyServer"] = hcsp.ProxyServer
+ }
+ if hcsp.ServicePrincipal != nil {
+ objectMap["servicePrincipal"] = hcsp.ServicePrincipal
+ }
+ return json.Marshal(objectMap)
+}
+
+// InformationProtectionKeyword the information type keyword.
+type InformationProtectionKeyword struct {
+ // Pattern - The keyword pattern.
+ Pattern *string `json:"pattern,omitempty"`
+ // Custom - Indicates whether the keyword is custom or not.
+ Custom *bool `json:"custom,omitempty"`
+ // CanBeNumeric - Indicates whether the keyword can be applied on numeric types or not.
+ CanBeNumeric *bool `json:"canBeNumeric,omitempty"`
+ // Excluded - Indicates whether the keyword is excluded or not.
+ Excluded *bool `json:"excluded,omitempty"`
+}
+
+// InformationProtectionPolicy information protection policy.
+type InformationProtectionPolicy struct {
+ autorest.Response `json:"-"`
+ // InformationProtectionPolicyProperties - Information protection policy data
+ *InformationProtectionPolicyProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for InformationProtectionPolicy.
+func (ipp InformationProtectionPolicy) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if ipp.InformationProtectionPolicyProperties != nil {
+ objectMap["properties"] = ipp.InformationProtectionPolicyProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for InformationProtectionPolicy struct.
+func (ipp *InformationProtectionPolicy) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var informationProtectionPolicyProperties InformationProtectionPolicyProperties
+ err = json.Unmarshal(*v, &informationProtectionPolicyProperties)
+ if err != nil {
+ return err
+ }
+ ipp.InformationProtectionPolicyProperties = &informationProtectionPolicyProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ ipp.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ ipp.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ ipp.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// InformationProtectionPolicyList information protection policies response.
+type InformationProtectionPolicyList struct {
+ autorest.Response `json:"-"`
+ // Value - List of information protection policies.
+ Value *[]InformationProtectionPolicy `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for InformationProtectionPolicyList.
+func (ippl InformationProtectionPolicyList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if ippl.Value != nil {
+ objectMap["value"] = ippl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// InformationProtectionPolicyListIterator provides access to a complete listing of InformationProtectionPolicy
+// values.
+type InformationProtectionPolicyListIterator struct {
+ i int
+ page InformationProtectionPolicyListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *InformationProtectionPolicyListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/InformationProtectionPolicyListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *InformationProtectionPolicyListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter InformationProtectionPolicyListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter InformationProtectionPolicyListIterator) Response() InformationProtectionPolicyList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter InformationProtectionPolicyListIterator) Value() InformationProtectionPolicy {
+ if !iter.page.NotDone() {
+ return InformationProtectionPolicy{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the InformationProtectionPolicyListIterator type.
+func NewInformationProtectionPolicyListIterator(page InformationProtectionPolicyListPage) InformationProtectionPolicyListIterator {
+ return InformationProtectionPolicyListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (ippl InformationProtectionPolicyList) IsEmpty() bool {
+ return ippl.Value == nil || len(*ippl.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (ippl InformationProtectionPolicyList) hasNextLink() bool {
+ return ippl.NextLink != nil && len(*ippl.NextLink) != 0
+}
+
+// informationProtectionPolicyListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (ippl InformationProtectionPolicyList) informationProtectionPolicyListPreparer(ctx context.Context) (*http.Request, error) {
+ if !ippl.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(ippl.NextLink)))
+}
+
+// InformationProtectionPolicyListPage contains a page of InformationProtectionPolicy values.
+type InformationProtectionPolicyListPage struct {
+ fn func(context.Context, InformationProtectionPolicyList) (InformationProtectionPolicyList, error)
+ ippl InformationProtectionPolicyList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *InformationProtectionPolicyListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/InformationProtectionPolicyListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.ippl)
+ if err != nil {
+ return err
+ }
+ page.ippl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *InformationProtectionPolicyListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page InformationProtectionPolicyListPage) NotDone() bool {
+ return !page.ippl.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page InformationProtectionPolicyListPage) Response() InformationProtectionPolicyList {
+ return page.ippl
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page InformationProtectionPolicyListPage) Values() []InformationProtectionPolicy {
+ if page.ippl.IsEmpty() {
+ return nil
+ }
+ return *page.ippl.Value
+}
+
+// Creates a new instance of the InformationProtectionPolicyListPage type.
+func NewInformationProtectionPolicyListPage(getNextPage func(context.Context, InformationProtectionPolicyList) (InformationProtectionPolicyList, error)) InformationProtectionPolicyListPage {
+ return InformationProtectionPolicyListPage{fn: getNextPage}
+}
+
+// InformationProtectionPolicyProperties describes properties of an information protection policy.
+type InformationProtectionPolicyProperties struct {
+ // LastModifiedUtc - READ-ONLY; Describes the last UTC time the policy was modified.
+ LastModifiedUtc *date.Time `json:"lastModifiedUtc,omitempty"`
+ // Version - READ-ONLY; Describes the version of the policy.
+ Version *string `json:"version,omitempty"`
+ // Labels - Dictionary of sensitivity labels.
+ Labels map[string]*SensitivityLabel `json:"labels"`
+ // InformationTypes - The sensitivity information types.
+ InformationTypes map[string]*InformationType `json:"informationTypes"`
+}
+
+// MarshalJSON is the custom marshaler for InformationProtectionPolicyProperties.
+func (ippp InformationProtectionPolicyProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if ippp.Labels != nil {
+ objectMap["labels"] = ippp.Labels
+ }
+ if ippp.InformationTypes != nil {
+ objectMap["informationTypes"] = ippp.InformationTypes
+ }
+ return json.Marshal(objectMap)
+}
+
+// InformationType the information type.
+type InformationType struct {
+ // DisplayName - The name of the information type.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - The description of the information type.
+ Description *string `json:"description,omitempty"`
+ // Order - The order of the information type.
+ Order *int32 `json:"order,omitempty"`
+ // RecommendedLabelID - The recommended label id to be associated with this information type.
+ RecommendedLabelID *uuid.UUID `json:"recommendedLabelId,omitempty"`
+ // Enabled - Indicates whether the information type is enabled or not.
+ Enabled *bool `json:"enabled,omitempty"`
+ // Custom - Indicates whether the information type is custom or not.
+ Custom *bool `json:"custom,omitempty"`
+ // Keywords - The information type keywords.
+ Keywords *[]InformationProtectionKeyword `json:"keywords,omitempty"`
+}
+
+// IotAlert ioT alert
+type IotAlert struct {
+ autorest.Response `json:"-"`
+ // IotAlertProperties - Alert properties
+ *IotAlertProperties `json:"properties,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IotAlert.
+func (ia IotAlert) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if ia.IotAlertProperties != nil {
+ objectMap["properties"] = ia.IotAlertProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for IotAlert struct.
+func (ia *IotAlert) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var iotAlertProperties IotAlertProperties
+ err = json.Unmarshal(*v, &iotAlertProperties)
+ if err != nil {
+ return err
+ }
+ ia.IotAlertProperties = &iotAlertProperties
+ }
+ }
+ }
+
+ return nil
+}
+
+// IotAlertList list of IoT alerts
+type IotAlertList struct {
+ autorest.Response `json:"-"`
+ // Value - READ-ONLY; List data
+ Value *[]IotAlert `json:"value,omitempty"`
+ // NextLink - READ-ONLY; When available, follow the URI to get the next page of data
+ NextLink *string `json:"nextLink,omitempty"`
+ // TotalCount - READ-ONLY; Total count of alerts that conforms with the given filter options (not affected by page size)
+ TotalCount *int32 `json:"totalCount,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IotAlertList.
+func (ial IotAlertList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// IotAlertListIterator provides access to a complete listing of IotAlert values.
+type IotAlertListIterator struct {
+ i int
+ page IotAlertListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *IotAlertListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotAlertListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *IotAlertListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter IotAlertListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter IotAlertListIterator) Response() IotAlertList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter IotAlertListIterator) Value() IotAlert {
+ if !iter.page.NotDone() {
+ return IotAlert{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the IotAlertListIterator type.
+func NewIotAlertListIterator(page IotAlertListPage) IotAlertListIterator {
+ return IotAlertListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (ial IotAlertList) IsEmpty() bool {
+ return ial.Value == nil || len(*ial.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (ial IotAlertList) hasNextLink() bool {
+ return ial.NextLink != nil && len(*ial.NextLink) != 0
+}
+
+// iotAlertListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (ial IotAlertList) iotAlertListPreparer(ctx context.Context) (*http.Request, error) {
+ if !ial.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(ial.NextLink)))
+}
+
+// IotAlertListPage contains a page of IotAlert values.
+type IotAlertListPage struct {
+ fn func(context.Context, IotAlertList) (IotAlertList, error)
+ ial IotAlertList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *IotAlertListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotAlertListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.ial)
+ if err != nil {
+ return err
+ }
+ page.ial = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
+ }
+ return nil
+}
+
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *IotAlertListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page IotAlertListPage) NotDone() bool {
+ return !page.ial.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page IotAlertListPage) Response() IotAlertList {
+ return page.ial
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page IotAlertListPage) Values() []IotAlert {
+ if page.ial.IsEmpty() {
+ return nil
+ }
+ return *page.ial.Value
+}
+
+// Creates a new instance of the IotAlertListPage type.
+func NewIotAlertListPage(getNextPage func(context.Context, IotAlertList) (IotAlertList, error)) IotAlertListPage {
+ return IotAlertListPage{fn: getNextPage}
+}
+
+// IotAlertProperties ioT alert properties
+type IotAlertProperties struct {
+ // SystemAlertID - READ-ONLY; Holds the product canonical identifier of the alert within the scope of a product
+ SystemAlertID *string `json:"systemAlertId,omitempty"`
+ // CompromisedEntity - READ-ONLY; Display name of the main entity being reported on
+ CompromisedEntity *string `json:"compromisedEntity,omitempty"`
+ // AlertType - READ-ONLY; The type name of the alert
+ AlertType *string `json:"alertType,omitempty"`
+ // StartTimeUtc - READ-ONLY; The impact start time of the alert (the time of the first event or activity included in the alert)
+ StartTimeUtc *string `json:"startTimeUtc,omitempty"`
+ // EndTimeUtc - READ-ONLY; The impact end time of the alert (the time of the last event or activity included in the alert)
+ EndTimeUtc *string `json:"endTimeUtc,omitempty"`
+ // Entities - A list of entities related to the alert
+ Entities *[]interface{} `json:"entities,omitempty"`
+ // ExtendedProperties - A bag of fields which extends the alert information
+ ExtendedProperties interface{} `json:"extendedProperties,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IotAlertProperties.
+func (iap IotAlertProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if iap.Entities != nil {
+ objectMap["entities"] = iap.Entities
+ }
+ if iap.ExtendedProperties != nil {
+ objectMap["extendedProperties"] = iap.ExtendedProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// IotAlertType ioT alert type.
+type IotAlertType struct {
+ autorest.Response `json:"-"`
+ // IotAlertTypeProperties - Alert type properties
+ *IotAlertTypeProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IotAlertType.
+func (iat IotAlertType) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if iat.IotAlertTypeProperties != nil {
+ objectMap["properties"] = iat.IotAlertTypeProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for IotAlertType struct.
+func (iat *IotAlertType) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
if v != nil {
- var deviceVendor string
- err = json.Unmarshal(*v, &deviceVendor)
+ var iotAlertTypeProperties IotAlertTypeProperties
+ err = json.Unmarshal(*v, &iotAlertTypeProperties)
if err != nil {
return err
}
- asp.DeviceVendor = &deviceVendor
+ iat.IotAlertTypeProperties = &iotAlertTypeProperties
}
- case "deviceType":
+ case "id":
if v != nil {
- var deviceType string
- err = json.Unmarshal(*v, &deviceType)
+ var ID string
+ err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
- asp.DeviceType = &deviceType
+ iat.ID = &ID
}
- case "workspace":
+ case "name":
if v != nil {
- var workspace ConnectedWorkspace
- err = json.Unmarshal(*v, &workspace)
+ var name string
+ err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
- asp.Workspace = &workspace
+ iat.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ iat.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// IotAlertTypeList list of alert types
+type IotAlertTypeList struct {
+ autorest.Response `json:"-"`
+ // Value - List data
+ Value *[]IotAlertType `json:"value,omitempty"`
+}
+
+// IotAlertTypeProperties ioT alert type information.
+type IotAlertTypeProperties struct {
+ // AlertDisplayName - READ-ONLY; The display name of the alert
+ AlertDisplayName *string `json:"alertDisplayName,omitempty"`
+ // Severity - READ-ONLY; The severity of the alert. Possible values include: 'Informational', 'Low', 'Medium', 'High'
+ Severity AlertSeverity `json:"severity,omitempty"`
+ // Description - READ-ONLY; Description of the suspected vulnerability and meaning.
+ Description *string `json:"description,omitempty"`
+ // ProviderName - READ-ONLY; The name of the alert provider or internal partner
+ ProviderName *string `json:"providerName,omitempty"`
+ // ProductName - READ-ONLY; The name of the product which published this alert
+ ProductName *string `json:"productName,omitempty"`
+ // ProductComponentName - READ-ONLY; The name of a component inside the product which generated the alert
+ ProductComponentName *string `json:"productComponentName,omitempty"`
+ // VendorName - READ-ONLY; The name of the vendor that raise the alert
+ VendorName *string `json:"vendorName,omitempty"`
+ // Intent - READ-ONLY; Kill chain related intent behind the alert. Could contain multiple enum values (separated by commas). Possible values include: 'Unknown', 'PreAttack', 'InitialAccess', 'Persistence', 'PrivilegeEscalation', 'DefenseEvasion', 'CredentialAccess', 'Discovery', 'LateralMovement', 'Execution', 'Collection', 'Exfiltration', 'CommandAndControl', 'Impact', 'Probing', 'Exploitation'
+ Intent AlertIntent `json:"intent,omitempty"`
+ // RemediationSteps - READ-ONLY; Manual action items to take to remediate the alert
+ RemediationSteps *[]string `json:"remediationSteps,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IotAlertTypeProperties.
+func (iatp IotAlertTypeProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// IotRecommendation ioT recommendation
+type IotRecommendation struct {
+ autorest.Response `json:"-"`
+ // IotRecommendationProperties - Recommendation properties
+ *IotRecommendationProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IotRecommendation.
+func (ir IotRecommendation) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if ir.IotRecommendationProperties != nil {
+ objectMap["properties"] = ir.IotRecommendationProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for IotRecommendation struct.
+func (ir *IotRecommendation) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var iotRecommendationProperties IotRecommendationProperties
+ err = json.Unmarshal(*v, &iotRecommendationProperties)
+ if err != nil {
+ return err
+ }
+ ir.IotRecommendationProperties = &iotRecommendationProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ ir.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ ir.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ ir.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// IotRecommendationList list of IoT recommendations
+type IotRecommendationList struct {
+ autorest.Response `json:"-"`
+ // Value - READ-ONLY; List data
+ Value *[]IotRecommendation `json:"value,omitempty"`
+ // NextLink - READ-ONLY; When available, follow the URI to get the next page of data
+ NextLink *string `json:"nextLink,omitempty"`
+ // TotalCount - READ-ONLY; Total count of recommendations that conforms with the given filter options (not affected by page size)
+ TotalCount *int32 `json:"totalCount,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IotRecommendationList.
+func (irl IotRecommendationList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// IotRecommendationListIterator provides access to a complete listing of IotRecommendation values.
+type IotRecommendationListIterator struct {
+ i int
+ page IotRecommendationListPage
+}
+
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *IotRecommendationListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotRecommendationListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
+}
+
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *IotRecommendationListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter IotRecommendationListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter IotRecommendationListIterator) Response() IotRecommendationList {
+ return iter.page.Response()
+}
+
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter IotRecommendationListIterator) Value() IotRecommendation {
+ if !iter.page.NotDone() {
+ return IotRecommendation{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the IotRecommendationListIterator type.
+func NewIotRecommendationListIterator(page IotRecommendationListPage) IotRecommendationListIterator {
+ return IotRecommendationListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (irl IotRecommendationList) IsEmpty() bool {
+ return irl.Value == nil || len(*irl.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (irl IotRecommendationList) hasNextLink() bool {
+ return irl.NextLink != nil && len(*irl.NextLink) != 0
+}
+
+// iotRecommendationListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (irl IotRecommendationList) iotRecommendationListPreparer(ctx context.Context) (*http.Request, error) {
+ if !irl.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(irl.NextLink)))
+}
+
+// IotRecommendationListPage contains a page of IotRecommendation values.
+type IotRecommendationListPage struct {
+ fn func(context.Context, IotRecommendationList) (IotRecommendationList, error)
+ irl IotRecommendationList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *IotRecommendationListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IotRecommendationListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
}
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.irl)
+ if err != nil {
+ return err
+ }
+ page.irl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
}
}
-
return nil
}
-// Automation the security automation resource.
-type Automation struct {
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *IotRecommendationListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page IotRecommendationListPage) NotDone() bool {
+ return !page.irl.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page IotRecommendationListPage) Response() IotRecommendationList {
+ return page.irl
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page IotRecommendationListPage) Values() []IotRecommendation {
+ if page.irl.IsEmpty() {
+ return nil
+ }
+ return *page.irl.Value
+}
+
+// Creates a new instance of the IotRecommendationListPage type.
+func NewIotRecommendationListPage(getNextPage func(context.Context, IotRecommendationList) (IotRecommendationList, error)) IotRecommendationListPage {
+ return IotRecommendationListPage{fn: getNextPage}
+}
+
+// IotRecommendationProperties ioT recommendation properties
+type IotRecommendationProperties struct {
+ // DeviceID - READ-ONLY; Identifier of the device being reported on
+ DeviceID *string `json:"deviceId,omitempty"`
+ // RecommendationType - READ-ONLY; The type name of the recommendation
+ RecommendationType *string `json:"recommendationType,omitempty"`
+ // DiscoveredTimeUtc - READ-ONLY; The discovery time of the recommendation
+ DiscoveredTimeUtc *string `json:"discoveredTimeUtc,omitempty"`
+ // RecommendationAdditionalData - A bag of fields which extends the recommendation information
+ RecommendationAdditionalData interface{} `json:"recommendationAdditionalData,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IotRecommendationProperties.
+func (irp IotRecommendationProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if irp.RecommendationAdditionalData != nil {
+ objectMap["recommendationAdditionalData"] = irp.RecommendationAdditionalData
+ }
+ return json.Marshal(objectMap)
+}
+
+// IotRecommendationType ioT recommendation type.
+type IotRecommendationType struct {
autorest.Response `json:"-"`
- // AutomationProperties - Security automation data
- *AutomationProperties `json:"properties,omitempty"`
+ // IotRecommendationTypeProperties - Recommendation type properties
+ *IotRecommendationTypeProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
Name *string `json:"name,omitempty"`
// Type - READ-ONLY; Resource type
Type *string `json:"type,omitempty"`
- // Location - READ-ONLY; Location where the resource is stored
- Location *string `json:"location,omitempty"`
- // Kind - Kind of the resource
- Kind *string `json:"kind,omitempty"`
- // Etag - Entity tag is used for comparing two or more entities from the same requested resource.
- Etag *string `json:"etag,omitempty"`
- // Tags - A list of key value pairs that describe the resource.
- Tags map[string]*string `json:"tags"`
}
-// MarshalJSON is the custom marshaler for Automation.
-func (a Automation) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for IotRecommendationType.
+func (irt IotRecommendationType) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if a.AutomationProperties != nil {
- objectMap["properties"] = a.AutomationProperties
- }
- if a.Kind != nil {
- objectMap["kind"] = a.Kind
- }
- if a.Etag != nil {
- objectMap["etag"] = a.Etag
- }
- if a.Tags != nil {
- objectMap["tags"] = a.Tags
+ if irt.IotRecommendationTypeProperties != nil {
+ objectMap["properties"] = irt.IotRecommendationTypeProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for Automation struct.
-func (a *Automation) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for IotRecommendationType struct.
+func (irt *IotRecommendationType) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -3015,12 +10177,12 @@ func (a *Automation) UnmarshalJSON(body []byte) error {
switch k {
case "properties":
if v != nil {
- var automationProperties AutomationProperties
- err = json.Unmarshal(*v, &automationProperties)
+ var iotRecommendationTypeProperties IotRecommendationTypeProperties
+ err = json.Unmarshal(*v, &iotRecommendationTypeProperties)
if err != nil {
return err
}
- a.AutomationProperties = &automationProperties
+ irt.IotRecommendationTypeProperties = &iotRecommendationTypeProperties
}
case "id":
if v != nil {
@@ -3029,7 +10191,7 @@ func (a *Automation) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.ID = &ID
+ irt.ID = &ID
}
case "name":
if v != nil {
@@ -3038,7 +10200,7 @@ func (a *Automation) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.Name = &name
+ irt.Name = &name
}
case "type":
if v != nil {
@@ -3047,34 +10209,111 @@ func (a *Automation) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.Type = &typeVar
+ irt.Type = &typeVar
}
- case "location":
+ }
+ }
+
+ return nil
+}
+
+// IotRecommendationTypeList list of recommendation types
+type IotRecommendationTypeList struct {
+ autorest.Response `json:"-"`
+ // Value - List data
+ Value *[]IotRecommendationType `json:"value,omitempty"`
+}
+
+// IotRecommendationTypeProperties ioT recommendation type information.
+type IotRecommendationTypeProperties struct {
+ // RecommendationDisplayName - READ-ONLY; The display name of the recommendation
+ RecommendationDisplayName *string `json:"recommendationDisplayName,omitempty"`
+ // Severity - READ-ONLY; The severity of the recommendation. Possible values include: 'RecommendationSeverityUnknown', 'RecommendationSeverityNotApplicable', 'RecommendationSeverityHealthy', 'RecommendationSeverityOffByPolicy', 'RecommendationSeverityLow', 'RecommendationSeverityMedium', 'RecommendationSeverityHigh'
+ Severity RecommendationSeverity `json:"severity,omitempty"`
+ // Description - READ-ONLY; Description of the suspected vulnerability and meaning.
+ Description *string `json:"description,omitempty"`
+ // ProductName - READ-ONLY; The name of the product which published this recommendation
+ ProductName *string `json:"productName,omitempty"`
+ // ProductComponentName - READ-ONLY; The name of a component inside the product which generated the recommendation
+ ProductComponentName *string `json:"productComponentName,omitempty"`
+ // VendorName - READ-ONLY; The name of the vendor that raised the recommendation
+ VendorName *string `json:"vendorName,omitempty"`
+ // Control - READ-ONLY; The name of the recommendation's control category
+ Control *string `json:"control,omitempty"`
+ // RemediationSteps - READ-ONLY; Manual action items to take to resolve the recommendation
+ RemediationSteps *[]string `json:"remediationSteps,omitempty"`
+ // DataSource - READ-ONLY; The alert's data source
+ DataSource *string `json:"dataSource,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IotRecommendationTypeProperties.
+func (irtp IotRecommendationTypeProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// IoTSecurityAggregatedAlert security Solution Aggregated Alert information
+type IoTSecurityAggregatedAlert struct {
+ autorest.Response `json:"-"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Tags - Resource tags
+ Tags map[string]*string `json:"tags"`
+ // IoTSecurityAggregatedAlertProperties - IoT Security solution aggregated alert details.
+ *IoTSecurityAggregatedAlertProperties `json:"properties,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IoTSecurityAggregatedAlert.
+func (itsaa IoTSecurityAggregatedAlert) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if itsaa.Tags != nil {
+ objectMap["tags"] = itsaa.Tags
+ }
+ if itsaa.IoTSecurityAggregatedAlertProperties != nil {
+ objectMap["properties"] = itsaa.IoTSecurityAggregatedAlertProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for IoTSecurityAggregatedAlert struct.
+func (itsaa *IoTSecurityAggregatedAlert) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "id":
if v != nil {
- var location string
- err = json.Unmarshal(*v, &location)
+ var ID string
+ err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
- a.Location = &location
+ itsaa.ID = &ID
}
- case "kind":
+ case "name":
if v != nil {
- var kind string
- err = json.Unmarshal(*v, &kind)
+ var name string
+ err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
- a.Kind = &kind
+ itsaa.Name = &name
}
- case "etag":
+ case "type":
if v != nil {
- var etag string
- err = json.Unmarshal(*v, &etag)
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
- a.Etag = &etag
+ itsaa.Type = &typeVar
}
case "tags":
if v != nil {
@@ -3083,285 +10322,358 @@ func (a *Automation) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.Tags = tags
+ itsaa.Tags = tags
+ }
+ case "properties":
+ if v != nil {
+ var ioTSecurityAggregatedAlertProperties IoTSecurityAggregatedAlertProperties
+ err = json.Unmarshal(*v, &ioTSecurityAggregatedAlertProperties)
+ if err != nil {
+ return err
+ }
+ itsaa.IoTSecurityAggregatedAlertProperties = &ioTSecurityAggregatedAlertProperties
}
}
}
-
- return nil
-}
-
-// BasicAutomationAction the action that should be triggered.
-type BasicAutomationAction interface {
- AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool)
- AsAutomationActionEventHub() (*AutomationActionEventHub, bool)
- AsAutomationActionWorkspace() (*AutomationActionWorkspace, bool)
- AsAutomationAction() (*AutomationAction, bool)
-}
-
-// AutomationAction the action that should be triggered.
-type AutomationAction struct {
- // ActionType - Possible values include: 'ActionTypeAutomationAction', 'ActionTypeLogicApp', 'ActionTypeEventHub', 'ActionTypeWorkspace'
- ActionType ActionType `json:"actionType,omitempty"`
-}
-
-func unmarshalBasicAutomationAction(body []byte) (BasicAutomationAction, error) {
- var m map[string]interface{}
- err := json.Unmarshal(body, &m)
- if err != nil {
- return nil, err
- }
-
- switch m["actionType"] {
- case string(ActionTypeLogicApp):
- var aala AutomationActionLogicApp
- err := json.Unmarshal(body, &aala)
- return aala, err
- case string(ActionTypeEventHub):
- var aaeh AutomationActionEventHub
- err := json.Unmarshal(body, &aaeh)
- return aaeh, err
- case string(ActionTypeWorkspace):
- var aaw AutomationActionWorkspace
- err := json.Unmarshal(body, &aaw)
- return aaw, err
- default:
- var aa AutomationAction
- err := json.Unmarshal(body, &aa)
- return aa, err
- }
-}
-func unmarshalBasicAutomationActionArray(body []byte) ([]BasicAutomationAction, error) {
- var rawMessages []*json.RawMessage
- err := json.Unmarshal(body, &rawMessages)
- if err != nil {
- return nil, err
- }
-
- aaArray := make([]BasicAutomationAction, len(rawMessages))
-
- for index, rawMessage := range rawMessages {
- aa, err := unmarshalBasicAutomationAction(*rawMessage)
- if err != nil {
- return nil, err
- }
- aaArray[index] = aa
- }
- return aaArray, nil
+
+ return nil
}
-// MarshalJSON is the custom marshaler for AutomationAction.
-func (aa AutomationAction) MarshalJSON() ([]byte, error) {
- aa.ActionType = ActionTypeAutomationAction
+// IoTSecurityAggregatedAlertList list of IoT Security solution aggregated alert data.
+type IoTSecurityAggregatedAlertList struct {
+ autorest.Response `json:"-"`
+ // Value - List of aggregated alerts data.
+ Value *[]IoTSecurityAggregatedAlert `json:"value,omitempty"`
+ // NextLink - READ-ONLY; When there is too much alert data for one page, use this URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IoTSecurityAggregatedAlertList.
+func (itsaal IoTSecurityAggregatedAlertList) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if aa.ActionType != "" {
- objectMap["actionType"] = aa.ActionType
+ if itsaal.Value != nil {
+ objectMap["value"] = itsaal.Value
}
return json.Marshal(objectMap)
}
-// AsAutomationActionLogicApp is the BasicAutomationAction implementation for AutomationAction.
-func (aa AutomationAction) AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool) {
- return nil, false
-}
-
-// AsAutomationActionEventHub is the BasicAutomationAction implementation for AutomationAction.
-func (aa AutomationAction) AsAutomationActionEventHub() (*AutomationActionEventHub, bool) {
- return nil, false
+// IoTSecurityAggregatedAlertListIterator provides access to a complete listing of IoTSecurityAggregatedAlert
+// values.
+type IoTSecurityAggregatedAlertListIterator struct {
+ i int
+ page IoTSecurityAggregatedAlertListPage
}
-// AsAutomationActionWorkspace is the BasicAutomationAction implementation for AutomationAction.
-func (aa AutomationAction) AsAutomationActionWorkspace() (*AutomationActionWorkspace, bool) {
- return nil, false
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *IoTSecurityAggregatedAlertListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedAlertListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
}
-// AsAutomationAction is the BasicAutomationAction implementation for AutomationAction.
-func (aa AutomationAction) AsAutomationAction() (*AutomationAction, bool) {
- return &aa, true
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *IoTSecurityAggregatedAlertListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
}
-// AsBasicAutomationAction is the BasicAutomationAction implementation for AutomationAction.
-func (aa AutomationAction) AsBasicAutomationAction() (BasicAutomationAction, bool) {
- return &aa, true
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter IoTSecurityAggregatedAlertListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
-// AutomationActionEventHub the target Event Hub to which event data will be exported. To learn more about
-// Security Center continuous export capabilities, visit https://aka.ms/ASCExportLearnMore
-type AutomationActionEventHub struct {
- // EventHubResourceID - The target Event Hub Azure Resource ID.
- EventHubResourceID *string `json:"eventHubResourceId,omitempty"`
- // SasPolicyName - READ-ONLY; The target Event Hub SAS policy name.
- SasPolicyName *string `json:"sasPolicyName,omitempty"`
- // ConnectionString - The target Event Hub connection string (it will not be included in any response).
- ConnectionString *string `json:"connectionString,omitempty"`
- // ActionType - Possible values include: 'ActionTypeAutomationAction', 'ActionTypeLogicApp', 'ActionTypeEventHub', 'ActionTypeWorkspace'
- ActionType ActionType `json:"actionType,omitempty"`
+// Response returns the raw server response from the last page request.
+func (iter IoTSecurityAggregatedAlertListIterator) Response() IoTSecurityAggregatedAlertList {
+ return iter.page.Response()
}
-// MarshalJSON is the custom marshaler for AutomationActionEventHub.
-func (aaeh AutomationActionEventHub) MarshalJSON() ([]byte, error) {
- aaeh.ActionType = ActionTypeEventHub
- objectMap := make(map[string]interface{})
- if aaeh.EventHubResourceID != nil {
- objectMap["eventHubResourceId"] = aaeh.EventHubResourceID
- }
- if aaeh.ConnectionString != nil {
- objectMap["connectionString"] = aaeh.ConnectionString
- }
- if aaeh.ActionType != "" {
- objectMap["actionType"] = aaeh.ActionType
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter IoTSecurityAggregatedAlertListIterator) Value() IoTSecurityAggregatedAlert {
+ if !iter.page.NotDone() {
+ return IoTSecurityAggregatedAlert{}
}
- return json.Marshal(objectMap)
-}
-
-// AsAutomationActionLogicApp is the BasicAutomationAction implementation for AutomationActionEventHub.
-func (aaeh AutomationActionEventHub) AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool) {
- return nil, false
+ return iter.page.Values()[iter.i]
}
-// AsAutomationActionEventHub is the BasicAutomationAction implementation for AutomationActionEventHub.
-func (aaeh AutomationActionEventHub) AsAutomationActionEventHub() (*AutomationActionEventHub, bool) {
- return &aaeh, true
+// Creates a new instance of the IoTSecurityAggregatedAlertListIterator type.
+func NewIoTSecurityAggregatedAlertListIterator(page IoTSecurityAggregatedAlertListPage) IoTSecurityAggregatedAlertListIterator {
+ return IoTSecurityAggregatedAlertListIterator{page: page}
}
-// AsAutomationActionWorkspace is the BasicAutomationAction implementation for AutomationActionEventHub.
-func (aaeh AutomationActionEventHub) AsAutomationActionWorkspace() (*AutomationActionWorkspace, bool) {
- return nil, false
+// IsEmpty returns true if the ListResult contains no values.
+func (itsaal IoTSecurityAggregatedAlertList) IsEmpty() bool {
+ return itsaal.Value == nil || len(*itsaal.Value) == 0
}
-// AsAutomationAction is the BasicAutomationAction implementation for AutomationActionEventHub.
-func (aaeh AutomationActionEventHub) AsAutomationAction() (*AutomationAction, bool) {
- return nil, false
+// hasNextLink returns true if the NextLink is not empty.
+func (itsaal IoTSecurityAggregatedAlertList) hasNextLink() bool {
+ return itsaal.NextLink != nil && len(*itsaal.NextLink) != 0
}
-// AsBasicAutomationAction is the BasicAutomationAction implementation for AutomationActionEventHub.
-func (aaeh AutomationActionEventHub) AsBasicAutomationAction() (BasicAutomationAction, bool) {
- return &aaeh, true
+// ioTSecurityAggregatedAlertListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (itsaal IoTSecurityAggregatedAlertList) ioTSecurityAggregatedAlertListPreparer(ctx context.Context) (*http.Request, error) {
+ if !itsaal.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(itsaal.NextLink)))
}
-// AutomationActionLogicApp the logic app action that should be triggered. To learn more about Security
-// Center's Workflow Automation capabilities, visit https://aka.ms/ASCWorkflowAutomationLearnMore
-type AutomationActionLogicApp struct {
- // LogicAppResourceID - The triggered Logic App Azure Resource ID. This can also reside on other subscriptions, given that you have permissions to trigger the Logic App
- LogicAppResourceID *string `json:"logicAppResourceId,omitempty"`
- // URI - The Logic App trigger URI endpoint (it will not be included in any response).
- URI *string `json:"uri,omitempty"`
- // ActionType - Possible values include: 'ActionTypeAutomationAction', 'ActionTypeLogicApp', 'ActionTypeEventHub', 'ActionTypeWorkspace'
- ActionType ActionType `json:"actionType,omitempty"`
+// IoTSecurityAggregatedAlertListPage contains a page of IoTSecurityAggregatedAlert values.
+type IoTSecurityAggregatedAlertListPage struct {
+ fn func(context.Context, IoTSecurityAggregatedAlertList) (IoTSecurityAggregatedAlertList, error)
+ itsaal IoTSecurityAggregatedAlertList
}
-// MarshalJSON is the custom marshaler for AutomationActionLogicApp.
-func (aala AutomationActionLogicApp) MarshalJSON() ([]byte, error) {
- aala.ActionType = ActionTypeLogicApp
- objectMap := make(map[string]interface{})
- if aala.LogicAppResourceID != nil {
- objectMap["logicAppResourceId"] = aala.LogicAppResourceID
- }
- if aala.URI != nil {
- objectMap["uri"] = aala.URI
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *IoTSecurityAggregatedAlertListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedAlertListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
}
- if aala.ActionType != "" {
- objectMap["actionType"] = aala.ActionType
+ for {
+ next, err := page.fn(ctx, page.itsaal)
+ if err != nil {
+ return err
+ }
+ page.itsaal = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- return json.Marshal(objectMap)
+ return nil
}
-// AsAutomationActionLogicApp is the BasicAutomationAction implementation for AutomationActionLogicApp.
-func (aala AutomationActionLogicApp) AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool) {
- return &aala, true
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *IoTSecurityAggregatedAlertListPage) Next() error {
+ return page.NextWithContext(context.Background())
}
-// AsAutomationActionEventHub is the BasicAutomationAction implementation for AutomationActionLogicApp.
-func (aala AutomationActionLogicApp) AsAutomationActionEventHub() (*AutomationActionEventHub, bool) {
- return nil, false
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page IoTSecurityAggregatedAlertListPage) NotDone() bool {
+ return !page.itsaal.IsEmpty()
}
-// AsAutomationActionWorkspace is the BasicAutomationAction implementation for AutomationActionLogicApp.
-func (aala AutomationActionLogicApp) AsAutomationActionWorkspace() (*AutomationActionWorkspace, bool) {
- return nil, false
+// Response returns the raw server response from the last page request.
+func (page IoTSecurityAggregatedAlertListPage) Response() IoTSecurityAggregatedAlertList {
+ return page.itsaal
}
-// AsAutomationAction is the BasicAutomationAction implementation for AutomationActionLogicApp.
-func (aala AutomationActionLogicApp) AsAutomationAction() (*AutomationAction, bool) {
- return nil, false
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page IoTSecurityAggregatedAlertListPage) Values() []IoTSecurityAggregatedAlert {
+ if page.itsaal.IsEmpty() {
+ return nil
+ }
+ return *page.itsaal.Value
}
-// AsBasicAutomationAction is the BasicAutomationAction implementation for AutomationActionLogicApp.
-func (aala AutomationActionLogicApp) AsBasicAutomationAction() (BasicAutomationAction, bool) {
- return &aala, true
+// Creates a new instance of the IoTSecurityAggregatedAlertListPage type.
+func NewIoTSecurityAggregatedAlertListPage(getNextPage func(context.Context, IoTSecurityAggregatedAlertList) (IoTSecurityAggregatedAlertList, error)) IoTSecurityAggregatedAlertListPage {
+ return IoTSecurityAggregatedAlertListPage{fn: getNextPage}
}
-// AutomationActionWorkspace the Log Analytics Workspace to which event data will be exported. Security
-// alerts data will reside in the 'SecurityAlert' table and the assessments data will reside in the
-// 'SecurityRecommendation' table (under the 'Security'/'SecurityCenterFree' solutions). Note that in order
-// to view the data in the workspace, the Security Center Log Analytics free/standard solution needs to be
-// enabled on that workspace. To learn more about Security Center continuous export capabilities, visit
-// https://aka.ms/ASCExportLearnMore
-type AutomationActionWorkspace struct {
- // WorkspaceResourceID - The fully qualified Log Analytics Workspace Azure Resource ID.
- WorkspaceResourceID *string `json:"workspaceResourceId,omitempty"`
- // ActionType - Possible values include: 'ActionTypeAutomationAction', 'ActionTypeLogicApp', 'ActionTypeEventHub', 'ActionTypeWorkspace'
- ActionType ActionType `json:"actionType,omitempty"`
+// IoTSecurityAggregatedAlertProperties ioT Security solution aggregated alert details.
+type IoTSecurityAggregatedAlertProperties struct {
+ // AlertType - READ-ONLY; Name of the alert type.
+ AlertType *string `json:"alertType,omitempty"`
+ // AlertDisplayName - READ-ONLY; Display name of the alert type.
+ AlertDisplayName *string `json:"alertDisplayName,omitempty"`
+ // AggregatedDateUtc - READ-ONLY; Date of detection.
+ AggregatedDateUtc *date.Date `json:"aggregatedDateUtc,omitempty"`
+ // VendorName - READ-ONLY; Name of the organization that raised the alert.
+ VendorName *string `json:"vendorName,omitempty"`
+ // ReportedSeverity - READ-ONLY; Assessed alert severity. Possible values include: 'ReportedSeverityInformational', 'ReportedSeverityLow', 'ReportedSeverityMedium', 'ReportedSeverityHigh'
+ ReportedSeverity ReportedSeverity `json:"reportedSeverity,omitempty"`
+ // RemediationSteps - READ-ONLY; Recommended steps for remediation.
+ RemediationSteps *string `json:"remediationSteps,omitempty"`
+ // Description - READ-ONLY; Description of the suspected vulnerability and meaning.
+ Description *string `json:"description,omitempty"`
+ // Count - READ-ONLY; Number of alerts occurrences within the aggregated time window.
+ Count *int32 `json:"count,omitempty"`
+ // EffectedResourceType - READ-ONLY; Azure resource ID of the resource that received the alerts.
+ EffectedResourceType *string `json:"effectedResourceType,omitempty"`
+ // SystemSource - READ-ONLY; The type of the alerted resource (Azure, Non-Azure).
+ SystemSource *string `json:"systemSource,omitempty"`
+ // ActionTaken - READ-ONLY; IoT Security solution alert response.
+ ActionTaken *string `json:"actionTaken,omitempty"`
+ // LogAnalyticsQuery - READ-ONLY; Log analytics query for getting the list of affected devices/alerts.
+ LogAnalyticsQuery *string `json:"logAnalyticsQuery,omitempty"`
+ // TopDevicesList - READ-ONLY; 10 devices with the highest number of occurrences of this alert type, on this day.
+ TopDevicesList *[]IoTSecurityAggregatedAlertPropertiesTopDevicesListItem `json:"topDevicesList,omitempty"`
}
-
-// MarshalJSON is the custom marshaler for AutomationActionWorkspace.
-func (aaw AutomationActionWorkspace) MarshalJSON() ([]byte, error) {
- aaw.ActionType = ActionTypeWorkspace
- objectMap := make(map[string]interface{})
- if aaw.WorkspaceResourceID != nil {
- objectMap["workspaceResourceId"] = aaw.WorkspaceResourceID
- }
- if aaw.ActionType != "" {
- objectMap["actionType"] = aaw.ActionType
- }
+
+// MarshalJSON is the custom marshaler for IoTSecurityAggregatedAlertProperties.
+func (itsaap IoTSecurityAggregatedAlertProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
return json.Marshal(objectMap)
}
-// AsAutomationActionLogicApp is the BasicAutomationAction implementation for AutomationActionWorkspace.
-func (aaw AutomationActionWorkspace) AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool) {
- return nil, false
+// IoTSecurityAggregatedAlertPropertiesTopDevicesListItem ...
+type IoTSecurityAggregatedAlertPropertiesTopDevicesListItem struct {
+ // DeviceID - READ-ONLY; Name of the device.
+ DeviceID *string `json:"deviceId,omitempty"`
+ // AlertsCount - READ-ONLY; Number of alerts raised for this device.
+ AlertsCount *int32 `json:"alertsCount,omitempty"`
+ // LastOccurrence - READ-ONLY; Most recent time this alert was raised for this device, on this day.
+ LastOccurrence *string `json:"lastOccurrence,omitempty"`
}
-// AsAutomationActionEventHub is the BasicAutomationAction implementation for AutomationActionWorkspace.
-func (aaw AutomationActionWorkspace) AsAutomationActionEventHub() (*AutomationActionEventHub, bool) {
- return nil, false
+// MarshalJSON is the custom marshaler for IoTSecurityAggregatedAlertPropertiesTopDevicesListItem.
+func (itsaapDli IoTSecurityAggregatedAlertPropertiesTopDevicesListItem) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
}
-// AsAutomationActionWorkspace is the BasicAutomationAction implementation for AutomationActionWorkspace.
-func (aaw AutomationActionWorkspace) AsAutomationActionWorkspace() (*AutomationActionWorkspace, bool) {
- return &aaw, true
+// IoTSecurityAggregatedRecommendation ioT Security solution recommendation information.
+type IoTSecurityAggregatedRecommendation struct {
+ autorest.Response `json:"-"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Tags - Resource tags
+ Tags map[string]*string `json:"tags"`
+ // IoTSecurityAggregatedRecommendationProperties - Security Solution data
+ *IoTSecurityAggregatedRecommendationProperties `json:"properties,omitempty"`
}
-// AsAutomationAction is the BasicAutomationAction implementation for AutomationActionWorkspace.
-func (aaw AutomationActionWorkspace) AsAutomationAction() (*AutomationAction, bool) {
- return nil, false
+// MarshalJSON is the custom marshaler for IoTSecurityAggregatedRecommendation.
+func (itsar IoTSecurityAggregatedRecommendation) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if itsar.Tags != nil {
+ objectMap["tags"] = itsar.Tags
+ }
+ if itsar.IoTSecurityAggregatedRecommendationProperties != nil {
+ objectMap["properties"] = itsar.IoTSecurityAggregatedRecommendationProperties
+ }
+ return json.Marshal(objectMap)
}
-// AsBasicAutomationAction is the BasicAutomationAction implementation for AutomationActionWorkspace.
-func (aaw AutomationActionWorkspace) AsBasicAutomationAction() (BasicAutomationAction, bool) {
- return &aaw, true
+// UnmarshalJSON is the custom unmarshaler for IoTSecurityAggregatedRecommendation struct.
+func (itsar *IoTSecurityAggregatedRecommendation) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ itsar.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ itsar.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ itsar.Type = &typeVar
+ }
+ case "tags":
+ if v != nil {
+ var tags map[string]*string
+ err = json.Unmarshal(*v, &tags)
+ if err != nil {
+ return err
+ }
+ itsar.Tags = tags
+ }
+ case "properties":
+ if v != nil {
+ var ioTSecurityAggregatedRecommendationProperties IoTSecurityAggregatedRecommendationProperties
+ err = json.Unmarshal(*v, &ioTSecurityAggregatedRecommendationProperties)
+ if err != nil {
+ return err
+ }
+ itsar.IoTSecurityAggregatedRecommendationProperties = &ioTSecurityAggregatedRecommendationProperties
+ }
+ }
+ }
+
+ return nil
}
-// AutomationList list of security automations response.
-type AutomationList struct {
+// IoTSecurityAggregatedRecommendationList list of IoT Security solution aggregated recommendations.
+type IoTSecurityAggregatedRecommendationList struct {
autorest.Response `json:"-"`
- // Value - The list of security automations under the given scope.
- Value *[]Automation `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
+ // Value - List of aggregated recommendations data.
+ Value *[]IoTSecurityAggregatedRecommendation `json:"value,omitempty"`
+ // NextLink - READ-ONLY; When there is too much alert data for one page, use this URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// AutomationListIterator provides access to a complete listing of Automation values.
-type AutomationListIterator struct {
+// MarshalJSON is the custom marshaler for IoTSecurityAggregatedRecommendationList.
+func (itsarl IoTSecurityAggregatedRecommendationList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if itsarl.Value != nil {
+ objectMap["value"] = itsarl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// IoTSecurityAggregatedRecommendationListIterator provides access to a complete listing of
+// IoTSecurityAggregatedRecommendation values.
+type IoTSecurityAggregatedRecommendationListIterator struct {
i int
- page AutomationListPage
+ page IoTSecurityAggregatedRecommendationListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *AutomationListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *IoTSecurityAggregatedRecommendationListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AutomationListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedRecommendationListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -3386,62 +10698,67 @@ func (iter *AutomationListIterator) NextWithContext(ctx context.Context) (err er
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *AutomationListIterator) Next() error {
+func (iter *IoTSecurityAggregatedRecommendationListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter AutomationListIterator) NotDone() bool {
+func (iter IoTSecurityAggregatedRecommendationListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter AutomationListIterator) Response() AutomationList {
+func (iter IoTSecurityAggregatedRecommendationListIterator) Response() IoTSecurityAggregatedRecommendationList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter AutomationListIterator) Value() Automation {
+func (iter IoTSecurityAggregatedRecommendationListIterator) Value() IoTSecurityAggregatedRecommendation {
if !iter.page.NotDone() {
- return Automation{}
+ return IoTSecurityAggregatedRecommendation{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the AutomationListIterator type.
-func NewAutomationListIterator(page AutomationListPage) AutomationListIterator {
- return AutomationListIterator{page: page}
+// Creates a new instance of the IoTSecurityAggregatedRecommendationListIterator type.
+func NewIoTSecurityAggregatedRecommendationListIterator(page IoTSecurityAggregatedRecommendationListPage) IoTSecurityAggregatedRecommendationListIterator {
+ return IoTSecurityAggregatedRecommendationListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (al AutomationList) IsEmpty() bool {
- return al.Value == nil || len(*al.Value) == 0
+func (itsarl IoTSecurityAggregatedRecommendationList) IsEmpty() bool {
+ return itsarl.Value == nil || len(*itsarl.Value) == 0
}
-// automationListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (itsarl IoTSecurityAggregatedRecommendationList) hasNextLink() bool {
+ return itsarl.NextLink != nil && len(*itsarl.NextLink) != 0
+}
+
+// ioTSecurityAggregatedRecommendationListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (al AutomationList) automationListPreparer(ctx context.Context) (*http.Request, error) {
- if al.NextLink == nil || len(to.String(al.NextLink)) < 1 {
+func (itsarl IoTSecurityAggregatedRecommendationList) ioTSecurityAggregatedRecommendationListPreparer(ctx context.Context) (*http.Request, error) {
+ if !itsarl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(al.NextLink)))
+ autorest.WithBaseURL(to.String(itsarl.NextLink)))
}
-// AutomationListPage contains a page of Automation values.
-type AutomationListPage struct {
- fn func(context.Context, AutomationList) (AutomationList, error)
- al AutomationList
+// IoTSecurityAggregatedRecommendationListPage contains a page of IoTSecurityAggregatedRecommendation values.
+type IoTSecurityAggregatedRecommendationListPage struct {
+ fn func(context.Context, IoTSecurityAggregatedRecommendationList) (IoTSecurityAggregatedRecommendationList, error)
+ itsarl IoTSecurityAggregatedRecommendationList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *AutomationListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *IoTSecurityAggregatedRecommendationListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AutomationListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedRecommendationListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -3450,62 +10767,155 @@ func (page *AutomationListPage) NextWithContext(ctx context.Context) (err error)
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.al)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.itsarl)
+ if err != nil {
+ return err
+ }
+ page.itsarl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.al = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *AutomationListPage) Next() error {
+func (page *IoTSecurityAggregatedRecommendationListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page AutomationListPage) NotDone() bool {
- return !page.al.IsEmpty()
+func (page IoTSecurityAggregatedRecommendationListPage) NotDone() bool {
+ return !page.itsarl.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page IoTSecurityAggregatedRecommendationListPage) Response() IoTSecurityAggregatedRecommendationList {
+ return page.itsarl
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page IoTSecurityAggregatedRecommendationListPage) Values() []IoTSecurityAggregatedRecommendation {
+ if page.itsarl.IsEmpty() {
+ return nil
+ }
+ return *page.itsarl.Value
+}
+
+// Creates a new instance of the IoTSecurityAggregatedRecommendationListPage type.
+func NewIoTSecurityAggregatedRecommendationListPage(getNextPage func(context.Context, IoTSecurityAggregatedRecommendationList) (IoTSecurityAggregatedRecommendationList, error)) IoTSecurityAggregatedRecommendationListPage {
+ return IoTSecurityAggregatedRecommendationListPage{fn: getNextPage}
+}
+
+// IoTSecurityAggregatedRecommendationProperties ioT Security solution aggregated recommendation information
+type IoTSecurityAggregatedRecommendationProperties struct {
+ // RecommendationName - Name of the recommendation.
+ RecommendationName *string `json:"recommendationName,omitempty"`
+ // RecommendationDisplayName - READ-ONLY; Display name of the recommendation type.
+ RecommendationDisplayName *string `json:"recommendationDisplayName,omitempty"`
+ // Description - READ-ONLY; Description of the suspected vulnerability and meaning.
+ Description *string `json:"description,omitempty"`
+ // RecommendationTypeID - READ-ONLY; Recommendation-type GUID.
+ RecommendationTypeID *string `json:"recommendationTypeId,omitempty"`
+ // DetectedBy - READ-ONLY; Name of the organization that made the recommendation.
+ DetectedBy *string `json:"detectedBy,omitempty"`
+ // RemediationSteps - READ-ONLY; Recommended steps for remediation
+ RemediationSteps *string `json:"remediationSteps,omitempty"`
+ // ReportedSeverity - READ-ONLY; Assessed recommendation severity. Possible values include: 'ReportedSeverityInformational', 'ReportedSeverityLow', 'ReportedSeverityMedium', 'ReportedSeverityHigh'
+ ReportedSeverity ReportedSeverity `json:"reportedSeverity,omitempty"`
+ // HealthyDevices - READ-ONLY; Number of healthy devices within the IoT Security solution.
+ HealthyDevices *int32 `json:"healthyDevices,omitempty"`
+ // UnhealthyDeviceCount - READ-ONLY; Number of unhealthy devices within the IoT Security solution.
+ UnhealthyDeviceCount *int32 `json:"unhealthyDeviceCount,omitempty"`
+ // LogAnalyticsQuery - READ-ONLY; Log analytics query for getting the list of affected devices/alerts.
+ LogAnalyticsQuery *string `json:"logAnalyticsQuery,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IoTSecurityAggregatedRecommendationProperties.
+func (itsarp IoTSecurityAggregatedRecommendationProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if itsarp.RecommendationName != nil {
+ objectMap["recommendationName"] = itsarp.RecommendationName
+ }
+ return json.Marshal(objectMap)
+}
+
+// IoTSecurityAlertedDevice statistical information about the number of alerts per device during last set
+// number of days.
+type IoTSecurityAlertedDevice struct {
+ // DeviceID - READ-ONLY; Device identifier.
+ DeviceID *string `json:"deviceId,omitempty"`
+ // AlertsCount - READ-ONLY; Number of alerts raised for this device.
+ AlertsCount *int32 `json:"alertsCount,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IoTSecurityAlertedDevice.
+func (itsad IoTSecurityAlertedDevice) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// IoTSecurityDeviceAlert statistical information about the number of alerts per alert type during last set
+// number of days
+type IoTSecurityDeviceAlert struct {
+ // AlertDisplayName - READ-ONLY; Display name of the alert
+ AlertDisplayName *string `json:"alertDisplayName,omitempty"`
+ // ReportedSeverity - READ-ONLY; Assessed Alert severity. Possible values include: 'ReportedSeverityInformational', 'ReportedSeverityLow', 'ReportedSeverityMedium', 'ReportedSeverityHigh'
+ ReportedSeverity ReportedSeverity `json:"reportedSeverity,omitempty"`
+ // AlertsCount - READ-ONLY; Number of alerts raised for this alert type.
+ AlertsCount *int32 `json:"alertsCount,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IoTSecurityDeviceAlert.
+func (itsda IoTSecurityDeviceAlert) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
}
-// Response returns the raw server response from the last page request.
-func (page AutomationListPage) Response() AutomationList {
- return page.al
+// IoTSecurityDeviceRecommendation statistical information about the number of recommendations per device, per
+// recommendation type.
+type IoTSecurityDeviceRecommendation struct {
+ // RecommendationDisplayName - READ-ONLY; Display name of the recommendation.
+ RecommendationDisplayName *string `json:"recommendationDisplayName,omitempty"`
+ // ReportedSeverity - READ-ONLY; Assessed recommendation severity. Possible values include: 'ReportedSeverityInformational', 'ReportedSeverityLow', 'ReportedSeverityMedium', 'ReportedSeverityHigh'
+ ReportedSeverity ReportedSeverity `json:"reportedSeverity,omitempty"`
+ // DevicesCount - READ-ONLY; Number of devices with this recommendation.
+ DevicesCount *int32 `json:"devicesCount,omitempty"`
}
-// Values returns the slice of values for the current page or nil if there are no values.
-func (page AutomationListPage) Values() []Automation {
- if page.al.IsEmpty() {
- return nil
- }
- return *page.al.Value
+// MarshalJSON is the custom marshaler for IoTSecurityDeviceRecommendation.
+func (itsdr IoTSecurityDeviceRecommendation) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
}
-// Creates a new instance of the AutomationListPage type.
-func NewAutomationListPage(getNextPage func(context.Context, AutomationList) (AutomationList, error)) AutomationListPage {
- return AutomationListPage{fn: getNextPage}
+// IoTSecuritySolutionAnalyticsModel security analytics of your IoT Security solution
+type IoTSecuritySolutionAnalyticsModel struct {
+ autorest.Response `json:"-"`
+ // IoTSecuritySolutionAnalyticsModelProperties - Security Solution Aggregated Alert data
+ *IoTSecuritySolutionAnalyticsModelProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
}
-// AutomationProperties a set of properties that defines the behavior of the automation configuration. To
-// learn more about the supported security events data models schemas - please visit
-// https://aka.ms/ASCAutomationSchemas.
-type AutomationProperties struct {
- // Description - The security automation description.
- Description *string `json:"description,omitempty"`
- // IsEnabled - Indicates whether the security automation is enabled.
- IsEnabled *bool `json:"isEnabled,omitempty"`
- // Scopes - A collection of scopes on which the security automations logic is applied. Supported scopes are the subscription itself or a resource group under that subscription. The automation will only apply on defined scopes.
- Scopes *[]AutomationScope `json:"scopes,omitempty"`
- // Sources - A collection of the source event types which evaluate the security automation set of rules.
- Sources *[]AutomationSource `json:"sources,omitempty"`
- // Actions - A collection of the actions which are triggered if all the configured rules evaluations, within at least one rule set, are true.
- Actions *[]BasicAutomationAction `json:"actions,omitempty"`
+// MarshalJSON is the custom marshaler for IoTSecuritySolutionAnalyticsModel.
+func (itssam IoTSecuritySolutionAnalyticsModel) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if itssam.IoTSecuritySolutionAnalyticsModelProperties != nil {
+ objectMap["properties"] = itssam.IoTSecuritySolutionAnalyticsModelProperties
+ }
+ return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for AutomationProperties struct.
-func (ap *AutomationProperties) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for IoTSecuritySolutionAnalyticsModel struct.
+func (itssam *IoTSecuritySolutionAnalyticsModel) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -3513,49 +10923,41 @@ func (ap *AutomationProperties) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
- case "description":
- if v != nil {
- var description string
- err = json.Unmarshal(*v, &description)
- if err != nil {
- return err
- }
- ap.Description = &description
- }
- case "isEnabled":
+ case "properties":
if v != nil {
- var isEnabled bool
- err = json.Unmarshal(*v, &isEnabled)
+ var ioTSecuritySolutionAnalyticsModelProperties IoTSecuritySolutionAnalyticsModelProperties
+ err = json.Unmarshal(*v, &ioTSecuritySolutionAnalyticsModelProperties)
if err != nil {
return err
}
- ap.IsEnabled = &isEnabled
+ itssam.IoTSecuritySolutionAnalyticsModelProperties = &ioTSecuritySolutionAnalyticsModelProperties
}
- case "scopes":
+ case "id":
if v != nil {
- var scopes []AutomationScope
- err = json.Unmarshal(*v, &scopes)
+ var ID string
+ err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
- ap.Scopes = &scopes
+ itssam.ID = &ID
}
- case "sources":
+ case "name":
if v != nil {
- var sources []AutomationSource
- err = json.Unmarshal(*v, &sources)
+ var name string
+ err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
- ap.Sources = &sources
+ itssam.Name = &name
}
- case "actions":
+ case "type":
if v != nil {
- actions, err := unmarshalBasicAutomationActionArray(*v)
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
- ap.Actions = &actions
+ itssam.Type = &typeVar
}
}
}
@@ -3563,77 +10965,97 @@ func (ap *AutomationProperties) UnmarshalJSON(body []byte) error {
return nil
}
-// AutomationRuleSet a rule set which evaluates all its rules upon an event interception. Only when all the
-// included rules in the rule set will be evaluated as 'true', will the event trigger the defined actions.
-type AutomationRuleSet struct {
- Rules *[]AutomationTriggeringRule `json:"rules,omitempty"`
+// IoTSecuritySolutionAnalyticsModelList list of Security analytics of your IoT Security solution
+type IoTSecuritySolutionAnalyticsModelList struct {
+ autorest.Response `json:"-"`
+ // Value - List of Security analytics of your IoT Security solution
+ Value *[]IoTSecuritySolutionAnalyticsModel `json:"value,omitempty"`
+ // NextLink - READ-ONLY; When there is too much alert data for one page, use this URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
}
-// AutomationScope a single automation scope.
-type AutomationScope struct {
- // Description - The resources scope description.
- Description *string `json:"description,omitempty"`
- // ScopePath - The resources scope path. Can be the subscription on which the automation is defined on or a resource group under that subscription (fully qualified Azure resource IDs).
- ScopePath *string `json:"scopePath,omitempty"`
+// MarshalJSON is the custom marshaler for IoTSecuritySolutionAnalyticsModelList.
+func (itssaml IoTSecuritySolutionAnalyticsModelList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if itssaml.Value != nil {
+ objectMap["value"] = itssaml.Value
+ }
+ return json.Marshal(objectMap)
}
-// AutomationSource the source event types which evaluate the security automation set of rules. For example
-// - security alerts and security assessments. To learn more about the supported security events data
-// models schemas - please visit https://aka.ms/ASCAutomationSchemas.
-type AutomationSource struct {
- // EventSource - A valid event source type. Possible values include: 'Assessments', 'Alerts'
- EventSource EventSource `json:"eventSource,omitempty"`
- // RuleSets - A set of rules which evaluate upon event interception. A logical disjunction is applied between defined rule sets (logical 'or').
- RuleSets *[]AutomationRuleSet `json:"ruleSets,omitempty"`
+// IoTSecuritySolutionAnalyticsModelProperties security analytics properties of your IoT Security solution
+type IoTSecuritySolutionAnalyticsModelProperties struct {
+ // Metrics - READ-ONLY; Security analytics of your IoT Security solution.
+ Metrics *IoTSeverityMetrics `json:"metrics,omitempty"`
+ // UnhealthyDeviceCount - READ-ONLY; Number of unhealthy devices within your IoT Security solution.
+ UnhealthyDeviceCount *int32 `json:"unhealthyDeviceCount,omitempty"`
+ // DevicesMetrics - READ-ONLY; List of device metrics by the aggregation date.
+ DevicesMetrics *[]IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem `json:"devicesMetrics,omitempty"`
+ // TopAlertedDevices - List of the 3 devices with the most alerts.
+ TopAlertedDevices *[]IoTSecurityAlertedDevice `json:"topAlertedDevices,omitempty"`
+ // MostPrevalentDeviceAlerts - List of the 3 most prevalent device alerts.
+ MostPrevalentDeviceAlerts *[]IoTSecurityDeviceAlert `json:"mostPrevalentDeviceAlerts,omitempty"`
+ // MostPrevalentDeviceRecommendations - List of the 3 most prevalent device recommendations.
+ MostPrevalentDeviceRecommendations *[]IoTSecurityDeviceRecommendation `json:"mostPrevalentDeviceRecommendations,omitempty"`
}
-// AutomationTriggeringRule a rule which is evaluated upon event interception. The rule is configured by
-// comparing a specific value from the event model to an expected value. This comparison is done by using
-// one of the supported operators set.
-type AutomationTriggeringRule struct {
- // PropertyJPath - The JPath of the entity model property that should be checked.
- PropertyJPath *string `json:"propertyJPath,omitempty"`
- // PropertyType - The data type of the compared operands (string, integer, floating point number or a boolean [true/false]]. Possible values include: 'String', 'Integer', 'Number', 'Boolean'
- PropertyType PropertyType `json:"propertyType,omitempty"`
- // ExpectedValue - The expected value.
- ExpectedValue *string `json:"expectedValue,omitempty"`
- // Operator - A valid comparer operator to use. A case-insensitive comparison will be applied for String PropertyType. Possible values include: 'Equals', 'GreaterThan', 'GreaterThanOrEqualTo', 'LesserThan', 'LesserThanOrEqualTo', 'NotEquals', 'Contains', 'StartsWith', 'EndsWith'
- Operator Operator `json:"operator,omitempty"`
+// MarshalJSON is the custom marshaler for IoTSecuritySolutionAnalyticsModelProperties.
+func (itssamp IoTSecuritySolutionAnalyticsModelProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if itssamp.TopAlertedDevices != nil {
+ objectMap["topAlertedDevices"] = itssamp.TopAlertedDevices
+ }
+ if itssamp.MostPrevalentDeviceAlerts != nil {
+ objectMap["mostPrevalentDeviceAlerts"] = itssamp.MostPrevalentDeviceAlerts
+ }
+ if itssamp.MostPrevalentDeviceRecommendations != nil {
+ objectMap["mostPrevalentDeviceRecommendations"] = itssamp.MostPrevalentDeviceRecommendations
+ }
+ return json.Marshal(objectMap)
}
-// AutomationValidationStatus the security automation model state property bag.
-type AutomationValidationStatus struct {
- autorest.Response `json:"-"`
- // IsValid - Indicates whether the model is valid or not.
- IsValid *bool `json:"isValid,omitempty"`
- // Message - The validation message.
- Message *string `json:"message,omitempty"`
+// IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem ...
+type IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem struct {
+ // Date - Aggregation of IoT Security solution device alert metrics by date.
+ Date *date.Time `json:"date,omitempty"`
+ // DevicesMetrics - Device alert count by severity.
+ DevicesMetrics *IoTSeverityMetrics `json:"devicesMetrics,omitempty"`
}
-// AutoProvisioningSetting auto provisioning setting
-type AutoProvisioningSetting struct {
+// IoTSecuritySolutionModel ioT Security solution configuration and resource information.
+type IoTSecuritySolutionModel struct {
autorest.Response `json:"-"`
- // AutoProvisioningSettingProperties - Auto provisioning setting data
- *AutoProvisioningSettingProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
Name *string `json:"name,omitempty"`
// Type - READ-ONLY; Resource type
Type *string `json:"type,omitempty"`
+ // Tags - Resource tags
+ Tags map[string]*string `json:"tags"`
+ // Location - The resource location.
+ Location *string `json:"location,omitempty"`
+ // IoTSecuritySolutionProperties - Security Solution data
+ *IoTSecuritySolutionProperties `json:"properties,omitempty"`
}
-// MarshalJSON is the custom marshaler for AutoProvisioningSetting.
-func (aps AutoProvisioningSetting) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for IoTSecuritySolutionModel.
+func (itssm IoTSecuritySolutionModel) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if aps.AutoProvisioningSettingProperties != nil {
- objectMap["properties"] = aps.AutoProvisioningSettingProperties
+ if itssm.Tags != nil {
+ objectMap["tags"] = itssm.Tags
+ }
+ if itssm.Location != nil {
+ objectMap["location"] = itssm.Location
+ }
+ if itssm.IoTSecuritySolutionProperties != nil {
+ objectMap["properties"] = itssm.IoTSecuritySolutionProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for AutoProvisioningSetting struct.
-func (aps *AutoProvisioningSetting) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for IoTSecuritySolutionModel struct.
+func (itssm *IoTSecuritySolutionModel) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -3641,15 +11063,6 @@ func (aps *AutoProvisioningSetting) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
- case "properties":
- if v != nil {
- var autoProvisioningSettingProperties AutoProvisioningSettingProperties
- err = json.Unmarshal(*v, &autoProvisioningSettingProperties)
- if err != nil {
- return err
- }
- aps.AutoProvisioningSettingProperties = &autoProvisioningSettingProperties
- }
case "id":
if v != nil {
var ID string
@@ -3657,7 +11070,7 @@ func (aps *AutoProvisioningSetting) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- aps.ID = &ID
+ itssm.ID = &ID
}
case "name":
if v != nil {
@@ -3666,7 +11079,7 @@ func (aps *AutoProvisioningSetting) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- aps.Name = &name
+ itssm.Name = &name
}
case "type":
if v != nil {
@@ -3675,35 +11088,125 @@ func (aps *AutoProvisioningSetting) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- aps.Type = &typeVar
+ itssm.Type = &typeVar
+ }
+ case "tags":
+ if v != nil {
+ var tags map[string]*string
+ err = json.Unmarshal(*v, &tags)
+ if err != nil {
+ return err
+ }
+ itssm.Tags = tags
+ }
+ case "location":
+ if v != nil {
+ var location string
+ err = json.Unmarshal(*v, &location)
+ if err != nil {
+ return err
+ }
+ itssm.Location = &location
+ }
+ case "properties":
+ if v != nil {
+ var ioTSecuritySolutionProperties IoTSecuritySolutionProperties
+ err = json.Unmarshal(*v, &ioTSecuritySolutionProperties)
+ if err != nil {
+ return err
+ }
+ itssm.IoTSecuritySolutionProperties = &ioTSecuritySolutionProperties
}
}
}
- return nil
+ return nil
+}
+
+// IoTSecuritySolutionProperties security Solution setting data
+type IoTSecuritySolutionProperties struct {
+ // Workspace - Workspace resource ID
+ Workspace *string `json:"workspace,omitempty"`
+ // DisplayName - Resource display name.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Status - Status of the IoT Security solution. Possible values include: 'SolutionStatusEnabled', 'SolutionStatusDisabled'
+ Status SolutionStatus `json:"status,omitempty"`
+ // Export - List of additional options for exporting to workspace data.
+ Export *[]ExportData `json:"export,omitempty"`
+ // DisabledDataSources - Disabled data sources. Disabling these data sources compromises the system.
+ DisabledDataSources *[]DataSource `json:"disabledDataSources,omitempty"`
+ // IotHubs - IoT Hub resource IDs
+ IotHubs *[]string `json:"iotHubs,omitempty"`
+ UserDefinedResources *UserDefinedResourcesProperties `json:"userDefinedResources,omitempty"`
+ // AutoDiscoveredResources - READ-ONLY; List of resources that were automatically discovered as relevant to the security solution.
+ AutoDiscoveredResources *[]string `json:"autoDiscoveredResources,omitempty"`
+ RecommendationsConfiguration *[]RecommendationConfigurationProperties `json:"recommendationsConfiguration,omitempty"`
+ // UnmaskedIPLoggingStatus - Unmasked IP address logging status. Possible values include: 'UnmaskedIPLoggingStatusDisabled', 'UnmaskedIPLoggingStatusEnabled'
+ UnmaskedIPLoggingStatus UnmaskedIPLoggingStatus `json:"unmaskedIpLoggingStatus,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for IoTSecuritySolutionProperties.
+func (itssp IoTSecuritySolutionProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if itssp.Workspace != nil {
+ objectMap["workspace"] = itssp.Workspace
+ }
+ if itssp.DisplayName != nil {
+ objectMap["displayName"] = itssp.DisplayName
+ }
+ if itssp.Status != "" {
+ objectMap["status"] = itssp.Status
+ }
+ if itssp.Export != nil {
+ objectMap["export"] = itssp.Export
+ }
+ if itssp.DisabledDataSources != nil {
+ objectMap["disabledDataSources"] = itssp.DisabledDataSources
+ }
+ if itssp.IotHubs != nil {
+ objectMap["iotHubs"] = itssp.IotHubs
+ }
+ if itssp.UserDefinedResources != nil {
+ objectMap["userDefinedResources"] = itssp.UserDefinedResources
+ }
+ if itssp.RecommendationsConfiguration != nil {
+ objectMap["recommendationsConfiguration"] = itssp.RecommendationsConfiguration
+ }
+ if itssp.UnmaskedIPLoggingStatus != "" {
+ objectMap["unmaskedIpLoggingStatus"] = itssp.UnmaskedIPLoggingStatus
+ }
+ return json.Marshal(objectMap)
}
-// AutoProvisioningSettingList list of all the auto provisioning settings response
-type AutoProvisioningSettingList struct {
+// IoTSecuritySolutionsList list of IoT Security solutions.
+type IoTSecuritySolutionsList struct {
autorest.Response `json:"-"`
- // Value - List of all the auto provisioning settings
- Value *[]AutoProvisioningSetting `json:"value,omitempty"`
+ // Value - List of IoT Security solutions
+ Value *[]IoTSecuritySolutionModel `json:"value,omitempty"`
// NextLink - READ-ONLY; The URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// AutoProvisioningSettingListIterator provides access to a complete listing of AutoProvisioningSetting
-// values.
-type AutoProvisioningSettingListIterator struct {
+// MarshalJSON is the custom marshaler for IoTSecuritySolutionsList.
+func (itssl IoTSecuritySolutionsList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if itssl.Value != nil {
+ objectMap["value"] = itssl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// IoTSecuritySolutionsListIterator provides access to a complete listing of IoTSecuritySolutionModel values.
+type IoTSecuritySolutionsListIterator struct {
i int
- page AutoProvisioningSettingListPage
+ page IoTSecuritySolutionsListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *AutoProvisioningSettingListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *IoTSecuritySolutionsListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AutoProvisioningSettingListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecuritySolutionsListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -3728,62 +11231,67 @@ func (iter *AutoProvisioningSettingListIterator) NextWithContext(ctx context.Con
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *AutoProvisioningSettingListIterator) Next() error {
+func (iter *IoTSecuritySolutionsListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter AutoProvisioningSettingListIterator) NotDone() bool {
+func (iter IoTSecuritySolutionsListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter AutoProvisioningSettingListIterator) Response() AutoProvisioningSettingList {
+func (iter IoTSecuritySolutionsListIterator) Response() IoTSecuritySolutionsList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter AutoProvisioningSettingListIterator) Value() AutoProvisioningSetting {
+func (iter IoTSecuritySolutionsListIterator) Value() IoTSecuritySolutionModel {
if !iter.page.NotDone() {
- return AutoProvisioningSetting{}
+ return IoTSecuritySolutionModel{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the AutoProvisioningSettingListIterator type.
-func NewAutoProvisioningSettingListIterator(page AutoProvisioningSettingListPage) AutoProvisioningSettingListIterator {
- return AutoProvisioningSettingListIterator{page: page}
+// Creates a new instance of the IoTSecuritySolutionsListIterator type.
+func NewIoTSecuritySolutionsListIterator(page IoTSecuritySolutionsListPage) IoTSecuritySolutionsListIterator {
+ return IoTSecuritySolutionsListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (apsl AutoProvisioningSettingList) IsEmpty() bool {
- return apsl.Value == nil || len(*apsl.Value) == 0
+func (itssl IoTSecuritySolutionsList) IsEmpty() bool {
+ return itssl.Value == nil || len(*itssl.Value) == 0
}
-// autoProvisioningSettingListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (itssl IoTSecuritySolutionsList) hasNextLink() bool {
+ return itssl.NextLink != nil && len(*itssl.NextLink) != 0
+}
+
+// ioTSecuritySolutionsListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (apsl AutoProvisioningSettingList) autoProvisioningSettingListPreparer(ctx context.Context) (*http.Request, error) {
- if apsl.NextLink == nil || len(to.String(apsl.NextLink)) < 1 {
+func (itssl IoTSecuritySolutionsList) ioTSecuritySolutionsListPreparer(ctx context.Context) (*http.Request, error) {
+ if !itssl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(apsl.NextLink)))
+ autorest.WithBaseURL(to.String(itssl.NextLink)))
}
-// AutoProvisioningSettingListPage contains a page of AutoProvisioningSetting values.
-type AutoProvisioningSettingListPage struct {
- fn func(context.Context, AutoProvisioningSettingList) (AutoProvisioningSettingList, error)
- apsl AutoProvisioningSettingList
+// IoTSecuritySolutionsListPage contains a page of IoTSecuritySolutionModel values.
+type IoTSecuritySolutionsListPage struct {
+ fn func(context.Context, IoTSecuritySolutionsList) (IoTSecuritySolutionsList, error)
+ itssl IoTSecuritySolutionsList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *AutoProvisioningSettingListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *IoTSecuritySolutionsListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/AutoProvisioningSettingListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecuritySolutionsListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -3792,182 +11300,253 @@ func (page *AutoProvisioningSettingListPage) NextWithContext(ctx context.Context
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.apsl)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.itssl)
+ if err != nil {
+ return err
+ }
+ page.itssl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.apsl = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *AutoProvisioningSettingListPage) Next() error {
+func (page *IoTSecuritySolutionsListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page AutoProvisioningSettingListPage) NotDone() bool {
- return !page.apsl.IsEmpty()
+func (page IoTSecuritySolutionsListPage) NotDone() bool {
+ return !page.itssl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page AutoProvisioningSettingListPage) Response() AutoProvisioningSettingList {
- return page.apsl
+func (page IoTSecuritySolutionsListPage) Response() IoTSecuritySolutionsList {
+ return page.itssl
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page AutoProvisioningSettingListPage) Values() []AutoProvisioningSetting {
- if page.apsl.IsEmpty() {
+func (page IoTSecuritySolutionsListPage) Values() []IoTSecuritySolutionModel {
+ if page.itssl.IsEmpty() {
return nil
}
- return *page.apsl.Value
+ return *page.itssl.Value
}
-// Creates a new instance of the AutoProvisioningSettingListPage type.
-func NewAutoProvisioningSettingListPage(getNextPage func(context.Context, AutoProvisioningSettingList) (AutoProvisioningSettingList, error)) AutoProvisioningSettingListPage {
- return AutoProvisioningSettingListPage{fn: getNextPage}
+// Creates a new instance of the IoTSecuritySolutionsListPage type.
+func NewIoTSecuritySolutionsListPage(getNextPage func(context.Context, IoTSecuritySolutionsList) (IoTSecuritySolutionsList, error)) IoTSecuritySolutionsListPage {
+ return IoTSecuritySolutionsListPage{fn: getNextPage}
}
-// AutoProvisioningSettingProperties describes properties of an auto provisioning setting
-type AutoProvisioningSettingProperties struct {
- // AutoProvision - Describes what kind of security agent provisioning action to take. Possible values include: 'AutoProvisionOn', 'AutoProvisionOff'
- AutoProvision AutoProvision `json:"autoProvision,omitempty"`
+// IoTSeverityMetrics ioT Security solution analytics severity metrics.
+type IoTSeverityMetrics struct {
+ // High - Count of high severity alerts/recommendations.
+ High *int32 `json:"high,omitempty"`
+ // Medium - Count of medium severity alerts/recommendations.
+ Medium *int32 `json:"medium,omitempty"`
+ // Low - Count of low severity alerts/recommendations.
+ Low *int32 `json:"low,omitempty"`
}
-// AzureResourceDetails details of the Azure resource that was assessed
-type AzureResourceDetails struct {
- // ID - READ-ONLY; Azure resource Id of the assessed resource
- ID *string `json:"id,omitempty"`
- // Source - Possible values include: 'SourceResourceDetails', 'SourceOnPremise', 'SourceAzure'
- Source Source `json:"source,omitempty"`
+// JitNetworkAccessPoliciesList ...
+type JitNetworkAccessPoliciesList struct {
+ autorest.Response `json:"-"`
+ Value *[]JitNetworkAccessPolicy `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
}
-// MarshalJSON is the custom marshaler for AzureResourceDetails.
-func (ard AzureResourceDetails) MarshalJSON() ([]byte, error) {
- ard.Source = SourceAzure
+// MarshalJSON is the custom marshaler for JitNetworkAccessPoliciesList.
+func (jnapl JitNetworkAccessPoliciesList) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if ard.Source != "" {
- objectMap["source"] = ard.Source
+ if jnapl.Value != nil {
+ objectMap["value"] = jnapl.Value
}
return json.Marshal(objectMap)
}
-// AsOnPremiseResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
-func (ard AzureResourceDetails) AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool) {
- return nil, false
+// JitNetworkAccessPoliciesListIterator provides access to a complete listing of JitNetworkAccessPolicy values.
+type JitNetworkAccessPoliciesListIterator struct {
+ i int
+ page JitNetworkAccessPoliciesListPage
}
-// AsAzureResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
-func (ard AzureResourceDetails) AsAzureResourceDetails() (*AzureResourceDetails, bool) {
- return &ard, true
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *JitNetworkAccessPoliciesListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/JitNetworkAccessPoliciesListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
}
-// AsResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
-func (ard AzureResourceDetails) AsResourceDetails() (*ResourceDetails, bool) {
- return nil, false
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *JitNetworkAccessPoliciesListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
}
-// AsBasicResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
-func (ard AzureResourceDetails) AsBasicResourceDetails() (BasicResourceDetails, bool) {
- return &ard, true
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter JitNetworkAccessPoliciesListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
-// CefExternalSecuritySolution represents a security solution which sends CEF logs to an OMS workspace
-type CefExternalSecuritySolution struct {
- Properties *CefSolutionProperties `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
- // Location - READ-ONLY; Location where the resource is stored
- Location *string `json:"location,omitempty"`
- // Kind - Possible values include: 'KindExternalSecuritySolution', 'KindCEF', 'KindATA', 'KindAAD'
- Kind KindEnum `json:"kind,omitempty"`
+// Response returns the raw server response from the last page request.
+func (iter JitNetworkAccessPoliciesListIterator) Response() JitNetworkAccessPoliciesList {
+ return iter.page.Response()
}
-// MarshalJSON is the custom marshaler for CefExternalSecuritySolution.
-func (cess CefExternalSecuritySolution) MarshalJSON() ([]byte, error) {
- cess.Kind = KindCEF
- objectMap := make(map[string]interface{})
- if cess.Properties != nil {
- objectMap["properties"] = cess.Properties
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter JitNetworkAccessPoliciesListIterator) Value() JitNetworkAccessPolicy {
+ if !iter.page.NotDone() {
+ return JitNetworkAccessPolicy{}
}
- if cess.Kind != "" {
- objectMap["kind"] = cess.Kind
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the JitNetworkAccessPoliciesListIterator type.
+func NewJitNetworkAccessPoliciesListIterator(page JitNetworkAccessPoliciesListPage) JitNetworkAccessPoliciesListIterator {
+ return JitNetworkAccessPoliciesListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (jnapl JitNetworkAccessPoliciesList) IsEmpty() bool {
+ return jnapl.Value == nil || len(*jnapl.Value) == 0
+}
+
+// hasNextLink returns true if the NextLink is not empty.
+func (jnapl JitNetworkAccessPoliciesList) hasNextLink() bool {
+ return jnapl.NextLink != nil && len(*jnapl.NextLink) != 0
+}
+
+// jitNetworkAccessPoliciesListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (jnapl JitNetworkAccessPoliciesList) jitNetworkAccessPoliciesListPreparer(ctx context.Context) (*http.Request, error) {
+ if !jnapl.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(jnapl.NextLink)))
+}
+
+// JitNetworkAccessPoliciesListPage contains a page of JitNetworkAccessPolicy values.
+type JitNetworkAccessPoliciesListPage struct {
+ fn func(context.Context, JitNetworkAccessPoliciesList) (JitNetworkAccessPoliciesList, error)
+ jnapl JitNetworkAccessPoliciesList
+}
+
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *JitNetworkAccessPoliciesListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/JitNetworkAccessPoliciesListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ for {
+ next, err := page.fn(ctx, page.jnapl)
+ if err != nil {
+ return err
+ }
+ page.jnapl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- return json.Marshal(objectMap)
+ return nil
}
-// AsCefExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
-func (cess CefExternalSecuritySolution) AsCefExternalSecuritySolution() (*CefExternalSecuritySolution, bool) {
- return &cess, true
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *JitNetworkAccessPoliciesListPage) Next() error {
+ return page.NextWithContext(context.Background())
}
-// AsAtaExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
-func (cess CefExternalSecuritySolution) AsAtaExternalSecuritySolution() (*AtaExternalSecuritySolution, bool) {
- return nil, false
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page JitNetworkAccessPoliciesListPage) NotDone() bool {
+ return !page.jnapl.IsEmpty()
}
-// AsAadExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
-func (cess CefExternalSecuritySolution) AsAadExternalSecuritySolution() (*AadExternalSecuritySolution, bool) {
- return nil, false
+// Response returns the raw server response from the last page request.
+func (page JitNetworkAccessPoliciesListPage) Response() JitNetworkAccessPoliciesList {
+ return page.jnapl
}
-// AsExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
-func (cess CefExternalSecuritySolution) AsExternalSecuritySolution() (*ExternalSecuritySolution, bool) {
- return nil, false
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page JitNetworkAccessPoliciesListPage) Values() []JitNetworkAccessPolicy {
+ if page.jnapl.IsEmpty() {
+ return nil
+ }
+ return *page.jnapl.Value
}
-// AsBasicExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
-func (cess CefExternalSecuritySolution) AsBasicExternalSecuritySolution() (BasicExternalSecuritySolution, bool) {
- return &cess, true
+// Creates a new instance of the JitNetworkAccessPoliciesListPage type.
+func NewJitNetworkAccessPoliciesListPage(getNextPage func(context.Context, JitNetworkAccessPoliciesList) (JitNetworkAccessPoliciesList, error)) JitNetworkAccessPoliciesListPage {
+ return JitNetworkAccessPoliciesListPage{fn: getNextPage}
}
-// CefSolutionProperties ...
-type CefSolutionProperties struct {
- Hostname *string `json:"hostname,omitempty"`
- Agent *string `json:"agent,omitempty"`
- LastEventReceived *string `json:"lastEventReceived,omitempty"`
- // AdditionalProperties - Unmatched properties from the message are deserialized this collection
- AdditionalProperties map[string]interface{} `json:""`
- DeviceVendor *string `json:"deviceVendor,omitempty"`
- DeviceType *string `json:"deviceType,omitempty"`
- Workspace *ConnectedWorkspace `json:"workspace,omitempty"`
+// JitNetworkAccessPolicy ...
+type JitNetworkAccessPolicy struct {
+ autorest.Response `json:"-"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Kind - Kind of the resource
+ Kind *string `json:"kind,omitempty"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ *JitNetworkAccessPolicyProperties `json:"properties,omitempty"`
}
-// MarshalJSON is the custom marshaler for CefSolutionProperties.
-func (csp CefSolutionProperties) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for JitNetworkAccessPolicy.
+func (jnap JitNetworkAccessPolicy) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if csp.Hostname != nil {
- objectMap["hostname"] = csp.Hostname
- }
- if csp.Agent != nil {
- objectMap["agent"] = csp.Agent
- }
- if csp.LastEventReceived != nil {
- objectMap["lastEventReceived"] = csp.LastEventReceived
- }
- if csp.DeviceVendor != nil {
- objectMap["deviceVendor"] = csp.DeviceVendor
- }
- if csp.DeviceType != nil {
- objectMap["deviceType"] = csp.DeviceType
- }
- if csp.Workspace != nil {
- objectMap["workspace"] = csp.Workspace
+ if jnap.Kind != nil {
+ objectMap["kind"] = jnap.Kind
}
- for k, v := range csp.AdditionalProperties {
- objectMap[k] = v
+ if jnap.JitNetworkAccessPolicyProperties != nil {
+ objectMap["properties"] = jnap.JitNetworkAccessPolicyProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for CefSolutionProperties struct.
-func (csp *CefSolutionProperties) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for JitNetworkAccessPolicy struct.
+func (jnap *JitNetworkAccessPolicy) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -3975,71 +11554,59 @@ func (csp *CefSolutionProperties) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
- case "hostname":
- if v != nil {
- var hostname string
- err = json.Unmarshal(*v, &hostname)
- if err != nil {
- return err
- }
- csp.Hostname = &hostname
- }
- case "agent":
+ case "id":
if v != nil {
- var agent string
- err = json.Unmarshal(*v, &agent)
+ var ID string
+ err = json.Unmarshal(*v, &ID)
if err != nil {
return err
}
- csp.Agent = &agent
+ jnap.ID = &ID
}
- case "lastEventReceived":
+ case "name":
if v != nil {
- var lastEventReceived string
- err = json.Unmarshal(*v, &lastEventReceived)
+ var name string
+ err = json.Unmarshal(*v, &name)
if err != nil {
return err
}
- csp.LastEventReceived = &lastEventReceived
+ jnap.Name = &name
}
- default:
+ case "type":
if v != nil {
- var additionalProperties interface{}
- err = json.Unmarshal(*v, &additionalProperties)
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
- if csp.AdditionalProperties == nil {
- csp.AdditionalProperties = make(map[string]interface{})
- }
- csp.AdditionalProperties[k] = additionalProperties
+ jnap.Type = &typeVar
}
- case "deviceVendor":
+ case "kind":
if v != nil {
- var deviceVendor string
- err = json.Unmarshal(*v, &deviceVendor)
+ var kind string
+ err = json.Unmarshal(*v, &kind)
if err != nil {
return err
}
- csp.DeviceVendor = &deviceVendor
+ jnap.Kind = &kind
}
- case "deviceType":
+ case "location":
if v != nil {
- var deviceType string
- err = json.Unmarshal(*v, &deviceType)
+ var location string
+ err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
- csp.DeviceType = &deviceType
+ jnap.Location = &location
}
- case "workspace":
+ case "properties":
if v != nil {
- var workspace ConnectedWorkspace
- err = json.Unmarshal(*v, &workspace)
+ var jitNetworkAccessPolicyProperties JitNetworkAccessPolicyProperties
+ err = json.Unmarshal(*v, &jitNetworkAccessPolicyProperties)
if err != nil {
return err
}
- csp.Workspace = &workspace
+ jnap.JitNetworkAccessPolicyProperties = &jitNetworkAccessPolicyProperties
}
}
}
@@ -4047,1608 +11614,1374 @@ func (csp *CefSolutionProperties) UnmarshalJSON(body []byte) error {
return nil
}
-// CloudError error response structure.
-type CloudError struct {
- // CloudErrorBody - Error data
- *CloudErrorBody `json:"error,omitempty"`
+// JitNetworkAccessPolicyInitiatePort ...
+type JitNetworkAccessPolicyInitiatePort struct {
+ Number *int32 `json:"number,omitempty"`
+ // AllowedSourceAddressPrefix - Source of the allowed traffic. If omitted, the request will be for the source IP address of the initiate request.
+ AllowedSourceAddressPrefix *string `json:"allowedSourceAddressPrefix,omitempty"`
+ // EndTimeUtc - The time to close the request in UTC
+ EndTimeUtc *date.Time `json:"endTimeUtc,omitempty"`
+}
+
+// JitNetworkAccessPolicyInitiateRequest ...
+type JitNetworkAccessPolicyInitiateRequest struct {
+ // VirtualMachines - A list of virtual machines & ports to open access for
+ VirtualMachines *[]JitNetworkAccessPolicyInitiateVirtualMachine `json:"virtualMachines,omitempty"`
+ // Justification - The justification for making the initiate request
+ Justification *string `json:"justification,omitempty"`
+}
+
+// JitNetworkAccessPolicyInitiateVirtualMachine ...
+type JitNetworkAccessPolicyInitiateVirtualMachine struct {
+ // ID - Resource ID of the virtual machine that is linked to this policy
+ ID *string `json:"id,omitempty"`
+ // Ports - The ports to open for the resource with the `id`
+ Ports *[]JitNetworkAccessPolicyInitiatePort `json:"ports,omitempty"`
+}
+
+// JitNetworkAccessPolicyProperties ...
+type JitNetworkAccessPolicyProperties struct {
+ // VirtualMachines - Configurations for Microsoft.Compute/virtualMachines resource type.
+ VirtualMachines *[]JitNetworkAccessPolicyVirtualMachine `json:"virtualMachines,omitempty"`
+ Requests *[]JitNetworkAccessRequest `json:"requests,omitempty"`
+ // ProvisioningState - READ-ONLY; Gets the provisioning state of the Just-in-Time policy.
+ ProvisioningState *string `json:"provisioningState,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for JitNetworkAccessPolicyProperties.
+func (jnapp JitNetworkAccessPolicyProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if jnapp.VirtualMachines != nil {
+ objectMap["virtualMachines"] = jnapp.VirtualMachines
+ }
+ if jnapp.Requests != nil {
+ objectMap["requests"] = jnapp.Requests
+ }
+ return json.Marshal(objectMap)
+}
+
+// JitNetworkAccessPolicyVirtualMachine ...
+type JitNetworkAccessPolicyVirtualMachine struct {
+ // ID - Resource ID of the virtual machine that is linked to this policy
+ ID *string `json:"id,omitempty"`
+ // Ports - Port configurations for the virtual machine
+ Ports *[]JitNetworkAccessPortRule `json:"ports,omitempty"`
+ // PublicIPAddress - Public IP address of the Azure Firewall that is linked to this policy, if applicable
+ PublicIPAddress *string `json:"publicIpAddress,omitempty"`
+}
+
+// JitNetworkAccessPortRule ...
+type JitNetworkAccessPortRule struct {
+ Number *int32 `json:"number,omitempty"`
+ // Protocol - Possible values include: 'TCP', 'UDP', 'All'
+ Protocol Protocol `json:"protocol,omitempty"`
+ // AllowedSourceAddressPrefix - Mutually exclusive with the "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example "192.168.0.3" or "192.168.0.0/16".
+ AllowedSourceAddressPrefix *string `json:"allowedSourceAddressPrefix,omitempty"`
+ // AllowedSourceAddressPrefixes - Mutually exclusive with the "allowedSourceAddressPrefix" parameter.
+ AllowedSourceAddressPrefixes *[]string `json:"allowedSourceAddressPrefixes,omitempty"`
+ // MaxRequestAccessDuration - Maximum duration requests can be made for. In ISO 8601 duration format. Minimum 5 minutes, maximum 1 day
+ MaxRequestAccessDuration *string `json:"maxRequestAccessDuration,omitempty"`
+}
+
+// JitNetworkAccessRequest ...
+type JitNetworkAccessRequest struct {
+ autorest.Response `json:"-"`
+ VirtualMachines *[]JitNetworkAccessRequestVirtualMachine `json:"virtualMachines,omitempty"`
+ // StartTimeUtc - The start time of the request in UTC
+ StartTimeUtc *date.Time `json:"startTimeUtc,omitempty"`
+ // Requestor - The identity of the person who made the request
+ Requestor *string `json:"requestor,omitempty"`
+ // Justification - The justification for making the initiate request
+ Justification *string `json:"justification,omitempty"`
+}
+
+// JitNetworkAccessRequestPort ...
+type JitNetworkAccessRequestPort struct {
+ Number *int32 `json:"number,omitempty"`
+ // AllowedSourceAddressPrefix - Mutually exclusive with the "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example "192.168.0.3" or "192.168.0.0/16".
+ AllowedSourceAddressPrefix *string `json:"allowedSourceAddressPrefix,omitempty"`
+ // AllowedSourceAddressPrefixes - Mutually exclusive with the "allowedSourceAddressPrefix" parameter.
+ AllowedSourceAddressPrefixes *[]string `json:"allowedSourceAddressPrefixes,omitempty"`
+ // EndTimeUtc - The date & time at which the request ends in UTC
+ EndTimeUtc *date.Time `json:"endTimeUtc,omitempty"`
+ // Status - The status of the port. Possible values include: 'Revoked', 'Initiated'
+ Status Status `json:"status,omitempty"`
+ // StatusReason - A description of why the `status` has its value. Possible values include: 'StatusReasonExpired', 'StatusReasonUserRequested', 'StatusReasonNewerRequestInitiated'
+ StatusReason StatusReason `json:"statusReason,omitempty"`
+ // MappedPort - The port which is mapped to this port's `number` in the Azure Firewall, if applicable
+ MappedPort *int32 `json:"mappedPort,omitempty"`
+}
+
+// JitNetworkAccessRequestVirtualMachine ...
+type JitNetworkAccessRequestVirtualMachine struct {
+ // ID - Resource ID of the virtual machine that is linked to this policy
+ ID *string `json:"id,omitempty"`
+ // Ports - The ports that were opened for the virtual machine
+ Ports *[]JitNetworkAccessRequestPort `json:"ports,omitempty"`
+}
+
+// Kind describes an Azure resource with kind
+type Kind struct {
+ // Kind - Kind of the resource
+ Kind *string `json:"kind,omitempty"`
+}
+
+// BasicListCustomAlertRule a List custom alert rule.
+type BasicListCustomAlertRule interface {
+ AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool)
+ AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool)
+ AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool)
+ AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool)
+ AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool)
+ AsProcessNotAllowed() (*ProcessNotAllowed, bool)
+ AsListCustomAlertRule() (*ListCustomAlertRule, bool)
}
-// MarshalJSON is the custom marshaler for CloudError.
-func (ce CloudError) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- if ce.CloudErrorBody != nil {
- objectMap["error"] = ce.CloudErrorBody
- }
- return json.Marshal(objectMap)
+// ListCustomAlertRule a List custom alert rule.
+type ListCustomAlertRule struct {
+ // ValueType - READ-ONLY; The value type of the items in the list. Possible values include: 'ValueTypeIPCidr', 'ValueTypeString'
+ ValueType ValueType `json:"valueType,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
}
-// UnmarshalJSON is the custom unmarshaler for CloudError struct.
-func (ce *CloudError) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
+func unmarshalBasicListCustomAlertRule(body []byte) (BasicListCustomAlertRule, error) {
+ var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
- case "error":
- if v != nil {
- var cloudErrorBody CloudErrorBody
- err = json.Unmarshal(*v, &cloudErrorBody)
- if err != nil {
- return err
- }
- ce.CloudErrorBody = &cloudErrorBody
- }
- }
+ return nil, err
}
- return nil
+ switch m["ruleType"] {
+ case string(RuleTypeAllowlistCustomAlertRule):
+ var acar AllowlistCustomAlertRule
+ err := json.Unmarshal(body, &acar)
+ return acar, err
+ case string(RuleTypeDenylistCustomAlertRule):
+ var dcar DenylistCustomAlertRule
+ err := json.Unmarshal(body, &dcar)
+ return dcar, err
+ case string(RuleTypeConnectionToIPNotAllowed):
+ var ctina ConnectionToIPNotAllowed
+ err := json.Unmarshal(body, &ctina)
+ return ctina, err
+ case string(RuleTypeLocalUserNotAllowed):
+ var luna LocalUserNotAllowed
+ err := json.Unmarshal(body, &luna)
+ return luna, err
+ case string(RuleTypeProcessNotAllowed):
+ var pna ProcessNotAllowed
+ err := json.Unmarshal(body, &pna)
+ return pna, err
+ default:
+ var lcar ListCustomAlertRule
+ err := json.Unmarshal(body, &lcar)
+ return lcar, err
+ }
}
+func unmarshalBasicListCustomAlertRuleArray(body []byte) ([]BasicListCustomAlertRule, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
+ if err != nil {
+ return nil, err
+ }
-// CloudErrorBody error details.
-type CloudErrorBody struct {
- // Code - READ-ONLY; An identifier for the error. Codes are invariant and are intended to be consumed programmatically.
- Code *string `json:"code,omitempty"`
- // Message - READ-ONLY; A message describing the error, intended to be suitable for display in a user interface.
- Message *string `json:"message,omitempty"`
-}
+ lcarArray := make([]BasicListCustomAlertRule, len(rawMessages))
-// Compliance compliance of a scope
-type Compliance struct {
- autorest.Response `json:"-"`
- // ComplianceProperties - Compliance data
- *ComplianceProperties `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
+ for index, rawMessage := range rawMessages {
+ lcar, err := unmarshalBasicListCustomAlertRule(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ lcarArray[index] = lcar
+ }
+ return lcarArray, nil
}
-// MarshalJSON is the custom marshaler for Compliance.
-func (c Compliance) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) MarshalJSON() ([]byte, error) {
+ lcar.RuleType = RuleTypeListCustomAlertRule
objectMap := make(map[string]interface{})
- if c.ComplianceProperties != nil {
- objectMap["properties"] = c.ComplianceProperties
+ if lcar.IsEnabled != nil {
+ objectMap["isEnabled"] = lcar.IsEnabled
+ }
+ if lcar.RuleType != "" {
+ objectMap["ruleType"] = lcar.RuleType
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for Compliance struct.
-func (c *Compliance) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
- if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
- case "properties":
- if v != nil {
- var complianceProperties ComplianceProperties
- err = json.Unmarshal(*v, &complianceProperties)
- if err != nil {
- return err
- }
- c.ComplianceProperties = &complianceProperties
- }
- case "id":
- if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- c.ID = &ID
- }
- case "name":
- if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
- if err != nil {
- return err
- }
- c.Name = &name
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- c.Type = &typeVar
- }
- }
- }
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
- return nil
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return nil, false
}
-// ComplianceList list of Compliance objects response
-type ComplianceList struct {
- autorest.Response `json:"-"`
- // Value - List of Compliance objects
- Value *[]Compliance `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
}
-// ComplianceListIterator provides access to a complete listing of Compliance values.
-type ComplianceListIterator struct {
- i int
- page ComplianceListPage
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return nil, false
}
-// NextWithContext advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-func (iter *ComplianceListIterator) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/ComplianceListIterator.NextWithContext")
- defer func() {
- sc := -1
- if iter.Response().Response.Response != nil {
- sc = iter.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- iter.i++
- if iter.i < len(iter.page.Values()) {
- return nil
- }
- err = iter.page.NextWithContext(ctx)
- if err != nil {
- iter.i--
- return err
- }
- iter.i = 0
- return nil
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// Next advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (iter *ComplianceListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter ComplianceListIterator) NotDone() bool {
- return iter.page.NotDone() && iter.i < len(iter.page.Values())
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter ComplianceListIterator) Response() ComplianceList {
- return iter.page.Response()
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return &lcar, true
}
-// Value returns the current value or a zero-initialized value if the
-// iterator has advanced beyond the end of the collection.
-func (iter ComplianceListIterator) Value() Compliance {
- if !iter.page.NotDone() {
- return Compliance{}
- }
- return iter.page.Values()[iter.i]
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return &lcar, true
}
-// Creates a new instance of the ComplianceListIterator type.
-func NewComplianceListIterator(page ComplianceListPage) ComplianceListIterator {
- return ComplianceListIterator{page: page}
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (cl ComplianceList) IsEmpty() bool {
- return cl.Value == nil || len(*cl.Value) == 0
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
}
-// complianceListPreparer prepares a request to retrieve the next set of results.
-// It returns nil if no more results exist.
-func (cl ComplianceList) complianceListPreparer(ctx context.Context) (*http.Request, error) {
- if cl.NextLink == nil || len(to.String(cl.NextLink)) < 1 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(cl.NextLink)))
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
}
-// ComplianceListPage contains a page of Compliance values.
-type ComplianceListPage struct {
- fn func(context.Context, ComplianceList) (ComplianceList, error)
- cl ComplianceList
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
}
-// NextWithContext advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-func (page *ComplianceListPage) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/ComplianceListPage.NextWithContext")
- defer func() {
- sc := -1
- if page.Response().Response.Response != nil {
- sc = page.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- next, err := page.fn(ctx, page.cl)
- if err != nil {
- return err
- }
- page.cl = next
- return nil
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
}
-// Next advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (page *ComplianceListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page ComplianceListPage) NotDone() bool {
- return !page.cl.IsEmpty()
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page ComplianceListPage) Response() ComplianceList {
- return page.cl
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
}
-// Values returns the slice of values for the current page or nil if there are no values.
-func (page ComplianceListPage) Values() []Compliance {
- if page.cl.IsEmpty() {
- return nil
- }
- return *page.cl.Value
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the ComplianceListPage type.
-func NewComplianceListPage(getNextPage func(context.Context, ComplianceList) (ComplianceList, error)) ComplianceListPage {
- return ComplianceListPage{fn: getNextPage}
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
}
-// ComplianceProperties the Compliance score (percentage) of a Subscription is a sum of all Resources'
-// Compliances under the given Subscription. A Resource Compliance is defined as the compliant ('healthy')
-// Policy Definitions out of all Policy Definitions applicable to a given resource.
-type ComplianceProperties struct {
- // AssessmentTimestampUtcDate - READ-ONLY; The timestamp when the Compliance calculation was conducted.
- AssessmentTimestampUtcDate *date.Time `json:"assessmentTimestampUtcDate,omitempty"`
- // ResourceCount - READ-ONLY; The resource count of the given subscription for which the Compliance calculation was conducted (needed for Management Group Compliance calculation).
- ResourceCount *int32 `json:"resourceCount,omitempty"`
- // AssessmentResult - READ-ONLY; An array of segment, which is the actually the compliance assessment.
- AssessmentResult *[]ComplianceSegment `json:"assessmentResult,omitempty"`
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
}
-// ComplianceResult a compliance result
-type ComplianceResult struct {
- autorest.Response `json:"-"`
- // ComplianceResultProperties - Compliance result data
- *ComplianceResultProperties `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &lcar, true
}
-// MarshalJSON is the custom marshaler for ComplianceResult.
-func (cr ComplianceResult) MarshalJSON() ([]byte, error) {
+// LocalUserNotAllowed login by a local user that isn't allowed. Allow list consists of login names to allow.
+type LocalUserNotAllowed struct {
+ // AllowlistValues - The values to allow. The format of the values depends on the rule type.
+ AllowlistValues *[]string `json:"allowlistValues,omitempty"`
+ // ValueType - READ-ONLY; The value type of the items in the list. Possible values include: 'ValueTypeIPCidr', 'ValueTypeString'
+ ValueType ValueType `json:"valueType,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) MarshalJSON() ([]byte, error) {
+ luna.RuleType = RuleTypeLocalUserNotAllowed
objectMap := make(map[string]interface{})
- if cr.ComplianceResultProperties != nil {
- objectMap["properties"] = cr.ComplianceResultProperties
+ if luna.AllowlistValues != nil {
+ objectMap["allowlistValues"] = luna.AllowlistValues
+ }
+ if luna.IsEnabled != nil {
+ objectMap["isEnabled"] = luna.IsEnabled
+ }
+ if luna.RuleType != "" {
+ objectMap["ruleType"] = luna.RuleType
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for ComplianceResult struct.
-func (cr *ComplianceResult) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
- if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
- case "properties":
- if v != nil {
- var complianceResultProperties ComplianceResultProperties
- err = json.Unmarshal(*v, &complianceResultProperties)
- if err != nil {
- return err
- }
- cr.ComplianceResultProperties = &complianceResultProperties
- }
- case "id":
- if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- cr.ID = &ID
- }
- case "name":
- if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
- if err != nil {
- return err
- }
- cr.Name = &name
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- cr.Type = &typeVar
- }
- }
- }
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
- return nil
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return nil, false
}
-// ComplianceResultList list of compliance results response
-type ComplianceResultList struct {
- autorest.Response `json:"-"`
- // Value - List of compliance results
- Value *[]ComplianceResult `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
}
-// ComplianceResultListIterator provides access to a complete listing of ComplianceResult values.
-type ComplianceResultListIterator struct {
- i int
- page ComplianceResultListPage
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return nil, false
}
-// NextWithContext advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-func (iter *ComplianceResultListIterator) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/ComplianceResultListIterator.NextWithContext")
- defer func() {
- sc := -1
- if iter.Response().Response.Response != nil {
- sc = iter.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- iter.i++
- if iter.i < len(iter.page.Values()) {
- return nil
- }
- err = iter.page.NextWithContext(ctx)
- if err != nil {
- iter.i--
- return err
- }
- iter.i = 0
- return nil
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// Next advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (iter *ComplianceResultListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return &luna, true
}
-// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter ComplianceResultListIterator) NotDone() bool {
- return iter.page.NotDone() && iter.i < len(iter.page.Values())
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter ComplianceResultListIterator) Response() ComplianceResultList {
- return iter.page.Response()
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
}
-// Value returns the current value or a zero-initialized value if the
-// iterator has advanced beyond the end of the collection.
-func (iter ComplianceResultListIterator) Value() ComplianceResult {
- if !iter.page.NotDone() {
- return ComplianceResult{}
- }
- return iter.page.Values()[iter.i]
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return &luna, true
}
-// Creates a new instance of the ComplianceResultListIterator type.
-func NewComplianceResultListIterator(page ComplianceResultListPage) ComplianceResultListIterator {
- return ComplianceResultListIterator{page: page}
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (crl ComplianceResultList) IsEmpty() bool {
- return crl.Value == nil || len(*crl.Value) == 0
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return &luna, true
}
-// complianceResultListPreparer prepares a request to retrieve the next set of results.
-// It returns nil if no more results exist.
-func (crl ComplianceResultList) complianceResultListPreparer(ctx context.Context) (*http.Request, error) {
- if crl.NextLink == nil || len(to.String(crl.NextLink)) < 1 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(crl.NextLink)))
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
}
-// ComplianceResultListPage contains a page of ComplianceResult values.
-type ComplianceResultListPage struct {
- fn func(context.Context, ComplianceResultList) (ComplianceResultList, error)
- crl ComplianceResultList
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
}
-// NextWithContext advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-func (page *ComplianceResultListPage) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/ComplianceResultListPage.NextWithContext")
- defer func() {
- sc := -1
- if page.Response().Response.Response != nil {
- sc = page.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- next, err := page.fn(ctx, page.crl)
- if err != nil {
- return err
- }
- page.crl = next
- return nil
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Next advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (page *ComplianceResultListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page ComplianceResultListPage) NotDone() bool {
- return !page.crl.IsEmpty()
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page ComplianceResultListPage) Response() ComplianceResultList {
- return page.crl
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Values returns the slice of values for the current page or nil if there are no values.
-func (page ComplianceResultListPage) Values() []ComplianceResult {
- if page.crl.IsEmpty() {
- return nil
- }
- return *page.crl.Value
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the ComplianceResultListPage type.
-func NewComplianceResultListPage(getNextPage func(context.Context, ComplianceResultList) (ComplianceResultList, error)) ComplianceResultListPage {
- return ComplianceResultListPage{fn: getNextPage}
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
}
-// ComplianceResultProperties compliance result data
-type ComplianceResultProperties struct {
- // ResourceStatus - READ-ONLY; The status of the resource regarding a single assessment. Possible values include: 'ResourceStatusHealthy', 'ResourceStatusNotApplicable', 'ResourceStatusOffByPolicy', 'ResourceStatusNotHealthy'
- ResourceStatus ResourceStatus `json:"resourceStatus,omitempty"`
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
}
-// ComplianceSegment a segment of a compliance assessment.
-type ComplianceSegment struct {
- // SegmentType - READ-ONLY; The segment type, e.g. compliant, non-compliance, insufficient coverage, N/A, etc.
- SegmentType *string `json:"segmentType,omitempty"`
- // Percentage - READ-ONLY; The size (%) of the segment.
- Percentage *float64 `json:"percentage,omitempty"`
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
}
-// ConnectableResource describes the allowed inbound and outbound traffic of an Azure resource
-type ConnectableResource struct {
- // ID - READ-ONLY; The Azure resource id
- ID *string `json:"id,omitempty"`
- // InboundConnectedResources - READ-ONLY; The list of Azure resources that the resource has inbound allowed connection from
- InboundConnectedResources *[]ConnectedResource `json:"inboundConnectedResources,omitempty"`
- // OutboundConnectedResources - READ-ONLY; The list of Azure resources that the resource has outbound allowed connection to
- OutboundConnectedResources *[]ConnectedResource `json:"outboundConnectedResources,omitempty"`
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
}
-// ConnectedResource describes properties of a connected resource
-type ConnectedResource struct {
- // ConnectedResourceID - READ-ONLY; The Azure resource id of the connected resource
- ConnectedResourceID *string `json:"connectedResourceId,omitempty"`
- // TCPPorts - READ-ONLY; The allowed tcp ports
- TCPPorts *string `json:"tcpPorts,omitempty"`
- // UDPPorts - READ-ONLY; The allowed udp ports
- UDPPorts *string `json:"udpPorts,omitempty"`
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &luna, true
}
-// ConnectedWorkspace ...
-type ConnectedWorkspace struct {
- // ID - Azure resource ID of the connected OMS workspace
- ID *string `json:"id,omitempty"`
+// Location describes an Azure resource with location
+type Location struct {
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
}
-// Contact contact details for security issues
-type Contact struct {
- autorest.Response `json:"-"`
- // ContactProperties - Security contact data
- *ContactProperties `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
+// MarshalJSON is the custom marshaler for Location.
+func (l Location) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
}
-// MarshalJSON is the custom marshaler for Contact.
-func (c Contact) MarshalJSON() ([]byte, error) {
+// MqttC2DMessagesNotInAllowedRange number of cloud to device messages (MQTT protocol) is not in allowed range.
+type MqttC2DMessagesNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ mcmniar.RuleType = RuleTypeMqttC2DMessagesNotInAllowedRange
objectMap := make(map[string]interface{})
- if c.ContactProperties != nil {
- objectMap["properties"] = c.ContactProperties
+ if mcmniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = mcmniar.TimeWindowSize
+ }
+ if mcmniar.MinThreshold != nil {
+ objectMap["minThreshold"] = mcmniar.MinThreshold
+ }
+ if mcmniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = mcmniar.MaxThreshold
+ }
+ if mcmniar.IsEnabled != nil {
+ objectMap["isEnabled"] = mcmniar.IsEnabled
+ }
+ if mcmniar.RuleType != "" {
+ objectMap["ruleType"] = mcmniar.RuleType
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for Contact struct.
-func (c *Contact) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
- if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
- case "properties":
- if v != nil {
- var contactProperties ContactProperties
- err = json.Unmarshal(*v, &contactProperties)
- if err != nil {
- return err
- }
- c.ContactProperties = &contactProperties
- }
- case "id":
- if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- c.ID = &ID
- }
- case "name":
- if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
- if err != nil {
- return err
- }
- c.Name = &name
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- c.Type = &typeVar
- }
- }
- }
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
- return nil
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &mcmniar, true
}
-// ContactList list of security contacts response
-type ContactList struct {
- autorest.Response `json:"-"`
- // Value - READ-ONLY; List of security contacts
- Value *[]Contact `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
}
-// ContactListIterator provides access to a complete listing of Contact values.
-type ContactListIterator struct {
- i int
- page ContactListPage
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &mcmniar, true
}
-// NextWithContext advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-func (iter *ContactListIterator) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/ContactListIterator.NextWithContext")
- defer func() {
- sc := -1
- if iter.Response().Response.Response != nil {
- sc = iter.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- iter.i++
- if iter.i < len(iter.page.Values()) {
- return nil
- }
- err = iter.page.NextWithContext(ctx)
- if err != nil {
- iter.i--
- return err
- }
- iter.i = 0
- return nil
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// Next advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (iter *ContactListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter ContactListIterator) NotDone() bool {
- return iter.page.NotDone() && iter.i < len(iter.page.Values())
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter ContactListIterator) Response() ContactList {
- return iter.page.Response()
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
}
-// Value returns the current value or a zero-initialized value if the
-// iterator has advanced beyond the end of the collection.
-func (iter ContactListIterator) Value() Contact {
- if !iter.page.NotDone() {
- return Contact{}
- }
- return iter.page.Values()[iter.i]
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
}
-// Creates a new instance of the ContactListIterator type.
-func NewContactListIterator(page ContactListPage) ContactListIterator {
- return ContactListIterator{page: page}
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (cl ContactList) IsEmpty() bool {
- return cl.Value == nil || len(*cl.Value) == 0
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
}
-// contactListPreparer prepares a request to retrieve the next set of results.
-// It returns nil if no more results exist.
-func (cl ContactList) contactListPreparer(ctx context.Context) (*http.Request, error) {
- if cl.NextLink == nil || len(to.String(cl.NextLink)) < 1 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(cl.NextLink)))
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
}
-// ContactListPage contains a page of Contact values.
-type ContactListPage struct {
- fn func(context.Context, ContactList) (ContactList, error)
- cl ContactList
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
}
-// NextWithContext advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-func (page *ContactListPage) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/ContactListPage.NextWithContext")
- defer func() {
- sc := -1
- if page.Response().Response.Response != nil {
- sc = page.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- next, err := page.fn(ctx, page.cl)
- if err != nil {
- return err
- }
- page.cl = next
- return nil
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Next advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (page *ContactListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return &mcmniar, true
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page ContactListPage) NotDone() bool {
- return !page.cl.IsEmpty()
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page ContactListPage) Response() ContactList {
- return page.cl
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Values returns the slice of values for the current page or nil if there are no values.
-func (page ContactListPage) Values() []Contact {
- if page.cl.IsEmpty() {
- return nil
- }
- return *page.cl.Value
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the ContactListPage type.
-func NewContactListPage(getNextPage func(context.Context, ContactList) (ContactList, error)) ContactListPage {
- return ContactListPage{fn: getNextPage}
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// ContactProperties describes security contact properties
-type ContactProperties struct {
- // Email - The email of this security contact
- Email *string `json:"email,omitempty"`
- // Phone - The phone number of this security contact
- Phone *string `json:"phone,omitempty"`
- // AlertNotifications - Whether to send security alerts notifications to the security contact. Possible values include: 'On', 'Off'
- AlertNotifications AlertNotifications `json:"alertNotifications,omitempty"`
- // AlertsToAdmins - Whether to send security alerts notifications to subscription admins. Possible values include: 'AlertsToAdminsOn', 'AlertsToAdminsOff'
- AlertsToAdmins AlertsToAdmins `json:"alertsToAdmins,omitempty"`
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// ContainerRegistryVulnerabilityProperties additional context fields for container registry Vulnerability
-// assessment
-type ContainerRegistryVulnerabilityProperties struct {
- // Type - READ-ONLY; Vulnerability Type. e.g: Vulnerability, Potential Vulnerability, Information Gathered, Vulnerability
- Type *string `json:"type,omitempty"`
- // Cvss - READ-ONLY; Dictionary from cvss version to cvss details object
- Cvss map[string]*CVSS `json:"cvss"`
- // Patchable - READ-ONLY; Indicates whether a patch is available or not
- Patchable *bool `json:"patchable,omitempty"`
- // Cve - READ-ONLY; List of CVEs
- Cve *[]CVE `json:"cve,omitempty"`
- // PublishedTime - READ-ONLY; Published time
- PublishedTime *date.Time `json:"publishedTime,omitempty"`
- // VendorReferences - READ-ONLY
- VendorReferences *[]VendorReference `json:"vendorReferences,omitempty"`
- // RepositoryName - READ-ONLY; Name of the repository which the vulnerable image belongs to
- RepositoryName *string `json:"repositoryName,omitempty"`
- // ImageDigest - READ-ONLY; Digest of the vulnerable image
- ImageDigest *string `json:"imageDigest,omitempty"`
- // AssessedResourceType - Possible values include: 'AssessedResourceTypeAdditionalData', 'AssessedResourceTypeSQLServerVulnerability', 'AssessedResourceTypeContainerRegistryVulnerability', 'AssessedResourceTypeServerVulnerabilityAssessment'
- AssessedResourceType AssessedResourceType `json:"assessedResourceType,omitempty"`
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
}
-// MarshalJSON is the custom marshaler for ContainerRegistryVulnerabilityProperties.
-func (crvp ContainerRegistryVulnerabilityProperties) MarshalJSON() ([]byte, error) {
- crvp.AssessedResourceType = AssessedResourceTypeContainerRegistryVulnerability
- objectMap := make(map[string]interface{})
- if crvp.AssessedResourceType != "" {
- objectMap["assessedResourceType"] = crvp.AssessedResourceType
- }
- return json.Marshal(objectMap)
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
}
-// AsSQLServerVulnerabilityProperties is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
-func (crvp ContainerRegistryVulnerabilityProperties) AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool) {
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
return nil, false
}
-// AsContainerRegistryVulnerabilityProperties is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
-func (crvp ContainerRegistryVulnerabilityProperties) AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool) {
- return &crvp, true
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
}
-// AsServerVulnerabilityProperties is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
-func (crvp ContainerRegistryVulnerabilityProperties) AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool) {
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
return nil, false
}
-// AsAdditionalData is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
-func (crvp ContainerRegistryVulnerabilityProperties) AsAdditionalData() (*AdditionalData, bool) {
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
return nil, false
}
-// AsBasicAdditionalData is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
-func (crvp ContainerRegistryVulnerabilityProperties) AsBasicAdditionalData() (BasicAdditionalData, bool) {
- return &crvp, true
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
}
-// CustomAlertRule a custom alert rule.
-type CustomAlertRule struct {
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &mcmniar, true
+}
+
+// MqttC2DRejectedMessagesNotInAllowedRange number of rejected cloud to device messages (MQTT protocol) is not
+// in allowed range.
+type MqttC2DRejectedMessagesNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
// DisplayName - READ-ONLY; The display name of the custom alert.
DisplayName *string `json:"displayName,omitempty"`
// Description - READ-ONLY; The description of the custom alert.
Description *string `json:"description,omitempty"`
// IsEnabled - Status of the custom alert.
IsEnabled *bool `json:"isEnabled,omitempty"`
- // RuleType - The type of the custom alert rule.
- RuleType *string `json:"ruleType,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
}
-// CVE CVE details
-type CVE struct {
- // Title - READ-ONLY; CVE title
- Title *string `json:"title,omitempty"`
- // Link - READ-ONLY; Link url
- Link *string `json:"link,omitempty"`
+// MarshalJSON is the custom marshaler for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ mcrmniar.RuleType = RuleTypeMqttC2DRejectedMessagesNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if mcrmniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = mcrmniar.TimeWindowSize
+ }
+ if mcrmniar.MinThreshold != nil {
+ objectMap["minThreshold"] = mcrmniar.MinThreshold
+ }
+ if mcrmniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = mcrmniar.MaxThreshold
+ }
+ if mcrmniar.IsEnabled != nil {
+ objectMap["isEnabled"] = mcrmniar.IsEnabled
+ }
+ if mcrmniar.RuleType != "" {
+ objectMap["ruleType"] = mcrmniar.RuleType
+ }
+ return json.Marshal(objectMap)
}
-// CVSS CVSS details
-type CVSS struct {
- // Base - READ-ONLY; CVSS base
- Base *float64 `json:"base,omitempty"`
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
}
-// DataExportSetting represents a data export setting
-type DataExportSetting struct {
- // DataExportSettingProperties - Data export setting data
- *DataExportSettingProperties `json:"properties,omitempty"`
- // Kind - the kind of the settings string (DataExportSetting). Possible values include: 'SettingKindDataExportSetting', 'SettingKindAlertSuppressionSetting'
- Kind SettingKind `json:"kind,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &mcrmniar, true
}
-// MarshalJSON is the custom marshaler for DataExportSetting.
-func (desVar DataExportSetting) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- if desVar.DataExportSettingProperties != nil {
- objectMap["properties"] = desVar.DataExportSettingProperties
- }
- if desVar.Kind != "" {
- objectMap["kind"] = desVar.Kind
- }
- return json.Marshal(objectMap)
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
}
-// UnmarshalJSON is the custom unmarshaler for DataExportSetting struct.
-func (desVar *DataExportSetting) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
- if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
- case "properties":
- if v != nil {
- var dataExportSettingProperties DataExportSettingProperties
- err = json.Unmarshal(*v, &dataExportSettingProperties)
- if err != nil {
- return err
- }
- desVar.DataExportSettingProperties = &dataExportSettingProperties
- }
- case "kind":
- if v != nil {
- var kind SettingKind
- err = json.Unmarshal(*v, &kind)
- if err != nil {
- return err
- }
- desVar.Kind = kind
- }
- case "id":
- if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- desVar.ID = &ID
- }
- case "name":
- if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
- if err != nil {
- return err
- }
- desVar.Name = &name
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- desVar.Type = &typeVar
- }
- }
- }
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &mcrmniar, true
+}
- return nil
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// DataExportSettingProperties the data export setting properties
-type DataExportSettingProperties struct {
- // Enabled - Is the data export setting is enabled
- Enabled *bool `json:"enabled,omitempty"`
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// DenylistCustomAlertRule a custom alert rule that checks if a value (depends on the custom alert type) is
-// denied.
-type DenylistCustomAlertRule struct {
- // DenylistValues - The values to deny. The format of the values depends on the rule type.
- DenylistValues *[]string `json:"denylistValues,omitempty"`
- // ValueType - READ-ONLY; The value type of the items in the list. Possible values include: 'ValueTypeIPCidr', 'ValueTypeString'
- ValueType ValueType `json:"valueType,omitempty"`
- // DisplayName - READ-ONLY; The display name of the custom alert.
- DisplayName *string `json:"displayName,omitempty"`
- // Description - READ-ONLY; The description of the custom alert.
- Description *string `json:"description,omitempty"`
- // IsEnabled - Status of the custom alert.
- IsEnabled *bool `json:"isEnabled,omitempty"`
- // RuleType - The type of the custom alert rule.
- RuleType *string `json:"ruleType,omitempty"`
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
}
-// DeviceSecurityGroup the device security group resource
-type DeviceSecurityGroup struct {
- autorest.Response `json:"-"`
- // DeviceSecurityGroupProperties - Device Security group data
- *DeviceSecurityGroupProperties `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
}
-// MarshalJSON is the custom marshaler for DeviceSecurityGroup.
-func (dsg DeviceSecurityGroup) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- if dsg.DeviceSecurityGroupProperties != nil {
- objectMap["properties"] = dsg.DeviceSecurityGroupProperties
- }
- return json.Marshal(objectMap)
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
}
-// UnmarshalJSON is the custom unmarshaler for DeviceSecurityGroup struct.
-func (dsg *DeviceSecurityGroup) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
- if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
- case "properties":
- if v != nil {
- var deviceSecurityGroupProperties DeviceSecurityGroupProperties
- err = json.Unmarshal(*v, &deviceSecurityGroupProperties)
- if err != nil {
- return err
- }
- dsg.DeviceSecurityGroupProperties = &deviceSecurityGroupProperties
- }
- case "id":
- if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- dsg.ID = &ID
- }
- case "name":
- if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
- if err != nil {
- return err
- }
- dsg.Name = &name
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- dsg.Type = &typeVar
- }
- }
- }
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
- return nil
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// DeviceSecurityGroupList list of device security groups
-type DeviceSecurityGroupList struct {
- autorest.Response `json:"-"`
- // Value - List of device security group objects
- Value *[]DeviceSecurityGroup `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// DeviceSecurityGroupListIterator provides access to a complete listing of DeviceSecurityGroup values.
-type DeviceSecurityGroupListIterator struct {
- i int
- page DeviceSecurityGroupListPage
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// NextWithContext advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-func (iter *DeviceSecurityGroupListIterator) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/DeviceSecurityGroupListIterator.NextWithContext")
- defer func() {
- sc := -1
- if iter.Response().Response.Response != nil {
- sc = iter.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- iter.i++
- if iter.i < len(iter.page.Values()) {
- return nil
- }
- err = iter.page.NextWithContext(ctx)
- if err != nil {
- iter.i--
- return err
- }
- iter.i = 0
- return nil
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return &mcrmniar, true
}
-// Next advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (iter *DeviceSecurityGroupListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter DeviceSecurityGroupListIterator) NotDone() bool {
- return iter.page.NotDone() && iter.i < len(iter.page.Values())
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter DeviceSecurityGroupListIterator) Response() DeviceSecurityGroupList {
- return iter.page.Response()
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Value returns the current value or a zero-initialized value if the
-// iterator has advanced beyond the end of the collection.
-func (iter DeviceSecurityGroupListIterator) Value() DeviceSecurityGroup {
- if !iter.page.NotDone() {
- return DeviceSecurityGroup{}
- }
- return iter.page.Values()[iter.i]
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the DeviceSecurityGroupListIterator type.
-func NewDeviceSecurityGroupListIterator(page DeviceSecurityGroupListPage) DeviceSecurityGroupListIterator {
- return DeviceSecurityGroupListIterator{page: page}
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (dsgl DeviceSecurityGroupList) IsEmpty() bool {
- return dsgl.Value == nil || len(*dsgl.Value) == 0
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
}
-// deviceSecurityGroupListPreparer prepares a request to retrieve the next set of results.
-// It returns nil if no more results exist.
-func (dsgl DeviceSecurityGroupList) deviceSecurityGroupListPreparer(ctx context.Context) (*http.Request, error) {
- if dsgl.NextLink == nil || len(to.String(dsgl.NextLink)) < 1 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(dsgl.NextLink)))
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
}
-// DeviceSecurityGroupListPage contains a page of DeviceSecurityGroup values.
-type DeviceSecurityGroupListPage struct {
- fn func(context.Context, DeviceSecurityGroupList) (DeviceSecurityGroupList, error)
- dsgl DeviceSecurityGroupList
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
}
-// NextWithContext advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-func (page *DeviceSecurityGroupListPage) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/DeviceSecurityGroupListPage.NextWithContext")
- defer func() {
- sc := -1
- if page.Response().Response.Response != nil {
- sc = page.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &mcrmniar, true
+}
+
+// MqttD2CMessagesNotInAllowedRange number of device to cloud messages (MQTT protocol) is not in allowed range.
+type MqttD2CMessagesNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ mdmniar.RuleType = RuleTypeMqttD2CMessagesNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if mdmniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = mdmniar.TimeWindowSize
}
- next, err := page.fn(ctx, page.dsgl)
- if err != nil {
- return err
+ if mdmniar.MinThreshold != nil {
+ objectMap["minThreshold"] = mdmniar.MinThreshold
}
- page.dsgl = next
- return nil
+ if mdmniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = mdmniar.MaxThreshold
+ }
+ if mdmniar.IsEnabled != nil {
+ objectMap["isEnabled"] = mdmniar.IsEnabled
+ }
+ if mdmniar.RuleType != "" {
+ objectMap["ruleType"] = mdmniar.RuleType
+ }
+ return json.Marshal(objectMap)
}
-// Next advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (page *DeviceSecurityGroupListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page DeviceSecurityGroupListPage) NotDone() bool {
- return !page.dsgl.IsEmpty()
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &mdmniar, true
}
-// Response returns the raw server response from the last page request.
-func (page DeviceSecurityGroupListPage) Response() DeviceSecurityGroupList {
- return page.dsgl
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
}
-// Values returns the slice of values for the current page or nil if there are no values.
-func (page DeviceSecurityGroupListPage) Values() []DeviceSecurityGroup {
- if page.dsgl.IsEmpty() {
- return nil
- }
- return *page.dsgl.Value
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &mdmniar, true
}
-// Creates a new instance of the DeviceSecurityGroupListPage type.
-func NewDeviceSecurityGroupListPage(getNextPage func(context.Context, DeviceSecurityGroupList) (DeviceSecurityGroupList, error)) DeviceSecurityGroupListPage {
- return DeviceSecurityGroupListPage{fn: getNextPage}
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// DeviceSecurityGroupProperties describes properties of a security group.
-type DeviceSecurityGroupProperties struct {
- // ThresholdRules - The list of custom alert threshold rules.
- ThresholdRules *[]ThresholdCustomAlertRule `json:"thresholdRules,omitempty"`
- // TimeWindowRules - The list of custom alert time-window rules.
- TimeWindowRules *[]TimeWindowCustomAlertRule `json:"timeWindowRules,omitempty"`
- // AllowlistRules - The allow-list custom alert rules.
- AllowlistRules *[]AllowlistCustomAlertRule `json:"allowlistRules,omitempty"`
- // DenylistRules - The deny-list custom alert rules.
- DenylistRules *[]DenylistCustomAlertRule `json:"denylistRules,omitempty"`
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// DiscoveredSecuritySolution ...
-type DiscoveredSecuritySolution struct {
- autorest.Response `json:"-"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
- // Location - READ-ONLY; Location where the resource is stored
- Location *string `json:"location,omitempty"`
- *DiscoveredSecuritySolutionProperties `json:"properties,omitempty"`
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
}
-// MarshalJSON is the custom marshaler for DiscoveredSecuritySolution.
-func (dss DiscoveredSecuritySolution) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- if dss.DiscoveredSecuritySolutionProperties != nil {
- objectMap["properties"] = dss.DiscoveredSecuritySolutionProperties
- }
- return json.Marshal(objectMap)
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
}
-// UnmarshalJSON is the custom unmarshaler for DiscoveredSecuritySolution struct.
-func (dss *DiscoveredSecuritySolution) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
- if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
- case "id":
- if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- dss.ID = &ID
- }
- case "name":
- if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
- if err != nil {
- return err
- }
- dss.Name = &name
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- dss.Type = &typeVar
- }
- case "location":
- if v != nil {
- var location string
- err = json.Unmarshal(*v, &location)
- if err != nil {
- return err
- }
- dss.Location = &location
- }
- case "properties":
- if v != nil {
- var discoveredSecuritySolutionProperties DiscoveredSecuritySolutionProperties
- err = json.Unmarshal(*v, &discoveredSecuritySolutionProperties)
- if err != nil {
- return err
- }
- dss.DiscoveredSecuritySolutionProperties = &discoveredSecuritySolutionProperties
- }
- }
- }
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
- return nil
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
}
-// DiscoveredSecuritySolutionList ...
-type DiscoveredSecuritySolutionList struct {
- autorest.Response `json:"-"`
- Value *[]DiscoveredSecuritySolution `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
}
-// DiscoveredSecuritySolutionListIterator provides access to a complete listing of
-// DiscoveredSecuritySolution values.
-type DiscoveredSecuritySolutionListIterator struct {
- i int
- page DiscoveredSecuritySolutionListPage
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
}
-// NextWithContext advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-func (iter *DiscoveredSecuritySolutionListIterator) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/DiscoveredSecuritySolutionListIterator.NextWithContext")
- defer func() {
- sc := -1
- if iter.Response().Response.Response != nil {
- sc = iter.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- iter.i++
- if iter.i < len(iter.page.Values()) {
- return nil
- }
- err = iter.page.NextWithContext(ctx)
- if err != nil {
- iter.i--
- return err
- }
- iter.i = 0
- return nil
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Next advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (iter *DiscoveredSecuritySolutionListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter DiscoveredSecuritySolutionListIterator) NotDone() bool {
- return iter.page.NotDone() && iter.i < len(iter.page.Values())
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter DiscoveredSecuritySolutionListIterator) Response() DiscoveredSecuritySolutionList {
- return iter.page.Response()
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Value returns the current value or a zero-initialized value if the
-// iterator has advanced beyond the end of the collection.
-func (iter DiscoveredSecuritySolutionListIterator) Value() DiscoveredSecuritySolution {
- if !iter.page.NotDone() {
- return DiscoveredSecuritySolution{}
- }
- return iter.page.Values()[iter.i]
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the DiscoveredSecuritySolutionListIterator type.
-func NewDiscoveredSecuritySolutionListIterator(page DiscoveredSecuritySolutionListPage) DiscoveredSecuritySolutionListIterator {
- return DiscoveredSecuritySolutionListIterator{page: page}
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (dssl DiscoveredSecuritySolutionList) IsEmpty() bool {
- return dssl.Value == nil || len(*dssl.Value) == 0
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// discoveredSecuritySolutionListPreparer prepares a request to retrieve the next set of results.
-// It returns nil if no more results exist.
-func (dssl DiscoveredSecuritySolutionList) discoveredSecuritySolutionListPreparer(ctx context.Context) (*http.Request, error) {
- if dssl.NextLink == nil || len(to.String(dssl.NextLink)) < 1 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(dssl.NextLink)))
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return &mdmniar, true
}
-// DiscoveredSecuritySolutionListPage contains a page of DiscoveredSecuritySolution values.
-type DiscoveredSecuritySolutionListPage struct {
- fn func(context.Context, DiscoveredSecuritySolutionList) (DiscoveredSecuritySolutionList, error)
- dssl DiscoveredSecuritySolutionList
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// NextWithContext advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-func (page *DiscoveredSecuritySolutionListPage) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/DiscoveredSecuritySolutionListPage.NextWithContext")
- defer func() {
- sc := -1
- if page.Response().Response.Response != nil {
- sc = page.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- next, err := page.fn(ctx, page.dssl)
- if err != nil {
- return err
- }
- page.dssl = next
- return nil
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
}
-// Next advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (page *DiscoveredSecuritySolutionListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page DiscoveredSecuritySolutionListPage) NotDone() bool {
- return !page.dssl.IsEmpty()
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page DiscoveredSecuritySolutionListPage) Response() DiscoveredSecuritySolutionList {
- return page.dssl
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
}
-// Values returns the slice of values for the current page or nil if there are no values.
-func (page DiscoveredSecuritySolutionListPage) Values() []DiscoveredSecuritySolution {
- if page.dssl.IsEmpty() {
- return nil
- }
- return *page.dssl.Value
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the DiscoveredSecuritySolutionListPage type.
-func NewDiscoveredSecuritySolutionListPage(getNextPage func(context.Context, DiscoveredSecuritySolutionList) (DiscoveredSecuritySolutionList, error)) DiscoveredSecuritySolutionListPage {
- return DiscoveredSecuritySolutionListPage{fn: getNextPage}
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
}
-// DiscoveredSecuritySolutionProperties ...
-type DiscoveredSecuritySolutionProperties struct {
- // SecurityFamily - The security family of the discovered solution. Possible values include: 'Waf', 'Ngfw', 'SaasWaf', 'Va'
- SecurityFamily Family `json:"securityFamily,omitempty"`
- // Offer - The security solutions' image offer
- Offer *string `json:"offer,omitempty"`
- // Publisher - The security solutions' image publisher
- Publisher *string `json:"publisher,omitempty"`
- // Sku - The security solutions' image sku
- Sku *string `json:"sku,omitempty"`
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
}
-// ETag entity tag is used for comparing two or more entities from the same requested resource.
-type ETag struct {
- // Etag - Entity tag is used for comparing two or more entities from the same requested resource.
- Etag *string `json:"etag,omitempty"`
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &mdmniar, true
}
-// BasicExternalSecuritySolution represents a security solution external to Azure Security Center which sends
-// information to an OMS workspace and whose data is displayed by Azure Security Center.
-type BasicExternalSecuritySolution interface {
- AsCefExternalSecuritySolution() (*CefExternalSecuritySolution, bool)
- AsAtaExternalSecuritySolution() (*AtaExternalSecuritySolution, bool)
- AsAadExternalSecuritySolution() (*AadExternalSecuritySolution, bool)
- AsExternalSecuritySolution() (*ExternalSecuritySolution, bool)
+// BasicOnPremiseResourceDetails details of the On Premise resource that was assessed
+type BasicOnPremiseResourceDetails interface {
+ AsOnPremiseSQLResourceDetails() (*OnPremiseSQLResourceDetails, bool)
+ AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool)
}
-// ExternalSecuritySolution represents a security solution external to Azure Security Center which sends
-// information to an OMS workspace and whose data is displayed by Azure Security Center.
-type ExternalSecuritySolution struct {
- autorest.Response `json:"-"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
- // Location - READ-ONLY; Location where the resource is stored
- Location *string `json:"location,omitempty"`
- // Kind - Possible values include: 'KindExternalSecuritySolution', 'KindCEF', 'KindATA', 'KindAAD'
- Kind KindEnum `json:"kind,omitempty"`
+// OnPremiseResourceDetails details of the On Premise resource that was assessed
+type OnPremiseResourceDetails struct {
+ // WorkspaceID - Azure resource Id of the workspace the machine is attached to
+ WorkspaceID *string `json:"workspaceId,omitempty"`
+ // Vmuuid - The unique Id of the machine
+ Vmuuid *string `json:"vmuuid,omitempty"`
+ // SourceComputerID - The oms agent Id installed on the machine
+ SourceComputerID *string `json:"sourceComputerId,omitempty"`
+ // MachineName - The name of the machine
+ MachineName *string `json:"machineName,omitempty"`
+ // Source - Possible values include: 'SourceResourceDetails', 'SourceOnPremiseSQL', 'SourceOnPremise', 'SourceAzure'
+ Source Source `json:"source,omitempty"`
}
-func unmarshalBasicExternalSecuritySolution(body []byte) (BasicExternalSecuritySolution, error) {
+func unmarshalBasicOnPremiseResourceDetails(body []byte) (BasicOnPremiseResourceDetails, error) {
var m map[string]interface{}
err := json.Unmarshal(body, &m)
if err != nil {
return nil, err
}
- switch m["kind"] {
- case string(KindCEF):
- var cess CefExternalSecuritySolution
- err := json.Unmarshal(body, &cess)
- return cess, err
- case string(KindATA):
- var aess AtaExternalSecuritySolution
- err := json.Unmarshal(body, &aess)
- return aess, err
- case string(KindAAD):
- var aess AadExternalSecuritySolution
- err := json.Unmarshal(body, &aess)
- return aess, err
+ switch m["source"] {
+ case string(SourceOnPremiseSQL):
+ var opsrd OnPremiseSQLResourceDetails
+ err := json.Unmarshal(body, &opsrd)
+ return opsrd, err
default:
- var ess ExternalSecuritySolution
- err := json.Unmarshal(body, &ess)
- return ess, err
+ var oprd OnPremiseResourceDetails
+ err := json.Unmarshal(body, &oprd)
+ return oprd, err
}
}
-func unmarshalBasicExternalSecuritySolutionArray(body []byte) ([]BasicExternalSecuritySolution, error) {
+func unmarshalBasicOnPremiseResourceDetailsArray(body []byte) ([]BasicOnPremiseResourceDetails, error) {
var rawMessages []*json.RawMessage
err := json.Unmarshal(body, &rawMessages)
if err != nil {
return nil, err
}
- essArray := make([]BasicExternalSecuritySolution, len(rawMessages))
+ oprdArray := make([]BasicOnPremiseResourceDetails, len(rawMessages))
for index, rawMessage := range rawMessages {
- ess, err := unmarshalBasicExternalSecuritySolution(*rawMessage)
+ oprd, err := unmarshalBasicOnPremiseResourceDetails(*rawMessage)
if err != nil {
return nil, err
}
- essArray[index] = ess
+ oprdArray[index] = oprd
}
- return essArray, nil
+ return oprdArray, nil
}
-// MarshalJSON is the custom marshaler for ExternalSecuritySolution.
-func (ess ExternalSecuritySolution) MarshalJSON() ([]byte, error) {
- ess.Kind = KindExternalSecuritySolution
+// MarshalJSON is the custom marshaler for OnPremiseResourceDetails.
+func (oprd OnPremiseResourceDetails) MarshalJSON() ([]byte, error) {
+ oprd.Source = SourceOnPremise
objectMap := make(map[string]interface{})
- if ess.Kind != "" {
- objectMap["kind"] = ess.Kind
+ if oprd.WorkspaceID != nil {
+ objectMap["workspaceId"] = oprd.WorkspaceID
+ }
+ if oprd.Vmuuid != nil {
+ objectMap["vmuuid"] = oprd.Vmuuid
+ }
+ if oprd.SourceComputerID != nil {
+ objectMap["sourceComputerId"] = oprd.SourceComputerID
+ }
+ if oprd.MachineName != nil {
+ objectMap["machineName"] = oprd.MachineName
+ }
+ if oprd.Source != "" {
+ objectMap["source"] = oprd.Source
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsOnPremiseSQLResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
+func (oprd OnPremiseResourceDetails) AsOnPremiseSQLResourceDetails() (*OnPremiseSQLResourceDetails, bool) {
+ return nil, false
+}
+
+// AsOnPremiseResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
+func (oprd OnPremiseResourceDetails) AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool) {
+ return &oprd, true
+}
+
+// AsBasicOnPremiseResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
+func (oprd OnPremiseResourceDetails) AsBasicOnPremiseResourceDetails() (BasicOnPremiseResourceDetails, bool) {
+ return &oprd, true
+}
+
+// AsAzureResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
+func (oprd OnPremiseResourceDetails) AsAzureResourceDetails() (*AzureResourceDetails, bool) {
+ return nil, false
+}
+
+// AsResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
+func (oprd OnPremiseResourceDetails) AsResourceDetails() (*ResourceDetails, bool) {
+ return nil, false
+}
+
+// AsBasicResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
+func (oprd OnPremiseResourceDetails) AsBasicResourceDetails() (BasicResourceDetails, bool) {
+ return &oprd, true
+}
+
+// OnPremiseSQLResourceDetails details of the On Premise Sql resource that was assessed
+type OnPremiseSQLResourceDetails struct {
+ // ServerName - The Sql server name installed on the machine
+ ServerName *string `json:"serverName,omitempty"`
+ // DatabaseName - The Sql database name installed on the machine
+ DatabaseName *string `json:"databaseName,omitempty"`
+ // WorkspaceID - Azure resource Id of the workspace the machine is attached to
+ WorkspaceID *string `json:"workspaceId,omitempty"`
+ // Vmuuid - The unique Id of the machine
+ Vmuuid *string `json:"vmuuid,omitempty"`
+ // SourceComputerID - The oms agent Id installed on the machine
+ SourceComputerID *string `json:"sourceComputerId,omitempty"`
+ // MachineName - The name of the machine
+ MachineName *string `json:"machineName,omitempty"`
+ // Source - Possible values include: 'SourceResourceDetails', 'SourceOnPremiseSQL', 'SourceOnPremise', 'SourceAzure'
+ Source Source `json:"source,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for OnPremiseSQLResourceDetails.
+func (opsrd OnPremiseSQLResourceDetails) MarshalJSON() ([]byte, error) {
+ opsrd.Source = SourceOnPremiseSQL
+ objectMap := make(map[string]interface{})
+ if opsrd.ServerName != nil {
+ objectMap["serverName"] = opsrd.ServerName
+ }
+ if opsrd.DatabaseName != nil {
+ objectMap["databaseName"] = opsrd.DatabaseName
+ }
+ if opsrd.WorkspaceID != nil {
+ objectMap["workspaceId"] = opsrd.WorkspaceID
+ }
+ if opsrd.Vmuuid != nil {
+ objectMap["vmuuid"] = opsrd.Vmuuid
+ }
+ if opsrd.SourceComputerID != nil {
+ objectMap["sourceComputerId"] = opsrd.SourceComputerID
+ }
+ if opsrd.MachineName != nil {
+ objectMap["machineName"] = opsrd.MachineName
+ }
+ if opsrd.Source != "" {
+ objectMap["source"] = opsrd.Source
}
return json.Marshal(objectMap)
}
-// AsCefExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
-func (ess ExternalSecuritySolution) AsCefExternalSecuritySolution() (*CefExternalSecuritySolution, bool) {
+// AsOnPremiseSQLResourceDetails is the BasicResourceDetails implementation for OnPremiseSQLResourceDetails.
+func (opsrd OnPremiseSQLResourceDetails) AsOnPremiseSQLResourceDetails() (*OnPremiseSQLResourceDetails, bool) {
+ return &opsrd, true
+}
+
+// AsOnPremiseResourceDetails is the BasicResourceDetails implementation for OnPremiseSQLResourceDetails.
+func (opsrd OnPremiseSQLResourceDetails) AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool) {
return nil, false
}
-// AsAtaExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
-func (ess ExternalSecuritySolution) AsAtaExternalSecuritySolution() (*AtaExternalSecuritySolution, bool) {
+// AsBasicOnPremiseResourceDetails is the BasicResourceDetails implementation for OnPremiseSQLResourceDetails.
+func (opsrd OnPremiseSQLResourceDetails) AsBasicOnPremiseResourceDetails() (BasicOnPremiseResourceDetails, bool) {
+ return &opsrd, true
+}
+
+// AsAzureResourceDetails is the BasicResourceDetails implementation for OnPremiseSQLResourceDetails.
+func (opsrd OnPremiseSQLResourceDetails) AsAzureResourceDetails() (*AzureResourceDetails, bool) {
return nil, false
}
-// AsAadExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
-func (ess ExternalSecuritySolution) AsAadExternalSecuritySolution() (*AadExternalSecuritySolution, bool) {
+// AsResourceDetails is the BasicResourceDetails implementation for OnPremiseSQLResourceDetails.
+func (opsrd OnPremiseSQLResourceDetails) AsResourceDetails() (*ResourceDetails, bool) {
return nil, false
}
-// AsExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
-func (ess ExternalSecuritySolution) AsExternalSecuritySolution() (*ExternalSecuritySolution, bool) {
- return &ess, true
+// AsBasicResourceDetails is the BasicResourceDetails implementation for OnPremiseSQLResourceDetails.
+func (opsrd OnPremiseSQLResourceDetails) AsBasicResourceDetails() (BasicResourceDetails, bool) {
+ return &opsrd, true
}
-// AsBasicExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
-func (ess ExternalSecuritySolution) AsBasicExternalSecuritySolution() (BasicExternalSecuritySolution, bool) {
- return &ess, true
+// Operation possible operation in the REST API of Microsoft.Security
+type Operation struct {
+ // Name - READ-ONLY; Name of the operation
+ Name *string `json:"name,omitempty"`
+ // Origin - READ-ONLY; Where the operation is originated
+ Origin *string `json:"origin,omitempty"`
+ Display *OperationDisplay `json:"display,omitempty"`
}
-// ExternalSecuritySolutionKind1 describes an Azure resource with kind
-type ExternalSecuritySolutionKind1 struct {
- // Kind - The kind of the external solution. Possible values include: 'CEF', 'ATA', 'AAD'
- Kind ExternalSecuritySolutionKind `json:"kind,omitempty"`
+// MarshalJSON is the custom marshaler for Operation.
+func (o Operation) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if o.Display != nil {
+ objectMap["display"] = o.Display
+ }
+ return json.Marshal(objectMap)
}
-// ExternalSecuritySolutionList ...
-type ExternalSecuritySolutionList struct {
+// OperationDisplay security operation display
+type OperationDisplay struct {
+ // Provider - READ-ONLY; The resource provider for the operation.
+ Provider *string `json:"provider,omitempty"`
+ // Resource - READ-ONLY; The display name of the resource the operation applies to.
+ Resource *string `json:"resource,omitempty"`
+ // Operation - READ-ONLY; The display name of the security operation.
+ Operation *string `json:"operation,omitempty"`
+ // Description - READ-ONLY; The description of the operation.
+ Description *string `json:"description,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for OperationDisplay.
+func (od OperationDisplay) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// OperationList list of possible operations for Microsoft.Security resource provider
+type OperationList struct {
autorest.Response `json:"-"`
- Value *[]BasicExternalSecuritySolution `json:"value,omitempty"`
+ // Value - List of Security operations
+ Value *[]Operation `json:"value,omitempty"`
// NextLink - READ-ONLY; The URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// UnmarshalJSON is the custom unmarshaler for ExternalSecuritySolutionList struct.
-func (essl *ExternalSecuritySolutionList) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
- if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
- case "value":
- if v != nil {
- value, err := unmarshalBasicExternalSecuritySolutionArray(*v)
- if err != nil {
- return err
- }
- essl.Value = &value
- }
- case "nextLink":
- if v != nil {
- var nextLink string
- err = json.Unmarshal(*v, &nextLink)
- if err != nil {
- return err
- }
- essl.NextLink = &nextLink
- }
- }
+// MarshalJSON is the custom marshaler for OperationList.
+func (ol OperationList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if ol.Value != nil {
+ objectMap["value"] = ol.Value
}
-
- return nil
+ return json.Marshal(objectMap)
}
-// ExternalSecuritySolutionListIterator provides access to a complete listing of ExternalSecuritySolution
-// values.
-type ExternalSecuritySolutionListIterator struct {
+// OperationListIterator provides access to a complete listing of Operation values.
+type OperationListIterator struct {
i int
- page ExternalSecuritySolutionListPage
+ page OperationListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *ExternalSecuritySolutionListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *OperationListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/ExternalSecuritySolutionListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/OperationListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -5673,62 +13006,67 @@ func (iter *ExternalSecuritySolutionListIterator) NextWithContext(ctx context.Co
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *ExternalSecuritySolutionListIterator) Next() error {
+func (iter *OperationListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter ExternalSecuritySolutionListIterator) NotDone() bool {
+func (iter OperationListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter ExternalSecuritySolutionListIterator) Response() ExternalSecuritySolutionList {
+func (iter OperationListIterator) Response() OperationList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter ExternalSecuritySolutionListIterator) Value() BasicExternalSecuritySolution {
+func (iter OperationListIterator) Value() Operation {
if !iter.page.NotDone() {
- return ExternalSecuritySolution{}
+ return Operation{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the ExternalSecuritySolutionListIterator type.
-func NewExternalSecuritySolutionListIterator(page ExternalSecuritySolutionListPage) ExternalSecuritySolutionListIterator {
- return ExternalSecuritySolutionListIterator{page: page}
+// Creates a new instance of the OperationListIterator type.
+func NewOperationListIterator(page OperationListPage) OperationListIterator {
+ return OperationListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (essl ExternalSecuritySolutionList) IsEmpty() bool {
- return essl.Value == nil || len(*essl.Value) == 0
+func (ol OperationList) IsEmpty() bool {
+ return ol.Value == nil || len(*ol.Value) == 0
}
-// externalSecuritySolutionListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (ol OperationList) hasNextLink() bool {
+ return ol.NextLink != nil && len(*ol.NextLink) != 0
+}
+
+// operationListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (essl ExternalSecuritySolutionList) externalSecuritySolutionListPreparer(ctx context.Context) (*http.Request, error) {
- if essl.NextLink == nil || len(to.String(essl.NextLink)) < 1 {
+func (ol OperationList) operationListPreparer(ctx context.Context) (*http.Request, error) {
+ if !ol.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(essl.NextLink)))
+ autorest.WithBaseURL(to.String(ol.NextLink)))
}
-// ExternalSecuritySolutionListPage contains a page of BasicExternalSecuritySolution values.
-type ExternalSecuritySolutionListPage struct {
- fn func(context.Context, ExternalSecuritySolutionList) (ExternalSecuritySolutionList, error)
- essl ExternalSecuritySolutionList
+// OperationListPage contains a page of Operation values.
+type OperationListPage struct {
+ fn func(context.Context, OperationList) (OperationList, error)
+ ol OperationList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *ExternalSecuritySolutionListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *OperationListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/ExternalSecuritySolutionListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/OperationListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -5737,159 +13075,75 @@ func (page *ExternalSecuritySolutionListPage) NextWithContext(ctx context.Contex
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.essl)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.ol)
+ if err != nil {
+ return err
+ }
+ page.ol = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.essl = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *ExternalSecuritySolutionListPage) Next() error {
+func (page *OperationListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page ExternalSecuritySolutionListPage) NotDone() bool {
- return !page.essl.IsEmpty()
+func (page OperationListPage) NotDone() bool {
+ return !page.ol.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page ExternalSecuritySolutionListPage) Response() ExternalSecuritySolutionList {
- return page.essl
-}
-
-// Values returns the slice of values for the current page or nil if there are no values.
-func (page ExternalSecuritySolutionListPage) Values() []BasicExternalSecuritySolution {
- if page.essl.IsEmpty() {
- return nil
- }
- return *page.essl.Value
-}
-
-// Creates a new instance of the ExternalSecuritySolutionListPage type.
-func NewExternalSecuritySolutionListPage(getNextPage func(context.Context, ExternalSecuritySolutionList) (ExternalSecuritySolutionList, error)) ExternalSecuritySolutionListPage {
- return ExternalSecuritySolutionListPage{fn: getNextPage}
-}
-
-// ExternalSecuritySolutionModel ...
-type ExternalSecuritySolutionModel struct {
- autorest.Response `json:"-"`
- Value BasicExternalSecuritySolution `json:"value,omitempty"`
-}
-
-// UnmarshalJSON is the custom unmarshaler for ExternalSecuritySolutionModel struct.
-func (essm *ExternalSecuritySolutionModel) UnmarshalJSON(body []byte) error {
- ess, err := unmarshalBasicExternalSecuritySolution(body)
- if err != nil {
- return err
- }
- essm.Value = ess
-
- return nil
-}
-
-// ExternalSecuritySolutionProperties the solution properties (correspond to the solution kind)
-type ExternalSecuritySolutionProperties struct {
- // AdditionalProperties - Unmatched properties from the message are deserialized this collection
- AdditionalProperties map[string]interface{} `json:""`
- DeviceVendor *string `json:"deviceVendor,omitempty"`
- DeviceType *string `json:"deviceType,omitempty"`
- Workspace *ConnectedWorkspace `json:"workspace,omitempty"`
-}
-
-// MarshalJSON is the custom marshaler for ExternalSecuritySolutionProperties.
-func (essp ExternalSecuritySolutionProperties) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- if essp.DeviceVendor != nil {
- objectMap["deviceVendor"] = essp.DeviceVendor
- }
- if essp.DeviceType != nil {
- objectMap["deviceType"] = essp.DeviceType
- }
- if essp.Workspace != nil {
- objectMap["workspace"] = essp.Workspace
- }
- for k, v := range essp.AdditionalProperties {
- objectMap[k] = v
- }
- return json.Marshal(objectMap)
-}
-
-// UnmarshalJSON is the custom unmarshaler for ExternalSecuritySolutionProperties struct.
-func (essp *ExternalSecuritySolutionProperties) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
- if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
- default:
- if v != nil {
- var additionalProperties interface{}
- err = json.Unmarshal(*v, &additionalProperties)
- if err != nil {
- return err
- }
- if essp.AdditionalProperties == nil {
- essp.AdditionalProperties = make(map[string]interface{})
- }
- essp.AdditionalProperties[k] = additionalProperties
- }
- case "deviceVendor":
- if v != nil {
- var deviceVendor string
- err = json.Unmarshal(*v, &deviceVendor)
- if err != nil {
- return err
- }
- essp.DeviceVendor = &deviceVendor
- }
- case "deviceType":
- if v != nil {
- var deviceType string
- err = json.Unmarshal(*v, &deviceType)
- if err != nil {
- return err
- }
- essp.DeviceType = &deviceType
- }
- case "workspace":
- if v != nil {
- var workspace ConnectedWorkspace
- err = json.Unmarshal(*v, &workspace)
- if err != nil {
- return err
- }
- essp.Workspace = &workspace
- }
- }
+func (page OperationListPage) Response() OperationList {
+ return page.ol
+}
+
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page OperationListPage) Values() []Operation {
+ if page.ol.IsEmpty() {
+ return nil
}
+ return *page.ol.Value
+}
- return nil
+// Creates a new instance of the OperationListPage type.
+func NewOperationListPage(getNextPage func(context.Context, OperationList) (OperationList, error)) OperationListPage {
+ return OperationListPage{fn: getNextPage}
}
-// InformationProtectionKeyword the information type keyword.
-type InformationProtectionKeyword struct {
- // Pattern - The keyword pattern.
- Pattern *string `json:"pattern,omitempty"`
- // Custom - Indicates whether the keyword is custom or not.
- Custom *bool `json:"custom,omitempty"`
- // CanBeNumeric - Indicates whether the keyword can be applied on numeric types or not.
- CanBeNumeric *bool `json:"canBeNumeric,omitempty"`
- // Excluded - Indicates whether the keyword is excluded or not.
- Excluded *bool `json:"excluded,omitempty"`
+// PathRecommendation represents a path that is recommended to be allowed and its properties
+type PathRecommendation struct {
+ // Path - The full path of the file, or an identifier of the application
+ Path *string `json:"path,omitempty"`
+ // Action - Possible values include: 'Recommended', 'Add', 'Remove'
+ Action Action `json:"action,omitempty"`
+ // Type - Possible values include: 'File', 'FileHash', 'PublisherSignature', 'ProductSignature', 'BinarySignature', 'VersionAndAboveSignature'
+ Type Type `json:"type,omitempty"`
+ PublisherInfo *PublisherInfo `json:"publisherInfo,omitempty"`
+ // Common - Whether the application is commonly run on the machine
+ Common *bool `json:"common,omitempty"`
+ UserSids *[]string `json:"userSids,omitempty"`
+ Usernames *[]UserRecommendation `json:"usernames,omitempty"`
+ // FileType - Possible values include: 'FileTypeExe', 'FileTypeDll', 'FileTypeMsi', 'FileTypeScript', 'FileTypeExecutable', 'FileTypeUnknown'
+ FileType FileType `json:"fileType,omitempty"`
+ // ConfigurationStatus - Possible values include: 'ConfigurationStatus1Configured', 'ConfigurationStatus1NotConfigured', 'ConfigurationStatus1InProgress', 'ConfigurationStatus1Failed', 'ConfigurationStatus1NoStatus'
+ ConfigurationStatus ConfigurationStatus1 `json:"configurationStatus,omitempty"`
}
-// InformationProtectionPolicy information protection policy.
-type InformationProtectionPolicy struct {
+// Pricing azure Security Center is provided in two pricing tiers: free and standard, with the standard tier
+// available with a trial period. The standard tier offers advanced security capabilities, while the free tier
+// offers basic security features.
+type Pricing struct {
autorest.Response `json:"-"`
- // InformationProtectionPolicyProperties - Information protection policy data
- *InformationProtectionPolicyProperties `json:"properties,omitempty"`
+ // PricingProperties - Pricing data
+ *PricingProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
@@ -5898,17 +13152,17 @@ type InformationProtectionPolicy struct {
Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for InformationProtectionPolicy.
-func (ipp InformationProtectionPolicy) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for Pricing.
+func (p Pricing) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if ipp.InformationProtectionPolicyProperties != nil {
- objectMap["properties"] = ipp.InformationProtectionPolicyProperties
+ if p.PricingProperties != nil {
+ objectMap["properties"] = p.PricingProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for InformationProtectionPolicy struct.
-func (ipp *InformationProtectionPolicy) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for Pricing struct.
+func (p *Pricing) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -5918,12 +13172,12 @@ func (ipp *InformationProtectionPolicy) UnmarshalJSON(body []byte) error {
switch k {
case "properties":
if v != nil {
- var informationProtectionPolicyProperties InformationProtectionPolicyProperties
- err = json.Unmarshal(*v, &informationProtectionPolicyProperties)
+ var pricingProperties PricingProperties
+ err = json.Unmarshal(*v, &pricingProperties)
if err != nil {
return err
}
- ipp.InformationProtectionPolicyProperties = &informationProtectionPolicyProperties
+ p.PricingProperties = &pricingProperties
}
case "id":
if v != nil {
@@ -5932,7 +13186,7 @@ func (ipp *InformationProtectionPolicy) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- ipp.ID = &ID
+ p.ID = &ID
}
case "name":
if v != nil {
@@ -5941,7 +13195,7 @@ func (ipp *InformationProtectionPolicy) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- ipp.Name = &name
+ p.Name = &name
}
case "type":
if v != nil {
@@ -5950,228 +13204,490 @@ func (ipp *InformationProtectionPolicy) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- ipp.Type = &typeVar
+ p.Type = &typeVar
}
}
}
- return nil
+ return nil
+}
+
+// PricingList list of pricing configurations response.
+type PricingList struct {
+ autorest.Response `json:"-"`
+ // Value - List of pricing configurations
+ Value *[]Pricing `json:"value,omitempty"`
+}
+
+// PricingProperties pricing properties for the relevant scope
+type PricingProperties struct {
+ // PricingTier - The pricing tier value. Azure Security Center is provided in two pricing tiers: free and standard, with the standard tier available with a trial period. The standard tier offers advanced security capabilities, while the free tier offers basic security features. Possible values include: 'Free', 'Standard'
+ PricingTier PricingTier `json:"pricingTier,omitempty"`
+ // FreeTrialRemainingTime - READ-ONLY; The duration left for the subscriptions free trial period - in ISO 8601 format (e.g. P3Y6M4DT12H30M5S).
+ FreeTrialRemainingTime *string `json:"freeTrialRemainingTime,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for PricingProperties.
+func (pp PricingProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if pp.PricingTier != "" {
+ objectMap["pricingTier"] = pp.PricingTier
+ }
+ return json.Marshal(objectMap)
+}
+
+// ProcessNotAllowed execution of a process that isn't allowed. Allow list consists of process names to allow.
+type ProcessNotAllowed struct {
+ // AllowlistValues - The values to allow. The format of the values depends on the rule type.
+ AllowlistValues *[]string `json:"allowlistValues,omitempty"`
+ // ValueType - READ-ONLY; The value type of the items in the list. Possible values include: 'ValueTypeIPCidr', 'ValueTypeString'
+ ValueType ValueType `json:"valueType,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ProcessNotAllowed.
+func (pna ProcessNotAllowed) MarshalJSON() ([]byte, error) {
+ pna.RuleType = RuleTypeProcessNotAllowed
+ objectMap := make(map[string]interface{})
+ if pna.AllowlistValues != nil {
+ objectMap["allowlistValues"] = pna.AllowlistValues
+ }
+ if pna.IsEnabled != nil {
+ objectMap["isEnabled"] = pna.IsEnabled
+ }
+ if pna.RuleType != "" {
+ objectMap["ruleType"] = pna.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return &pna, true
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return &pna, true
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return &pna, true
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &pna, true
+}
+
+// ProtectionMode the protection mode of the collection/file types. Exe/Msi/Script are used for Windows,
+// Executable is used for Linux.
+type ProtectionMode struct {
+ // Exe - Possible values include: 'ExeAudit', 'ExeEnforce', 'ExeNone'
+ Exe Exe `json:"exe,omitempty"`
+ // Msi - Possible values include: 'MsiAudit', 'MsiEnforce', 'MsiNone'
+ Msi Msi `json:"msi,omitempty"`
+ // Script - Possible values include: 'ScriptAudit', 'ScriptEnforce', 'ScriptNone'
+ Script Script `json:"script,omitempty"`
+ // Executable - Possible values include: 'ExecutableAudit', 'ExecutableEnforce', 'ExecutableNone'
+ Executable Executable `json:"executable,omitempty"`
+}
+
+// ProxyServerProperties for a non-Azure machine that is not connected directly to the internet, specify a
+// proxy server that the non-Azure machine can use.
+type ProxyServerProperties struct {
+ // IP - Proxy server IP
+ IP *string `json:"ip,omitempty"`
+ // Port - Proxy server port
+ Port *string `json:"port,omitempty"`
+}
+
+// PublisherInfo represents the publisher information of a process/rule
+type PublisherInfo struct {
+ // PublisherName - The Subject field of the x.509 certificate used to sign the code, using the following fields - O = Organization, L = Locality, S = State or Province, and C = Country
+ PublisherName *string `json:"publisherName,omitempty"`
+ // ProductName - The product name taken from the file's version resource
+ ProductName *string `json:"productName,omitempty"`
+ // BinaryName - The "OriginalName" field taken from the file's version resource
+ BinaryName *string `json:"binaryName,omitempty"`
+ // Version - The binary file version taken from the file's version resource
+ Version *string `json:"version,omitempty"`
+}
+
+// QueuePurgesNotInAllowedRange number of device queue purges is not in allowed range.
+type QueuePurgesNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ qpniar.RuleType = RuleTypeQueuePurgesNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if qpniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = qpniar.TimeWindowSize
+ }
+ if qpniar.MinThreshold != nil {
+ objectMap["minThreshold"] = qpniar.MinThreshold
+ }
+ if qpniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = qpniar.MaxThreshold
+ }
+ if qpniar.IsEnabled != nil {
+ objectMap["isEnabled"] = qpniar.IsEnabled
+ }
+ if qpniar.RuleType != "" {
+ objectMap["ruleType"] = qpniar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &qpniar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &qpniar, true
}
-// InformationProtectionPolicyList information protection policies response.
-type InformationProtectionPolicyList struct {
- autorest.Response `json:"-"`
- // Value - List of information protection policies.
- Value *[]InformationProtectionPolicy `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// InformationProtectionPolicyListIterator provides access to a complete listing of
-// InformationProtectionPolicy values.
-type InformationProtectionPolicyListIterator struct {
- i int
- page InformationProtectionPolicyListPage
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// NextWithContext advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-func (iter *InformationProtectionPolicyListIterator) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/InformationProtectionPolicyListIterator.NextWithContext")
- defer func() {
- sc := -1
- if iter.Response().Response.Response != nil {
- sc = iter.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- iter.i++
- if iter.i < len(iter.page.Values()) {
- return nil
- }
- err = iter.page.NextWithContext(ctx)
- if err != nil {
- iter.i--
- return err
- }
- iter.i = 0
- return nil
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
}
-// Next advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (iter *InformationProtectionPolicyListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
}
-// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter InformationProtectionPolicyListIterator) NotDone() bool {
- return iter.page.NotDone() && iter.i < len(iter.page.Values())
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter InformationProtectionPolicyListIterator) Response() InformationProtectionPolicyList {
- return iter.page.Response()
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
}
-// Value returns the current value or a zero-initialized value if the
-// iterator has advanced beyond the end of the collection.
-func (iter InformationProtectionPolicyListIterator) Value() InformationProtectionPolicy {
- if !iter.page.NotDone() {
- return InformationProtectionPolicy{}
- }
- return iter.page.Values()[iter.i]
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
}
-// Creates a new instance of the InformationProtectionPolicyListIterator type.
-func NewInformationProtectionPolicyListIterator(page InformationProtectionPolicyListPage) InformationProtectionPolicyListIterator {
- return InformationProtectionPolicyListIterator{page: page}
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (ippl InformationProtectionPolicyList) IsEmpty() bool {
- return ippl.Value == nil || len(*ippl.Value) == 0
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
}
-// informationProtectionPolicyListPreparer prepares a request to retrieve the next set of results.
-// It returns nil if no more results exist.
-func (ippl InformationProtectionPolicyList) informationProtectionPolicyListPreparer(ctx context.Context) (*http.Request, error) {
- if ippl.NextLink == nil || len(to.String(ippl.NextLink)) < 1 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(ippl.NextLink)))
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// InformationProtectionPolicyListPage contains a page of InformationProtectionPolicy values.
-type InformationProtectionPolicyListPage struct {
- fn func(context.Context, InformationProtectionPolicyList) (InformationProtectionPolicyList, error)
- ippl InformationProtectionPolicyList
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// NextWithContext advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-func (page *InformationProtectionPolicyListPage) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/InformationProtectionPolicyListPage.NextWithContext")
- defer func() {
- sc := -1
- if page.Response().Response.Response != nil {
- sc = page.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- next, err := page.fn(ctx, page.ippl)
- if err != nil {
- return err
- }
- page.ippl = next
- return nil
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Next advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (page *InformationProtectionPolicyListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page InformationProtectionPolicyListPage) NotDone() bool {
- return !page.ippl.IsEmpty()
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page InformationProtectionPolicyListPage) Response() InformationProtectionPolicyList {
- return page.ippl
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Values returns the slice of values for the current page or nil if there are no values.
-func (page InformationProtectionPolicyListPage) Values() []InformationProtectionPolicy {
- if page.ippl.IsEmpty() {
- return nil
- }
- return *page.ippl.Value
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the InformationProtectionPolicyListPage type.
-func NewInformationProtectionPolicyListPage(getNextPage func(context.Context, InformationProtectionPolicyList) (InformationProtectionPolicyList, error)) InformationProtectionPolicyListPage {
- return InformationProtectionPolicyListPage{fn: getNextPage}
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// InformationProtectionPolicyProperties describes properties of an information protection policy.
-type InformationProtectionPolicyProperties struct {
- // LastModifiedUtc - READ-ONLY; Describes the last UTC time the policy was modified.
- LastModifiedUtc *date.Time `json:"lastModifiedUtc,omitempty"`
- // Labels - Dictionary of sensitivity labels.
- Labels map[string]*SensitivityLabel `json:"labels"`
- // InformationTypes - The sensitivity information types.
- InformationTypes map[string]*InformationType `json:"informationTypes"`
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// MarshalJSON is the custom marshaler for InformationProtectionPolicyProperties.
-func (ippp InformationProtectionPolicyProperties) MarshalJSON() ([]byte, error) {
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return &qpniar, true
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &qpniar, true
+}
+
+// RecommendationConfigurationProperties the type of IoT Security recommendation.
+type RecommendationConfigurationProperties struct {
+ // RecommendationType - The type of IoT Security recommendation. Possible values include: 'IoTACRAuthentication', 'IoTAgentSendsUnutilizedMessages', 'IoTBaseline', 'IoTEdgeHubMemOptimize', 'IoTEdgeLoggingOptions', 'IoTInconsistentModuleSettings', 'IoTInstallAgent', 'IoTIPFilterDenyAll', 'IoTIPFilterPermissiveRule', 'IoTOpenPorts', 'IoTPermissiveFirewallPolicy', 'IoTPermissiveInputFirewallRules', 'IoTPermissiveOutputFirewallRules', 'IoTPrivilegedDockerOptions', 'IoTSharedCredentials', 'IoTVulnerableTLSCipherSuite'
+ RecommendationType RecommendationType `json:"recommendationType,omitempty"`
+ // Name - READ-ONLY
+ Name *string `json:"name,omitempty"`
+ // Status - Recommendation status. When the recommendation status is disabled recommendations are not generated. Possible values include: 'Disabled', 'Enabled'
+ Status RecommendationConfigStatus `json:"status,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for RecommendationConfigurationProperties.
+func (rcp RecommendationConfigurationProperties) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if ippp.Labels != nil {
- objectMap["labels"] = ippp.Labels
+ if rcp.RecommendationType != "" {
+ objectMap["recommendationType"] = rcp.RecommendationType
}
- if ippp.InformationTypes != nil {
- objectMap["informationTypes"] = ippp.InformationTypes
+ if rcp.Status != "" {
+ objectMap["status"] = rcp.Status
}
return json.Marshal(objectMap)
}
-// InformationType the information type.
-type InformationType struct {
- // DisplayName - The name of the information type.
- DisplayName *string `json:"displayName,omitempty"`
- // Order - The order of the information type.
- Order *float64 `json:"order,omitempty"`
- // RecommendedLabelID - The recommended label id to be associated with this information type.
- RecommendedLabelID *uuid.UUID `json:"recommendedLabelId,omitempty"`
- // Enabled - Indicates whether the information type is enabled or not.
- Enabled *bool `json:"enabled,omitempty"`
- // Custom - Indicates whether the information type is custom or not.
- Custom *bool `json:"custom,omitempty"`
- // Keywords - The information type keywords.
- Keywords *[]InformationProtectionKeyword `json:"keywords,omitempty"`
-}
-
-// IoTSecurityAggregatedAlert security Solution Aggregated Alert information
-type IoTSecurityAggregatedAlert struct {
+// RegulatoryComplianceAssessment regulatory compliance assessment details and state
+type RegulatoryComplianceAssessment struct {
autorest.Response `json:"-"`
+ // RegulatoryComplianceAssessmentProperties - Regulatory compliance assessment data
+ *RegulatoryComplianceAssessmentProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
Name *string `json:"name,omitempty"`
// Type - READ-ONLY; Resource type
Type *string `json:"type,omitempty"`
- // Tags - Resource tags
- Tags map[string]*string `json:"tags"`
- // IoTSecurityAggregatedAlertProperties - IoT Security solution aggregated alert details.
- *IoTSecurityAggregatedAlertProperties `json:"properties,omitempty"`
}
-// MarshalJSON is the custom marshaler for IoTSecurityAggregatedAlert.
-func (itsaa IoTSecurityAggregatedAlert) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for RegulatoryComplianceAssessment.
+func (rca RegulatoryComplianceAssessment) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if itsaa.Tags != nil {
- objectMap["tags"] = itsaa.Tags
- }
- if itsaa.IoTSecurityAggregatedAlertProperties != nil {
- objectMap["properties"] = itsaa.IoTSecurityAggregatedAlertProperties
+ if rca.RegulatoryComplianceAssessmentProperties != nil {
+ objectMap["properties"] = rca.RegulatoryComplianceAssessmentProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for IoTSecurityAggregatedAlert struct.
-func (itsaa *IoTSecurityAggregatedAlert) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for RegulatoryComplianceAssessment struct.
+func (rca *RegulatoryComplianceAssessment) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -6179,6 +13695,15 @@ func (itsaa *IoTSecurityAggregatedAlert) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
+ case "properties":
+ if v != nil {
+ var regulatoryComplianceAssessmentProperties RegulatoryComplianceAssessmentProperties
+ err = json.Unmarshal(*v, ®ulatoryComplianceAssessmentProperties)
+ if err != nil {
+ return err
+ }
+ rca.RegulatoryComplianceAssessmentProperties = ®ulatoryComplianceAssessmentProperties
+ }
case "id":
if v != nil {
var ID string
@@ -6186,7 +13711,7 @@ func (itsaa *IoTSecurityAggregatedAlert) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- itsaa.ID = &ID
+ rca.ID = &ID
}
case "name":
if v != nil {
@@ -6195,7 +13720,7 @@ func (itsaa *IoTSecurityAggregatedAlert) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- itsaa.Name = &name
+ rca.Name = &name
}
case "type":
if v != nil {
@@ -6204,25 +13729,7 @@ func (itsaa *IoTSecurityAggregatedAlert) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- itsaa.Type = &typeVar
- }
- case "tags":
- if v != nil {
- var tags map[string]*string
- err = json.Unmarshal(*v, &tags)
- if err != nil {
- return err
- }
- itsaa.Tags = tags
- }
- case "properties":
- if v != nil {
- var ioTSecurityAggregatedAlertProperties IoTSecurityAggregatedAlertProperties
- err = json.Unmarshal(*v, &ioTSecurityAggregatedAlertProperties)
- if err != nil {
- return err
- }
- itsaa.IoTSecurityAggregatedAlertProperties = &ioTSecurityAggregatedAlertProperties
+ rca.Type = &typeVar
}
}
}
@@ -6230,27 +13737,35 @@ func (itsaa *IoTSecurityAggregatedAlert) UnmarshalJSON(body []byte) error {
return nil
}
-// IoTSecurityAggregatedAlertList list of IoT Security solution aggregated alert data.
-type IoTSecurityAggregatedAlertList struct {
+// RegulatoryComplianceAssessmentList list of regulatory compliance assessment response
+type RegulatoryComplianceAssessmentList struct {
autorest.Response `json:"-"`
- // Value - List of aggregated alerts data.
- Value *[]IoTSecurityAggregatedAlert `json:"value,omitempty"`
- // NextLink - READ-ONLY; When there is too much alert data for one page, use this URI to fetch the next page.
+ Value *[]RegulatoryComplianceAssessment `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// IoTSecurityAggregatedAlertListIterator provides access to a complete listing of
-// IoTSecurityAggregatedAlert values.
-type IoTSecurityAggregatedAlertListIterator struct {
+// MarshalJSON is the custom marshaler for RegulatoryComplianceAssessmentList.
+func (rcal RegulatoryComplianceAssessmentList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if rcal.Value != nil {
+ objectMap["value"] = rcal.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// RegulatoryComplianceAssessmentListIterator provides access to a complete listing of
+// RegulatoryComplianceAssessment values.
+type RegulatoryComplianceAssessmentListIterator struct {
i int
- page IoTSecurityAggregatedAlertListPage
+ page RegulatoryComplianceAssessmentListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *IoTSecurityAggregatedAlertListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *RegulatoryComplianceAssessmentListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedAlertListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceAssessmentListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -6275,62 +13790,67 @@ func (iter *IoTSecurityAggregatedAlertListIterator) NextWithContext(ctx context.
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *IoTSecurityAggregatedAlertListIterator) Next() error {
+func (iter *RegulatoryComplianceAssessmentListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter IoTSecurityAggregatedAlertListIterator) NotDone() bool {
+func (iter RegulatoryComplianceAssessmentListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter IoTSecurityAggregatedAlertListIterator) Response() IoTSecurityAggregatedAlertList {
+func (iter RegulatoryComplianceAssessmentListIterator) Response() RegulatoryComplianceAssessmentList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter IoTSecurityAggregatedAlertListIterator) Value() IoTSecurityAggregatedAlert {
+func (iter RegulatoryComplianceAssessmentListIterator) Value() RegulatoryComplianceAssessment {
if !iter.page.NotDone() {
- return IoTSecurityAggregatedAlert{}
+ return RegulatoryComplianceAssessment{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the IoTSecurityAggregatedAlertListIterator type.
-func NewIoTSecurityAggregatedAlertListIterator(page IoTSecurityAggregatedAlertListPage) IoTSecurityAggregatedAlertListIterator {
- return IoTSecurityAggregatedAlertListIterator{page: page}
+// Creates a new instance of the RegulatoryComplianceAssessmentListIterator type.
+func NewRegulatoryComplianceAssessmentListIterator(page RegulatoryComplianceAssessmentListPage) RegulatoryComplianceAssessmentListIterator {
+ return RegulatoryComplianceAssessmentListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (itsaal IoTSecurityAggregatedAlertList) IsEmpty() bool {
- return itsaal.Value == nil || len(*itsaal.Value) == 0
+func (rcal RegulatoryComplianceAssessmentList) IsEmpty() bool {
+ return rcal.Value == nil || len(*rcal.Value) == 0
}
-// ioTSecurityAggregatedAlertListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (rcal RegulatoryComplianceAssessmentList) hasNextLink() bool {
+ return rcal.NextLink != nil && len(*rcal.NextLink) != 0
+}
+
+// regulatoryComplianceAssessmentListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (itsaal IoTSecurityAggregatedAlertList) ioTSecurityAggregatedAlertListPreparer(ctx context.Context) (*http.Request, error) {
- if itsaal.NextLink == nil || len(to.String(itsaal.NextLink)) < 1 {
+func (rcal RegulatoryComplianceAssessmentList) regulatoryComplianceAssessmentListPreparer(ctx context.Context) (*http.Request, error) {
+ if !rcal.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(itsaal.NextLink)))
+ autorest.WithBaseURL(to.String(rcal.NextLink)))
}
-// IoTSecurityAggregatedAlertListPage contains a page of IoTSecurityAggregatedAlert values.
-type IoTSecurityAggregatedAlertListPage struct {
- fn func(context.Context, IoTSecurityAggregatedAlertList) (IoTSecurityAggregatedAlertList, error)
- itsaal IoTSecurityAggregatedAlertList
+// RegulatoryComplianceAssessmentListPage contains a page of RegulatoryComplianceAssessment values.
+type RegulatoryComplianceAssessmentListPage struct {
+ fn func(context.Context, RegulatoryComplianceAssessmentList) (RegulatoryComplianceAssessmentList, error)
+ rcal RegulatoryComplianceAssessmentList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *IoTSecurityAggregatedAlertListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *RegulatoryComplianceAssessmentListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedAlertListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceAssessmentListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -6339,113 +13859,102 @@ func (page *IoTSecurityAggregatedAlertListPage) NextWithContext(ctx context.Cont
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.itsaal)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.rcal)
+ if err != nil {
+ return err
+ }
+ page.rcal = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.itsaal = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *IoTSecurityAggregatedAlertListPage) Next() error {
+func (page *RegulatoryComplianceAssessmentListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page IoTSecurityAggregatedAlertListPage) NotDone() bool {
- return !page.itsaal.IsEmpty()
+func (page RegulatoryComplianceAssessmentListPage) NotDone() bool {
+ return !page.rcal.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page IoTSecurityAggregatedAlertListPage) Response() IoTSecurityAggregatedAlertList {
- return page.itsaal
+func (page RegulatoryComplianceAssessmentListPage) Response() RegulatoryComplianceAssessmentList {
+ return page.rcal
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page IoTSecurityAggregatedAlertListPage) Values() []IoTSecurityAggregatedAlert {
- if page.itsaal.IsEmpty() {
+func (page RegulatoryComplianceAssessmentListPage) Values() []RegulatoryComplianceAssessment {
+ if page.rcal.IsEmpty() {
return nil
}
- return *page.itsaal.Value
+ return *page.rcal.Value
}
-// Creates a new instance of the IoTSecurityAggregatedAlertListPage type.
-func NewIoTSecurityAggregatedAlertListPage(getNextPage func(context.Context, IoTSecurityAggregatedAlertList) (IoTSecurityAggregatedAlertList, error)) IoTSecurityAggregatedAlertListPage {
- return IoTSecurityAggregatedAlertListPage{fn: getNextPage}
+// Creates a new instance of the RegulatoryComplianceAssessmentListPage type.
+func NewRegulatoryComplianceAssessmentListPage(getNextPage func(context.Context, RegulatoryComplianceAssessmentList) (RegulatoryComplianceAssessmentList, error)) RegulatoryComplianceAssessmentListPage {
+ return RegulatoryComplianceAssessmentListPage{fn: getNextPage}
}
-// IoTSecurityAggregatedAlertProperties ioT Security solution aggregated alert details.
-type IoTSecurityAggregatedAlertProperties struct {
- // AlertType - READ-ONLY; Name of the alert type.
- AlertType *string `json:"alertType,omitempty"`
- // AlertDisplayName - READ-ONLY; Display name of the alert type.
- AlertDisplayName *string `json:"alertDisplayName,omitempty"`
- // AggregatedDateUtc - READ-ONLY; Date of detection.
- AggregatedDateUtc *date.Date `json:"aggregatedDateUtc,omitempty"`
- // VendorName - READ-ONLY; Name of the organization that raised the alert.
- VendorName *string `json:"vendorName,omitempty"`
- // ReportedSeverity - READ-ONLY; Assessed alert severity. Possible values include: 'ReportedSeverityInformational', 'ReportedSeverityLow', 'ReportedSeverityMedium', 'ReportedSeverityHigh'
- ReportedSeverity ReportedSeverity `json:"reportedSeverity,omitempty"`
- // RemediationSteps - READ-ONLY; Recommended steps for remediation.
- RemediationSteps *string `json:"remediationSteps,omitempty"`
- // Description - READ-ONLY; Description of the suspected vulnerability and meaning.
+// RegulatoryComplianceAssessmentProperties regulatory compliance assessment data
+type RegulatoryComplianceAssessmentProperties struct {
+ // Description - READ-ONLY; The description of the regulatory compliance assessment
Description *string `json:"description,omitempty"`
- // Count - READ-ONLY; Number of alerts occurrences within the aggregated time window.
- Count *int32 `json:"count,omitempty"`
- // EffectedResourceType - READ-ONLY; Azure resource ID of the resource that received the alerts.
- EffectedResourceType *string `json:"effectedResourceType,omitempty"`
- // SystemSource - READ-ONLY; The type of the alerted resource (Azure, Non-Azure).
- SystemSource *string `json:"systemSource,omitempty"`
- // ActionTaken - READ-ONLY; IoT Security solution alert response.
- ActionTaken *string `json:"actionTaken,omitempty"`
- // LogAnalyticsQuery - READ-ONLY; Log analytics query for getting the list of affected devices/alerts.
- LogAnalyticsQuery *string `json:"logAnalyticsQuery,omitempty"`
- // TopDevicesList - READ-ONLY; 10 devices with the highest number of occurrences of this alert type, on this day.
- TopDevicesList *[]IoTSecurityAggregatedAlertPropertiesTopDevicesListItem `json:"topDevicesList,omitempty"`
+ // AssessmentType - READ-ONLY; The expected type of assessment contained in the AssessmentDetailsLink
+ AssessmentType *string `json:"assessmentType,omitempty"`
+ // AssessmentDetailsLink - READ-ONLY; Link to more detailed assessment results data. The response type will be according to the assessmentType field
+ AssessmentDetailsLink *string `json:"assessmentDetailsLink,omitempty"`
+ // State - Aggregative state based on the assessment's scanned resources states. Possible values include: 'StatePassed', 'StateFailed', 'StateSkipped', 'StateUnsupported'
+ State State `json:"state,omitempty"`
+ // PassedResources - READ-ONLY; The given assessment's related resources count with passed state.
+ PassedResources *int32 `json:"passedResources,omitempty"`
+ // FailedResources - READ-ONLY; The given assessment's related resources count with failed state.
+ FailedResources *int32 `json:"failedResources,omitempty"`
+ // SkippedResources - READ-ONLY; The given assessment's related resources count with skipped state.
+ SkippedResources *int32 `json:"skippedResources,omitempty"`
+ // UnsupportedResources - READ-ONLY; The given assessment's related resources count with unsupported state.
+ UnsupportedResources *int32 `json:"unsupportedResources,omitempty"`
}
-// IoTSecurityAggregatedAlertPropertiesTopDevicesListItem ...
-type IoTSecurityAggregatedAlertPropertiesTopDevicesListItem struct {
- // DeviceID - READ-ONLY; Name of the device.
- DeviceID *string `json:"deviceId,omitempty"`
- // AlertsCount - READ-ONLY; Number of alerts raised for this device.
- AlertsCount *int32 `json:"alertsCount,omitempty"`
- // LastOccurrence - READ-ONLY; Most recent time this alert was raised for this device, on this day.
- LastOccurrence *string `json:"lastOccurrence,omitempty"`
+// MarshalJSON is the custom marshaler for RegulatoryComplianceAssessmentProperties.
+func (rcap RegulatoryComplianceAssessmentProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if rcap.State != "" {
+ objectMap["state"] = rcap.State
+ }
+ return json.Marshal(objectMap)
}
-// IoTSecurityAggregatedRecommendation ioT Security solution recommendation information.
-type IoTSecurityAggregatedRecommendation struct {
+// RegulatoryComplianceControl regulatory compliance control details and state
+type RegulatoryComplianceControl struct {
autorest.Response `json:"-"`
+ // RegulatoryComplianceControlProperties - Regulatory compliance control data
+ *RegulatoryComplianceControlProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
Name *string `json:"name,omitempty"`
// Type - READ-ONLY; Resource type
Type *string `json:"type,omitempty"`
- // Tags - Resource tags
- Tags map[string]*string `json:"tags"`
- // IoTSecurityAggregatedRecommendationProperties - Security Solution data
- *IoTSecurityAggregatedRecommendationProperties `json:"properties,omitempty"`
}
-// MarshalJSON is the custom marshaler for IoTSecurityAggregatedRecommendation.
-func (itsar IoTSecurityAggregatedRecommendation) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for RegulatoryComplianceControl.
+func (rcc RegulatoryComplianceControl) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if itsar.Tags != nil {
- objectMap["tags"] = itsar.Tags
- }
- if itsar.IoTSecurityAggregatedRecommendationProperties != nil {
- objectMap["properties"] = itsar.IoTSecurityAggregatedRecommendationProperties
+ if rcc.RegulatoryComplianceControlProperties != nil {
+ objectMap["properties"] = rcc.RegulatoryComplianceControlProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for IoTSecurityAggregatedRecommendation struct.
-func (itsar *IoTSecurityAggregatedRecommendation) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for RegulatoryComplianceControl struct.
+func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -6453,6 +13962,15 @@ func (itsar *IoTSecurityAggregatedRecommendation) UnmarshalJSON(body []byte) err
}
for k, v := range m {
switch k {
+ case "properties":
+ if v != nil {
+ var regulatoryComplianceControlProperties RegulatoryComplianceControlProperties
+ err = json.Unmarshal(*v, ®ulatoryComplianceControlProperties)
+ if err != nil {
+ return err
+ }
+ rcc.RegulatoryComplianceControlProperties = ®ulatoryComplianceControlProperties
+ }
case "id":
if v != nil {
var ID string
@@ -6460,7 +13978,7 @@ func (itsar *IoTSecurityAggregatedRecommendation) UnmarshalJSON(body []byte) err
if err != nil {
return err
}
- itsar.ID = &ID
+ rcc.ID = &ID
}
case "name":
if v != nil {
@@ -6469,7 +13987,7 @@ func (itsar *IoTSecurityAggregatedRecommendation) UnmarshalJSON(body []byte) err
if err != nil {
return err
}
- itsar.Name = &name
+ rcc.Name = &name
}
case "type":
if v != nil {
@@ -6478,25 +13996,7 @@ func (itsar *IoTSecurityAggregatedRecommendation) UnmarshalJSON(body []byte) err
if err != nil {
return err
}
- itsar.Type = &typeVar
- }
- case "tags":
- if v != nil {
- var tags map[string]*string
- err = json.Unmarshal(*v, &tags)
- if err != nil {
- return err
- }
- itsar.Tags = tags
- }
- case "properties":
- if v != nil {
- var ioTSecurityAggregatedRecommendationProperties IoTSecurityAggregatedRecommendationProperties
- err = json.Unmarshal(*v, &ioTSecurityAggregatedRecommendationProperties)
- if err != nil {
- return err
- }
- itsar.IoTSecurityAggregatedRecommendationProperties = &ioTSecurityAggregatedRecommendationProperties
+ rcc.Type = &typeVar
}
}
}
@@ -6504,27 +14004,36 @@ func (itsar *IoTSecurityAggregatedRecommendation) UnmarshalJSON(body []byte) err
return nil
}
-// IoTSecurityAggregatedRecommendationList list of IoT Security solution aggregated recommendations.
-type IoTSecurityAggregatedRecommendationList struct {
+// RegulatoryComplianceControlList list of regulatory compliance controls response
+type RegulatoryComplianceControlList struct {
autorest.Response `json:"-"`
- // Value - List of aggregated recommendations data.
- Value *[]IoTSecurityAggregatedRecommendation `json:"value,omitempty"`
- // NextLink - READ-ONLY; When there is too much alert data for one page, use this URI to fetch the next page.
+ // Value - List of regulatory compliance controls
+ Value *[]RegulatoryComplianceControl `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// IoTSecurityAggregatedRecommendationListIterator provides access to a complete listing of
-// IoTSecurityAggregatedRecommendation values.
-type IoTSecurityAggregatedRecommendationListIterator struct {
+// MarshalJSON is the custom marshaler for RegulatoryComplianceControlList.
+func (rccl RegulatoryComplianceControlList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if rccl.Value != nil {
+ objectMap["value"] = rccl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// RegulatoryComplianceControlListIterator provides access to a complete listing of RegulatoryComplianceControl
+// values.
+type RegulatoryComplianceControlListIterator struct {
i int
- page IoTSecurityAggregatedRecommendationListPage
+ page RegulatoryComplianceControlListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *IoTSecurityAggregatedRecommendationListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *RegulatoryComplianceControlListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedRecommendationListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceControlListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -6549,63 +14058,67 @@ func (iter *IoTSecurityAggregatedRecommendationListIterator) NextWithContext(ctx
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *IoTSecurityAggregatedRecommendationListIterator) Next() error {
+func (iter *RegulatoryComplianceControlListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter IoTSecurityAggregatedRecommendationListIterator) NotDone() bool {
+func (iter RegulatoryComplianceControlListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter IoTSecurityAggregatedRecommendationListIterator) Response() IoTSecurityAggregatedRecommendationList {
+func (iter RegulatoryComplianceControlListIterator) Response() RegulatoryComplianceControlList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter IoTSecurityAggregatedRecommendationListIterator) Value() IoTSecurityAggregatedRecommendation {
+func (iter RegulatoryComplianceControlListIterator) Value() RegulatoryComplianceControl {
if !iter.page.NotDone() {
- return IoTSecurityAggregatedRecommendation{}
+ return RegulatoryComplianceControl{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the IoTSecurityAggregatedRecommendationListIterator type.
-func NewIoTSecurityAggregatedRecommendationListIterator(page IoTSecurityAggregatedRecommendationListPage) IoTSecurityAggregatedRecommendationListIterator {
- return IoTSecurityAggregatedRecommendationListIterator{page: page}
+// Creates a new instance of the RegulatoryComplianceControlListIterator type.
+func NewRegulatoryComplianceControlListIterator(page RegulatoryComplianceControlListPage) RegulatoryComplianceControlListIterator {
+ return RegulatoryComplianceControlListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (itsarl IoTSecurityAggregatedRecommendationList) IsEmpty() bool {
- return itsarl.Value == nil || len(*itsarl.Value) == 0
+func (rccl RegulatoryComplianceControlList) IsEmpty() bool {
+ return rccl.Value == nil || len(*rccl.Value) == 0
}
-// ioTSecurityAggregatedRecommendationListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (rccl RegulatoryComplianceControlList) hasNextLink() bool {
+ return rccl.NextLink != nil && len(*rccl.NextLink) != 0
+}
+
+// regulatoryComplianceControlListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (itsarl IoTSecurityAggregatedRecommendationList) ioTSecurityAggregatedRecommendationListPreparer(ctx context.Context) (*http.Request, error) {
- if itsarl.NextLink == nil || len(to.String(itsarl.NextLink)) < 1 {
+func (rccl RegulatoryComplianceControlList) regulatoryComplianceControlListPreparer(ctx context.Context) (*http.Request, error) {
+ if !rccl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(itsarl.NextLink)))
+ autorest.WithBaseURL(to.String(rccl.NextLink)))
}
-// IoTSecurityAggregatedRecommendationListPage contains a page of IoTSecurityAggregatedRecommendation
-// values.
-type IoTSecurityAggregatedRecommendationListPage struct {
- fn func(context.Context, IoTSecurityAggregatedRecommendationList) (IoTSecurityAggregatedRecommendationList, error)
- itsarl IoTSecurityAggregatedRecommendationList
+// RegulatoryComplianceControlListPage contains a page of RegulatoryComplianceControl values.
+type RegulatoryComplianceControlListPage struct {
+ fn func(context.Context, RegulatoryComplianceControlList) (RegulatoryComplianceControlList, error)
+ rccl RegulatoryComplianceControlList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *IoTSecurityAggregatedRecommendationListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *RegulatoryComplianceControlListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedRecommendationListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceControlListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -6614,105 +14127,77 @@ func (page *IoTSecurityAggregatedRecommendationListPage) NextWithContext(ctx con
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.itsarl)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.rccl)
+ if err != nil {
+ return err
+ }
+ page.rccl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.itsarl = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *IoTSecurityAggregatedRecommendationListPage) Next() error {
+func (page *RegulatoryComplianceControlListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page IoTSecurityAggregatedRecommendationListPage) NotDone() bool {
- return !page.itsarl.IsEmpty()
+func (page RegulatoryComplianceControlListPage) NotDone() bool {
+ return !page.rccl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page IoTSecurityAggregatedRecommendationListPage) Response() IoTSecurityAggregatedRecommendationList {
- return page.itsarl
+func (page RegulatoryComplianceControlListPage) Response() RegulatoryComplianceControlList {
+ return page.rccl
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page IoTSecurityAggregatedRecommendationListPage) Values() []IoTSecurityAggregatedRecommendation {
- if page.itsarl.IsEmpty() {
+func (page RegulatoryComplianceControlListPage) Values() []RegulatoryComplianceControl {
+ if page.rccl.IsEmpty() {
return nil
}
- return *page.itsarl.Value
+ return *page.rccl.Value
}
-// Creates a new instance of the IoTSecurityAggregatedRecommendationListPage type.
-func NewIoTSecurityAggregatedRecommendationListPage(getNextPage func(context.Context, IoTSecurityAggregatedRecommendationList) (IoTSecurityAggregatedRecommendationList, error)) IoTSecurityAggregatedRecommendationListPage {
- return IoTSecurityAggregatedRecommendationListPage{fn: getNextPage}
+// Creates a new instance of the RegulatoryComplianceControlListPage type.
+func NewRegulatoryComplianceControlListPage(getNextPage func(context.Context, RegulatoryComplianceControlList) (RegulatoryComplianceControlList, error)) RegulatoryComplianceControlListPage {
+ return RegulatoryComplianceControlListPage{fn: getNextPage}
}
-// IoTSecurityAggregatedRecommendationProperties ioT Security solution aggregated recommendation
-// information
-type IoTSecurityAggregatedRecommendationProperties struct {
- // RecommendationName - Name of the recommendation.
- RecommendationName *string `json:"recommendationName,omitempty"`
- // RecommendationDisplayName - READ-ONLY; Display name of the recommendation type.
- RecommendationDisplayName *string `json:"recommendationDisplayName,omitempty"`
- // Description - READ-ONLY; Description of the suspected vulnerability and meaning.
+// RegulatoryComplianceControlProperties regulatory compliance control data
+type RegulatoryComplianceControlProperties struct {
+ // Description - READ-ONLY; The description of the regulatory compliance control
Description *string `json:"description,omitempty"`
- // RecommendationTypeID - READ-ONLY; Recommendation-type GUID.
- RecommendationTypeID *string `json:"recommendationTypeId,omitempty"`
- // DetectedBy - READ-ONLY; Name of the organization that made the recommendation.
- DetectedBy *string `json:"detectedBy,omitempty"`
- // RemediationSteps - READ-ONLY; Recommended steps for remediation
- RemediationSteps *string `json:"remediationSteps,omitempty"`
- // ReportedSeverity - READ-ONLY; Assessed recommendation severity. Possible values include: 'ReportedSeverityInformational', 'ReportedSeverityLow', 'ReportedSeverityMedium', 'ReportedSeverityHigh'
- ReportedSeverity ReportedSeverity `json:"reportedSeverity,omitempty"`
- // HealthyDevices - READ-ONLY; Number of healthy devices within the IoT Security solution.
- HealthyDevices *int32 `json:"healthyDevices,omitempty"`
- // UnhealthyDeviceCount - READ-ONLY; Number of unhealthy devices within the IoT Security solution.
- UnhealthyDeviceCount *int32 `json:"unhealthyDeviceCount,omitempty"`
- // LogAnalyticsQuery - READ-ONLY; Log analytics query for getting the list of affected devices/alerts.
- LogAnalyticsQuery *string `json:"logAnalyticsQuery,omitempty"`
-}
-
-// IoTSecurityAlertedDevice statistical information about the number of alerts per device during last set
-// number of days.
-type IoTSecurityAlertedDevice struct {
- // DeviceID - READ-ONLY; Device identifier.
- DeviceID *string `json:"deviceId,omitempty"`
- // AlertsCount - READ-ONLY; Number of alerts raised for this device.
- AlertsCount *int32 `json:"alertsCount,omitempty"`
-}
-
-// IoTSecurityDeviceAlert statistical information about the number of alerts per alert type during last set
-// number of days
-type IoTSecurityDeviceAlert struct {
- // AlertDisplayName - READ-ONLY; Display name of the alert
- AlertDisplayName *string `json:"alertDisplayName,omitempty"`
- // ReportedSeverity - READ-ONLY; Assessed Alert severity. Possible values include: 'ReportedSeverityInformational', 'ReportedSeverityLow', 'ReportedSeverityMedium', 'ReportedSeverityHigh'
- ReportedSeverity ReportedSeverity `json:"reportedSeverity,omitempty"`
- // AlertsCount - READ-ONLY; Number of alerts raised for this alert type.
- AlertsCount *int32 `json:"alertsCount,omitempty"`
+ // State - Aggregative state based on the control's supported assessments states. Possible values include: 'StatePassed', 'StateFailed', 'StateSkipped', 'StateUnsupported'
+ State State `json:"state,omitempty"`
+ // PassedAssessments - READ-ONLY; The number of supported regulatory compliance assessments of the given control with a passed state
+ PassedAssessments *int32 `json:"passedAssessments,omitempty"`
+ // FailedAssessments - READ-ONLY; The number of supported regulatory compliance assessments of the given control with a failed state
+ FailedAssessments *int32 `json:"failedAssessments,omitempty"`
+ // SkippedAssessments - READ-ONLY; The number of supported regulatory compliance assessments of the given control with a skipped state
+ SkippedAssessments *int32 `json:"skippedAssessments,omitempty"`
}
-// IoTSecurityDeviceRecommendation statistical information about the number of recommendations per device,
-// per recommendation type.
-type IoTSecurityDeviceRecommendation struct {
- // RecommendationDisplayName - READ-ONLY; Display name of the recommendation.
- RecommendationDisplayName *string `json:"recommendationDisplayName,omitempty"`
- // ReportedSeverity - READ-ONLY; Assessed recommendation severity. Possible values include: 'ReportedSeverityInformational', 'ReportedSeverityLow', 'ReportedSeverityMedium', 'ReportedSeverityHigh'
- ReportedSeverity ReportedSeverity `json:"reportedSeverity,omitempty"`
- // DevicesCount - READ-ONLY; Number of devices with this recommendation.
- DevicesCount *int32 `json:"devicesCount,omitempty"`
+// MarshalJSON is the custom marshaler for RegulatoryComplianceControlProperties.
+func (rccp RegulatoryComplianceControlProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if rccp.State != "" {
+ objectMap["state"] = rccp.State
+ }
+ return json.Marshal(objectMap)
}
-// IoTSecuritySolutionAnalyticsModel security analytics of your IoT Security solution
-type IoTSecuritySolutionAnalyticsModel struct {
+// RegulatoryComplianceStandard regulatory compliance standard details and state
+type RegulatoryComplianceStandard struct {
autorest.Response `json:"-"`
- // IoTSecuritySolutionAnalyticsModelProperties - Security Solution Aggregated Alert data
- *IoTSecuritySolutionAnalyticsModelProperties `json:"properties,omitempty"`
+ // RegulatoryComplianceStandardProperties - Regulatory compliance standard data
+ *RegulatoryComplianceStandardProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
@@ -6721,17 +14206,17 @@ type IoTSecuritySolutionAnalyticsModel struct {
Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for IoTSecuritySolutionAnalyticsModel.
-func (itssam IoTSecuritySolutionAnalyticsModel) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for RegulatoryComplianceStandard.
+func (rcs RegulatoryComplianceStandard) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if itssam.IoTSecuritySolutionAnalyticsModelProperties != nil {
- objectMap["properties"] = itssam.IoTSecuritySolutionAnalyticsModelProperties
+ if rcs.RegulatoryComplianceStandardProperties != nil {
+ objectMap["properties"] = rcs.RegulatoryComplianceStandardProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for IoTSecuritySolutionAnalyticsModel struct.
-func (itssam *IoTSecuritySolutionAnalyticsModel) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for RegulatoryComplianceStandard struct.
+func (rcs *RegulatoryComplianceStandard) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -6741,120 +14226,13 @@ func (itssam *IoTSecuritySolutionAnalyticsModel) UnmarshalJSON(body []byte) erro
switch k {
case "properties":
if v != nil {
- var ioTSecuritySolutionAnalyticsModelProperties IoTSecuritySolutionAnalyticsModelProperties
- err = json.Unmarshal(*v, &ioTSecuritySolutionAnalyticsModelProperties)
- if err != nil {
- return err
- }
- itssam.IoTSecuritySolutionAnalyticsModelProperties = &ioTSecuritySolutionAnalyticsModelProperties
- }
- case "id":
- if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- itssam.ID = &ID
- }
- case "name":
- if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
- if err != nil {
- return err
- }
- itssam.Name = &name
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
+ var regulatoryComplianceStandardProperties RegulatoryComplianceStandardProperties
+ err = json.Unmarshal(*v, ®ulatoryComplianceStandardProperties)
if err != nil {
return err
}
- itssam.Type = &typeVar
+ rcs.RegulatoryComplianceStandardProperties = ®ulatoryComplianceStandardProperties
}
- }
- }
-
- return nil
-}
-
-// IoTSecuritySolutionAnalyticsModelList list of Security analytics of your IoT Security solution
-type IoTSecuritySolutionAnalyticsModelList struct {
- autorest.Response `json:"-"`
- // Value - List of Security analytics of your IoT Security solution
- Value *[]IoTSecuritySolutionAnalyticsModel `json:"value,omitempty"`
- // NextLink - READ-ONLY; When there is too much alert data for one page, use this URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
-}
-
-// IoTSecuritySolutionAnalyticsModelProperties security analytics properties of your IoT Security solution
-type IoTSecuritySolutionAnalyticsModelProperties struct {
- // Metrics - READ-ONLY; Security analytics of your IoT Security solution.
- Metrics *IoTSeverityMetrics `json:"metrics,omitempty"`
- // UnhealthyDeviceCount - READ-ONLY; Number of unhealthy devices within your IoT Security solution.
- UnhealthyDeviceCount *int32 `json:"unhealthyDeviceCount,omitempty"`
- // DevicesMetrics - READ-ONLY; List of device metrics by the aggregation date.
- DevicesMetrics *[]IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem `json:"devicesMetrics,omitempty"`
- // TopAlertedDevices - List of the 3 devices with the most alerts.
- TopAlertedDevices *[]IoTSecurityAlertedDevice `json:"topAlertedDevices,omitempty"`
- // MostPrevalentDeviceAlerts - List of the 3 most prevalent device alerts.
- MostPrevalentDeviceAlerts *[]IoTSecurityDeviceAlert `json:"mostPrevalentDeviceAlerts,omitempty"`
- // MostPrevalentDeviceRecommendations - List of the 3 most prevalent device recommendations.
- MostPrevalentDeviceRecommendations *[]IoTSecurityDeviceRecommendation `json:"mostPrevalentDeviceRecommendations,omitempty"`
-}
-
-// IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem ...
-type IoTSecuritySolutionAnalyticsModelPropertiesDevicesMetricsItem struct {
- // Date - Aggregation of IoT Security solution device alert metrics by date.
- Date *date.Time `json:"date,omitempty"`
- // DevicesMetrics - Device alert count by severity.
- DevicesMetrics *IoTSeverityMetrics `json:"devicesMetrics,omitempty"`
-}
-
-// IoTSecuritySolutionModel ioT Security solution configuration and resource information.
-type IoTSecuritySolutionModel struct {
- autorest.Response `json:"-"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
- // Tags - Resource tags
- Tags map[string]*string `json:"tags"`
- // Location - The resource location.
- Location *string `json:"location,omitempty"`
- // IoTSecuritySolutionProperties - Security Solution data
- *IoTSecuritySolutionProperties `json:"properties,omitempty"`
-}
-
-// MarshalJSON is the custom marshaler for IoTSecuritySolutionModel.
-func (itssm IoTSecuritySolutionModel) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- if itssm.Tags != nil {
- objectMap["tags"] = itssm.Tags
- }
- if itssm.Location != nil {
- objectMap["location"] = itssm.Location
- }
- if itssm.IoTSecuritySolutionProperties != nil {
- objectMap["properties"] = itssm.IoTSecuritySolutionProperties
- }
- return json.Marshal(objectMap)
-}
-
-// UnmarshalJSON is the custom unmarshaler for IoTSecuritySolutionModel struct.
-func (itssm *IoTSecuritySolutionModel) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
- err := json.Unmarshal(body, &m)
- if err != nil {
- return err
- }
- for k, v := range m {
- switch k {
case "id":
if v != nil {
var ID string
@@ -6862,7 +14240,7 @@ func (itssm *IoTSecuritySolutionModel) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- itssm.ID = &ID
+ rcs.ID = &ID
}
case "name":
if v != nil {
@@ -6871,43 +14249,16 @@ func (itssm *IoTSecuritySolutionModel) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- itssm.Name = &name
+ rcs.Name = &name
}
case "type":
if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- itssm.Type = &typeVar
- }
- case "tags":
- if v != nil {
- var tags map[string]*string
- err = json.Unmarshal(*v, &tags)
- if err != nil {
- return err
- }
- itssm.Tags = tags
- }
- case "location":
- if v != nil {
- var location string
- err = json.Unmarshal(*v, &location)
- if err != nil {
- return err
- }
- itssm.Location = &location
- }
- case "properties":
- if v != nil {
- var ioTSecuritySolutionProperties IoTSecuritySolutionProperties
- err = json.Unmarshal(*v, &ioTSecuritySolutionProperties)
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
- itssm.IoTSecuritySolutionProperties = &ioTSecuritySolutionProperties
+ rcs.Type = &typeVar
}
}
}
@@ -6915,49 +14266,35 @@ func (itssm *IoTSecuritySolutionModel) UnmarshalJSON(body []byte) error {
return nil
}
-// IoTSecuritySolutionProperties security Solution setting data
-type IoTSecuritySolutionProperties struct {
- // Workspace - Workspace resource ID
- Workspace *string `json:"workspace,omitempty"`
- // DisplayName - Resource display name.
- DisplayName *string `json:"displayName,omitempty"`
- // Status - Status of the IoT Security solution. Possible values include: 'SolutionStatusEnabled', 'SolutionStatusDisabled'
- Status SolutionStatus `json:"status,omitempty"`
- // Export - List of additional options for exporting to workspace data.
- Export *[]ExportData `json:"export,omitempty"`
- // DisabledDataSources - Disabled data sources. Disabling these data sources compromises the system.
- DisabledDataSources *[]DataSource `json:"disabledDataSources,omitempty"`
- // IotHubs - IoT Hub resource IDs
- IotHubs *[]string `json:"iotHubs,omitempty"`
- UserDefinedResources *UserDefinedResourcesProperties `json:"userDefinedResources,omitempty"`
- // AutoDiscoveredResources - READ-ONLY; List of resources that were automatically discovered as relevant to the security solution.
- AutoDiscoveredResources *[]string `json:"autoDiscoveredResources,omitempty"`
- RecommendationsConfiguration *[]RecommendationConfigurationProperties `json:"recommendationsConfiguration,omitempty"`
- // UnmaskedIPLoggingStatus - Unmasked IP address logging status. Possible values include: 'UnmaskedIPLoggingStatusDisabled', 'UnmaskedIPLoggingStatusEnabled'
- UnmaskedIPLoggingStatus UnmaskedIPLoggingStatus `json:"unmaskedIpLoggingStatus,omitempty"`
-}
-
-// IoTSecuritySolutionsList list of IoT Security solutions.
-type IoTSecuritySolutionsList struct {
+// RegulatoryComplianceStandardList list of regulatory compliance standards response
+type RegulatoryComplianceStandardList struct {
autorest.Response `json:"-"`
- // Value - List of IoT Security solutions
- Value *[]IoTSecuritySolutionModel `json:"value,omitempty"`
+ Value *[]RegulatoryComplianceStandard `json:"value,omitempty"`
// NextLink - READ-ONLY; The URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// IoTSecuritySolutionsListIterator provides access to a complete listing of IoTSecuritySolutionModel
-// values.
-type IoTSecuritySolutionsListIterator struct {
+// MarshalJSON is the custom marshaler for RegulatoryComplianceStandardList.
+func (rcsl RegulatoryComplianceStandardList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if rcsl.Value != nil {
+ objectMap["value"] = rcsl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
+// RegulatoryComplianceStandardListIterator provides access to a complete listing of
+// RegulatoryComplianceStandard values.
+type RegulatoryComplianceStandardListIterator struct {
i int
- page IoTSecuritySolutionsListPage
+ page RegulatoryComplianceStandardListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *IoTSecuritySolutionsListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *RegulatoryComplianceStandardListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecuritySolutionsListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceStandardListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -6982,62 +14319,67 @@ func (iter *IoTSecuritySolutionsListIterator) NextWithContext(ctx context.Contex
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *IoTSecuritySolutionsListIterator) Next() error {
+func (iter *RegulatoryComplianceStandardListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter IoTSecuritySolutionsListIterator) NotDone() bool {
+func (iter RegulatoryComplianceStandardListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter IoTSecuritySolutionsListIterator) Response() IoTSecuritySolutionsList {
+func (iter RegulatoryComplianceStandardListIterator) Response() RegulatoryComplianceStandardList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter IoTSecuritySolutionsListIterator) Value() IoTSecuritySolutionModel {
+func (iter RegulatoryComplianceStandardListIterator) Value() RegulatoryComplianceStandard {
if !iter.page.NotDone() {
- return IoTSecuritySolutionModel{}
+ return RegulatoryComplianceStandard{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the IoTSecuritySolutionsListIterator type.
-func NewIoTSecuritySolutionsListIterator(page IoTSecuritySolutionsListPage) IoTSecuritySolutionsListIterator {
- return IoTSecuritySolutionsListIterator{page: page}
+// Creates a new instance of the RegulatoryComplianceStandardListIterator type.
+func NewRegulatoryComplianceStandardListIterator(page RegulatoryComplianceStandardListPage) RegulatoryComplianceStandardListIterator {
+ return RegulatoryComplianceStandardListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (itssl IoTSecuritySolutionsList) IsEmpty() bool {
- return itssl.Value == nil || len(*itssl.Value) == 0
+func (rcsl RegulatoryComplianceStandardList) IsEmpty() bool {
+ return rcsl.Value == nil || len(*rcsl.Value) == 0
}
-// ioTSecuritySolutionsListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (rcsl RegulatoryComplianceStandardList) hasNextLink() bool {
+ return rcsl.NextLink != nil && len(*rcsl.NextLink) != 0
+}
+
+// regulatoryComplianceStandardListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (itssl IoTSecuritySolutionsList) ioTSecuritySolutionsListPreparer(ctx context.Context) (*http.Request, error) {
- if itssl.NextLink == nil || len(to.String(itssl.NextLink)) < 1 {
+func (rcsl RegulatoryComplianceStandardList) regulatoryComplianceStandardListPreparer(ctx context.Context) (*http.Request, error) {
+ if !rcsl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(itssl.NextLink)))
+ autorest.WithBaseURL(to.String(rcsl.NextLink)))
}
-// IoTSecuritySolutionsListPage contains a page of IoTSecuritySolutionModel values.
-type IoTSecuritySolutionsListPage struct {
- fn func(context.Context, IoTSecuritySolutionsList) (IoTSecuritySolutionsList, error)
- itssl IoTSecuritySolutionsList
+// RegulatoryComplianceStandardListPage contains a page of RegulatoryComplianceStandard values.
+type RegulatoryComplianceStandardListPage struct {
+ fn func(context.Context, RegulatoryComplianceStandardList) (RegulatoryComplianceStandardList, error)
+ rcsl RegulatoryComplianceStandardList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *IoTSecuritySolutionsListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *RegulatoryComplianceStandardListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecuritySolutionsListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceStandardListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -7046,230 +14388,295 @@ func (page *IoTSecuritySolutionsListPage) NextWithContext(ctx context.Context) (
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.itssl)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.rcsl)
+ if err != nil {
+ return err
+ }
+ page.rcsl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.itssl = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *IoTSecuritySolutionsListPage) Next() error {
+func (page *RegulatoryComplianceStandardListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page IoTSecuritySolutionsListPage) NotDone() bool {
- return !page.itssl.IsEmpty()
+func (page RegulatoryComplianceStandardListPage) NotDone() bool {
+ return !page.rcsl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page IoTSecuritySolutionsListPage) Response() IoTSecuritySolutionsList {
- return page.itssl
+func (page RegulatoryComplianceStandardListPage) Response() RegulatoryComplianceStandardList {
+ return page.rcsl
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page IoTSecuritySolutionsListPage) Values() []IoTSecuritySolutionModel {
- if page.itssl.IsEmpty() {
+func (page RegulatoryComplianceStandardListPage) Values() []RegulatoryComplianceStandard {
+ if page.rcsl.IsEmpty() {
return nil
}
- return *page.itssl.Value
+ return *page.rcsl.Value
}
-// Creates a new instance of the IoTSecuritySolutionsListPage type.
-func NewIoTSecuritySolutionsListPage(getNextPage func(context.Context, IoTSecuritySolutionsList) (IoTSecuritySolutionsList, error)) IoTSecuritySolutionsListPage {
- return IoTSecuritySolutionsListPage{fn: getNextPage}
+// Creates a new instance of the RegulatoryComplianceStandardListPage type.
+func NewRegulatoryComplianceStandardListPage(getNextPage func(context.Context, RegulatoryComplianceStandardList) (RegulatoryComplianceStandardList, error)) RegulatoryComplianceStandardListPage {
+ return RegulatoryComplianceStandardListPage{fn: getNextPage}
}
-// IoTSeverityMetrics ioT Security solution analytics severity metrics.
-type IoTSeverityMetrics struct {
- // High - Count of high severity alerts/recommendations.
- High *int32 `json:"high,omitempty"`
- // Medium - Count of medium severity alerts/recommendations.
- Medium *int32 `json:"medium,omitempty"`
- // Low - Count of low severity alerts/recommendations.
- Low *int32 `json:"low,omitempty"`
+// RegulatoryComplianceStandardProperties regulatory compliance standard data
+type RegulatoryComplianceStandardProperties struct {
+ // State - Aggregative state based on the standard's supported controls states. Possible values include: 'StatePassed', 'StateFailed', 'StateSkipped', 'StateUnsupported'
+ State State `json:"state,omitempty"`
+ // PassedControls - READ-ONLY; The number of supported regulatory compliance controls of the given standard with a passed state
+ PassedControls *int32 `json:"passedControls,omitempty"`
+ // FailedControls - READ-ONLY; The number of supported regulatory compliance controls of the given standard with a failed state
+ FailedControls *int32 `json:"failedControls,omitempty"`
+ // SkippedControls - READ-ONLY; The number of supported regulatory compliance controls of the given standard with a skipped state
+ SkippedControls *int32 `json:"skippedControls,omitempty"`
+ // UnsupportedControls - READ-ONLY; The number of regulatory compliance controls of the given standard which are unsupported by automated assessments
+ UnsupportedControls *int32 `json:"unsupportedControls,omitempty"`
}
-// JitNetworkAccessPoliciesList ...
-type JitNetworkAccessPoliciesList struct {
- autorest.Response `json:"-"`
- Value *[]JitNetworkAccessPolicy `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
+// MarshalJSON is the custom marshaler for RegulatoryComplianceStandardProperties.
+func (rcsp RegulatoryComplianceStandardProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if rcsp.State != "" {
+ objectMap["state"] = rcsp.State
+ }
+ return json.Marshal(objectMap)
}
-// JitNetworkAccessPoliciesListIterator provides access to a complete listing of JitNetworkAccessPolicy
-// values.
-type JitNetworkAccessPoliciesListIterator struct {
- i int
- page JitNetworkAccessPoliciesListPage
+// Resource describes an Azure resource.
+type Resource struct {
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
}
-// NextWithContext advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-func (iter *JitNetworkAccessPoliciesListIterator) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/JitNetworkAccessPoliciesListIterator.NextWithContext")
- defer func() {
- sc := -1
- if iter.Response().Response.Response != nil {
- sc = iter.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- iter.i++
- if iter.i < len(iter.page.Values()) {
- return nil
- }
- err = iter.page.NextWithContext(ctx)
- if err != nil {
- iter.i--
- return err
- }
- iter.i = 0
- return nil
+// MarshalJSON is the custom marshaler for Resource.
+func (r Resource) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
}
-// Next advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (iter *JitNetworkAccessPoliciesListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// BasicResourceDetails details of the resource that was assessed
+type BasicResourceDetails interface {
+ AsOnPremiseSQLResourceDetails() (*OnPremiseSQLResourceDetails, bool)
+ AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool)
+ AsBasicOnPremiseResourceDetails() (BasicOnPremiseResourceDetails, bool)
+ AsAzureResourceDetails() (*AzureResourceDetails, bool)
+ AsResourceDetails() (*ResourceDetails, bool)
}
-// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter JitNetworkAccessPoliciesListIterator) NotDone() bool {
- return iter.page.NotDone() && iter.i < len(iter.page.Values())
+// ResourceDetails details of the resource that was assessed
+type ResourceDetails struct {
+ // Source - Possible values include: 'SourceResourceDetails', 'SourceOnPremiseSQL', 'SourceOnPremise', 'SourceAzure'
+ Source Source `json:"source,omitempty"`
}
-// Response returns the raw server response from the last page request.
-func (iter JitNetworkAccessPoliciesListIterator) Response() JitNetworkAccessPoliciesList {
- return iter.page.Response()
+func unmarshalBasicResourceDetails(body []byte) (BasicResourceDetails, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return nil, err
+ }
+
+ switch m["source"] {
+ case string(SourceOnPremiseSQL):
+ var opsrd OnPremiseSQLResourceDetails
+ err := json.Unmarshal(body, &opsrd)
+ return opsrd, err
+ case string(SourceOnPremise):
+ var oprd OnPremiseResourceDetails
+ err := json.Unmarshal(body, &oprd)
+ return oprd, err
+ case string(SourceAzure):
+ var ard AzureResourceDetails
+ err := json.Unmarshal(body, &ard)
+ return ard, err
+ default:
+ var rd ResourceDetails
+ err := json.Unmarshal(body, &rd)
+ return rd, err
+ }
}
+func unmarshalBasicResourceDetailsArray(body []byte) ([]BasicResourceDetails, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
+ if err != nil {
+ return nil, err
+ }
-// Value returns the current value or a zero-initialized value if the
-// iterator has advanced beyond the end of the collection.
-func (iter JitNetworkAccessPoliciesListIterator) Value() JitNetworkAccessPolicy {
- if !iter.page.NotDone() {
- return JitNetworkAccessPolicy{}
+ rdArray := make([]BasicResourceDetails, len(rawMessages))
+
+ for index, rawMessage := range rawMessages {
+ rd, err := unmarshalBasicResourceDetails(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ rdArray[index] = rd
}
- return iter.page.Values()[iter.i]
+ return rdArray, nil
+}
+
+// MarshalJSON is the custom marshaler for ResourceDetails.
+func (rd ResourceDetails) MarshalJSON() ([]byte, error) {
+ rd.Source = SourceResourceDetails
+ objectMap := make(map[string]interface{})
+ if rd.Source != "" {
+ objectMap["source"] = rd.Source
+ }
+ return json.Marshal(objectMap)
}
-// Creates a new instance of the JitNetworkAccessPoliciesListIterator type.
-func NewJitNetworkAccessPoliciesListIterator(page JitNetworkAccessPoliciesListPage) JitNetworkAccessPoliciesListIterator {
- return JitNetworkAccessPoliciesListIterator{page: page}
+// AsOnPremiseSQLResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
+func (rd ResourceDetails) AsOnPremiseSQLResourceDetails() (*OnPremiseSQLResourceDetails, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (jnapl JitNetworkAccessPoliciesList) IsEmpty() bool {
- return jnapl.Value == nil || len(*jnapl.Value) == 0
+// AsOnPremiseResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
+func (rd ResourceDetails) AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool) {
+ return nil, false
}
-// jitNetworkAccessPoliciesListPreparer prepares a request to retrieve the next set of results.
-// It returns nil if no more results exist.
-func (jnapl JitNetworkAccessPoliciesList) jitNetworkAccessPoliciesListPreparer(ctx context.Context) (*http.Request, error) {
- if jnapl.NextLink == nil || len(to.String(jnapl.NextLink)) < 1 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(jnapl.NextLink)))
+// AsBasicOnPremiseResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
+func (rd ResourceDetails) AsBasicOnPremiseResourceDetails() (BasicOnPremiseResourceDetails, bool) {
+ return nil, false
}
-// JitNetworkAccessPoliciesListPage contains a page of JitNetworkAccessPolicy values.
-type JitNetworkAccessPoliciesListPage struct {
- fn func(context.Context, JitNetworkAccessPoliciesList) (JitNetworkAccessPoliciesList, error)
- jnapl JitNetworkAccessPoliciesList
+// AsAzureResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
+func (rd ResourceDetails) AsAzureResourceDetails() (*AzureResourceDetails, bool) {
+ return nil, false
}
-// NextWithContext advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-func (page *JitNetworkAccessPoliciesListPage) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/JitNetworkAccessPoliciesListPage.NextWithContext")
- defer func() {
- sc := -1
- if page.Response().Response.Response != nil {
- sc = page.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- next, err := page.fn(ctx, page.jnapl)
- if err != nil {
- return err
- }
- page.jnapl = next
- return nil
+// AsResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
+func (rd ResourceDetails) AsResourceDetails() (*ResourceDetails, bool) {
+ return &rd, true
}
-// Next advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (page *JitNetworkAccessPoliciesListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsBasicResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
+func (rd ResourceDetails) AsBasicResourceDetails() (BasicResourceDetails, bool) {
+ return &rd, true
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page JitNetworkAccessPoliciesListPage) NotDone() bool {
- return !page.jnapl.IsEmpty()
+// Rule describes remote addresses that is recommended to communicate with the Azure resource on some
+// (Protocol, Port, Direction). All other remote addresses are recommended to be blocked
+type Rule struct {
+ // Name - The name of the rule
+ Name *string `json:"name,omitempty"`
+ // Direction - The rule's direction. Possible values include: 'Inbound', 'Outbound'
+ Direction Direction `json:"direction,omitempty"`
+ // DestinationPort - The rule's destination port
+ DestinationPort *int32 `json:"destinationPort,omitempty"`
+ // Protocols - The rule's transport protocols
+ Protocols *[]TransportProtocol `json:"protocols,omitempty"`
+ // IPAddresses - The remote IP addresses that should be able to communicate with the Azure resource on the rule's destination port and protocol
+ IPAddresses *[]string `json:"ipAddresses,omitempty"`
+}
+
+// ScopeElement a more specific scope used to identify the alerts to suppress.
+type ScopeElement struct {
+ // AdditionalProperties - Unmatched properties from the message are deserialized this collection
+ AdditionalProperties map[string]interface{} `json:""`
+ // Field - The alert entity type to suppress by.
+ Field *string `json:"field,omitempty"`
}
-// Response returns the raw server response from the last page request.
-func (page JitNetworkAccessPoliciesListPage) Response() JitNetworkAccessPoliciesList {
- return page.jnapl
+// MarshalJSON is the custom marshaler for ScopeElement.
+func (se ScopeElement) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if se.Field != nil {
+ objectMap["field"] = se.Field
+ }
+ for k, v := range se.AdditionalProperties {
+ objectMap[k] = v
+ }
+ return json.Marshal(objectMap)
}
-// Values returns the slice of values for the current page or nil if there are no values.
-func (page JitNetworkAccessPoliciesListPage) Values() []JitNetworkAccessPolicy {
- if page.jnapl.IsEmpty() {
- return nil
+// UnmarshalJSON is the custom unmarshaler for ScopeElement struct.
+func (se *ScopeElement) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
}
- return *page.jnapl.Value
+ for k, v := range m {
+ switch k {
+ default:
+ if v != nil {
+ var additionalProperties interface{}
+ err = json.Unmarshal(*v, &additionalProperties)
+ if err != nil {
+ return err
+ }
+ if se.AdditionalProperties == nil {
+ se.AdditionalProperties = make(map[string]interface{})
+ }
+ se.AdditionalProperties[k] = additionalProperties
+ }
+ case "field":
+ if v != nil {
+ var field string
+ err = json.Unmarshal(*v, &field)
+ if err != nil {
+ return err
+ }
+ se.Field = &field
+ }
+ }
+ }
+
+ return nil
}
-// Creates a new instance of the JitNetworkAccessPoliciesListPage type.
-func NewJitNetworkAccessPoliciesListPage(getNextPage func(context.Context, JitNetworkAccessPoliciesList) (JitNetworkAccessPoliciesList, error)) JitNetworkAccessPoliciesListPage {
- return JitNetworkAccessPoliciesListPage{fn: getNextPage}
+// ScoreDetails calculation result data
+type ScoreDetails struct {
+ // Max - READ-ONLY; Maximum score available
+ Max *int32 `json:"max,omitempty"`
+ // Current - READ-ONLY; Current score
+ Current *float64 `json:"current,omitempty"`
}
-// JitNetworkAccessPolicy ...
-type JitNetworkAccessPolicy struct {
- autorest.Response `json:"-"`
+// MarshalJSON is the custom marshaler for ScoreDetails.
+func (sd ScoreDetails) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// SecureScoreControlDefinitionItem information about the security control.
+type SecureScoreControlDefinitionItem struct {
+ *SecureScoreControlDefinitionItemProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
Name *string `json:"name,omitempty"`
// Type - READ-ONLY; Resource type
Type *string `json:"type,omitempty"`
- // Kind - Kind of the resource
- Kind *string `json:"kind,omitempty"`
- // Location - READ-ONLY; Location where the resource is stored
- Location *string `json:"location,omitempty"`
- *JitNetworkAccessPolicyProperties `json:"properties,omitempty"`
}
-// MarshalJSON is the custom marshaler for JitNetworkAccessPolicy.
-func (jnap JitNetworkAccessPolicy) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for SecureScoreControlDefinitionItem.
+func (sscdi SecureScoreControlDefinitionItem) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if jnap.Kind != nil {
- objectMap["kind"] = jnap.Kind
- }
- if jnap.JitNetworkAccessPolicyProperties != nil {
- objectMap["properties"] = jnap.JitNetworkAccessPolicyProperties
+ if sscdi.SecureScoreControlDefinitionItemProperties != nil {
+ objectMap["properties"] = sscdi.SecureScoreControlDefinitionItemProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for JitNetworkAccessPolicy struct.
-func (jnap *JitNetworkAccessPolicy) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for SecureScoreControlDefinitionItem struct.
+func (sscdi *SecureScoreControlDefinitionItem) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -7277,6 +14684,15 @@ func (jnap *JitNetworkAccessPolicy) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
+ case "properties":
+ if v != nil {
+ var secureScoreControlDefinitionItemProperties SecureScoreControlDefinitionItemProperties
+ err = json.Unmarshal(*v, &secureScoreControlDefinitionItemProperties)
+ if err != nil {
+ return err
+ }
+ sscdi.SecureScoreControlDefinitionItemProperties = &secureScoreControlDefinitionItemProperties
+ }
case "id":
if v != nil {
var ID string
@@ -7284,7 +14700,7 @@ func (jnap *JitNetworkAccessPolicy) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- jnap.ID = &ID
+ sscdi.ID = &ID
}
case "name":
if v != nil {
@@ -7293,7 +14709,7 @@ func (jnap *JitNetworkAccessPolicy) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- jnap.Name = &name
+ sscdi.Name = &name
}
case "type":
if v != nil {
@@ -7302,34 +14718,7 @@ func (jnap *JitNetworkAccessPolicy) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- jnap.Type = &typeVar
- }
- case "kind":
- if v != nil {
- var kind string
- err = json.Unmarshal(*v, &kind)
- if err != nil {
- return err
- }
- jnap.Kind = &kind
- }
- case "location":
- if v != nil {
- var location string
- err = json.Unmarshal(*v, &location)
- if err != nil {
- return err
- }
- jnap.Location = &location
- }
- case "properties":
- if v != nil {
- var jitNetworkAccessPolicyProperties JitNetworkAccessPolicyProperties
- err = json.Unmarshal(*v, &jitNetworkAccessPolicyProperties)
- if err != nil {
- return err
- }
- jnap.JitNetworkAccessPolicyProperties = &jitNetworkAccessPolicyProperties
+ sscdi.Type = &typeVar
}
}
}
@@ -7337,223 +14726,293 @@ func (jnap *JitNetworkAccessPolicy) UnmarshalJSON(body []byte) error {
return nil
}
-// JitNetworkAccessPolicyInitiatePort ...
-type JitNetworkAccessPolicyInitiatePort struct {
- Number *int32 `json:"number,omitempty"`
- // AllowedSourceAddressPrefix - Source of the allowed traffic. If omitted, the request will be for the source IP address of the initiate request.
- AllowedSourceAddressPrefix *string `json:"allowedSourceAddressPrefix,omitempty"`
- // EndTimeUtc - The time to close the request in UTC
- EndTimeUtc *date.Time `json:"endTimeUtc,omitempty"`
+// SecureScoreControlDefinitionItemProperties security Control Definition Properties.
+type SecureScoreControlDefinitionItemProperties struct {
+ // DisplayName - READ-ONLY; User friendly display name of the control
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; User friendly description of the control
+ Description *string `json:"description,omitempty"`
+ // MaxScore - READ-ONLY; Maximum control score (0..10)
+ MaxScore *int32 `json:"maxScore,omitempty"`
+ // Source - READ-ONLY; Source object from which the control was created
+ Source *SecureScoreControlDefinitionSource `json:"source,omitempty"`
+ // AssessmentDefinitions - READ-ONLY; Array of assessments metadata IDs that are included in this security control
+ AssessmentDefinitions *[]AzureResourceLink `json:"assessmentDefinitions,omitempty"`
}
-// JitNetworkAccessPolicyInitiateRequest ...
-type JitNetworkAccessPolicyInitiateRequest struct {
- // VirtualMachines - A list of virtual machines & ports to open access for
- VirtualMachines *[]JitNetworkAccessPolicyInitiateVirtualMachine `json:"virtualMachines,omitempty"`
- // Justification - The justification for making the initiate request
- Justification *string `json:"justification,omitempty"`
+// MarshalJSON is the custom marshaler for SecureScoreControlDefinitionItemProperties.
+func (sscdip SecureScoreControlDefinitionItemProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
}
-// JitNetworkAccessPolicyInitiateVirtualMachine ...
-type JitNetworkAccessPolicyInitiateVirtualMachine struct {
- // ID - Resource ID of the virtual machine that is linked to this policy
- ID *string `json:"id,omitempty"`
- // Ports - The ports to open for the resource with the `id`
- Ports *[]JitNetworkAccessPolicyInitiatePort `json:"ports,omitempty"`
+// SecureScoreControlDefinitionList list of security controls definition
+type SecureScoreControlDefinitionList struct {
+ autorest.Response `json:"-"`
+ // Value - READ-ONLY; Collection of security controls definition in this page
+ Value *[]SecureScoreControlDefinitionItem `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
}
-// JitNetworkAccessPolicyProperties ...
-type JitNetworkAccessPolicyProperties struct {
- // VirtualMachines - Configurations for Microsoft.Compute/virtualMachines resource type.
- VirtualMachines *[]JitNetworkAccessPolicyVirtualMachine `json:"virtualMachines,omitempty"`
- Requests *[]JitNetworkAccessRequest `json:"requests,omitempty"`
- // ProvisioningState - READ-ONLY; Gets the provisioning state of the Just-in-Time policy.
- ProvisioningState *string `json:"provisioningState,omitempty"`
+// MarshalJSON is the custom marshaler for SecureScoreControlDefinitionList.
+func (sscdl SecureScoreControlDefinitionList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
}
-// JitNetworkAccessPolicyVirtualMachine ...
-type JitNetworkAccessPolicyVirtualMachine struct {
- // ID - Resource ID of the virtual machine that is linked to this policy
- ID *string `json:"id,omitempty"`
- // Ports - Port configurations for the virtual machine
- Ports *[]JitNetworkAccessPortRule `json:"ports,omitempty"`
- // PublicIPAddress - Public IP address of the Azure Firewall that is linked to this policy, if applicable
- PublicIPAddress *string `json:"publicIpAddress,omitempty"`
+// SecureScoreControlDefinitionListIterator provides access to a complete listing of
+// SecureScoreControlDefinitionItem values.
+type SecureScoreControlDefinitionListIterator struct {
+ i int
+ page SecureScoreControlDefinitionListPage
}
-// JitNetworkAccessPortRule ...
-type JitNetworkAccessPortRule struct {
- Number *int32 `json:"number,omitempty"`
- // Protocol - Possible values include: 'TCP', 'UDP', 'All'
- Protocol Protocol `json:"protocol,omitempty"`
- // AllowedSourceAddressPrefix - Mutually exclusive with the "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example "192.168.0.3" or "192.168.0.0/16".
- AllowedSourceAddressPrefix *string `json:"allowedSourceAddressPrefix,omitempty"`
- // AllowedSourceAddressPrefixes - Mutually exclusive with the "allowedSourceAddressPrefix" parameter.
- AllowedSourceAddressPrefixes *[]string `json:"allowedSourceAddressPrefixes,omitempty"`
- // MaxRequestAccessDuration - Maximum duration requests can be made for. In ISO 8601 duration format. Minimum 5 minutes, maximum 1 day
- MaxRequestAccessDuration *string `json:"maxRequestAccessDuration,omitempty"`
+// NextWithContext advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+func (iter *SecureScoreControlDefinitionListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlDefinitionListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ iter.i++
+ if iter.i < len(iter.page.Values()) {
+ return nil
+ }
+ err = iter.page.NextWithContext(ctx)
+ if err != nil {
+ iter.i--
+ return err
+ }
+ iter.i = 0
+ return nil
}
-// JitNetworkAccessRequest ...
-type JitNetworkAccessRequest struct {
- autorest.Response `json:"-"`
- VirtualMachines *[]JitNetworkAccessRequestVirtualMachine `json:"virtualMachines,omitempty"`
- // StartTimeUtc - The start time of the request in UTC
- StartTimeUtc *date.Time `json:"startTimeUtc,omitempty"`
- // Requestor - The identity of the person who made the request
- Requestor *string `json:"requestor,omitempty"`
- // Justification - The justification for making the initiate request
- Justification *string `json:"justification,omitempty"`
+// Next advances to the next value. If there was an error making
+// the request the iterator does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (iter *SecureScoreControlDefinitionListIterator) Next() error {
+ return iter.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the enumeration should be started or is not yet complete.
+func (iter SecureScoreControlDefinitionListIterator) NotDone() bool {
+ return iter.page.NotDone() && iter.i < len(iter.page.Values())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter SecureScoreControlDefinitionListIterator) Response() SecureScoreControlDefinitionList {
+ return iter.page.Response()
}
-// JitNetworkAccessRequestPort ...
-type JitNetworkAccessRequestPort struct {
- Number *int32 `json:"number,omitempty"`
- // AllowedSourceAddressPrefix - Mutually exclusive with the "allowedSourceAddressPrefixes" parameter. Should be an IP address or CIDR, for example "192.168.0.3" or "192.168.0.0/16".
- AllowedSourceAddressPrefix *string `json:"allowedSourceAddressPrefix,omitempty"`
- // AllowedSourceAddressPrefixes - Mutually exclusive with the "allowedSourceAddressPrefix" parameter.
- AllowedSourceAddressPrefixes *[]string `json:"allowedSourceAddressPrefixes,omitempty"`
- // EndTimeUtc - The date & time at which the request ends in UTC
- EndTimeUtc *date.Time `json:"endTimeUtc,omitempty"`
- // Status - The status of the port. Possible values include: 'Revoked', 'Initiated'
- Status Status `json:"status,omitempty"`
- // StatusReason - A description of why the `status` has its value. Possible values include: 'Expired', 'UserRequested', 'NewerRequestInitiated'
- StatusReason StatusReason `json:"statusReason,omitempty"`
- // MappedPort - The port which is mapped to this port's `number` in the Azure Firewall, if applicable
- MappedPort *int32 `json:"mappedPort,omitempty"`
+// Value returns the current value or a zero-initialized value if the
+// iterator has advanced beyond the end of the collection.
+func (iter SecureScoreControlDefinitionListIterator) Value() SecureScoreControlDefinitionItem {
+ if !iter.page.NotDone() {
+ return SecureScoreControlDefinitionItem{}
+ }
+ return iter.page.Values()[iter.i]
}
-// JitNetworkAccessRequestVirtualMachine ...
-type JitNetworkAccessRequestVirtualMachine struct {
- // ID - Resource ID of the virtual machine that is linked to this policy
- ID *string `json:"id,omitempty"`
- // Ports - The ports that were opened for the virtual machine
- Ports *[]JitNetworkAccessRequestPort `json:"ports,omitempty"`
+// Creates a new instance of the SecureScoreControlDefinitionListIterator type.
+func NewSecureScoreControlDefinitionListIterator(page SecureScoreControlDefinitionListPage) SecureScoreControlDefinitionListIterator {
+ return SecureScoreControlDefinitionListIterator{page: page}
}
-// Kind describes an Azure resource with kind
-type Kind struct {
- // Kind - Kind of the resource
- Kind *string `json:"kind,omitempty"`
+// IsEmpty returns true if the ListResult contains no values.
+func (sscdl SecureScoreControlDefinitionList) IsEmpty() bool {
+ return sscdl.Value == nil || len(*sscdl.Value) == 0
}
-// ListCustomAlertRule a List custom alert rule.
-type ListCustomAlertRule struct {
- // ValueType - READ-ONLY; The value type of the items in the list. Possible values include: 'ValueTypeIPCidr', 'ValueTypeString'
- ValueType ValueType `json:"valueType,omitempty"`
- // DisplayName - READ-ONLY; The display name of the custom alert.
- DisplayName *string `json:"displayName,omitempty"`
- // Description - READ-ONLY; The description of the custom alert.
- Description *string `json:"description,omitempty"`
- // IsEnabled - Status of the custom alert.
- IsEnabled *bool `json:"isEnabled,omitempty"`
- // RuleType - The type of the custom alert rule.
- RuleType *string `json:"ruleType,omitempty"`
+// hasNextLink returns true if the NextLink is not empty.
+func (sscdl SecureScoreControlDefinitionList) hasNextLink() bool {
+ return sscdl.NextLink != nil && len(*sscdl.NextLink) != 0
}
-// Location describes an Azure resource with location
-type Location struct {
- // Location - READ-ONLY; Location where the resource is stored
- Location *string `json:"location,omitempty"`
+// secureScoreControlDefinitionListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (sscdl SecureScoreControlDefinitionList) secureScoreControlDefinitionListPreparer(ctx context.Context) (*http.Request, error) {
+ if !sscdl.hasNextLink() {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(sscdl.NextLink)))
}
-// OnPremiseResourceDetails details of the On Premise resource that was assessed
-type OnPremiseResourceDetails struct {
- // WorkspaceID - Azure resource Id of the workspace the machine is attached to
- WorkspaceID *string `json:"workspaceId,omitempty"`
- // Vmuuid - The unique Id of the machine
- Vmuuid *string `json:"vmuuid,omitempty"`
- // SourceComputerID - The oms agent Id installed on the machine
- SourceComputerID *string `json:"sourceComputerId,omitempty"`
- // MachineName - The name of the machine
- MachineName *string `json:"machineName,omitempty"`
- // Source - Possible values include: 'SourceResourceDetails', 'SourceOnPremise', 'SourceAzure'
- Source Source `json:"source,omitempty"`
+// SecureScoreControlDefinitionListPage contains a page of SecureScoreControlDefinitionItem values.
+type SecureScoreControlDefinitionListPage struct {
+ fn func(context.Context, SecureScoreControlDefinitionList) (SecureScoreControlDefinitionList, error)
+ sscdl SecureScoreControlDefinitionList
}
-// MarshalJSON is the custom marshaler for OnPremiseResourceDetails.
-func (oprd OnPremiseResourceDetails) MarshalJSON() ([]byte, error) {
- oprd.Source = SourceOnPremise
- objectMap := make(map[string]interface{})
- if oprd.WorkspaceID != nil {
- objectMap["workspaceId"] = oprd.WorkspaceID
- }
- if oprd.Vmuuid != nil {
- objectMap["vmuuid"] = oprd.Vmuuid
- }
- if oprd.SourceComputerID != nil {
- objectMap["sourceComputerId"] = oprd.SourceComputerID
- }
- if oprd.MachineName != nil {
- objectMap["machineName"] = oprd.MachineName
+// NextWithContext advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+func (page *SecureScoreControlDefinitionListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlDefinitionListPage.NextWithContext")
+ defer func() {
+ sc := -1
+ if page.Response().Response.Response != nil {
+ sc = page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
}
- if oprd.Source != "" {
- objectMap["source"] = oprd.Source
+ for {
+ next, err := page.fn(ctx, page.sscdl)
+ if err != nil {
+ return err
+ }
+ page.sscdl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- return json.Marshal(objectMap)
+ return nil
}
-// AsOnPremiseResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
-func (oprd OnPremiseResourceDetails) AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool) {
- return &oprd, true
+// Next advances to the next page of values. If there was an error making
+// the request the page does not advance and the error is returned.
+// Deprecated: Use NextWithContext() instead.
+func (page *SecureScoreControlDefinitionListPage) Next() error {
+ return page.NextWithContext(context.Background())
}
-// AsAzureResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
-func (oprd OnPremiseResourceDetails) AsAzureResourceDetails() (*AzureResourceDetails, bool) {
- return nil, false
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page SecureScoreControlDefinitionListPage) NotDone() bool {
+ return !page.sscdl.IsEmpty()
}
-// AsResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
-func (oprd OnPremiseResourceDetails) AsResourceDetails() (*ResourceDetails, bool) {
- return nil, false
+// Response returns the raw server response from the last page request.
+func (page SecureScoreControlDefinitionListPage) Response() SecureScoreControlDefinitionList {
+ return page.sscdl
}
-// AsBasicResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
-func (oprd OnPremiseResourceDetails) AsBasicResourceDetails() (BasicResourceDetails, bool) {
- return &oprd, true
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page SecureScoreControlDefinitionListPage) Values() []SecureScoreControlDefinitionItem {
+ if page.sscdl.IsEmpty() {
+ return nil
+ }
+ return *page.sscdl.Value
}
-// Operation possible operation in the REST API of Microsoft.Security
-type Operation struct {
- // Name - READ-ONLY; Name of the operation
+// Creates a new instance of the SecureScoreControlDefinitionListPage type.
+func NewSecureScoreControlDefinitionListPage(getNextPage func(context.Context, SecureScoreControlDefinitionList) (SecureScoreControlDefinitionList, error)) SecureScoreControlDefinitionListPage {
+ return SecureScoreControlDefinitionListPage{fn: getNextPage}
+}
+
+// SecureScoreControlDefinitionSource the type of the security control (For example, BuiltIn)
+type SecureScoreControlDefinitionSource struct {
+ // SourceType - The type of security control (for example, BuiltIn). Possible values include: 'ControlTypeBuiltIn', 'ControlTypeCustom'
+ SourceType ControlType `json:"sourceType,omitempty"`
+}
+
+// SecureScoreControlDetails details of the security control, its score, and the health status of the relevant
+// resources.
+type SecureScoreControlDetails struct {
+ *SecureScoreControlScoreDetails `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
Name *string `json:"name,omitempty"`
- // Origin - READ-ONLY; Where the operation is originated
- Origin *string `json:"origin,omitempty"`
- Display *OperationDisplay `json:"display,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
}
-// OperationDisplay security operation display
-type OperationDisplay struct {
- // Provider - READ-ONLY; The resource provider for the operation.
- Provider *string `json:"provider,omitempty"`
- // Resource - READ-ONLY; The display name of the resource the operation applies to.
- Resource *string `json:"resource,omitempty"`
- // Operation - READ-ONLY; The display name of the security operation.
- Operation *string `json:"operation,omitempty"`
- // Description - READ-ONLY; The description of the operation.
- Description *string `json:"description,omitempty"`
+// MarshalJSON is the custom marshaler for SecureScoreControlDetails.
+func (sscd SecureScoreControlDetails) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if sscd.SecureScoreControlScoreDetails != nil {
+ objectMap["properties"] = sscd.SecureScoreControlScoreDetails
+ }
+ return json.Marshal(objectMap)
}
-// OperationList list of possible operations for Microsoft.Security resource provider
-type OperationList struct {
+// UnmarshalJSON is the custom unmarshaler for SecureScoreControlDetails struct.
+func (sscd *SecureScoreControlDetails) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var secureScoreControlScoreDetails SecureScoreControlScoreDetails
+ err = json.Unmarshal(*v, &secureScoreControlScoreDetails)
+ if err != nil {
+ return err
+ }
+ sscd.SecureScoreControlScoreDetails = &secureScoreControlScoreDetails
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ sscd.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ sscd.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ sscd.Type = &typeVar
+ }
+ }
+ }
+
+ return nil
+}
+
+// SecureScoreControlList list of security controls
+type SecureScoreControlList struct {
autorest.Response `json:"-"`
- // Value - List of Security operations
- Value *[]Operation `json:"value,omitempty"`
+ // Value - READ-ONLY; Collection of security controls in this page
+ Value *[]SecureScoreControlDetails `json:"value,omitempty"`
// NextLink - READ-ONLY; The URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// OperationListIterator provides access to a complete listing of Operation values.
-type OperationListIterator struct {
+// MarshalJSON is the custom marshaler for SecureScoreControlList.
+func (sscl SecureScoreControlList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// SecureScoreControlListIterator provides access to a complete listing of SecureScoreControlDetails values.
+type SecureScoreControlListIterator struct {
i int
- page OperationListPage
+ page SecureScoreControlListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *OperationListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *SecureScoreControlListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/OperationListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -7578,62 +15037,67 @@ func (iter *OperationListIterator) NextWithContext(ctx context.Context) (err err
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *OperationListIterator) Next() error {
+func (iter *SecureScoreControlListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter OperationListIterator) NotDone() bool {
+func (iter SecureScoreControlListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter OperationListIterator) Response() OperationList {
+func (iter SecureScoreControlListIterator) Response() SecureScoreControlList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter OperationListIterator) Value() Operation {
+func (iter SecureScoreControlListIterator) Value() SecureScoreControlDetails {
if !iter.page.NotDone() {
- return Operation{}
+ return SecureScoreControlDetails{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the OperationListIterator type.
-func NewOperationListIterator(page OperationListPage) OperationListIterator {
- return OperationListIterator{page: page}
+// Creates a new instance of the SecureScoreControlListIterator type.
+func NewSecureScoreControlListIterator(page SecureScoreControlListPage) SecureScoreControlListIterator {
+ return SecureScoreControlListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (ol OperationList) IsEmpty() bool {
- return ol.Value == nil || len(*ol.Value) == 0
+func (sscl SecureScoreControlList) IsEmpty() bool {
+ return sscl.Value == nil || len(*sscl.Value) == 0
}
-// operationListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (sscl SecureScoreControlList) hasNextLink() bool {
+ return sscl.NextLink != nil && len(*sscl.NextLink) != 0
+}
+
+// secureScoreControlListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (ol OperationList) operationListPreparer(ctx context.Context) (*http.Request, error) {
- if ol.NextLink == nil || len(to.String(ol.NextLink)) < 1 {
+func (sscl SecureScoreControlList) secureScoreControlListPreparer(ctx context.Context) (*http.Request, error) {
+ if !sscl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(ol.NextLink)))
+ autorest.WithBaseURL(to.String(sscl.NextLink)))
}
-// OperationListPage contains a page of Operation values.
-type OperationListPage struct {
- fn func(context.Context, OperationList) (OperationList, error)
- ol OperationList
+// SecureScoreControlListPage contains a page of SecureScoreControlDetails values.
+type SecureScoreControlListPage struct {
+ fn func(context.Context, SecureScoreControlList) (SecureScoreControlList, error)
+ sscl SecureScoreControlList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *OperationListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *SecureScoreControlListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/OperationListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -7642,89 +15106,92 @@ func (page *OperationListPage) NextWithContext(ctx context.Context) (err error)
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.ol)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.sscl)
+ if err != nil {
+ return err
+ }
+ page.sscl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.ol = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *OperationListPage) Next() error {
+func (page *SecureScoreControlListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page OperationListPage) NotDone() bool {
- return !page.ol.IsEmpty()
+func (page SecureScoreControlListPage) NotDone() bool {
+ return !page.sscl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page OperationListPage) Response() OperationList {
- return page.ol
+func (page SecureScoreControlListPage) Response() SecureScoreControlList {
+ return page.sscl
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page OperationListPage) Values() []Operation {
- if page.ol.IsEmpty() {
+func (page SecureScoreControlListPage) Values() []SecureScoreControlDetails {
+ if page.sscl.IsEmpty() {
return nil
- }
- return *page.ol.Value
-}
-
-// Creates a new instance of the OperationListPage type.
-func NewOperationListPage(getNextPage func(context.Context, OperationList) (OperationList, error)) OperationListPage {
- return OperationListPage{fn: getNextPage}
-}
-
-// PathRecommendation represents a path that is recommended to be allowed and its properties
-type PathRecommendation struct {
- // Path - The full path to whitelist
- Path *string `json:"path,omitempty"`
- // Action - Possible values include: 'Recommended', 'Add', 'Remove'
- Action Action `json:"action,omitempty"`
- // Type - Possible values include: 'File', 'FileHash', 'PublisherSignature', 'ProductSignature', 'BinarySignature', 'VersionAndAboveSignature'
- Type Type `json:"type,omitempty"`
- PublisherInfo *PublisherInfo `json:"publisherInfo,omitempty"`
- // Common - Whether the path is commonly run on the machine
- Common *bool `json:"common,omitempty"`
- UserSids *[]string `json:"userSids,omitempty"`
- Usernames *[]UserRecommendation `json:"usernames,omitempty"`
- // FileType - Possible values include: 'FileTypeExe', 'FileTypeDll', 'FileTypeMsi', 'FileTypeScript', 'FileTypeExecutable', 'FileTypeUnknown'
- FileType FileType `json:"fileType,omitempty"`
- // ConfigurationStatus - Possible values include: 'ConfigurationStatus1Configured', 'ConfigurationStatus1NotConfigured', 'ConfigurationStatus1InProgress', 'ConfigurationStatus1Failed', 'ConfigurationStatus1NoStatus'
- ConfigurationStatus ConfigurationStatus1 `json:"configurationStatus,omitempty"`
+ }
+ return *page.sscl.Value
}
-// Pricing azure Security Center is provided in two pricing tiers: free and standard, with the standard
-// tier available with a trial period. The standard tier offers advanced security capabilities, while the
-// free tier offers basic security features.
-type Pricing struct {
- autorest.Response `json:"-"`
- // PricingProperties - Pricing data
- *PricingProperties `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
+// Creates a new instance of the SecureScoreControlListPage type.
+func NewSecureScoreControlListPage(getNextPage func(context.Context, SecureScoreControlList) (SecureScoreControlList, error)) SecureScoreControlListPage {
+ return SecureScoreControlListPage{fn: getNextPage}
}
-// MarshalJSON is the custom marshaler for Pricing.
-func (p Pricing) MarshalJSON() ([]byte, error) {
+// SecureScoreControlScore calculation result data
+type SecureScoreControlScore struct {
+ // Max - READ-ONLY; Maximum control score (0..10)
+ Max *int32 `json:"max,omitempty"`
+ // Current - READ-ONLY; Actual score for the control = (achieved points / total points) * max score. if total points is zeroed, the return number is 0.00
+ Current *float64 `json:"current,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for SecureScoreControlScore.
+func (sscs SecureScoreControlScore) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if p.PricingProperties != nil {
- objectMap["properties"] = p.PricingProperties
+ return json.Marshal(objectMap)
+}
+
+// SecureScoreControlScoreDetails calculation result data in control level
+type SecureScoreControlScoreDetails struct {
+ // DisplayName - READ-ONLY; User friendly display name of the control
+ DisplayName *string `json:"displayName,omitempty"`
+ // ScoreDetails - Actual score object for the control
+ *ScoreDetails `json:"score,omitempty"`
+ // HealthyResourceCount - READ-ONLY; Number of healthy resources in the control
+ HealthyResourceCount *int32 `json:"healthyResourceCount,omitempty"`
+ // UnhealthyResourceCount - READ-ONLY; Number of unhealthy resources in the control
+ UnhealthyResourceCount *int32 `json:"unhealthyResourceCount,omitempty"`
+ // NotApplicableResourceCount - READ-ONLY; Number of not applicable resources in the control
+ NotApplicableResourceCount *int32 `json:"notApplicableResourceCount,omitempty"`
+ Definition *SecureScoreControlDefinitionItem `json:"definition,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for SecureScoreControlScoreDetails.
+func (sscsd SecureScoreControlScoreDetails) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if sscsd.ScoreDetails != nil {
+ objectMap["score"] = sscsd.ScoreDetails
+ }
+ if sscsd.Definition != nil {
+ objectMap["definition"] = sscsd.Definition
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for Pricing struct.
-func (p *Pricing) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for SecureScoreControlScoreDetails struct.
+func (sscsd *SecureScoreControlScoreDetails) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -7732,41 +15199,59 @@ func (p *Pricing) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
- case "properties":
+ case "displayName":
if v != nil {
- var pricingProperties PricingProperties
- err = json.Unmarshal(*v, &pricingProperties)
+ var displayName string
+ err = json.Unmarshal(*v, &displayName)
if err != nil {
return err
}
- p.PricingProperties = &pricingProperties
+ sscsd.DisplayName = &displayName
}
- case "id":
+ case "score":
if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
+ var scoreDetails ScoreDetails
+ err = json.Unmarshal(*v, &scoreDetails)
if err != nil {
return err
}
- p.ID = &ID
+ sscsd.ScoreDetails = &scoreDetails
}
- case "name":
+ case "healthyResourceCount":
if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
+ var healthyResourceCount int32
+ err = json.Unmarshal(*v, &healthyResourceCount)
if err != nil {
return err
}
- p.Name = &name
+ sscsd.HealthyResourceCount = &healthyResourceCount
}
- case "type":
+ case "unhealthyResourceCount":
if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
+ var unhealthyResourceCount int32
+ err = json.Unmarshal(*v, &unhealthyResourceCount)
if err != nil {
return err
}
- p.Type = &typeVar
+ sscsd.UnhealthyResourceCount = &unhealthyResourceCount
+ }
+ case "notApplicableResourceCount":
+ if v != nil {
+ var notApplicableResourceCount int32
+ err = json.Unmarshal(*v, ¬ApplicableResourceCount)
+ if err != nil {
+ return err
+ }
+ sscsd.NotApplicableResourceCount = ¬ApplicableResourceCount
+ }
+ case "definition":
+ if v != nil {
+ var definition SecureScoreControlDefinitionItem
+ err = json.Unmarshal(*v, &definition)
+ if err != nil {
+ return err
+ }
+ sscsd.Definition = &definition
}
}
}
@@ -7774,61 +15259,11 @@ func (p *Pricing) UnmarshalJSON(body []byte) error {
return nil
}
-// PricingList list of pricing configurations response.
-type PricingList struct {
- autorest.Response `json:"-"`
- // Value - List of pricing configurations
- Value *[]Pricing `json:"value,omitempty"`
-}
-
-// PricingProperties pricing properties for the relevant scope
-type PricingProperties struct {
- // PricingTier - The pricing tier value. Azure Security Center is provided in two pricing tiers: free and standard, with the standard tier available with a trial period. The standard tier offers advanced security capabilities, while the free tier offers basic security features. Possible values include: 'Free', 'Standard'
- PricingTier PricingTier `json:"pricingTier,omitempty"`
- // FreeTrialRemainingTime - READ-ONLY; The duration left for the subscriptions free trial period - in ISO 8601 format (e.g. P3Y6M4DT12H30M5S).
- FreeTrialRemainingTime *string `json:"freeTrialRemainingTime,omitempty"`
-}
-
-// ProtectionMode the protection mode of the collection/file types. Exe/Msi/Script are used for Windows,
-// Executable is used for Linux.
-type ProtectionMode struct {
- // Exe - Possible values include: 'ExeAudit', 'ExeEnforce', 'ExeNone'
- Exe Exe `json:"exe,omitempty"`
- // Msi - Possible values include: 'MsiAudit', 'MsiEnforce', 'MsiNone'
- Msi Msi `json:"msi,omitempty"`
- // Script - Possible values include: 'ScriptAudit', 'ScriptEnforce', 'ScriptNone'
- Script Script `json:"script,omitempty"`
- // Executable - Possible values include: 'ExecutableAudit', 'ExecutableEnforce', 'ExecutableNone'
- Executable Executable `json:"executable,omitempty"`
-}
-
-// PublisherInfo represents the publisher information of a process/rule
-type PublisherInfo struct {
- // PublisherName - The Subject field of the x.509 certificate used to sign the code, using the following fields - O = Organization, L = Locality, S = State or Province, and C = Country
- PublisherName *string `json:"publisherName,omitempty"`
- // ProductName - The product name taken from the file's version resource
- ProductName *string `json:"productName,omitempty"`
- // BinaryName - The "OriginalName" field taken from the file's version resource
- BinaryName *string `json:"binaryName,omitempty"`
- // Version - The binary file version taken from the file's version resource
- Version *string `json:"version,omitempty"`
-}
-
-// RecommendationConfigurationProperties the type of IoT Security recommendation.
-type RecommendationConfigurationProperties struct {
- // RecommendationType - The type of IoT Security recommendation. Possible values include: 'IoTACRAuthentication', 'IoTAgentSendsUnutilizedMessages', 'IoTBaseline', 'IoTEdgeHubMemOptimize', 'IoTEdgeLoggingOptions', 'IoTInconsistentModuleSettings', 'IoTInstallAgent', 'IoTIPFilterDenyAll', 'IoTIPFilterPermissiveRule', 'IoTOpenPorts', 'IoTPermissiveFirewallPolicy', 'IoTPermissiveInputFirewallRules', 'IoTPermissiveOutputFirewallRules', 'IoTPrivilegedDockerOptions', 'IoTSharedCredentials', 'IoTVulnerableTLSCipherSuite'
- RecommendationType RecommendationType `json:"recommendationType,omitempty"`
- // Name - READ-ONLY
- Name *string `json:"name,omitempty"`
- // Status - Recommendation status. When the recommendation status is disabled recommendations are not generated. Possible values include: 'Disabled', 'Enabled'
- Status RecommendationConfigStatus `json:"status,omitempty"`
-}
-
-// RegulatoryComplianceAssessment regulatory compliance assessment details and state
-type RegulatoryComplianceAssessment struct {
+// SecureScoreItem secure score item data model
+type SecureScoreItem struct {
autorest.Response `json:"-"`
- // RegulatoryComplianceAssessmentProperties - Regulatory compliance assessment data
- *RegulatoryComplianceAssessmentProperties `json:"properties,omitempty"`
+ // SecureScoreItemProperties - READ-ONLY; Secure score item
+ *SecureScoreItemProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
@@ -7837,17 +15272,14 @@ type RegulatoryComplianceAssessment struct {
Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for RegulatoryComplianceAssessment.
-func (rca RegulatoryComplianceAssessment) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for SecureScoreItem.
+func (ssi SecureScoreItem) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if rca.RegulatoryComplianceAssessmentProperties != nil {
- objectMap["properties"] = rca.RegulatoryComplianceAssessmentProperties
- }
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for RegulatoryComplianceAssessment struct.
-func (rca *RegulatoryComplianceAssessment) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for SecureScoreItem struct.
+func (ssi *SecureScoreItem) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -7857,12 +15289,12 @@ func (rca *RegulatoryComplianceAssessment) UnmarshalJSON(body []byte) error {
switch k {
case "properties":
if v != nil {
- var regulatoryComplianceAssessmentProperties RegulatoryComplianceAssessmentProperties
- err = json.Unmarshal(*v, ®ulatoryComplianceAssessmentProperties)
+ var secureScoreItemProperties SecureScoreItemProperties
+ err = json.Unmarshal(*v, &secureScoreItemProperties)
if err != nil {
return err
}
- rca.RegulatoryComplianceAssessmentProperties = ®ulatoryComplianceAssessmentProperties
+ ssi.SecureScoreItemProperties = &secureScoreItemProperties
}
case "id":
if v != nil {
@@ -7871,7 +15303,7 @@ func (rca *RegulatoryComplianceAssessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- rca.ID = &ID
+ ssi.ID = &ID
}
case "name":
if v != nil {
@@ -7880,7 +15312,7 @@ func (rca *RegulatoryComplianceAssessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- rca.Name = &name
+ ssi.Name = &name
}
case "type":
if v != nil {
@@ -7889,7 +15321,7 @@ func (rca *RegulatoryComplianceAssessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- rca.Type = &typeVar
+ ssi.Type = &typeVar
}
}
}
@@ -7897,26 +15329,79 @@ func (rca *RegulatoryComplianceAssessment) UnmarshalJSON(body []byte) error {
return nil
}
-// RegulatoryComplianceAssessmentList list of regulatory compliance assessment response
-type RegulatoryComplianceAssessmentList struct {
+// SecureScoreItemProperties describes properties of a calculated secure score.
+type SecureScoreItemProperties struct {
+ // DisplayName - READ-ONLY; The initiative’s name
+ DisplayName *string `json:"displayName,omitempty"`
+ // ScoreDetails - READ-ONLY; score object
+ *ScoreDetails `json:"score,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for SecureScoreItemProperties.
+func (ssip SecureScoreItemProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for SecureScoreItemProperties struct.
+func (ssip *SecureScoreItemProperties) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "displayName":
+ if v != nil {
+ var displayName string
+ err = json.Unmarshal(*v, &displayName)
+ if err != nil {
+ return err
+ }
+ ssip.DisplayName = &displayName
+ }
+ case "score":
+ if v != nil {
+ var scoreDetails ScoreDetails
+ err = json.Unmarshal(*v, &scoreDetails)
+ if err != nil {
+ return err
+ }
+ ssip.ScoreDetails = &scoreDetails
+ }
+ }
+ }
+
+ return nil
+}
+
+// SecureScoresList list of secure scores
+type SecureScoresList struct {
autorest.Response `json:"-"`
- Value *[]RegulatoryComplianceAssessment `json:"value,omitempty"`
+ // Value - READ-ONLY; Collection of secure scores in this page
+ Value *[]SecureScoreItem `json:"value,omitempty"`
// NextLink - READ-ONLY; The URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// RegulatoryComplianceAssessmentListIterator provides access to a complete listing of
-// RegulatoryComplianceAssessment values.
-type RegulatoryComplianceAssessmentListIterator struct {
+// MarshalJSON is the custom marshaler for SecureScoresList.
+func (ssl SecureScoresList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// SecureScoresListIterator provides access to a complete listing of SecureScoreItem values.
+type SecureScoresListIterator struct {
i int
- page RegulatoryComplianceAssessmentListPage
+ page SecureScoresListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *RegulatoryComplianceAssessmentListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *SecureScoresListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceAssessmentListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoresListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -7941,62 +15426,67 @@ func (iter *RegulatoryComplianceAssessmentListIterator) NextWithContext(ctx cont
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *RegulatoryComplianceAssessmentListIterator) Next() error {
+func (iter *SecureScoresListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter RegulatoryComplianceAssessmentListIterator) NotDone() bool {
+func (iter SecureScoresListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter RegulatoryComplianceAssessmentListIterator) Response() RegulatoryComplianceAssessmentList {
+func (iter SecureScoresListIterator) Response() SecureScoresList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter RegulatoryComplianceAssessmentListIterator) Value() RegulatoryComplianceAssessment {
+func (iter SecureScoresListIterator) Value() SecureScoreItem {
if !iter.page.NotDone() {
- return RegulatoryComplianceAssessment{}
+ return SecureScoreItem{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the RegulatoryComplianceAssessmentListIterator type.
-func NewRegulatoryComplianceAssessmentListIterator(page RegulatoryComplianceAssessmentListPage) RegulatoryComplianceAssessmentListIterator {
- return RegulatoryComplianceAssessmentListIterator{page: page}
+// Creates a new instance of the SecureScoresListIterator type.
+func NewSecureScoresListIterator(page SecureScoresListPage) SecureScoresListIterator {
+ return SecureScoresListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (rcal RegulatoryComplianceAssessmentList) IsEmpty() bool {
- return rcal.Value == nil || len(*rcal.Value) == 0
+func (ssl SecureScoresList) IsEmpty() bool {
+ return ssl.Value == nil || len(*ssl.Value) == 0
}
-// regulatoryComplianceAssessmentListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (ssl SecureScoresList) hasNextLink() bool {
+ return ssl.NextLink != nil && len(*ssl.NextLink) != 0
+}
+
+// secureScoresListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (rcal RegulatoryComplianceAssessmentList) regulatoryComplianceAssessmentListPreparer(ctx context.Context) (*http.Request, error) {
- if rcal.NextLink == nil || len(to.String(rcal.NextLink)) < 1 {
+func (ssl SecureScoresList) secureScoresListPreparer(ctx context.Context) (*http.Request, error) {
+ if !ssl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(rcal.NextLink)))
+ autorest.WithBaseURL(to.String(ssl.NextLink)))
}
-// RegulatoryComplianceAssessmentListPage contains a page of RegulatoryComplianceAssessment values.
-type RegulatoryComplianceAssessmentListPage struct {
- fn func(context.Context, RegulatoryComplianceAssessmentList) (RegulatoryComplianceAssessmentList, error)
- rcal RegulatoryComplianceAssessmentList
+// SecureScoresListPage contains a page of SecureScoreItem values.
+type SecureScoresListPage struct {
+ fn func(context.Context, SecureScoresList) (SecureScoresList, error)
+ ssl SecureScoresList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *RegulatoryComplianceAssessmentListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *SecureScoresListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceAssessmentListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoresListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -8005,69 +15495,67 @@ func (page *RegulatoryComplianceAssessmentListPage) NextWithContext(ctx context.
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.rcal)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.ssl)
+ if err != nil {
+ return err
+ }
+ page.ssl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.rcal = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *RegulatoryComplianceAssessmentListPage) Next() error {
+func (page *SecureScoresListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page RegulatoryComplianceAssessmentListPage) NotDone() bool {
- return !page.rcal.IsEmpty()
+func (page SecureScoresListPage) NotDone() bool {
+ return !page.ssl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page RegulatoryComplianceAssessmentListPage) Response() RegulatoryComplianceAssessmentList {
- return page.rcal
+func (page SecureScoresListPage) Response() SecureScoresList {
+ return page.ssl
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page RegulatoryComplianceAssessmentListPage) Values() []RegulatoryComplianceAssessment {
- if page.rcal.IsEmpty() {
+func (page SecureScoresListPage) Values() []SecureScoreItem {
+ if page.ssl.IsEmpty() {
return nil
}
- return *page.rcal.Value
+ return *page.ssl.Value
}
-// Creates a new instance of the RegulatoryComplianceAssessmentListPage type.
-func NewRegulatoryComplianceAssessmentListPage(getNextPage func(context.Context, RegulatoryComplianceAssessmentList) (RegulatoryComplianceAssessmentList, error)) RegulatoryComplianceAssessmentListPage {
- return RegulatoryComplianceAssessmentListPage{fn: getNextPage}
+// Creates a new instance of the SecureScoresListPage type.
+func NewSecureScoresListPage(getNextPage func(context.Context, SecureScoresList) (SecureScoresList, error)) SecureScoresListPage {
+ return SecureScoresListPage{fn: getNextPage}
}
-// RegulatoryComplianceAssessmentProperties regulatory compliance assessment data
-type RegulatoryComplianceAssessmentProperties struct {
- // Description - READ-ONLY; The description of the regulatory compliance assessment
+// SensitivityLabel the sensitivity label.
+type SensitivityLabel struct {
+ // DisplayName - The name of the sensitivity label.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - The description of the sensitivity label.
Description *string `json:"description,omitempty"`
- // AssessmentType - READ-ONLY; The expected type of assessment contained in the AssessmentDetailsLink
- AssessmentType *string `json:"assessmentType,omitempty"`
- // AssessmentDetailsLink - READ-ONLY; Link to more detailed assessment results data. The response type will be according to the assessmentType field
- AssessmentDetailsLink *string `json:"assessmentDetailsLink,omitempty"`
- // State - Aggregative state based on the assessment's scanned resources states. Possible values include: 'StatePassed', 'StateFailed', 'StateSkipped', 'StateUnsupported'
- State State `json:"state,omitempty"`
- // PassedResources - READ-ONLY; The given assessment's related resources count with passed state.
- PassedResources *int32 `json:"passedResources,omitempty"`
- // FailedResources - READ-ONLY; The given assessment's related resources count with failed state.
- FailedResources *int32 `json:"failedResources,omitempty"`
- // SkippedResources - READ-ONLY; The given assessment's related resources count with skipped state.
- SkippedResources *int32 `json:"skippedResources,omitempty"`
- // UnsupportedResources - READ-ONLY; The given assessment's related resources count with unsupported state.
- UnsupportedResources *int32 `json:"unsupportedResources,omitempty"`
+ // Rank - The rank of the sensitivity label. Possible values include: 'RankNone', 'RankLow', 'RankMedium', 'RankHigh', 'RankCritical'
+ Rank Rank `json:"rank,omitempty"`
+ // Order - The order of the sensitivity label.
+ Order *int32 `json:"order,omitempty"`
+ // Enabled - Indicates whether the label is enabled or not.
+ Enabled *bool `json:"enabled,omitempty"`
}
-// RegulatoryComplianceControl regulatory compliance control details and state
-type RegulatoryComplianceControl struct {
- autorest.Response `json:"-"`
- // RegulatoryComplianceControlProperties - Regulatory compliance control data
- *RegulatoryComplianceControlProperties `json:"properties,omitempty"`
+// ServerVulnerabilityAssessment describes the server vulnerability assessment details on a resource
+type ServerVulnerabilityAssessment struct {
+ autorest.Response `json:"-"`
+ *ServerVulnerabilityAssessmentProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
@@ -8076,17 +15564,17 @@ type RegulatoryComplianceControl struct {
Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for RegulatoryComplianceControl.
-func (rcc RegulatoryComplianceControl) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for ServerVulnerabilityAssessment.
+func (sva ServerVulnerabilityAssessment) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if rcc.RegulatoryComplianceControlProperties != nil {
- objectMap["properties"] = rcc.RegulatoryComplianceControlProperties
+ if sva.ServerVulnerabilityAssessmentProperties != nil {
+ objectMap["properties"] = sva.ServerVulnerabilityAssessmentProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for RegulatoryComplianceControl struct.
-func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for ServerVulnerabilityAssessment struct.
+func (sva *ServerVulnerabilityAssessment) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -8096,12 +15584,12 @@ func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
switch k {
case "properties":
if v != nil {
- var regulatoryComplianceControlProperties RegulatoryComplianceControlProperties
- err = json.Unmarshal(*v, ®ulatoryComplianceControlProperties)
+ var serverVulnerabilityAssessmentProperties ServerVulnerabilityAssessmentProperties
+ err = json.Unmarshal(*v, &serverVulnerabilityAssessmentProperties)
if err != nil {
return err
}
- rcc.RegulatoryComplianceControlProperties = ®ulatoryComplianceControlProperties
+ sva.ServerVulnerabilityAssessmentProperties = &serverVulnerabilityAssessmentProperties
}
case "id":
if v != nil {
@@ -8110,7 +15598,7 @@ func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- rcc.ID = &ID
+ sva.ID = &ID
}
case "name":
if v != nil {
@@ -8119,7 +15607,7 @@ func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- rcc.Name = &name
+ sva.Name = &name
}
case "type":
if v != nil {
@@ -8128,7 +15616,7 @@ func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- rcc.Type = &typeVar
+ sva.Type = &typeVar
}
}
}
@@ -8136,191 +15624,294 @@ func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
return nil
}
-// RegulatoryComplianceControlList list of regulatory compliance controls response
-type RegulatoryComplianceControlList struct {
+// ServerVulnerabilityAssessmentProperties describes ServerVulnerabilityAssessment properties.
+type ServerVulnerabilityAssessmentProperties struct {
+ // ProvisioningState - READ-ONLY; The provisioningState of the vulnerability assessment capability on the VM. Possible values include: 'ProvisioningState1Succeeded', 'ProvisioningState1Failed', 'ProvisioningState1Canceled', 'ProvisioningState1Provisioning', 'ProvisioningState1Deprovisioning'
+ ProvisioningState ProvisioningState1 `json:"provisioningState,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for ServerVulnerabilityAssessmentProperties.
+func (svap ServerVulnerabilityAssessmentProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// ServerVulnerabilityAssessmentsList list of server vulnerability assessments
+type ServerVulnerabilityAssessmentsList struct {
autorest.Response `json:"-"`
- // Value - List of regulatory compliance controls
- Value *[]RegulatoryComplianceControl `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
+ Value *[]ServerVulnerabilityAssessment `json:"value,omitempty"`
}
-// RegulatoryComplianceControlListIterator provides access to a complete listing of
-// RegulatoryComplianceControl values.
-type RegulatoryComplianceControlListIterator struct {
- i int
- page RegulatoryComplianceControlListPage
+// ServerVulnerabilityProperties additional context fields for server vulnerability assessment
+type ServerVulnerabilityProperties struct {
+ // Type - READ-ONLY; Vulnerability Type. e.g: Vulnerability, Potential Vulnerability, Information Gathered
+ Type *string `json:"type,omitempty"`
+ // Cvss - READ-ONLY; Dictionary from cvss version to cvss details object
+ Cvss map[string]*CVSS `json:"cvss"`
+ // Patchable - READ-ONLY; Indicates whether a patch is available or not
+ Patchable *bool `json:"patchable,omitempty"`
+ // Cve - READ-ONLY; List of CVEs
+ Cve *[]CVE `json:"cve,omitempty"`
+ // Threat - READ-ONLY; Threat name
+ Threat *string `json:"threat,omitempty"`
+ // PublishedTime - READ-ONLY; Published time
+ PublishedTime *date.Time `json:"publishedTime,omitempty"`
+ // VendorReferences - READ-ONLY
+ VendorReferences *[]VendorReference `json:"vendorReferences,omitempty"`
+ // AssessedResourceType - Possible values include: 'AssessedResourceTypeAdditionalData', 'AssessedResourceTypeSQLServerVulnerability', 'AssessedResourceTypeContainerRegistryVulnerability', 'AssessedResourceTypeServerVulnerabilityAssessment'
+ AssessedResourceType AssessedResourceType `json:"assessedResourceType,omitempty"`
}
-// NextWithContext advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-func (iter *RegulatoryComplianceControlListIterator) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceControlListIterator.NextWithContext")
- defer func() {
- sc := -1
- if iter.Response().Response.Response != nil {
- sc = iter.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
+// MarshalJSON is the custom marshaler for ServerVulnerabilityProperties.
+func (svp ServerVulnerabilityProperties) MarshalJSON() ([]byte, error) {
+ svp.AssessedResourceType = AssessedResourceTypeServerVulnerabilityAssessment
+ objectMap := make(map[string]interface{})
+ if svp.AssessedResourceType != "" {
+ objectMap["assessedResourceType"] = svp.AssessedResourceType
}
- iter.i++
- if iter.i < len(iter.page.Values()) {
- return nil
+ return json.Marshal(objectMap)
+}
+
+// AsSQLServerVulnerabilityProperties is the BasicAdditionalData implementation for ServerVulnerabilityProperties.
+func (svp ServerVulnerabilityProperties) AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool) {
+ return nil, false
+}
+
+// AsContainerRegistryVulnerabilityProperties is the BasicAdditionalData implementation for ServerVulnerabilityProperties.
+func (svp ServerVulnerabilityProperties) AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool) {
+ return nil, false
+}
+
+// AsServerVulnerabilityProperties is the BasicAdditionalData implementation for ServerVulnerabilityProperties.
+func (svp ServerVulnerabilityProperties) AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool) {
+ return &svp, true
+}
+
+// AsAdditionalData is the BasicAdditionalData implementation for ServerVulnerabilityProperties.
+func (svp ServerVulnerabilityProperties) AsAdditionalData() (*AdditionalData, bool) {
+ return nil, false
+}
+
+// AsBasicAdditionalData is the BasicAdditionalData implementation for ServerVulnerabilityProperties.
+func (svp ServerVulnerabilityProperties) AsBasicAdditionalData() (BasicAdditionalData, bool) {
+ return &svp, true
+}
+
+// ServicePrincipalProperties details of the service principal.
+type ServicePrincipalProperties struct {
+ // ApplicationID - Application id of service principal.
+ ApplicationID *string `json:"applicationId,omitempty"`
+ // Secret - A secret string that the application uses to prove its identity, also can be referred to as application password (write only).
+ Secret *string `json:"secret,omitempty"`
+}
+
+// BasicSetting represents a security setting in Azure Security Center.
+type BasicSetting interface {
+ AsDataExportSettings() (*DataExportSettings, bool)
+ AsSetting() (*Setting, bool)
+}
+
+// Setting represents a security setting in Azure Security Center.
+type Setting struct {
+ autorest.Response `json:"-"`
+ // Kind - Possible values include: 'KindSettingResource', 'KindSetting', 'KindDataExportSettings'
+ Kind KindEnum `json:"kind,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+func unmarshalBasicSetting(body []byte) (BasicSetting, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return nil, err
}
- err = iter.page.NextWithContext(ctx)
+
+ switch m["kind"] {
+ case string(KindDataExportSettings):
+ var desVar DataExportSettings
+ err := json.Unmarshal(body, &desVar)
+ return desVar, err
+ default:
+ var s Setting
+ err := json.Unmarshal(body, &s)
+ return s, err
+ }
+}
+func unmarshalBasicSettingArray(body []byte) ([]BasicSetting, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
if err != nil {
- iter.i--
- return err
+ return nil, err
}
- iter.i = 0
- return nil
+
+ sArray := make([]BasicSetting, len(rawMessages))
+
+ for index, rawMessage := range rawMessages {
+ s, err := unmarshalBasicSetting(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ sArray[index] = s
+ }
+ return sArray, nil
}
-// Next advances to the next value. If there was an error making
-// the request the iterator does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (iter *RegulatoryComplianceControlListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// MarshalJSON is the custom marshaler for Setting.
+func (s Setting) MarshalJSON() ([]byte, error) {
+ s.Kind = KindSetting
+ objectMap := make(map[string]interface{})
+ if s.Kind != "" {
+ objectMap["kind"] = s.Kind
+ }
+ return json.Marshal(objectMap)
}
-// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter RegulatoryComplianceControlListIterator) NotDone() bool {
- return iter.page.NotDone() && iter.i < len(iter.page.Values())
+// AsSetting is the BasicSettingResource implementation for Setting.
+func (s Setting) AsSetting() (*Setting, bool) {
+ return &s, true
}
-// Response returns the raw server response from the last page request.
-func (iter RegulatoryComplianceControlListIterator) Response() RegulatoryComplianceControlList {
- return iter.page.Response()
+// AsBasicSetting is the BasicSettingResource implementation for Setting.
+func (s Setting) AsBasicSetting() (BasicSetting, bool) {
+ return &s, true
}
-// Value returns the current value or a zero-initialized value if the
-// iterator has advanced beyond the end of the collection.
-func (iter RegulatoryComplianceControlListIterator) Value() RegulatoryComplianceControl {
- if !iter.page.NotDone() {
- return RegulatoryComplianceControl{}
- }
- return iter.page.Values()[iter.i]
+// AsDataExportSettings is the BasicSettingResource implementation for Setting.
+func (s Setting) AsDataExportSettings() (*DataExportSettings, bool) {
+ return nil, false
}
-// Creates a new instance of the RegulatoryComplianceControlListIterator type.
-func NewRegulatoryComplianceControlListIterator(page RegulatoryComplianceControlListPage) RegulatoryComplianceControlListIterator {
- return RegulatoryComplianceControlListIterator{page: page}
+// AsSettingResource is the BasicSettingResource implementation for Setting.
+func (s Setting) AsSettingResource() (*SettingResource, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (rccl RegulatoryComplianceControlList) IsEmpty() bool {
- return rccl.Value == nil || len(*rccl.Value) == 0
+// AsBasicSettingResource is the BasicSettingResource implementation for Setting.
+func (s Setting) AsBasicSettingResource() (BasicSettingResource, bool) {
+ return &s, true
}
-// regulatoryComplianceControlListPreparer prepares a request to retrieve the next set of results.
-// It returns nil if no more results exist.
-func (rccl RegulatoryComplianceControlList) regulatoryComplianceControlListPreparer(ctx context.Context) (*http.Request, error) {
- if rccl.NextLink == nil || len(to.String(rccl.NextLink)) < 1 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(rccl.NextLink)))
+// BasicSettingResource the kind of the security setting
+type BasicSettingResource interface {
+ AsSetting() (*Setting, bool)
+ AsBasicSetting() (BasicSetting, bool)
+ AsDataExportSettings() (*DataExportSettings, bool)
+ AsSettingResource() (*SettingResource, bool)
}
-// RegulatoryComplianceControlListPage contains a page of RegulatoryComplianceControl values.
-type RegulatoryComplianceControlListPage struct {
- fn func(context.Context, RegulatoryComplianceControlList) (RegulatoryComplianceControlList, error)
- rccl RegulatoryComplianceControlList
+// SettingResource the kind of the security setting
+type SettingResource struct {
+ // Kind - Possible values include: 'KindSettingResource', 'KindSetting', 'KindDataExportSettings'
+ Kind KindEnum `json:"kind,omitempty"`
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
}
-// NextWithContext advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-func (page *RegulatoryComplianceControlListPage) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceControlListPage.NextWithContext")
- defer func() {
- sc := -1
- if page.Response().Response.Response != nil {
- sc = page.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
- }
- next, err := page.fn(ctx, page.rccl)
+func unmarshalBasicSettingResource(body []byte) (BasicSettingResource, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
if err != nil {
- return err
+ return nil, err
+ }
+
+ switch m["kind"] {
+ case string(KindSetting):
+ var s Setting
+ err := json.Unmarshal(body, &s)
+ return s, err
+ case string(KindDataExportSettings):
+ var desVar DataExportSettings
+ err := json.Unmarshal(body, &desVar)
+ return desVar, err
+ default:
+ var sr SettingResource
+ err := json.Unmarshal(body, &sr)
+ return sr, err
}
- page.rccl = next
- return nil
}
+func unmarshalBasicSettingResourceArray(body []byte) ([]BasicSettingResource, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
+ if err != nil {
+ return nil, err
+ }
-// Next advances to the next page of values. If there was an error making
-// the request the page does not advance and the error is returned.
-// Deprecated: Use NextWithContext() instead.
-func (page *RegulatoryComplianceControlListPage) Next() error {
- return page.NextWithContext(context.Background())
+ srArray := make([]BasicSettingResource, len(rawMessages))
+
+ for index, rawMessage := range rawMessages {
+ sr, err := unmarshalBasicSettingResource(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ srArray[index] = sr
+ }
+ return srArray, nil
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page RegulatoryComplianceControlListPage) NotDone() bool {
- return !page.rccl.IsEmpty()
+// MarshalJSON is the custom marshaler for SettingResource.
+func (sr SettingResource) MarshalJSON() ([]byte, error) {
+ sr.Kind = KindSettingResource
+ objectMap := make(map[string]interface{})
+ if sr.Kind != "" {
+ objectMap["kind"] = sr.Kind
+ }
+ return json.Marshal(objectMap)
}
-// Response returns the raw server response from the last page request.
-func (page RegulatoryComplianceControlListPage) Response() RegulatoryComplianceControlList {
- return page.rccl
+// AsSetting is the BasicSettingResource implementation for SettingResource.
+func (sr SettingResource) AsSetting() (*Setting, bool) {
+ return nil, false
}
-// Values returns the slice of values for the current page or nil if there are no values.
-func (page RegulatoryComplianceControlListPage) Values() []RegulatoryComplianceControl {
- if page.rccl.IsEmpty() {
- return nil
- }
- return *page.rccl.Value
+// AsBasicSetting is the BasicSettingResource implementation for SettingResource.
+func (sr SettingResource) AsBasicSetting() (BasicSetting, bool) {
+ return nil, false
}
-// Creates a new instance of the RegulatoryComplianceControlListPage type.
-func NewRegulatoryComplianceControlListPage(getNextPage func(context.Context, RegulatoryComplianceControlList) (RegulatoryComplianceControlList, error)) RegulatoryComplianceControlListPage {
- return RegulatoryComplianceControlListPage{fn: getNextPage}
+// AsDataExportSettings is the BasicSettingResource implementation for SettingResource.
+func (sr SettingResource) AsDataExportSettings() (*DataExportSettings, bool) {
+ return nil, false
}
-// RegulatoryComplianceControlProperties regulatory compliance control data
-type RegulatoryComplianceControlProperties struct {
- // Description - READ-ONLY; The description of the regulatory compliance control
- Description *string `json:"description,omitempty"`
- // State - Aggregative state based on the control's supported assessments states. Possible values include: 'StatePassed', 'StateFailed', 'StateSkipped', 'StateUnsupported'
- State State `json:"state,omitempty"`
- // PassedAssessments - READ-ONLY; The number of supported regulatory compliance assessments of the given control with a passed state
- PassedAssessments *int32 `json:"passedAssessments,omitempty"`
- // FailedAssessments - READ-ONLY; The number of supported regulatory compliance assessments of the given control with a failed state
- FailedAssessments *int32 `json:"failedAssessments,omitempty"`
- // SkippedAssessments - READ-ONLY; The number of supported regulatory compliance assessments of the given control with a skipped state
- SkippedAssessments *int32 `json:"skippedAssessments,omitempty"`
+// AsSettingResource is the BasicSettingResource implementation for SettingResource.
+func (sr SettingResource) AsSettingResource() (*SettingResource, bool) {
+ return &sr, true
+}
+
+// AsBasicSettingResource is the BasicSettingResource implementation for SettingResource.
+func (sr SettingResource) AsBasicSettingResource() (BasicSettingResource, bool) {
+ return &sr, true
}
-// RegulatoryComplianceStandard regulatory compliance standard details and state
-type RegulatoryComplianceStandard struct {
+// SettingsList subscription settings list.
+type SettingsList struct {
autorest.Response `json:"-"`
- // RegulatoryComplianceStandardProperties - Regulatory compliance standard data
- *RegulatoryComplianceStandardProperties `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
+ // Value - The settings list.
+ Value *[]BasicSetting `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
}
-// MarshalJSON is the custom marshaler for RegulatoryComplianceStandard.
-func (rcs RegulatoryComplianceStandard) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for SettingsList.
+func (sl SettingsList) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if rcs.RegulatoryComplianceStandardProperties != nil {
- objectMap["properties"] = rcs.RegulatoryComplianceStandardProperties
+ if sl.Value != nil {
+ objectMap["value"] = sl.Value
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for RegulatoryComplianceStandard struct.
-func (rcs *RegulatoryComplianceStandard) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for SettingsList struct.
+func (sl *SettingsList) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -8328,41 +15919,22 @@ func (rcs *RegulatoryComplianceStandard) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
- case "properties":
- if v != nil {
- var regulatoryComplianceStandardProperties RegulatoryComplianceStandardProperties
- err = json.Unmarshal(*v, ®ulatoryComplianceStandardProperties)
- if err != nil {
- return err
- }
- rcs.RegulatoryComplianceStandardProperties = ®ulatoryComplianceStandardProperties
- }
- case "id":
- if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- rcs.ID = &ID
- }
- case "name":
+ case "value":
if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
+ value, err := unmarshalBasicSettingArray(*v)
if err != nil {
return err
}
- rcs.Name = &name
+ sl.Value = &value
}
- case "type":
+ case "nextLink":
if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
+ var nextLink string
+ err = json.Unmarshal(*v, &nextLink)
if err != nil {
return err
}
- rcs.Type = &typeVar
+ sl.NextLink = &nextLink
}
}
}
@@ -8370,26 +15942,17 @@ func (rcs *RegulatoryComplianceStandard) UnmarshalJSON(body []byte) error {
return nil
}
-// RegulatoryComplianceStandardList list of regulatory compliance standards response
-type RegulatoryComplianceStandardList struct {
- autorest.Response `json:"-"`
- Value *[]RegulatoryComplianceStandard `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
-}
-
-// RegulatoryComplianceStandardListIterator provides access to a complete listing of
-// RegulatoryComplianceStandard values.
-type RegulatoryComplianceStandardListIterator struct {
+// SettingsListIterator provides access to a complete listing of Setting values.
+type SettingsListIterator struct {
i int
- page RegulatoryComplianceStandardListPage
+ page SettingsListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *RegulatoryComplianceStandardListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *SettingsListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceStandardListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SettingsListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -8414,62 +15977,67 @@ func (iter *RegulatoryComplianceStandardListIterator) NextWithContext(ctx contex
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *RegulatoryComplianceStandardListIterator) Next() error {
+func (iter *SettingsListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter RegulatoryComplianceStandardListIterator) NotDone() bool {
+func (iter SettingsListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter RegulatoryComplianceStandardListIterator) Response() RegulatoryComplianceStandardList {
+func (iter SettingsListIterator) Response() SettingsList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter RegulatoryComplianceStandardListIterator) Value() RegulatoryComplianceStandard {
+func (iter SettingsListIterator) Value() BasicSetting {
if !iter.page.NotDone() {
- return RegulatoryComplianceStandard{}
+ return Setting{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the RegulatoryComplianceStandardListIterator type.
-func NewRegulatoryComplianceStandardListIterator(page RegulatoryComplianceStandardListPage) RegulatoryComplianceStandardListIterator {
- return RegulatoryComplianceStandardListIterator{page: page}
+// Creates a new instance of the SettingsListIterator type.
+func NewSettingsListIterator(page SettingsListPage) SettingsListIterator {
+ return SettingsListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (rcsl RegulatoryComplianceStandardList) IsEmpty() bool {
- return rcsl.Value == nil || len(*rcsl.Value) == 0
+func (sl SettingsList) IsEmpty() bool {
+ return sl.Value == nil || len(*sl.Value) == 0
}
-// regulatoryComplianceStandardListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (sl SettingsList) hasNextLink() bool {
+ return sl.NextLink != nil && len(*sl.NextLink) != 0
+}
+
+// settingsListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (rcsl RegulatoryComplianceStandardList) regulatoryComplianceStandardListPreparer(ctx context.Context) (*http.Request, error) {
- if rcsl.NextLink == nil || len(to.String(rcsl.NextLink)) < 1 {
+func (sl SettingsList) settingsListPreparer(ctx context.Context) (*http.Request, error) {
+ if !sl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(rcsl.NextLink)))
+ autorest.WithBaseURL(to.String(sl.NextLink)))
}
-// RegulatoryComplianceStandardListPage contains a page of RegulatoryComplianceStandard values.
-type RegulatoryComplianceStandardListPage struct {
- fn func(context.Context, RegulatoryComplianceStandardList) (RegulatoryComplianceStandardList, error)
- rcsl RegulatoryComplianceStandardList
+// SettingsListPage contains a page of BasicSetting values.
+type SettingsListPage struct {
+ fn func(context.Context, SettingsList) (SettingsList, error)
+ sl SettingsList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *RegulatoryComplianceStandardListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *SettingsListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceStandardListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SettingsListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -8478,185 +16046,74 @@ func (page *RegulatoryComplianceStandardListPage) NextWithContext(ctx context.Co
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.rcsl)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.sl)
+ if err != nil {
+ return err
+ }
+ page.sl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.rcsl = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *RegulatoryComplianceStandardListPage) Next() error {
+func (page *SettingsListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page RegulatoryComplianceStandardListPage) NotDone() bool {
- return !page.rcsl.IsEmpty()
+func (page SettingsListPage) NotDone() bool {
+ return !page.sl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page RegulatoryComplianceStandardListPage) Response() RegulatoryComplianceStandardList {
- return page.rcsl
+func (page SettingsListPage) Response() SettingsList {
+ return page.sl
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page RegulatoryComplianceStandardListPage) Values() []RegulatoryComplianceStandard {
- if page.rcsl.IsEmpty() {
+func (page SettingsListPage) Values() []BasicSetting {
+ if page.sl.IsEmpty() {
return nil
}
- return *page.rcsl.Value
-}
-
-// Creates a new instance of the RegulatoryComplianceStandardListPage type.
-func NewRegulatoryComplianceStandardListPage(getNextPage func(context.Context, RegulatoryComplianceStandardList) (RegulatoryComplianceStandardList, error)) RegulatoryComplianceStandardListPage {
- return RegulatoryComplianceStandardListPage{fn: getNextPage}
-}
-
-// RegulatoryComplianceStandardProperties regulatory compliance standard data
-type RegulatoryComplianceStandardProperties struct {
- // State - Aggregative state based on the standard's supported controls states. Possible values include: 'StatePassed', 'StateFailed', 'StateSkipped', 'StateUnsupported'
- State State `json:"state,omitempty"`
- // PassedControls - READ-ONLY; The number of supported regulatory compliance controls of the given standard with a passed state
- PassedControls *int32 `json:"passedControls,omitempty"`
- // FailedControls - READ-ONLY; The number of supported regulatory compliance controls of the given standard with a failed state
- FailedControls *int32 `json:"failedControls,omitempty"`
- // SkippedControls - READ-ONLY; The number of supported regulatory compliance controls of the given standard with a skipped state
- SkippedControls *int32 `json:"skippedControls,omitempty"`
- // UnsupportedControls - READ-ONLY; The number of regulatory compliance controls of the given standard which are unsupported by automated assessments
- UnsupportedControls *int32 `json:"unsupportedControls,omitempty"`
-}
-
-// Resource describes an Azure resource.
-type Resource struct {
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
-}
-
-// BasicResourceDetails details of the resource that was assessed
-type BasicResourceDetails interface {
- AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool)
- AsAzureResourceDetails() (*AzureResourceDetails, bool)
- AsResourceDetails() (*ResourceDetails, bool)
-}
-
-// ResourceDetails details of the resource that was assessed
-type ResourceDetails struct {
- // Source - Possible values include: 'SourceResourceDetails', 'SourceOnPremise', 'SourceAzure'
- Source Source `json:"source,omitempty"`
-}
-
-func unmarshalBasicResourceDetails(body []byte) (BasicResourceDetails, error) {
- var m map[string]interface{}
- err := json.Unmarshal(body, &m)
- if err != nil {
- return nil, err
- }
-
- switch m["source"] {
- case string(SourceOnPremise):
- var oprd OnPremiseResourceDetails
- err := json.Unmarshal(body, &oprd)
- return oprd, err
- case string(SourceAzure):
- var ard AzureResourceDetails
- err := json.Unmarshal(body, &ard)
- return ard, err
- default:
- var rd ResourceDetails
- err := json.Unmarshal(body, &rd)
- return rd, err
- }
-}
-func unmarshalBasicResourceDetailsArray(body []byte) ([]BasicResourceDetails, error) {
- var rawMessages []*json.RawMessage
- err := json.Unmarshal(body, &rawMessages)
- if err != nil {
- return nil, err
- }
-
- rdArray := make([]BasicResourceDetails, len(rawMessages))
-
- for index, rawMessage := range rawMessages {
- rd, err := unmarshalBasicResourceDetails(*rawMessage)
- if err != nil {
- return nil, err
- }
- rdArray[index] = rd
- }
- return rdArray, nil
-}
-
-// MarshalJSON is the custom marshaler for ResourceDetails.
-func (rd ResourceDetails) MarshalJSON() ([]byte, error) {
- rd.Source = SourceResourceDetails
- objectMap := make(map[string]interface{})
- if rd.Source != "" {
- objectMap["source"] = rd.Source
- }
- return json.Marshal(objectMap)
-}
-
-// AsOnPremiseResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
-func (rd ResourceDetails) AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool) {
- return nil, false
-}
-
-// AsAzureResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
-func (rd ResourceDetails) AsAzureResourceDetails() (*AzureResourceDetails, bool) {
- return nil, false
-}
-
-// AsResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
-func (rd ResourceDetails) AsResourceDetails() (*ResourceDetails, bool) {
- return &rd, true
-}
-
-// AsBasicResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
-func (rd ResourceDetails) AsBasicResourceDetails() (BasicResourceDetails, bool) {
- return &rd, true
+ return *page.sl.Value
}
-// SensitivityLabel the sensitivity label.
-type SensitivityLabel struct {
- // DisplayName - The name of the sensitivity label.
- DisplayName *string `json:"displayName,omitempty"`
- // Order - The order of the sensitivity label.
- Order *float64 `json:"order,omitempty"`
- // Enabled - Indicates whether the label is enabled or not.
- Enabled *bool `json:"enabled,omitempty"`
+// Creates a new instance of the SettingsListPage type.
+func NewSettingsListPage(getNextPage func(context.Context, SettingsList) (SettingsList, error)) SettingsListPage {
+ return SettingsListPage{fn: getNextPage}
}
-
-// ServerVulnerabilityAssessment describes the server vulnerability assessment details on a resource
-type ServerVulnerabilityAssessment struct {
- autorest.Response `json:"-"`
- *ServerVulnerabilityAssessmentProperties `json:"properties,omitempty"`
+
+// Solution ...
+type Solution struct {
+ autorest.Response `json:"-"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
Name *string `json:"name,omitempty"`
// Type - READ-ONLY; Resource type
Type *string `json:"type,omitempty"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ *SolutionProperties `json:"properties,omitempty"`
}
-// MarshalJSON is the custom marshaler for ServerVulnerabilityAssessment.
-func (sva ServerVulnerabilityAssessment) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for Solution.
+func (s Solution) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if sva.ServerVulnerabilityAssessmentProperties != nil {
- objectMap["properties"] = sva.ServerVulnerabilityAssessmentProperties
+ if s.SolutionProperties != nil {
+ objectMap["properties"] = s.SolutionProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for ServerVulnerabilityAssessment struct.
-func (sva *ServerVulnerabilityAssessment) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for Solution struct.
+func (s *Solution) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -8664,15 +16121,6 @@ func (sva *ServerVulnerabilityAssessment) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
- case "properties":
- if v != nil {
- var serverVulnerabilityAssessmentProperties ServerVulnerabilityAssessmentProperties
- err = json.Unmarshal(*v, &serverVulnerabilityAssessmentProperties)
- if err != nil {
- return err
- }
- sva.ServerVulnerabilityAssessmentProperties = &serverVulnerabilityAssessmentProperties
- }
case "id":
if v != nil {
var ID string
@@ -8680,7 +16128,7 @@ func (sva *ServerVulnerabilityAssessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- sva.ID = &ID
+ s.ID = &ID
}
case "name":
if v != nil {
@@ -8689,7 +16137,7 @@ func (sva *ServerVulnerabilityAssessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- sva.Name = &name
+ s.Name = &name
}
case "type":
if v != nil {
@@ -8698,7 +16146,25 @@ func (sva *ServerVulnerabilityAssessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- sva.Type = &typeVar
+ s.Type = &typeVar
+ }
+ case "location":
+ if v != nil {
+ var location string
+ err = json.Unmarshal(*v, &location)
+ if err != nil {
+ return err
+ }
+ s.Location = &location
+ }
+ case "properties":
+ if v != nil {
+ var solutionProperties SolutionProperties
+ err = json.Unmarshal(*v, &solutionProperties)
+ if err != nil {
+ return err
+ }
+ s.SolutionProperties = &solutionProperties
}
}
}
@@ -8706,118 +16172,34 @@ func (sva *ServerVulnerabilityAssessment) UnmarshalJSON(body []byte) error {
return nil
}
-// ServerVulnerabilityAssessmentProperties describes ServerVulnerabilityAssessment properties.
-type ServerVulnerabilityAssessmentProperties struct {
- // ProvisioningState - READ-ONLY; The provisioningState of the vulnerability assessment capability on the VM. Possible values include: 'ProvisioningStateSucceeded', 'ProvisioningStateFailed', 'ProvisioningStateCanceled', 'ProvisioningStateProvisioning', 'ProvisioningStateDeprovisioning'
- ProvisioningState ProvisioningState `json:"provisioningState,omitempty"`
-}
-
-// ServerVulnerabilityAssessmentsList list of server vulnerability assessments
-type ServerVulnerabilityAssessmentsList struct {
+// SolutionList ...
+type SolutionList struct {
autorest.Response `json:"-"`
- Value *[]ServerVulnerabilityAssessment `json:"value,omitempty"`
-}
-
-// ServerVulnerabilityProperties additional context fields for server vulnerability assessment
-type ServerVulnerabilityProperties struct {
- // Type - READ-ONLY; Vulnerability Type. e.g: Vulnerability, Potential Vulnerability, Information Gathered
- Type *string `json:"type,omitempty"`
- // Cvss - READ-ONLY; Dictionary from cvss version to cvss details object
- Cvss map[string]*CVSS `json:"cvss"`
- // Patchable - READ-ONLY; Indicates whether a patch is available or not
- Patchable *bool `json:"patchable,omitempty"`
- // Cve - READ-ONLY; List of CVEs
- Cve *[]CVE `json:"cve,omitempty"`
- // Threat - READ-ONLY; Threat name
- Threat *string `json:"threat,omitempty"`
- // PublishedTime - READ-ONLY; Published time
- PublishedTime *date.Time `json:"publishedTime,omitempty"`
- // VendorReferences - READ-ONLY
- VendorReferences *[]VendorReference `json:"vendorReferences,omitempty"`
- // AssessedResourceType - Possible values include: 'AssessedResourceTypeAdditionalData', 'AssessedResourceTypeSQLServerVulnerability', 'AssessedResourceTypeContainerRegistryVulnerability', 'AssessedResourceTypeServerVulnerabilityAssessment'
- AssessedResourceType AssessedResourceType `json:"assessedResourceType,omitempty"`
+ Value *[]Solution `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
}
-// MarshalJSON is the custom marshaler for ServerVulnerabilityProperties.
-func (svp ServerVulnerabilityProperties) MarshalJSON() ([]byte, error) {
- svp.AssessedResourceType = AssessedResourceTypeServerVulnerabilityAssessment
+// MarshalJSON is the custom marshaler for SolutionList.
+func (sl SolutionList) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if svp.AssessedResourceType != "" {
- objectMap["assessedResourceType"] = svp.AssessedResourceType
+ if sl.Value != nil {
+ objectMap["value"] = sl.Value
}
return json.Marshal(objectMap)
}
-// AsSQLServerVulnerabilityProperties is the BasicAdditionalData implementation for ServerVulnerabilityProperties.
-func (svp ServerVulnerabilityProperties) AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool) {
- return nil, false
-}
-
-// AsContainerRegistryVulnerabilityProperties is the BasicAdditionalData implementation for ServerVulnerabilityProperties.
-func (svp ServerVulnerabilityProperties) AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool) {
- return nil, false
-}
-
-// AsServerVulnerabilityProperties is the BasicAdditionalData implementation for ServerVulnerabilityProperties.
-func (svp ServerVulnerabilityProperties) AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool) {
- return &svp, true
-}
-
-// AsAdditionalData is the BasicAdditionalData implementation for ServerVulnerabilityProperties.
-func (svp ServerVulnerabilityProperties) AsAdditionalData() (*AdditionalData, bool) {
- return nil, false
-}
-
-// AsBasicAdditionalData is the BasicAdditionalData implementation for ServerVulnerabilityProperties.
-func (svp ServerVulnerabilityProperties) AsBasicAdditionalData() (BasicAdditionalData, bool) {
- return &svp, true
-}
-
-// Setting represents a security setting in Azure Security Center.
-type Setting struct {
- autorest.Response `json:"-"`
- // Kind - the kind of the settings string (DataExportSetting). Possible values include: 'SettingKindDataExportSetting', 'SettingKindAlertSuppressionSetting'
- Kind SettingKind `json:"kind,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
-}
-
-// SettingResource the kind of the security setting
-type SettingResource struct {
- // Kind - the kind of the settings string (DataExportSetting). Possible values include: 'SettingKindDataExportSetting', 'SettingKindAlertSuppressionSetting'
- Kind SettingKind `json:"kind,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
- Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
-}
-
-// SettingsList subscription settings list.
-type SettingsList struct {
- autorest.Response `json:"-"`
- // Value - The settings list.
- Value *[]Setting `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
-}
-
-// SettingsListIterator provides access to a complete listing of Setting values.
-type SettingsListIterator struct {
+// SolutionListIterator provides access to a complete listing of Solution values.
+type SolutionListIterator struct {
i int
- page SettingsListPage
+ page SolutionListPage
}
// NextWithContext advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
-func (iter *SettingsListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *SolutionListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/SettingsListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SolutionListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -8842,43 +16224,48 @@ func (iter *SettingsListIterator) NextWithContext(ctx context.Context) (err erro
// Next advances to the next value. If there was an error making
// the request the iterator does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (iter *SettingsListIterator) Next() error {
+func (iter *SolutionListIterator) Next() error {
return iter.NextWithContext(context.Background())
}
// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter SettingsListIterator) NotDone() bool {
+func (iter SolutionListIterator) NotDone() bool {
return iter.page.NotDone() && iter.i < len(iter.page.Values())
}
// Response returns the raw server response from the last page request.
-func (iter SettingsListIterator) Response() SettingsList {
+func (iter SolutionListIterator) Response() SolutionList {
return iter.page.Response()
}
// Value returns the current value or a zero-initialized value if the
// iterator has advanced beyond the end of the collection.
-func (iter SettingsListIterator) Value() Setting {
+func (iter SolutionListIterator) Value() Solution {
if !iter.page.NotDone() {
- return Setting{}
+ return Solution{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the SettingsListIterator type.
-func NewSettingsListIterator(page SettingsListPage) SettingsListIterator {
- return SettingsListIterator{page: page}
+// Creates a new instance of the SolutionListIterator type.
+func NewSolutionListIterator(page SolutionListPage) SolutionListIterator {
+ return SolutionListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (sl SettingsList) IsEmpty() bool {
+func (sl SolutionList) IsEmpty() bool {
return sl.Value == nil || len(*sl.Value) == 0
}
-// settingsListPreparer prepares a request to retrieve the next set of results.
+// hasNextLink returns true if the NextLink is not empty.
+func (sl SolutionList) hasNextLink() bool {
+ return sl.NextLink != nil && len(*sl.NextLink) != 0
+}
+
+// solutionListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
-func (sl SettingsList) settingsListPreparer(ctx context.Context) (*http.Request, error) {
- if sl.NextLink == nil || len(to.String(sl.NextLink)) < 1 {
+func (sl SolutionList) solutionListPreparer(ctx context.Context) (*http.Request, error) {
+ if !sl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
@@ -8887,17 +16274,17 @@ func (sl SettingsList) settingsListPreparer(ctx context.Context) (*http.Request,
autorest.WithBaseURL(to.String(sl.NextLink)))
}
-// SettingsListPage contains a page of Setting values.
-type SettingsListPage struct {
- fn func(context.Context, SettingsList) (SettingsList, error)
- sl SettingsList
+// SolutionListPage contains a page of Solution values.
+type SolutionListPage struct {
+ fn func(context.Context, SolutionList) (SolutionList, error)
+ sl SolutionList
}
// NextWithContext advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
-func (page *SettingsListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *SolutionListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/SettingsListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SolutionListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -8906,42 +16293,165 @@ func (page *SettingsListPage) NextWithContext(ctx context.Context) (err error) {
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.sl)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.sl)
+ if err != nil {
+ return err
+ }
+ page.sl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.sl = next
return nil
}
// Next advances to the next page of values. If there was an error making
// the request the page does not advance and the error is returned.
// Deprecated: Use NextWithContext() instead.
-func (page *SettingsListPage) Next() error {
+func (page *SolutionListPage) Next() error {
return page.NextWithContext(context.Background())
}
// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page SettingsListPage) NotDone() bool {
+func (page SolutionListPage) NotDone() bool {
return !page.sl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page SettingsListPage) Response() SettingsList {
+func (page SolutionListPage) Response() SolutionList {
return page.sl
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page SettingsListPage) Values() []Setting {
+func (page SolutionListPage) Values() []Solution {
if page.sl.IsEmpty() {
return nil
}
return *page.sl.Value
}
-// Creates a new instance of the SettingsListPage type.
-func NewSettingsListPage(getNextPage func(context.Context, SettingsList) (SettingsList, error)) SettingsListPage {
- return SettingsListPage{fn: getNextPage}
+// Creates a new instance of the SolutionListPage type.
+func NewSolutionListPage(getNextPage func(context.Context, SolutionList) (SolutionList, error)) SolutionListPage {
+ return SolutionListPage{fn: getNextPage}
+}
+
+// SolutionProperties ...
+type SolutionProperties struct {
+ // SecurityFamily - The security family of the security solution. Possible values include: 'Waf', 'Ngfw', 'SaasWaf', 'Va'
+ SecurityFamily Family `json:"securityFamily,omitempty"`
+ // ProvisioningState - The security family provisioning State. Possible values include: 'ProvisioningStateSucceeded', 'ProvisioningStateFailed', 'ProvisioningStateUpdating'
+ ProvisioningState ProvisioningState `json:"provisioningState,omitempty"`
+ // Template - The security solutions' template
+ Template *string `json:"template,omitempty"`
+ // ProtectionStatus - The security solutions' status
+ ProtectionStatus *string `json:"protectionStatus,omitempty"`
+}
+
+// SolutionsReferenceData ...
+type SolutionsReferenceData struct {
+ // ID - READ-ONLY; Resource Id
+ ID *string `json:"id,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ *SolutionsReferenceDataProperties `json:"properties,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for SolutionsReferenceData.
+func (srd SolutionsReferenceData) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if srd.SolutionsReferenceDataProperties != nil {
+ objectMap["properties"] = srd.SolutionsReferenceDataProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// UnmarshalJSON is the custom unmarshaler for SolutionsReferenceData struct.
+func (srd *SolutionsReferenceData) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ switch k {
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ srd.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ srd.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ srd.Type = &typeVar
+ }
+ case "location":
+ if v != nil {
+ var location string
+ err = json.Unmarshal(*v, &location)
+ if err != nil {
+ return err
+ }
+ srd.Location = &location
+ }
+ case "properties":
+ if v != nil {
+ var solutionsReferenceDataProperties SolutionsReferenceDataProperties
+ err = json.Unmarshal(*v, &solutionsReferenceDataProperties)
+ if err != nil {
+ return err
+ }
+ srd.SolutionsReferenceDataProperties = &solutionsReferenceDataProperties
+ }
+ }
+ }
+
+ return nil
+}
+
+// SolutionsReferenceDataList ...
+type SolutionsReferenceDataList struct {
+ autorest.Response `json:"-"`
+ Value *[]SolutionsReferenceData `json:"value,omitempty"`
+}
+
+// SolutionsReferenceDataProperties ...
+type SolutionsReferenceDataProperties struct {
+ // SecurityFamily - The security family of the security solution. Possible values include: 'Waf', 'Ngfw', 'SaasWaf', 'Va'
+ SecurityFamily Family `json:"securityFamily,omitempty"`
+ // AlertVendorName - The security solutions' vendor name
+ AlertVendorName *string `json:"alertVendorName,omitempty"`
+ // PackageInfoURL - The security solutions' package info url
+ PackageInfoURL *string `json:"packageInfoUrl,omitempty"`
+ // ProductName - The security solutions' product name
+ ProductName *string `json:"productName,omitempty"`
+ // Publisher - The security solutions' publisher
+ Publisher *string `json:"publisher,omitempty"`
+ // PublisherDisplayName - The security solutions' publisher display name
+ PublisherDisplayName *string `json:"publisherDisplayName,omitempty"`
+ // Template - The security solutions' template
+ Template *string `json:"template,omitempty"`
}
// SQLServerVulnerabilityProperties details of the resource that was assessed
@@ -9070,6 +16580,12 @@ type SubAssessmentList struct {
NextLink *string `json:"nextLink,omitempty"`
}
+// MarshalJSON is the custom marshaler for SubAssessmentList.
+func (sal SubAssessmentList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
// SubAssessmentListIterator provides access to a complete listing of SubAssessment values.
type SubAssessmentListIterator struct {
i int
@@ -9138,10 +16654,15 @@ func (sal SubAssessmentList) IsEmpty() bool {
return sal.Value == nil || len(*sal.Value) == 0
}
+// hasNextLink returns true if the NextLink is not empty.
+func (sal SubAssessmentList) hasNextLink() bool {
+ return sal.NextLink != nil && len(*sal.NextLink) != 0
+}
+
// subAssessmentListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (sal SubAssessmentList) subAssessmentListPreparer(ctx context.Context) (*http.Request, error) {
- if sal.NextLink == nil || len(to.String(sal.NextLink)) < 1 {
+ if !sal.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
@@ -9169,11 +16690,16 @@ func (page *SubAssessmentListPage) NextWithContext(ctx context.Context) (err err
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.sal)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.sal)
+ if err != nil {
+ return err
+ }
+ page.sal = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.sal = next
return nil
}
@@ -9228,6 +16754,17 @@ type SubAssessmentProperties struct {
AdditionalData BasicAdditionalData `json:"additionalData,omitempty"`
}
+// MarshalJSON is the custom marshaler for SubAssessmentProperties.
+func (sap SubAssessmentProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if sap.Status != nil {
+ objectMap["status"] = sap.Status
+ }
+ objectMap["resourceDetails"] = sap.ResourceDetails
+ objectMap["additionalData"] = sap.AdditionalData
+ return json.Marshal(objectMap)
+}
+
// UnmarshalJSON is the custom unmarshaler for SubAssessmentProperties struct.
func (sap *SubAssessmentProperties) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
@@ -9343,6 +16880,18 @@ type SubAssessmentStatus struct {
Severity Severity `json:"severity,omitempty"`
}
+// MarshalJSON is the custom marshaler for SubAssessmentStatus.
+func (sas SubAssessmentStatus) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// SuppressionAlertsScope ...
+type SuppressionAlertsScope struct {
+ // AllOf - All the conditions inside need to be true in order to suppress the alert
+ AllOf *[]ScopeElement `json:"allOf,omitempty"`
+}
+
// Tags a list of key value pairs that describe the resource.
type Tags struct {
// Tags - A list of key value pairs that describe the resource.
@@ -9454,6 +17003,12 @@ type TaskList struct {
NextLink *string `json:"nextLink,omitempty"`
}
+// MarshalJSON is the custom marshaler for TaskList.
+func (tl TaskList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
// TaskListIterator provides access to a complete listing of Task values.
type TaskListIterator struct {
i int
@@ -9522,10 +17077,15 @@ func (tl TaskList) IsEmpty() bool {
return tl.Value == nil || len(*tl.Value) == 0
}
+// hasNextLink returns true if the NextLink is not empty.
+func (tl TaskList) hasNextLink() bool {
+ return tl.NextLink != nil && len(*tl.NextLink) != 0
+}
+
// taskListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (tl TaskList) taskListPreparer(ctx context.Context) (*http.Request, error) {
- if tl.NextLink == nil || len(to.String(tl.NextLink)) < 1 {
+ if !tl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
@@ -9553,11 +17113,16 @@ func (page *TaskListPage) NextWithContext(ctx context.Context) (err error) {
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.tl)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.tl)
+ if err != nil {
+ return err
+ }
+ page.tl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.tl = next
return nil
}
@@ -9591,8 +17156,7 @@ func NewTaskListPage(getNextPage func(context.Context, TaskList) (TaskList, erro
return TaskListPage{fn: getNextPage}
}
-// TaskParameters changing set of properties, depending on the task type that is derived from the name
-// field
+// TaskParameters changing set of properties, depending on the task type that is derived from the name field
type TaskParameters struct {
// AdditionalProperties - Unmatched properties from the message are deserialized this collection
AdditionalProperties map[string]interface{} `json:""`
@@ -9658,8 +17222,41 @@ type TaskProperties struct {
SubState *string `json:"subState,omitempty"`
}
-// ThresholdCustomAlertRule a custom alert rule that checks if a value (depends on the custom alert type)
-// is within the given range.
+// MarshalJSON is the custom marshaler for TaskProperties.
+func (tp TaskProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if tp.SecurityTaskParameters != nil {
+ objectMap["securityTaskParameters"] = tp.SecurityTaskParameters
+ }
+ return json.Marshal(objectMap)
+}
+
+// BasicThresholdCustomAlertRule a custom alert rule that checks if a value (depends on the custom alert type) is
+// within the given range.
+type BasicThresholdCustomAlertRule interface {
+ AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool)
+ AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool)
+ AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool)
+ AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool)
+ AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool)
+ AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool)
+ AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool)
+ AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool)
+ AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool)
+ AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool)
+ AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool)
+ AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool)
+ AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool)
+ AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool)
+ AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool)
+ AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool)
+ AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool)
+ AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool)
+ AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool)
+}
+
+// ThresholdCustomAlertRule a custom alert rule that checks if a value (depends on the custom alert type) is
+// within the given range.
type ThresholdCustomAlertRule struct {
// MinThreshold - The minimum threshold.
MinThreshold *int32 `json:"minThreshold,omitempty"`
@@ -9671,12 +17268,304 @@ type ThresholdCustomAlertRule struct {
Description *string `json:"description,omitempty"`
// IsEnabled - Status of the custom alert.
IsEnabled *bool `json:"isEnabled,omitempty"`
- // RuleType - The type of the custom alert rule.
- RuleType *string `json:"ruleType,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+func unmarshalBasicThresholdCustomAlertRule(body []byte) (BasicThresholdCustomAlertRule, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return nil, err
+ }
+
+ switch m["ruleType"] {
+ case string(RuleTypeTimeWindowCustomAlertRule):
+ var twcar TimeWindowCustomAlertRule
+ err := json.Unmarshal(body, &twcar)
+ return twcar, err
+ case string(RuleTypeActiveConnectionsNotInAllowedRange):
+ var acniar ActiveConnectionsNotInAllowedRange
+ err := json.Unmarshal(body, &acniar)
+ return acniar, err
+ case string(RuleTypeAmqpC2DMessagesNotInAllowedRange):
+ var acmniar AmqpC2DMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &acmniar)
+ return acmniar, err
+ case string(RuleTypeMqttC2DMessagesNotInAllowedRange):
+ var mcmniar MqttC2DMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &mcmniar)
+ return mcmniar, err
+ case string(RuleTypeHTTPC2DMessagesNotInAllowedRange):
+ var hcmniar HTTPC2DMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &hcmniar)
+ return hcmniar, err
+ case string(RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange):
+ var acrmniar AmqpC2DRejectedMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &acrmniar)
+ return acrmniar, err
+ case string(RuleTypeMqttC2DRejectedMessagesNotInAllowedRange):
+ var mcrmniar MqttC2DRejectedMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &mcrmniar)
+ return mcrmniar, err
+ case string(RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange):
+ var hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &hcrmniar)
+ return hcrmniar, err
+ case string(RuleTypeAmqpD2CMessagesNotInAllowedRange):
+ var admniar AmqpD2CMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &admniar)
+ return admniar, err
+ case string(RuleTypeMqttD2CMessagesNotInAllowedRange):
+ var mdmniar MqttD2CMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &mdmniar)
+ return mdmniar, err
+ case string(RuleTypeHTTPD2CMessagesNotInAllowedRange):
+ var hdmniar HTTPD2CMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &hdmniar)
+ return hdmniar, err
+ case string(RuleTypeDirectMethodInvokesNotInAllowedRange):
+ var dminiar DirectMethodInvokesNotInAllowedRange
+ err := json.Unmarshal(body, &dminiar)
+ return dminiar, err
+ case string(RuleTypeFailedLocalLoginsNotInAllowedRange):
+ var fllniar FailedLocalLoginsNotInAllowedRange
+ err := json.Unmarshal(body, &fllniar)
+ return fllniar, err
+ case string(RuleTypeFileUploadsNotInAllowedRange):
+ var funiar FileUploadsNotInAllowedRange
+ err := json.Unmarshal(body, &funiar)
+ return funiar, err
+ case string(RuleTypeQueuePurgesNotInAllowedRange):
+ var qpniar QueuePurgesNotInAllowedRange
+ err := json.Unmarshal(body, &qpniar)
+ return qpniar, err
+ case string(RuleTypeTwinUpdatesNotInAllowedRange):
+ var tuniar TwinUpdatesNotInAllowedRange
+ err := json.Unmarshal(body, &tuniar)
+ return tuniar, err
+ case string(RuleTypeUnauthorizedOperationsNotInAllowedRange):
+ var uoniar UnauthorizedOperationsNotInAllowedRange
+ err := json.Unmarshal(body, &uoniar)
+ return uoniar, err
+ default:
+ var tcar ThresholdCustomAlertRule
+ err := json.Unmarshal(body, &tcar)
+ return tcar, err
+ }
+}
+func unmarshalBasicThresholdCustomAlertRuleArray(body []byte) ([]BasicThresholdCustomAlertRule, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
+ if err != nil {
+ return nil, err
+ }
+
+ tcarArray := make([]BasicThresholdCustomAlertRule, len(rawMessages))
+
+ for index, rawMessage := range rawMessages {
+ tcar, err := unmarshalBasicThresholdCustomAlertRule(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ tcarArray[index] = tcar
+ }
+ return tcarArray, nil
+}
+
+// MarshalJSON is the custom marshaler for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) MarshalJSON() ([]byte, error) {
+ tcar.RuleType = RuleTypeThresholdCustomAlertRule
+ objectMap := make(map[string]interface{})
+ if tcar.MinThreshold != nil {
+ objectMap["minThreshold"] = tcar.MinThreshold
+ }
+ if tcar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = tcar.MaxThreshold
+ }
+ if tcar.IsEnabled != nil {
+ objectMap["isEnabled"] = tcar.IsEnabled
+ }
+ if tcar.RuleType != "" {
+ objectMap["ruleType"] = tcar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return &tcar, true
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &tcar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
}
-// TimeWindowCustomAlertRule a custom alert rule that checks if the number of activities (depends on the
-// custom alert type) in a time window is within the given range.
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &tcar, true
+}
+
+// BasicTimeWindowCustomAlertRule a custom alert rule that checks if the number of activities (depends on the custom
+// alert type) in a time window is within the given range.
+type BasicTimeWindowCustomAlertRule interface {
+ AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool)
+ AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool)
+ AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool)
+ AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool)
+ AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool)
+ AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool)
+ AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool)
+ AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool)
+ AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool)
+ AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool)
+ AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool)
+ AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool)
+ AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool)
+ AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool)
+ AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool)
+ AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool)
+ AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool)
+}
+
+// TimeWindowCustomAlertRule a custom alert rule that checks if the number of activities (depends on the custom
+// alert type) in a time window is within the given range.
type TimeWindowCustomAlertRule struct {
// TimeWindowSize - The time window size in iso8601 format.
TimeWindowSize *string `json:"timeWindowSize,omitempty"`
@@ -9690,8 +17579,277 @@ type TimeWindowCustomAlertRule struct {
Description *string `json:"description,omitempty"`
// IsEnabled - Status of the custom alert.
IsEnabled *bool `json:"isEnabled,omitempty"`
- // RuleType - The type of the custom alert rule.
- RuleType *string `json:"ruleType,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+func unmarshalBasicTimeWindowCustomAlertRule(body []byte) (BasicTimeWindowCustomAlertRule, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return nil, err
+ }
+
+ switch m["ruleType"] {
+ case string(RuleTypeActiveConnectionsNotInAllowedRange):
+ var acniar ActiveConnectionsNotInAllowedRange
+ err := json.Unmarshal(body, &acniar)
+ return acniar, err
+ case string(RuleTypeAmqpC2DMessagesNotInAllowedRange):
+ var acmniar AmqpC2DMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &acmniar)
+ return acmniar, err
+ case string(RuleTypeMqttC2DMessagesNotInAllowedRange):
+ var mcmniar MqttC2DMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &mcmniar)
+ return mcmniar, err
+ case string(RuleTypeHTTPC2DMessagesNotInAllowedRange):
+ var hcmniar HTTPC2DMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &hcmniar)
+ return hcmniar, err
+ case string(RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange):
+ var acrmniar AmqpC2DRejectedMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &acrmniar)
+ return acrmniar, err
+ case string(RuleTypeMqttC2DRejectedMessagesNotInAllowedRange):
+ var mcrmniar MqttC2DRejectedMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &mcrmniar)
+ return mcrmniar, err
+ case string(RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange):
+ var hcrmniar HTTPC2DRejectedMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &hcrmniar)
+ return hcrmniar, err
+ case string(RuleTypeAmqpD2CMessagesNotInAllowedRange):
+ var admniar AmqpD2CMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &admniar)
+ return admniar, err
+ case string(RuleTypeMqttD2CMessagesNotInAllowedRange):
+ var mdmniar MqttD2CMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &mdmniar)
+ return mdmniar, err
+ case string(RuleTypeHTTPD2CMessagesNotInAllowedRange):
+ var hdmniar HTTPD2CMessagesNotInAllowedRange
+ err := json.Unmarshal(body, &hdmniar)
+ return hdmniar, err
+ case string(RuleTypeDirectMethodInvokesNotInAllowedRange):
+ var dminiar DirectMethodInvokesNotInAllowedRange
+ err := json.Unmarshal(body, &dminiar)
+ return dminiar, err
+ case string(RuleTypeFailedLocalLoginsNotInAllowedRange):
+ var fllniar FailedLocalLoginsNotInAllowedRange
+ err := json.Unmarshal(body, &fllniar)
+ return fllniar, err
+ case string(RuleTypeFileUploadsNotInAllowedRange):
+ var funiar FileUploadsNotInAllowedRange
+ err := json.Unmarshal(body, &funiar)
+ return funiar, err
+ case string(RuleTypeQueuePurgesNotInAllowedRange):
+ var qpniar QueuePurgesNotInAllowedRange
+ err := json.Unmarshal(body, &qpniar)
+ return qpniar, err
+ case string(RuleTypeTwinUpdatesNotInAllowedRange):
+ var tuniar TwinUpdatesNotInAllowedRange
+ err := json.Unmarshal(body, &tuniar)
+ return tuniar, err
+ case string(RuleTypeUnauthorizedOperationsNotInAllowedRange):
+ var uoniar UnauthorizedOperationsNotInAllowedRange
+ err := json.Unmarshal(body, &uoniar)
+ return uoniar, err
+ default:
+ var twcar TimeWindowCustomAlertRule
+ err := json.Unmarshal(body, &twcar)
+ return twcar, err
+ }
+}
+func unmarshalBasicTimeWindowCustomAlertRuleArray(body []byte) ([]BasicTimeWindowCustomAlertRule, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
+ if err != nil {
+ return nil, err
+ }
+
+ twcarArray := make([]BasicTimeWindowCustomAlertRule, len(rawMessages))
+
+ for index, rawMessage := range rawMessages {
+ twcar, err := unmarshalBasicTimeWindowCustomAlertRule(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ twcarArray[index] = twcar
+ }
+ return twcarArray, nil
+}
+
+// MarshalJSON is the custom marshaler for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) MarshalJSON() ([]byte, error) {
+ twcar.RuleType = RuleTypeTimeWindowCustomAlertRule
+ objectMap := make(map[string]interface{})
+ if twcar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = twcar.TimeWindowSize
+ }
+ if twcar.MinThreshold != nil {
+ objectMap["minThreshold"] = twcar.MinThreshold
+ }
+ if twcar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = twcar.MaxThreshold
+ }
+ if twcar.IsEnabled != nil {
+ objectMap["isEnabled"] = twcar.IsEnabled
+ }
+ if twcar.RuleType != "" {
+ objectMap["ruleType"] = twcar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &twcar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return &twcar, true
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &twcar, true
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &twcar, true
}
// TopologyList ...
@@ -9703,6 +17861,12 @@ type TopologyList struct {
NextLink *string `json:"nextLink,omitempty"`
}
+// MarshalJSON is the custom marshaler for TopologyList.
+func (tl TopologyList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
// TopologyListIterator provides access to a complete listing of TopologyResource values.
type TopologyListIterator struct {
i int
@@ -9771,10 +17935,15 @@ func (tl TopologyList) IsEmpty() bool {
return tl.Value == nil || len(*tl.Value) == 0
}
+// hasNextLink returns true if the NextLink is not empty.
+func (tl TopologyList) hasNextLink() bool {
+ return tl.NextLink != nil && len(*tl.NextLink) != 0
+}
+
// topologyListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (tl TopologyList) topologyListPreparer(ctx context.Context) (*http.Request, error) {
- if tl.NextLink == nil || len(to.String(tl.NextLink)) < 1 {
+ if !tl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
@@ -9802,11 +17971,16 @@ func (page *TopologyListPage) NextWithContext(ctx context.Context) (err error) {
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.tl)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.tl)
+ if err != nil {
+ return err
+ }
+ page.tl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.tl = next
return nil
}
@@ -9929,6 +18103,12 @@ type TopologyResourceProperties struct {
TopologyResources *[]TopologySingleResource `json:"topologyResources,omitempty"`
}
+// MarshalJSON is the custom marshaler for TopologyResourceProperties.
+func (trp TopologyResourceProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
// TopologySingleResource ...
type TopologySingleResource struct {
// ResourceID - READ-ONLY; Azure resource id
@@ -9949,18 +18129,36 @@ type TopologySingleResource struct {
Children *[]TopologySingleResourceChild `json:"children,omitempty"`
}
+// MarshalJSON is the custom marshaler for TopologySingleResource.
+func (tsr TopologySingleResource) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
// TopologySingleResourceChild ...
type TopologySingleResourceChild struct {
// ResourceID - READ-ONLY; Azure resource id which serves as child resource in topology view
ResourceID *string `json:"resourceId,omitempty"`
}
+// MarshalJSON is the custom marshaler for TopologySingleResourceChild.
+func (tsrc TopologySingleResourceChild) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
// TopologySingleResourceParent ...
type TopologySingleResourceParent struct {
// ResourceID - READ-ONLY; Azure resource id which serves as parent resource in topology view
ResourceID *string `json:"resourceId,omitempty"`
}
+// MarshalJSON is the custom marshaler for TopologySingleResourceParent.
+func (tsrp TopologySingleResourceParent) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
// TrackedResource describes an Azure tracked resource.
type TrackedResource struct {
// ID - READ-ONLY; Resource Id
@@ -9994,6 +18192,386 @@ func (tr TrackedResource) MarshalJSON() ([]byte, error) {
return json.Marshal(objectMap)
}
+// TwinUpdatesNotInAllowedRange number of twin updates is not in allowed range.
+type TwinUpdatesNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ tuniar.RuleType = RuleTypeTwinUpdatesNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if tuniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = tuniar.TimeWindowSize
+ }
+ if tuniar.MinThreshold != nil {
+ objectMap["minThreshold"] = tuniar.MinThreshold
+ }
+ if tuniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = tuniar.MaxThreshold
+ }
+ if tuniar.IsEnabled != nil {
+ objectMap["isEnabled"] = tuniar.IsEnabled
+ }
+ if tuniar.RuleType != "" {
+ objectMap["ruleType"] = tuniar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &tuniar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &tuniar, true
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return &tuniar, true
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for TwinUpdatesNotInAllowedRange.
+func (tuniar TwinUpdatesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &tuniar, true
+}
+
+// UnauthorizedOperationsNotInAllowedRange number of unauthorized operations is not in allowed range.
+type UnauthorizedOperationsNotInAllowedRange struct {
+ // TimeWindowSize - The time window size in iso8601 format.
+ TimeWindowSize *string `json:"timeWindowSize,omitempty"`
+ // MinThreshold - The minimum threshold.
+ MinThreshold *int32 `json:"minThreshold,omitempty"`
+ // MaxThreshold - The maximum threshold.
+ MaxThreshold *int32 `json:"maxThreshold,omitempty"`
+ // DisplayName - READ-ONLY; The display name of the custom alert.
+ DisplayName *string `json:"displayName,omitempty"`
+ // Description - READ-ONLY; The description of the custom alert.
+ Description *string `json:"description,omitempty"`
+ // IsEnabled - Status of the custom alert.
+ IsEnabled *bool `json:"isEnabled,omitempty"`
+ // RuleType - Possible values include: 'RuleTypeCustomAlertRule', 'RuleTypeThresholdCustomAlertRule', 'RuleTypeTimeWindowCustomAlertRule', 'RuleTypeAllowlistCustomAlertRule', 'RuleTypeDenylistCustomAlertRule', 'RuleTypeListCustomAlertRule', 'RuleTypeConnectionToIPNotAllowed', 'RuleTypeLocalUserNotAllowed', 'RuleTypeProcessNotAllowed', 'RuleTypeActiveConnectionsNotInAllowedRange', 'RuleTypeAmqpC2DMessagesNotInAllowedRange', 'RuleTypeMqttC2DMessagesNotInAllowedRange', 'RuleTypeHTTPC2DMessagesNotInAllowedRange', 'RuleTypeAmqpC2DRejectedMessagesNotInAllowedRange', 'RuleTypeMqttC2DRejectedMessagesNotInAllowedRange', 'RuleTypeHTTPC2DRejectedMessagesNotInAllowedRange', 'RuleTypeAmqpD2CMessagesNotInAllowedRange', 'RuleTypeMqttD2CMessagesNotInAllowedRange', 'RuleTypeHTTPD2CMessagesNotInAllowedRange', 'RuleTypeDirectMethodInvokesNotInAllowedRange', 'RuleTypeFailedLocalLoginsNotInAllowedRange', 'RuleTypeFileUploadsNotInAllowedRange', 'RuleTypeQueuePurgesNotInAllowedRange', 'RuleTypeTwinUpdatesNotInAllowedRange', 'RuleTypeUnauthorizedOperationsNotInAllowedRange'
+ RuleType RuleType `json:"ruleType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ uoniar.RuleType = RuleTypeUnauthorizedOperationsNotInAllowedRange
+ objectMap := make(map[string]interface{})
+ if uoniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = uoniar.TimeWindowSize
+ }
+ if uoniar.MinThreshold != nil {
+ objectMap["minThreshold"] = uoniar.MinThreshold
+ }
+ if uoniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = uoniar.MaxThreshold
+ }
+ if uoniar.IsEnabled != nil {
+ objectMap["isEnabled"] = uoniar.IsEnabled
+ }
+ if uoniar.RuleType != "" {
+ objectMap["ruleType"] = uoniar.RuleType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &uoniar, true
+}
+
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &uoniar, true
+}
+
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
+
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
+}
+
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
+}
+
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return &uoniar, true
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for UnauthorizedOperationsNotInAllowedRange.
+func (uoniar UnauthorizedOperationsNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &uoniar, true
+}
+
// UpdateIotSecuritySolutionData ...
type UpdateIotSecuritySolutionData struct {
// UpdateIoTSecuritySolutionProperties - Security Solution data
@@ -10077,14 +18655,20 @@ type VendorReference struct {
Link *string `json:"link,omitempty"`
}
-// VMRecommendation represents a machine that is part of a VM/server group
+// MarshalJSON is the custom marshaler for VendorReference.
+func (vr VendorReference) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
+}
+
+// VMRecommendation represents a machine that is part of a machine group
type VMRecommendation struct {
// ConfigurationStatus - Possible values include: 'Configured', 'NotConfigured', 'InProgress', 'Failed', 'NoStatus'
ConfigurationStatus ConfigurationStatus `json:"configurationStatus,omitempty"`
// RecommendationAction - Possible values include: 'RecommendationActionRecommended', 'RecommendationActionAdd', 'RecommendationActionRemove'
RecommendationAction RecommendationAction `json:"recommendationAction,omitempty"`
ResourceID *string `json:"resourceId,omitempty"`
- // EnforcementSupport - Possible values include: 'Supported', 'NotSupported', 'Unknown'
+ // EnforcementSupport - Possible values include: 'EnforcementSupportSupported', 'EnforcementSupportNotSupported', 'EnforcementSupportUnknown'
EnforcementSupport EnforcementSupport `json:"enforcementSupport,omitempty"`
}
@@ -10170,6 +18754,15 @@ type WorkspaceSettingList struct {
NextLink *string `json:"nextLink,omitempty"`
}
+// MarshalJSON is the custom marshaler for WorkspaceSettingList.
+func (wsl WorkspaceSettingList) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if wsl.Value != nil {
+ objectMap["value"] = wsl.Value
+ }
+ return json.Marshal(objectMap)
+}
+
// WorkspaceSettingListIterator provides access to a complete listing of WorkspaceSetting values.
type WorkspaceSettingListIterator struct {
i int
@@ -10238,10 +18831,15 @@ func (wsl WorkspaceSettingList) IsEmpty() bool {
return wsl.Value == nil || len(*wsl.Value) == 0
}
+// hasNextLink returns true if the NextLink is not empty.
+func (wsl WorkspaceSettingList) hasNextLink() bool {
+ return wsl.NextLink != nil && len(*wsl.NextLink) != 0
+}
+
// workspaceSettingListPreparer prepares a request to retrieve the next set of results.
// It returns nil if no more results exist.
func (wsl WorkspaceSettingList) workspaceSettingListPreparer(ctx context.Context) (*http.Request, error) {
- if wsl.NextLink == nil || len(to.String(wsl.NextLink)) < 1 {
+ if !wsl.hasNextLink() {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
@@ -10269,11 +18867,16 @@ func (page *WorkspaceSettingListPage) NextWithContext(ctx context.Context) (err
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.wsl)
- if err != nil {
- return err
+ for {
+ next, err := page.fn(ctx, page.wsl)
+ if err != nil {
+ return err
+ }
+ page.wsl = next
+ if !next.hasNextLink() || !next.IsEmpty() {
+ break
+ }
}
- page.wsl = next
return nil
}
diff --git a/services/preview/security/mgmt/v3.0/security/operations.go b/services/preview/security/mgmt/v3.0/security/operations.go
index 916396d2b42f..7c0687ccd870 100644
--- a/services/preview/security/mgmt/v3.0/security/operations.go
+++ b/services/preview/security/mgmt/v3.0/security/operations.go
@@ -71,6 +71,9 @@ func (client OperationsClient) List(ctx context.Context) (result OperationListPa
if err != nil {
err = autorest.NewErrorWithError(err, "security.OperationsClient", "List", resp, "Failure responding to request")
}
+ if result.ol.hasNextLink() && result.ol.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -101,7 +104,6 @@ func (client OperationsClient) ListSender(req *http.Request) (*http.Response, er
func (client OperationsClient) ListResponder(resp *http.Response) (result OperationList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/pricings.go b/services/preview/security/mgmt/v3.0/security/pricings.go
index c1bf0d78ce22..4a7b973d2049 100644
--- a/services/preview/security/mgmt/v3.0/security/pricings.go
+++ b/services/preview/security/mgmt/v3.0/security/pricings.go
@@ -114,7 +114,6 @@ func (client PricingsClient) GetSender(req *http.Request) (*http.Response, error
func (client PricingsClient) GetResponder(resp *http.Response) (result Pricing, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -191,7 +190,6 @@ func (client PricingsClient) ListSender(req *http.Request) (*http.Response, erro
func (client PricingsClient) ListResponder(resp *http.Response) (result PricingList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -274,7 +272,6 @@ func (client PricingsClient) UpdateSender(req *http.Request) (*http.Response, er
func (client PricingsClient) UpdateResponder(resp *http.Response) (result Pricing, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/regulatorycomplianceassessments.go b/services/preview/security/mgmt/v3.0/security/regulatorycomplianceassessments.go
index 77deedf9991a..64de12cdf182 100644
--- a/services/preview/security/mgmt/v3.0/security/regulatorycomplianceassessments.go
+++ b/services/preview/security/mgmt/v3.0/security/regulatorycomplianceassessments.go
@@ -120,7 +120,6 @@ func (client RegulatoryComplianceAssessmentsClient) GetSender(req *http.Request)
func (client RegulatoryComplianceAssessmentsClient) GetResponder(resp *http.Response) (result RegulatoryComplianceAssessment, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -168,6 +167,9 @@ func (client RegulatoryComplianceAssessmentsClient) List(ctx context.Context, re
if err != nil {
err = autorest.NewErrorWithError(err, "security.RegulatoryComplianceAssessmentsClient", "List", resp, "Failure responding to request")
}
+ if result.rcal.hasNextLink() && result.rcal.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -207,7 +209,6 @@ func (client RegulatoryComplianceAssessmentsClient) ListSender(req *http.Request
func (client RegulatoryComplianceAssessmentsClient) ListResponder(resp *http.Response) (result RegulatoryComplianceAssessmentList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/regulatorycompliancecontrols.go b/services/preview/security/mgmt/v3.0/security/regulatorycompliancecontrols.go
index 197250e80444..069e0c6880db 100644
--- a/services/preview/security/mgmt/v3.0/security/regulatorycompliancecontrols.go
+++ b/services/preview/security/mgmt/v3.0/security/regulatorycompliancecontrols.go
@@ -117,7 +117,6 @@ func (client RegulatoryComplianceControlsClient) GetSender(req *http.Request) (*
func (client RegulatoryComplianceControlsClient) GetResponder(resp *http.Response) (result RegulatoryComplianceControl, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -164,6 +163,9 @@ func (client RegulatoryComplianceControlsClient) List(ctx context.Context, regul
if err != nil {
err = autorest.NewErrorWithError(err, "security.RegulatoryComplianceControlsClient", "List", resp, "Failure responding to request")
}
+ if result.rccl.hasNextLink() && result.rccl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -202,7 +204,6 @@ func (client RegulatoryComplianceControlsClient) ListSender(req *http.Request) (
func (client RegulatoryComplianceControlsClient) ListResponder(resp *http.Response) (result RegulatoryComplianceControlList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/regulatorycompliancestandards.go b/services/preview/security/mgmt/v3.0/security/regulatorycompliancestandards.go
index 4ef6e1a66d78..62e3a715ae30 100644
--- a/services/preview/security/mgmt/v3.0/security/regulatorycompliancestandards.go
+++ b/services/preview/security/mgmt/v3.0/security/regulatorycompliancestandards.go
@@ -115,7 +115,6 @@ func (client RegulatoryComplianceStandardsClient) GetSender(req *http.Request) (
func (client RegulatoryComplianceStandardsClient) GetResponder(resp *http.Response) (result RegulatoryComplianceStandard, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -161,6 +160,9 @@ func (client RegulatoryComplianceStandardsClient) List(ctx context.Context, filt
if err != nil {
err = autorest.NewErrorWithError(err, "security.RegulatoryComplianceStandardsClient", "List", resp, "Failure responding to request")
}
+ if result.rcsl.hasNextLink() && result.rcsl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -198,7 +200,6 @@ func (client RegulatoryComplianceStandardsClient) ListSender(req *http.Request)
func (client RegulatoryComplianceStandardsClient) ListResponder(resp *http.Response) (result RegulatoryComplianceStandardList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/securescorecontroldefinitions.go b/services/preview/security/mgmt/v3.0/security/securescorecontroldefinitions.go
new file mode 100644
index 000000000000..ec41c4bb8a07
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/securescorecontroldefinitions.go
@@ -0,0 +1,269 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "context"
+ "github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
+ "github.com/Azure/go-autorest/autorest/validation"
+ "github.com/Azure/go-autorest/tracing"
+ "net/http"
+)
+
+// SecureScoreControlDefinitionsClient is the API spec for Microsoft.Security (Azure Security Center) resource provider
+type SecureScoreControlDefinitionsClient struct {
+ BaseClient
+}
+
+// NewSecureScoreControlDefinitionsClient creates an instance of the SecureScoreControlDefinitionsClient client.
+func NewSecureScoreControlDefinitionsClient(subscriptionID string, ascLocation string) SecureScoreControlDefinitionsClient {
+ return NewSecureScoreControlDefinitionsClientWithBaseURI(DefaultBaseURI, subscriptionID, ascLocation)
+}
+
+// NewSecureScoreControlDefinitionsClientWithBaseURI creates an instance of the SecureScoreControlDefinitionsClient
+// client using a custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI
+// (sovereign clouds, Azure stack).
+func NewSecureScoreControlDefinitionsClientWithBaseURI(baseURI string, subscriptionID string, ascLocation string) SecureScoreControlDefinitionsClient {
+ return SecureScoreControlDefinitionsClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
+}
+
+// List list the available security controls, their assessments, and the max score
+func (client SecureScoreControlDefinitionsClient) List(ctx context.Context) (result SecureScoreControlDefinitionListPage, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlDefinitionsClient.List")
+ defer func() {
+ sc := -1
+ if result.sscdl.Response.Response != nil {
+ sc = result.sscdl.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ result.fn = client.listNextResults
+ req, err := client.ListPreparer(ctx)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlDefinitionsClient", "List", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.sscdl.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlDefinitionsClient", "List", resp, "Failure sending request")
+ return
+ }
+
+ result.sscdl, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlDefinitionsClient", "List", resp, "Failure responding to request")
+ }
+ if result.sscdl.hasNextLink() && result.sscdl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
+
+ return
+}
+
+// ListPreparer prepares the List request.
+func (client SecureScoreControlDefinitionsClient) ListPreparer(ctx context.Context) (*http.Request, error) {
+ const APIVersion = "2020-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPath("/providers/Microsoft.Security/secureScoreControlDefinitions"),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListSender sends the List request. The method will close the
+// http.Response Body if it receives an error.
+func (client SecureScoreControlDefinitionsClient) ListSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...))
+}
+
+// ListResponder handles the response to the List request. The method always
+// closes the http.Response Body.
+func (client SecureScoreControlDefinitionsClient) ListResponder(resp *http.Response) (result SecureScoreControlDefinitionList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// listNextResults retrieves the next set of results, if any.
+func (client SecureScoreControlDefinitionsClient) listNextResults(ctx context.Context, lastResults SecureScoreControlDefinitionList) (result SecureScoreControlDefinitionList, err error) {
+ req, err := lastResults.secureScoreControlDefinitionListPreparer(ctx)
+ if err != nil {
+ return result, autorest.NewErrorWithError(err, "security.SecureScoreControlDefinitionsClient", "listNextResults", nil, "Failure preparing next results request")
+ }
+ if req == nil {
+ return
+ }
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ return result, autorest.NewErrorWithError(err, "security.SecureScoreControlDefinitionsClient", "listNextResults", resp, "Failure sending next results request")
+ }
+ result, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlDefinitionsClient", "listNextResults", resp, "Failure responding to next results request")
+ }
+ return
+}
+
+// ListComplete enumerates all values, automatically crossing page boundaries as required.
+func (client SecureScoreControlDefinitionsClient) ListComplete(ctx context.Context) (result SecureScoreControlDefinitionListIterator, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlDefinitionsClient.List")
+ defer func() {
+ sc := -1
+ if result.Response().Response.Response != nil {
+ sc = result.page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ result.page, err = client.List(ctx)
+ return
+}
+
+// ListBySubscription for a specified subscription, list the available security controls, their assessments, and the
+// max score
+func (client SecureScoreControlDefinitionsClient) ListBySubscription(ctx context.Context) (result SecureScoreControlDefinitionListPage, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlDefinitionsClient.ListBySubscription")
+ defer func() {
+ sc := -1
+ if result.sscdl.Response.Response != nil {
+ sc = result.sscdl.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.SecureScoreControlDefinitionsClient", "ListBySubscription", err.Error())
+ }
+
+ result.fn = client.listBySubscriptionNextResults
+ req, err := client.ListBySubscriptionPreparer(ctx)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlDefinitionsClient", "ListBySubscription", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListBySubscriptionSender(req)
+ if err != nil {
+ result.sscdl.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlDefinitionsClient", "ListBySubscription", resp, "Failure sending request")
+ return
+ }
+
+ result.sscdl, err = client.ListBySubscriptionResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlDefinitionsClient", "ListBySubscription", resp, "Failure responding to request")
+ }
+ if result.sscdl.hasNextLink() && result.sscdl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
+
+ return
+}
+
+// ListBySubscriptionPreparer prepares the ListBySubscription request.
+func (client SecureScoreControlDefinitionsClient) ListBySubscriptionPreparer(ctx context.Context) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/secureScoreControlDefinitions", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListBySubscriptionSender sends the ListBySubscription request. The method will close the
+// http.Response Body if it receives an error.
+func (client SecureScoreControlDefinitionsClient) ListBySubscriptionSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListBySubscriptionResponder handles the response to the ListBySubscription request. The method always
+// closes the http.Response Body.
+func (client SecureScoreControlDefinitionsClient) ListBySubscriptionResponder(resp *http.Response) (result SecureScoreControlDefinitionList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// listBySubscriptionNextResults retrieves the next set of results, if any.
+func (client SecureScoreControlDefinitionsClient) listBySubscriptionNextResults(ctx context.Context, lastResults SecureScoreControlDefinitionList) (result SecureScoreControlDefinitionList, err error) {
+ req, err := lastResults.secureScoreControlDefinitionListPreparer(ctx)
+ if err != nil {
+ return result, autorest.NewErrorWithError(err, "security.SecureScoreControlDefinitionsClient", "listBySubscriptionNextResults", nil, "Failure preparing next results request")
+ }
+ if req == nil {
+ return
+ }
+ resp, err := client.ListBySubscriptionSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ return result, autorest.NewErrorWithError(err, "security.SecureScoreControlDefinitionsClient", "listBySubscriptionNextResults", resp, "Failure sending next results request")
+ }
+ result, err = client.ListBySubscriptionResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlDefinitionsClient", "listBySubscriptionNextResults", resp, "Failure responding to next results request")
+ }
+ return
+}
+
+// ListBySubscriptionComplete enumerates all values, automatically crossing page boundaries as required.
+func (client SecureScoreControlDefinitionsClient) ListBySubscriptionComplete(ctx context.Context) (result SecureScoreControlDefinitionListIterator, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlDefinitionsClient.ListBySubscription")
+ defer func() {
+ sc := -1
+ if result.Response().Response.Response != nil {
+ sc = result.page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ result.page, err = client.ListBySubscription(ctx)
+ return
+}
diff --git a/services/preview/security/mgmt/v3.0/security/securescorecontrols.go b/services/preview/security/mgmt/v3.0/security/securescorecontrols.go
new file mode 100644
index 000000000000..5b1ccb5acd6e
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/securescorecontrols.go
@@ -0,0 +1,291 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "context"
+ "github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
+ "github.com/Azure/go-autorest/autorest/validation"
+ "github.com/Azure/go-autorest/tracing"
+ "net/http"
+)
+
+// SecureScoreControlsClient is the API spec for Microsoft.Security (Azure Security Center) resource provider
+type SecureScoreControlsClient struct {
+ BaseClient
+}
+
+// NewSecureScoreControlsClient creates an instance of the SecureScoreControlsClient client.
+func NewSecureScoreControlsClient(subscriptionID string, ascLocation string) SecureScoreControlsClient {
+ return NewSecureScoreControlsClientWithBaseURI(DefaultBaseURI, subscriptionID, ascLocation)
+}
+
+// NewSecureScoreControlsClientWithBaseURI creates an instance of the SecureScoreControlsClient client using a custom
+// endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure
+// stack).
+func NewSecureScoreControlsClientWithBaseURI(baseURI string, subscriptionID string, ascLocation string) SecureScoreControlsClient {
+ return SecureScoreControlsClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
+}
+
+// List get all security controls within a scope
+// Parameters:
+// expand - oData expand. Optional.
+func (client SecureScoreControlsClient) List(ctx context.Context, expand ExpandControlsEnum) (result SecureScoreControlListPage, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlsClient.List")
+ defer func() {
+ sc := -1
+ if result.sscl.Response.Response != nil {
+ sc = result.sscl.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.SecureScoreControlsClient", "List", err.Error())
+ }
+
+ result.fn = client.listNextResults
+ req, err := client.ListPreparer(ctx, expand)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlsClient", "List", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.sscl.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlsClient", "List", resp, "Failure sending request")
+ return
+ }
+
+ result.sscl, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlsClient", "List", resp, "Failure responding to request")
+ }
+ if result.sscl.hasNextLink() && result.sscl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
+
+ return
+}
+
+// ListPreparer prepares the List request.
+func (client SecureScoreControlsClient) ListPreparer(ctx context.Context, expand ExpandControlsEnum) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+ if len(string(expand)) > 0 {
+ queryParameters["$expand"] = autorest.Encode("query", expand)
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/secureScoreControls", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListSender sends the List request. The method will close the
+// http.Response Body if it receives an error.
+func (client SecureScoreControlsClient) ListSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListResponder handles the response to the List request. The method always
+// closes the http.Response Body.
+func (client SecureScoreControlsClient) ListResponder(resp *http.Response) (result SecureScoreControlList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// listNextResults retrieves the next set of results, if any.
+func (client SecureScoreControlsClient) listNextResults(ctx context.Context, lastResults SecureScoreControlList) (result SecureScoreControlList, err error) {
+ req, err := lastResults.secureScoreControlListPreparer(ctx)
+ if err != nil {
+ return result, autorest.NewErrorWithError(err, "security.SecureScoreControlsClient", "listNextResults", nil, "Failure preparing next results request")
+ }
+ if req == nil {
+ return
+ }
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ return result, autorest.NewErrorWithError(err, "security.SecureScoreControlsClient", "listNextResults", resp, "Failure sending next results request")
+ }
+ result, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlsClient", "listNextResults", resp, "Failure responding to next results request")
+ }
+ return
+}
+
+// ListComplete enumerates all values, automatically crossing page boundaries as required.
+func (client SecureScoreControlsClient) ListComplete(ctx context.Context, expand ExpandControlsEnum) (result SecureScoreControlListIterator, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlsClient.List")
+ defer func() {
+ sc := -1
+ if result.Response().Response.Response != nil {
+ sc = result.page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ result.page, err = client.List(ctx, expand)
+ return
+}
+
+// ListBySecureScore get all security controls for a specific initiative within a scope
+// Parameters:
+// secureScoreName - the initiative name. For the ASC Default initiative, use 'ascScore' as in the sample
+// request below.
+// expand - oData expand. Optional.
+func (client SecureScoreControlsClient) ListBySecureScore(ctx context.Context, secureScoreName string, expand ExpandControlsEnum) (result SecureScoreControlListPage, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlsClient.ListBySecureScore")
+ defer func() {
+ sc := -1
+ if result.sscl.Response.Response != nil {
+ sc = result.sscl.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.SecureScoreControlsClient", "ListBySecureScore", err.Error())
+ }
+
+ result.fn = client.listBySecureScoreNextResults
+ req, err := client.ListBySecureScorePreparer(ctx, secureScoreName, expand)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlsClient", "ListBySecureScore", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListBySecureScoreSender(req)
+ if err != nil {
+ result.sscl.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlsClient", "ListBySecureScore", resp, "Failure sending request")
+ return
+ }
+
+ result.sscl, err = client.ListBySecureScoreResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlsClient", "ListBySecureScore", resp, "Failure responding to request")
+ }
+ if result.sscl.hasNextLink() && result.sscl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
+
+ return
+}
+
+// ListBySecureScorePreparer prepares the ListBySecureScore request.
+func (client SecureScoreControlsClient) ListBySecureScorePreparer(ctx context.Context, secureScoreName string, expand ExpandControlsEnum) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "secureScoreName": autorest.Encode("path", secureScoreName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+ if len(string(expand)) > 0 {
+ queryParameters["$expand"] = autorest.Encode("query", expand)
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/secureScores/{secureScoreName}/secureScoreControls", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListBySecureScoreSender sends the ListBySecureScore request. The method will close the
+// http.Response Body if it receives an error.
+func (client SecureScoreControlsClient) ListBySecureScoreSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListBySecureScoreResponder handles the response to the ListBySecureScore request. The method always
+// closes the http.Response Body.
+func (client SecureScoreControlsClient) ListBySecureScoreResponder(resp *http.Response) (result SecureScoreControlList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// listBySecureScoreNextResults retrieves the next set of results, if any.
+func (client SecureScoreControlsClient) listBySecureScoreNextResults(ctx context.Context, lastResults SecureScoreControlList) (result SecureScoreControlList, err error) {
+ req, err := lastResults.secureScoreControlListPreparer(ctx)
+ if err != nil {
+ return result, autorest.NewErrorWithError(err, "security.SecureScoreControlsClient", "listBySecureScoreNextResults", nil, "Failure preparing next results request")
+ }
+ if req == nil {
+ return
+ }
+ resp, err := client.ListBySecureScoreSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ return result, autorest.NewErrorWithError(err, "security.SecureScoreControlsClient", "listBySecureScoreNextResults", resp, "Failure sending next results request")
+ }
+ result, err = client.ListBySecureScoreResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoreControlsClient", "listBySecureScoreNextResults", resp, "Failure responding to next results request")
+ }
+ return
+}
+
+// ListBySecureScoreComplete enumerates all values, automatically crossing page boundaries as required.
+func (client SecureScoreControlsClient) ListBySecureScoreComplete(ctx context.Context, secureScoreName string, expand ExpandControlsEnum) (result SecureScoreControlListIterator, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlsClient.ListBySecureScore")
+ defer func() {
+ sc := -1
+ if result.Response().Response.Response != nil {
+ sc = result.page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ result.page, err = client.ListBySecureScore(ctx, secureScoreName, expand)
+ return
+}
diff --git a/services/preview/security/mgmt/v3.0/security/securescores.go b/services/preview/security/mgmt/v3.0/security/securescores.go
new file mode 100644
index 000000000000..1b2511acfa6a
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/securescores.go
@@ -0,0 +1,241 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "context"
+ "github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
+ "github.com/Azure/go-autorest/autorest/validation"
+ "github.com/Azure/go-autorest/tracing"
+ "net/http"
+)
+
+// SecureScoresClient is the API spec for Microsoft.Security (Azure Security Center) resource provider
+type SecureScoresClient struct {
+ BaseClient
+}
+
+// NewSecureScoresClient creates an instance of the SecureScoresClient client.
+func NewSecureScoresClient(subscriptionID string, ascLocation string) SecureScoresClient {
+ return NewSecureScoresClientWithBaseURI(DefaultBaseURI, subscriptionID, ascLocation)
+}
+
+// NewSecureScoresClientWithBaseURI creates an instance of the SecureScoresClient client using a custom endpoint. Use
+// this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack).
+func NewSecureScoresClientWithBaseURI(baseURI string, subscriptionID string, ascLocation string) SecureScoresClient {
+ return SecureScoresClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
+}
+
+// Get get secure score for a specific Security Center initiative within your current scope. For the ASC Default
+// initiative, use 'ascScore'.
+// Parameters:
+// secureScoreName - the initiative name. For the ASC Default initiative, use 'ascScore' as in the sample
+// request below.
+func (client SecureScoresClient) Get(ctx context.Context, secureScoreName string) (result SecureScoreItem, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoresClient.Get")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.SecureScoresClient", "Get", err.Error())
+ }
+
+ req, err := client.GetPreparer(ctx, secureScoreName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoresClient", "Get", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.GetSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.SecureScoresClient", "Get", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.GetResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoresClient", "Get", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// GetPreparer prepares the Get request.
+func (client SecureScoresClient) GetPreparer(ctx context.Context, secureScoreName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "secureScoreName": autorest.Encode("path", secureScoreName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/secureScores/{secureScoreName}", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// GetSender sends the Get request. The method will close the
+// http.Response Body if it receives an error.
+func (client SecureScoresClient) GetSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// GetResponder handles the response to the Get request. The method always
+// closes the http.Response Body.
+func (client SecureScoresClient) GetResponder(resp *http.Response) (result SecureScoreItem, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// List list secure scores for all your Security Center initiatives within your current scope.
+func (client SecureScoresClient) List(ctx context.Context) (result SecureScoresListPage, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoresClient.List")
+ defer func() {
+ sc := -1
+ if result.ssl.Response.Response != nil {
+ sc = result.ssl.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.SecureScoresClient", "List", err.Error())
+ }
+
+ result.fn = client.listNextResults
+ req, err := client.ListPreparer(ctx)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoresClient", "List", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.ssl.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.SecureScoresClient", "List", resp, "Failure sending request")
+ return
+ }
+
+ result.ssl, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoresClient", "List", resp, "Failure responding to request")
+ }
+ if result.ssl.hasNextLink() && result.ssl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
+
+ return
+}
+
+// ListPreparer prepares the List request.
+func (client SecureScoresClient) ListPreparer(ctx context.Context) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01-preview"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/secureScores", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListSender sends the List request. The method will close the
+// http.Response Body if it receives an error.
+func (client SecureScoresClient) ListSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListResponder handles the response to the List request. The method always
+// closes the http.Response Body.
+func (client SecureScoresClient) ListResponder(resp *http.Response) (result SecureScoresList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// listNextResults retrieves the next set of results, if any.
+func (client SecureScoresClient) listNextResults(ctx context.Context, lastResults SecureScoresList) (result SecureScoresList, err error) {
+ req, err := lastResults.secureScoresListPreparer(ctx)
+ if err != nil {
+ return result, autorest.NewErrorWithError(err, "security.SecureScoresClient", "listNextResults", nil, "Failure preparing next results request")
+ }
+ if req == nil {
+ return
+ }
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ return result, autorest.NewErrorWithError(err, "security.SecureScoresClient", "listNextResults", resp, "Failure sending next results request")
+ }
+ result, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SecureScoresClient", "listNextResults", resp, "Failure responding to next results request")
+ }
+ return
+}
+
+// ListComplete enumerates all values, automatically crossing page boundaries as required.
+func (client SecureScoresClient) ListComplete(ctx context.Context) (result SecureScoresListIterator, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoresClient.List")
+ defer func() {
+ sc := -1
+ if result.Response().Response.Response != nil {
+ sc = result.page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ result.page, err = client.List(ctx)
+ return
+}
diff --git a/services/preview/security/mgmt/v3.0/security/securityapi/interfaces.go b/services/preview/security/mgmt/v3.0/security/securityapi/interfaces.go
index c476f0febd3d..24069325f831 100644
--- a/services/preview/security/mgmt/v3.0/security/securityapi/interfaces.go
+++ b/services/preview/security/mgmt/v3.0/security/securityapi/interfaces.go
@@ -45,14 +45,14 @@ var _ PricingsClientAPI = (*security.PricingsClient)(nil)
type AlertsClientAPI interface {
GetResourceGroupLevelAlerts(ctx context.Context, alertName string, resourceGroupName string) (result security.Alert, err error)
GetSubscriptionLevelAlert(ctx context.Context, alertName string) (result security.Alert, err error)
- List(ctx context.Context, filter string, selectParameter string, expand string) (result security.AlertListPage, err error)
- ListComplete(ctx context.Context, filter string, selectParameter string, expand string) (result security.AlertListIterator, err error)
- ListByResourceGroup(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string) (result security.AlertListPage, err error)
- ListByResourceGroupComplete(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string) (result security.AlertListIterator, err error)
- ListResourceGroupLevelAlertsByRegion(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string) (result security.AlertListPage, err error)
- ListResourceGroupLevelAlertsByRegionComplete(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string) (result security.AlertListIterator, err error)
- ListSubscriptionLevelAlertsByRegion(ctx context.Context, filter string, selectParameter string, expand string) (result security.AlertListPage, err error)
- ListSubscriptionLevelAlertsByRegionComplete(ctx context.Context, filter string, selectParameter string, expand string) (result security.AlertListIterator, err error)
+ List(ctx context.Context, filter string, selectParameter string, expand string, autoDismissRuleName string) (result security.AlertListPage, err error)
+ ListComplete(ctx context.Context, filter string, selectParameter string, expand string, autoDismissRuleName string) (result security.AlertListIterator, err error)
+ ListByResourceGroup(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string, autoDismissRuleName string) (result security.AlertListPage, err error)
+ ListByResourceGroupComplete(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string, autoDismissRuleName string) (result security.AlertListIterator, err error)
+ ListResourceGroupLevelAlertsByRegion(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string, autoDismissRuleName string) (result security.AlertListPage, err error)
+ ListResourceGroupLevelAlertsByRegionComplete(ctx context.Context, resourceGroupName string, filter string, selectParameter string, expand string, autoDismissRuleName string) (result security.AlertListIterator, err error)
+ ListSubscriptionLevelAlertsByRegion(ctx context.Context, filter string, selectParameter string, expand string, autoDismissRuleName string) (result security.AlertListPage, err error)
+ ListSubscriptionLevelAlertsByRegionComplete(ctx context.Context, filter string, selectParameter string, expand string, autoDismissRuleName string) (result security.AlertListIterator, err error)
UpdateResourceGroupLevelAlertStateToDismiss(ctx context.Context, alertName string, resourceGroupName string) (result autorest.Response, err error)
UpdateResourceGroupLevelAlertStateToReactivate(ctx context.Context, alertName string, resourceGroupName string) (result autorest.Response, err error)
UpdateSubscriptionLevelAlertStateToDismiss(ctx context.Context, alertName string) (result autorest.Response, err error)
@@ -66,7 +66,7 @@ type SettingsClientAPI interface {
Get(ctx context.Context, settingName string) (result security.Setting, err error)
List(ctx context.Context) (result security.SettingsListPage, err error)
ListComplete(ctx context.Context) (result security.SettingsListIterator, err error)
- Update(ctx context.Context, settingName string, setting security.Setting) (result security.Setting, err error)
+ Update(ctx context.Context, settingName string, setting security.BasicSetting) (result security.Setting, err error)
}
var _ SettingsClientAPI = (*security.SettingsClient)(nil)
@@ -131,65 +131,39 @@ type IotSecuritySolutionsAnalyticsRecommendationClientAPI interface {
var _ IotSecuritySolutionsAnalyticsRecommendationClientAPI = (*security.IotSecuritySolutionsAnalyticsRecommendationClient)(nil)
-// AllowedConnectionsClientAPI contains the set of methods on the AllowedConnectionsClient type.
-type AllowedConnectionsClientAPI interface {
- Get(ctx context.Context, resourceGroupName string, connectionType security.ConnectionType) (result security.AllowedConnectionsResource, err error)
- List(ctx context.Context) (result security.AllowedConnectionsListPage, err error)
- ListComplete(ctx context.Context) (result security.AllowedConnectionsListIterator, err error)
- ListByHomeRegion(ctx context.Context) (result security.AllowedConnectionsListPage, err error)
- ListByHomeRegionComplete(ctx context.Context) (result security.AllowedConnectionsListIterator, err error)
+// IotAlertTypesClientAPI contains the set of methods on the IotAlertTypesClient type.
+type IotAlertTypesClientAPI interface {
+ Get(ctx context.Context, resourceGroupName string, solutionName string, iotAlertTypeName string) (result security.IotAlertType, err error)
+ List(ctx context.Context, resourceGroupName string, solutionName string) (result security.IotAlertTypeList, err error)
}
-var _ AllowedConnectionsClientAPI = (*security.AllowedConnectionsClient)(nil)
+var _ IotAlertTypesClientAPI = (*security.IotAlertTypesClient)(nil)
-// DiscoveredSecuritySolutionsClientAPI contains the set of methods on the DiscoveredSecuritySolutionsClient type.
-type DiscoveredSecuritySolutionsClientAPI interface {
- Get(ctx context.Context, resourceGroupName string, discoveredSecuritySolutionName string) (result security.DiscoveredSecuritySolution, err error)
- List(ctx context.Context) (result security.DiscoveredSecuritySolutionListPage, err error)
- ListComplete(ctx context.Context) (result security.DiscoveredSecuritySolutionListIterator, err error)
- ListByHomeRegion(ctx context.Context) (result security.DiscoveredSecuritySolutionListPage, err error)
- ListByHomeRegionComplete(ctx context.Context) (result security.DiscoveredSecuritySolutionListIterator, err error)
-}
-
-var _ DiscoveredSecuritySolutionsClientAPI = (*security.DiscoveredSecuritySolutionsClient)(nil)
-
-// ExternalSecuritySolutionsClientAPI contains the set of methods on the ExternalSecuritySolutionsClient type.
-type ExternalSecuritySolutionsClientAPI interface {
- Get(ctx context.Context, resourceGroupName string, externalSecuritySolutionsName string) (result security.ExternalSecuritySolutionModel, err error)
- List(ctx context.Context) (result security.ExternalSecuritySolutionListPage, err error)
- ListComplete(ctx context.Context) (result security.ExternalSecuritySolutionListIterator, err error)
- ListByHomeRegion(ctx context.Context) (result security.ExternalSecuritySolutionListPage, err error)
- ListByHomeRegionComplete(ctx context.Context) (result security.ExternalSecuritySolutionListIterator, err error)
+// IotAlertsClientAPI contains the set of methods on the IotAlertsClient type.
+type IotAlertsClientAPI interface {
+ Get(ctx context.Context, resourceGroupName string, solutionName string, iotAlertID string) (result security.IotAlert, err error)
+ List(ctx context.Context, resourceGroupName string, solutionName string, minStartTimeUtc string, maxStartTimeUtc string, alertType string, limit *int32, skipToken string) (result security.IotAlertListPage, err error)
+ ListComplete(ctx context.Context, resourceGroupName string, solutionName string, minStartTimeUtc string, maxStartTimeUtc string, alertType string, limit *int32, skipToken string) (result security.IotAlertListIterator, err error)
}
-var _ ExternalSecuritySolutionsClientAPI = (*security.ExternalSecuritySolutionsClient)(nil)
+var _ IotAlertsClientAPI = (*security.IotAlertsClient)(nil)
-// JitNetworkAccessPoliciesClientAPI contains the set of methods on the JitNetworkAccessPoliciesClient type.
-type JitNetworkAccessPoliciesClientAPI interface {
- CreateOrUpdate(ctx context.Context, resourceGroupName string, jitNetworkAccessPolicyName string, body security.JitNetworkAccessPolicy) (result security.JitNetworkAccessPolicy, err error)
- Delete(ctx context.Context, resourceGroupName string, jitNetworkAccessPolicyName string) (result autorest.Response, err error)
- Get(ctx context.Context, resourceGroupName string, jitNetworkAccessPolicyName string) (result security.JitNetworkAccessPolicy, err error)
- Initiate(ctx context.Context, resourceGroupName string, jitNetworkAccessPolicyName string, body security.JitNetworkAccessPolicyInitiateRequest) (result security.JitNetworkAccessRequest, err error)
- List(ctx context.Context) (result security.JitNetworkAccessPoliciesListPage, err error)
- ListComplete(ctx context.Context) (result security.JitNetworkAccessPoliciesListIterator, err error)
- ListByRegion(ctx context.Context) (result security.JitNetworkAccessPoliciesListPage, err error)
- ListByRegionComplete(ctx context.Context) (result security.JitNetworkAccessPoliciesListIterator, err error)
- ListByResourceGroup(ctx context.Context, resourceGroupName string) (result security.JitNetworkAccessPoliciesListPage, err error)
- ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result security.JitNetworkAccessPoliciesListIterator, err error)
- ListByResourceGroupAndRegion(ctx context.Context, resourceGroupName string) (result security.JitNetworkAccessPoliciesListPage, err error)
- ListByResourceGroupAndRegionComplete(ctx context.Context, resourceGroupName string) (result security.JitNetworkAccessPoliciesListIterator, err error)
+// IotRecommendationTypesClientAPI contains the set of methods on the IotRecommendationTypesClient type.
+type IotRecommendationTypesClientAPI interface {
+ Get(ctx context.Context, resourceGroupName string, solutionName string, iotRecommendationTypeName string) (result security.IotRecommendationType, err error)
+ List(ctx context.Context, resourceGroupName string, solutionName string) (result security.IotRecommendationTypeList, err error)
}
-var _ JitNetworkAccessPoliciesClientAPI = (*security.JitNetworkAccessPoliciesClient)(nil)
+var _ IotRecommendationTypesClientAPI = (*security.IotRecommendationTypesClient)(nil)
-// AdaptiveApplicationControlsClientAPI contains the set of methods on the AdaptiveApplicationControlsClient type.
-type AdaptiveApplicationControlsClientAPI interface {
- Get(ctx context.Context, groupName string) (result security.AppWhitelistingGroup, err error)
- List(ctx context.Context, includePathRecommendations *bool, summary *bool) (result security.AppWhitelistingGroups, err error)
- Put(ctx context.Context, groupName string, body security.AppWhitelistingPutGroupData) (result security.AppWhitelistingGroup, err error)
+// IotRecommendationsClientAPI contains the set of methods on the IotRecommendationsClient type.
+type IotRecommendationsClientAPI interface {
+ Get(ctx context.Context, resourceGroupName string, solutionName string, iotRecommendationID string) (result security.IotRecommendation, err error)
+ List(ctx context.Context, resourceGroupName string, solutionName string, recommendationType string, limit *int32, skipToken string) (result security.IotRecommendationListPage, err error)
+ ListComplete(ctx context.Context, resourceGroupName string, solutionName string, recommendationType string, limit *int32, skipToken string) (result security.IotRecommendationListIterator, err error)
}
-var _ AdaptiveApplicationControlsClientAPI = (*security.AdaptiveApplicationControlsClient)(nil)
+var _ IotRecommendationsClientAPI = (*security.IotRecommendationsClient)(nil)
// LocationsClientAPI contains the set of methods on the LocationsClient type.
type LocationsClientAPI interface {
@@ -224,17 +198,6 @@ type TasksClientAPI interface {
var _ TasksClientAPI = (*security.TasksClient)(nil)
-// TopologyClientAPI contains the set of methods on the TopologyClient type.
-type TopologyClientAPI interface {
- Get(ctx context.Context, resourceGroupName string, topologyResourceName string) (result security.TopologyResource, err error)
- List(ctx context.Context) (result security.TopologyListPage, err error)
- ListComplete(ctx context.Context) (result security.TopologyListIterator, err error)
- ListByHomeRegion(ctx context.Context) (result security.TopologyListPage, err error)
- ListByHomeRegionComplete(ctx context.Context) (result security.TopologyListIterator, err error)
-}
-
-var _ TopologyClientAPI = (*security.TopologyClient)(nil)
-
// AutoProvisioningSettingsClientAPI contains the set of methods on the AutoProvisioningSettingsClient type.
type AutoProvisioningSettingsClientAPI interface {
Create(ctx context.Context, settingName string, setting security.AutoProvisioningSetting) (result security.AutoProvisioningSetting, err error)
@@ -256,7 +219,7 @@ var _ CompliancesClientAPI = (*security.CompliancesClient)(nil)
// InformationProtectionPoliciesClientAPI contains the set of methods on the InformationProtectionPoliciesClient type.
type InformationProtectionPoliciesClientAPI interface {
- CreateOrUpdate(ctx context.Context, scope string, informationProtectionPolicyName string) (result security.InformationProtectionPolicy, err error)
+ CreateOrUpdate(ctx context.Context, scope string, informationProtectionPolicyName string, informationProtectionPolicy security.InformationProtectionPolicy) (result security.InformationProtectionPolicy, err error)
Get(ctx context.Context, scope string, informationProtectionPolicyName string) (result security.InformationProtectionPolicy, err error)
List(ctx context.Context, scope string) (result security.InformationProtectionPolicyListPage, err error)
ListComplete(ctx context.Context, scope string) (result security.InformationProtectionPolicyListIterator, err error)
@@ -315,16 +278,6 @@ type RegulatoryComplianceAssessmentsClientAPI interface {
var _ RegulatoryComplianceAssessmentsClientAPI = (*security.RegulatoryComplianceAssessmentsClient)(nil)
-// ServerVulnerabilityAssessmentClientAPI contains the set of methods on the ServerVulnerabilityAssessmentClient type.
-type ServerVulnerabilityAssessmentClientAPI interface {
- CreateOrUpdate(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (result security.ServerVulnerabilityAssessment, err error)
- Delete(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (result autorest.Response, err error)
- Get(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (result security.ServerVulnerabilityAssessment, err error)
- ListByExtendedResource(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (result security.ServerVulnerabilityAssessmentsList, err error)
-}
-
-var _ ServerVulnerabilityAssessmentClientAPI = (*security.ServerVulnerabilityAssessmentClient)(nil)
-
// SubAssessmentsClientAPI contains the set of methods on the SubAssessmentsClient type.
type SubAssessmentsClientAPI interface {
Get(ctx context.Context, scope string, assessmentName string, subAssessmentName string) (result security.SubAssessment, err error)
@@ -350,6 +303,27 @@ type AutomationsClientAPI interface {
var _ AutomationsClientAPI = (*security.AutomationsClient)(nil)
+// AlertsSuppressionRulesClientAPI contains the set of methods on the AlertsSuppressionRulesClient type.
+type AlertsSuppressionRulesClientAPI interface {
+ Delete(ctx context.Context, alertsSuppressionRuleName string) (result autorest.Response, err error)
+ Get(ctx context.Context, alertsSuppressionRuleName string) (result security.AlertsSuppressionRule, err error)
+ List(ctx context.Context, alertType string) (result security.AlertsSuppressionRulesListPage, err error)
+ ListComplete(ctx context.Context, alertType string) (result security.AlertsSuppressionRulesListIterator, err error)
+ Update(ctx context.Context, alertsSuppressionRuleName string, alertsSuppressionRule security.AlertsSuppressionRule) (result security.AlertsSuppressionRule, err error)
+}
+
+var _ AlertsSuppressionRulesClientAPI = (*security.AlertsSuppressionRulesClient)(nil)
+
+// ServerVulnerabilityAssessmentClientAPI contains the set of methods on the ServerVulnerabilityAssessmentClient type.
+type ServerVulnerabilityAssessmentClientAPI interface {
+ CreateOrUpdate(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (result security.ServerVulnerabilityAssessment, err error)
+ Delete(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (result autorest.Response, err error)
+ Get(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (result security.ServerVulnerabilityAssessment, err error)
+ ListByExtendedResource(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (result security.ServerVulnerabilityAssessmentsList, err error)
+}
+
+var _ ServerVulnerabilityAssessmentClientAPI = (*security.ServerVulnerabilityAssessmentClient)(nil)
+
// AssessmentsMetadataClientAPI contains the set of methods on the AssessmentsMetadataClient type.
type AssessmentsMetadataClientAPI interface {
CreateInSubscription(ctx context.Context, assessmentMetadataName string, assessmentMetadata security.AssessmentMetadata) (result security.AssessmentMetadata, err error)
@@ -374,3 +348,142 @@ type AssessmentsClientAPI interface {
}
var _ AssessmentsClientAPI = (*security.AssessmentsClient)(nil)
+
+// AdaptiveApplicationControlsClientAPI contains the set of methods on the AdaptiveApplicationControlsClient type.
+type AdaptiveApplicationControlsClientAPI interface {
+ Delete(ctx context.Context, groupName string) (result autorest.Response, err error)
+ Get(ctx context.Context, groupName string) (result security.AdaptiveApplicationControlGroup, err error)
+ List(ctx context.Context, includePathRecommendations *bool, summary *bool) (result security.AdaptiveApplicationControlGroups, err error)
+ Put(ctx context.Context, groupName string, body security.AdaptiveApplicationControlGroup) (result security.AdaptiveApplicationControlGroup, err error)
+}
+
+var _ AdaptiveApplicationControlsClientAPI = (*security.AdaptiveApplicationControlsClient)(nil)
+
+// AdaptiveNetworkHardeningsClientAPI contains the set of methods on the AdaptiveNetworkHardeningsClient type.
+type AdaptiveNetworkHardeningsClientAPI interface {
+ Enforce(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string, adaptiveNetworkHardeningResourceName string, body security.AdaptiveNetworkHardeningEnforceRequest) (result security.AdaptiveNetworkHardeningsEnforceFuture, err error)
+ Get(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string, adaptiveNetworkHardeningResourceName string) (result security.AdaptiveNetworkHardening, err error)
+ ListByExtendedResource(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (result security.AdaptiveNetworkHardeningsListPage, err error)
+ ListByExtendedResourceComplete(ctx context.Context, resourceGroupName string, resourceNamespace string, resourceType string, resourceName string) (result security.AdaptiveNetworkHardeningsListIterator, err error)
+}
+
+var _ AdaptiveNetworkHardeningsClientAPI = (*security.AdaptiveNetworkHardeningsClient)(nil)
+
+// AllowedConnectionsClientAPI contains the set of methods on the AllowedConnectionsClient type.
+type AllowedConnectionsClientAPI interface {
+ Get(ctx context.Context, resourceGroupName string, connectionType security.ConnectionType) (result security.AllowedConnectionsResource, err error)
+ List(ctx context.Context) (result security.AllowedConnectionsListPage, err error)
+ ListComplete(ctx context.Context) (result security.AllowedConnectionsListIterator, err error)
+ ListByHomeRegion(ctx context.Context) (result security.AllowedConnectionsListPage, err error)
+ ListByHomeRegionComplete(ctx context.Context) (result security.AllowedConnectionsListIterator, err error)
+}
+
+var _ AllowedConnectionsClientAPI = (*security.AllowedConnectionsClient)(nil)
+
+// TopologyClientAPI contains the set of methods on the TopologyClient type.
+type TopologyClientAPI interface {
+ Get(ctx context.Context, resourceGroupName string, topologyResourceName string) (result security.TopologyResource, err error)
+ List(ctx context.Context) (result security.TopologyListPage, err error)
+ ListComplete(ctx context.Context) (result security.TopologyListIterator, err error)
+ ListByHomeRegion(ctx context.Context) (result security.TopologyListPage, err error)
+ ListByHomeRegionComplete(ctx context.Context) (result security.TopologyListIterator, err error)
+}
+
+var _ TopologyClientAPI = (*security.TopologyClient)(nil)
+
+// JitNetworkAccessPoliciesClientAPI contains the set of methods on the JitNetworkAccessPoliciesClient type.
+type JitNetworkAccessPoliciesClientAPI interface {
+ CreateOrUpdate(ctx context.Context, resourceGroupName string, jitNetworkAccessPolicyName string, body security.JitNetworkAccessPolicy) (result security.JitNetworkAccessPolicy, err error)
+ Delete(ctx context.Context, resourceGroupName string, jitNetworkAccessPolicyName string) (result autorest.Response, err error)
+ Get(ctx context.Context, resourceGroupName string, jitNetworkAccessPolicyName string) (result security.JitNetworkAccessPolicy, err error)
+ Initiate(ctx context.Context, resourceGroupName string, jitNetworkAccessPolicyName string, body security.JitNetworkAccessPolicyInitiateRequest) (result security.JitNetworkAccessRequest, err error)
+ List(ctx context.Context) (result security.JitNetworkAccessPoliciesListPage, err error)
+ ListComplete(ctx context.Context) (result security.JitNetworkAccessPoliciesListIterator, err error)
+ ListByRegion(ctx context.Context) (result security.JitNetworkAccessPoliciesListPage, err error)
+ ListByRegionComplete(ctx context.Context) (result security.JitNetworkAccessPoliciesListIterator, err error)
+ ListByResourceGroup(ctx context.Context, resourceGroupName string) (result security.JitNetworkAccessPoliciesListPage, err error)
+ ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result security.JitNetworkAccessPoliciesListIterator, err error)
+ ListByResourceGroupAndRegion(ctx context.Context, resourceGroupName string) (result security.JitNetworkAccessPoliciesListPage, err error)
+ ListByResourceGroupAndRegionComplete(ctx context.Context, resourceGroupName string) (result security.JitNetworkAccessPoliciesListIterator, err error)
+}
+
+var _ JitNetworkAccessPoliciesClientAPI = (*security.JitNetworkAccessPoliciesClient)(nil)
+
+// DiscoveredSecuritySolutionsClientAPI contains the set of methods on the DiscoveredSecuritySolutionsClient type.
+type DiscoveredSecuritySolutionsClientAPI interface {
+ Get(ctx context.Context, resourceGroupName string, discoveredSecuritySolutionName string) (result security.DiscoveredSecuritySolution, err error)
+ List(ctx context.Context) (result security.DiscoveredSecuritySolutionListPage, err error)
+ ListComplete(ctx context.Context) (result security.DiscoveredSecuritySolutionListIterator, err error)
+ ListByHomeRegion(ctx context.Context) (result security.DiscoveredSecuritySolutionListPage, err error)
+ ListByHomeRegionComplete(ctx context.Context) (result security.DiscoveredSecuritySolutionListIterator, err error)
+}
+
+var _ DiscoveredSecuritySolutionsClientAPI = (*security.DiscoveredSecuritySolutionsClient)(nil)
+
+// SolutionsReferenceDataClientAPI contains the set of methods on the SolutionsReferenceDataClient type.
+type SolutionsReferenceDataClientAPI interface {
+ List(ctx context.Context) (result security.SolutionsReferenceDataList, err error)
+ ListByHomeRegion(ctx context.Context) (result security.SolutionsReferenceDataList, err error)
+}
+
+var _ SolutionsReferenceDataClientAPI = (*security.SolutionsReferenceDataClient)(nil)
+
+// ExternalSecuritySolutionsClientAPI contains the set of methods on the ExternalSecuritySolutionsClient type.
+type ExternalSecuritySolutionsClientAPI interface {
+ Get(ctx context.Context, resourceGroupName string, externalSecuritySolutionsName string) (result security.ExternalSecuritySolutionModel, err error)
+ List(ctx context.Context) (result security.ExternalSecuritySolutionListPage, err error)
+ ListComplete(ctx context.Context) (result security.ExternalSecuritySolutionListIterator, err error)
+ ListByHomeRegion(ctx context.Context) (result security.ExternalSecuritySolutionListPage, err error)
+ ListByHomeRegionComplete(ctx context.Context) (result security.ExternalSecuritySolutionListIterator, err error)
+}
+
+var _ ExternalSecuritySolutionsClientAPI = (*security.ExternalSecuritySolutionsClient)(nil)
+
+// SecureScoresClientAPI contains the set of methods on the SecureScoresClient type.
+type SecureScoresClientAPI interface {
+ Get(ctx context.Context, secureScoreName string) (result security.SecureScoreItem, err error)
+ List(ctx context.Context) (result security.SecureScoresListPage, err error)
+ ListComplete(ctx context.Context) (result security.SecureScoresListIterator, err error)
+}
+
+var _ SecureScoresClientAPI = (*security.SecureScoresClient)(nil)
+
+// SecureScoreControlsClientAPI contains the set of methods on the SecureScoreControlsClient type.
+type SecureScoreControlsClientAPI interface {
+ List(ctx context.Context, expand security.ExpandControlsEnum) (result security.SecureScoreControlListPage, err error)
+ ListComplete(ctx context.Context, expand security.ExpandControlsEnum) (result security.SecureScoreControlListIterator, err error)
+ ListBySecureScore(ctx context.Context, secureScoreName string, expand security.ExpandControlsEnum) (result security.SecureScoreControlListPage, err error)
+ ListBySecureScoreComplete(ctx context.Context, secureScoreName string, expand security.ExpandControlsEnum) (result security.SecureScoreControlListIterator, err error)
+}
+
+var _ SecureScoreControlsClientAPI = (*security.SecureScoreControlsClient)(nil)
+
+// SecureScoreControlDefinitionsClientAPI contains the set of methods on the SecureScoreControlDefinitionsClient type.
+type SecureScoreControlDefinitionsClientAPI interface {
+ List(ctx context.Context) (result security.SecureScoreControlDefinitionListPage, err error)
+ ListComplete(ctx context.Context) (result security.SecureScoreControlDefinitionListIterator, err error)
+ ListBySubscription(ctx context.Context) (result security.SecureScoreControlDefinitionListPage, err error)
+ ListBySubscriptionComplete(ctx context.Context) (result security.SecureScoreControlDefinitionListIterator, err error)
+}
+
+var _ SecureScoreControlDefinitionsClientAPI = (*security.SecureScoreControlDefinitionsClient)(nil)
+
+// SolutionsClientAPI contains the set of methods on the SolutionsClient type.
+type SolutionsClientAPI interface {
+ Get(ctx context.Context, resourceGroupName string, securitySolutionName string) (result security.Solution, err error)
+ List(ctx context.Context) (result security.SolutionListPage, err error)
+ ListComplete(ctx context.Context) (result security.SolutionListIterator, err error)
+}
+
+var _ SolutionsClientAPI = (*security.SolutionsClient)(nil)
+
+// ConnectorsClientAPI contains the set of methods on the ConnectorsClient type.
+type ConnectorsClientAPI interface {
+ CreateOrUpdate(ctx context.Context, connectorName string, connectorSetting security.ConnectorSetting) (result security.ConnectorSetting, err error)
+ Delete(ctx context.Context, connectorName string) (result autorest.Response, err error)
+ Get(ctx context.Context, connectorName string) (result security.ConnectorSetting, err error)
+ List(ctx context.Context) (result security.ConnectorSettingListPage, err error)
+ ListComplete(ctx context.Context) (result security.ConnectorSettingListIterator, err error)
+}
+
+var _ ConnectorsClientAPI = (*security.ConnectorsClient)(nil)
diff --git a/services/preview/security/mgmt/v3.0/security/servervulnerabilityassessment.go b/services/preview/security/mgmt/v3.0/security/servervulnerabilityassessment.go
index b1e50b758d83..8d129aa5516e 100644
--- a/services/preview/security/mgmt/v3.0/security/servervulnerabilityassessment.go
+++ b/services/preview/security/mgmt/v3.0/security/servervulnerabilityassessment.go
@@ -104,7 +104,7 @@ func (client ServerVulnerabilityAssessmentClient) CreateOrUpdatePreparer(ctx con
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2019-01-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -128,7 +128,6 @@ func (client ServerVulnerabilityAssessmentClient) CreateOrUpdateSender(req *http
func (client ServerVulnerabilityAssessmentClient) CreateOrUpdateResponder(resp *http.Response) (result ServerVulnerabilityAssessment, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -196,7 +195,7 @@ func (client ServerVulnerabilityAssessmentClient) DeletePreparer(ctx context.Con
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2019-01-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -220,7 +219,6 @@ func (client ServerVulnerabilityAssessmentClient) DeleteSender(req *http.Request
func (client ServerVulnerabilityAssessmentClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
@@ -287,7 +285,7 @@ func (client ServerVulnerabilityAssessmentClient) GetPreparer(ctx context.Contex
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2019-01-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -311,7 +309,6 @@ func (client ServerVulnerabilityAssessmentClient) GetSender(req *http.Request) (
func (client ServerVulnerabilityAssessmentClient) GetResponder(resp *http.Response) (result ServerVulnerabilityAssessment, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -378,7 +375,7 @@ func (client ServerVulnerabilityAssessmentClient) ListByExtendedResourcePreparer
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2019-01-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -402,7 +399,6 @@ func (client ServerVulnerabilityAssessmentClient) ListByExtendedResourceSender(r
func (client ServerVulnerabilityAssessmentClient) ListByExtendedResourceResponder(resp *http.Response) (result ServerVulnerabilityAssessmentsList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/settings.go b/services/preview/security/mgmt/v3.0/security/settings.go
index cf1b4f08f2c9..9098f08e3e2e 100644
--- a/services/preview/security/mgmt/v3.0/security/settings.go
+++ b/services/preview/security/mgmt/v3.0/security/settings.go
@@ -114,7 +114,6 @@ func (client SettingsClient) GetSender(req *http.Request) (*http.Response, error
func (client SettingsClient) GetResponder(resp *http.Response) (result Setting, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -158,6 +157,9 @@ func (client SettingsClient) List(ctx context.Context) (result SettingsListPage,
if err != nil {
err = autorest.NewErrorWithError(err, "security.SettingsClient", "List", resp, "Failure responding to request")
}
+ if result.sl.hasNextLink() && result.sl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -192,7 +194,6 @@ func (client SettingsClient) ListSender(req *http.Request) (*http.Response, erro
func (client SettingsClient) ListResponder(resp *http.Response) (result SettingsList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -241,7 +242,7 @@ func (client SettingsClient) ListComplete(ctx context.Context) (result SettingsL
// Parameters:
// settingName - name of setting: (MCAS/WDATP)
// setting - setting object
-func (client SettingsClient) Update(ctx context.Context, settingName string, setting Setting) (result Setting, err error) {
+func (client SettingsClient) Update(ctx context.Context, settingName string, setting BasicSetting) (result Setting, err error) {
if tracing.IsEnabled() {
ctx = tracing.StartSpan(ctx, fqdn+"/SettingsClient.Update")
defer func() {
@@ -280,7 +281,7 @@ func (client SettingsClient) Update(ctx context.Context, settingName string, set
}
// UpdatePreparer prepares the Update request.
-func (client SettingsClient) UpdatePreparer(ctx context.Context, settingName string, setting Setting) (*http.Request, error) {
+func (client SettingsClient) UpdatePreparer(ctx context.Context, settingName string, setting BasicSetting) (*http.Request, error) {
pathParameters := map[string]interface{}{
"settingName": autorest.Encode("path", settingName),
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
@@ -312,7 +313,6 @@ func (client SettingsClient) UpdateSender(req *http.Request) (*http.Response, er
func (client SettingsClient) UpdateResponder(resp *http.Response) (result Setting, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/solutions.go b/services/preview/security/mgmt/v3.0/security/solutions.go
new file mode 100644
index 000000000000..5bdfd2a4b952
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/solutions.go
@@ -0,0 +1,247 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "context"
+ "github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
+ "github.com/Azure/go-autorest/autorest/validation"
+ "github.com/Azure/go-autorest/tracing"
+ "net/http"
+)
+
+// SolutionsClient is the API spec for Microsoft.Security (Azure Security Center) resource provider
+type SolutionsClient struct {
+ BaseClient
+}
+
+// NewSolutionsClient creates an instance of the SolutionsClient client.
+func NewSolutionsClient(subscriptionID string, ascLocation string) SolutionsClient {
+ return NewSolutionsClientWithBaseURI(DefaultBaseURI, subscriptionID, ascLocation)
+}
+
+// NewSolutionsClientWithBaseURI creates an instance of the SolutionsClient client using a custom endpoint. Use this
+// when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack).
+func NewSolutionsClientWithBaseURI(baseURI string, subscriptionID string, ascLocation string) SolutionsClient {
+ return SolutionsClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
+}
+
+// Get gets a specific Security Solution.
+// Parameters:
+// resourceGroupName - the name of the resource group within the user's subscription. The name is case
+// insensitive.
+// securitySolutionName - name of security solution.
+func (client SolutionsClient) Get(ctx context.Context, resourceGroupName string, securitySolutionName string) (result Solution, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SolutionsClient.Get")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}},
+ {TargetValue: resourceGroupName,
+ Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
+ {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.SolutionsClient", "Get", err.Error())
+ }
+
+ req, err := client.GetPreparer(ctx, resourceGroupName, securitySolutionName)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SolutionsClient", "Get", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.GetSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.SolutionsClient", "Get", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.GetResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SolutionsClient", "Get", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// GetPreparer prepares the Get request.
+func (client SolutionsClient) GetPreparer(ctx context.Context, resourceGroupName string, securitySolutionName string) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "ascLocation": autorest.Encode("path", client.AscLocation),
+ "resourceGroupName": autorest.Encode("path", resourceGroupName),
+ "securitySolutionName": autorest.Encode("path", securitySolutionName),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/locations/{ascLocation}/securitySolutions/{securitySolutionName}", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// GetSender sends the Get request. The method will close the
+// http.Response Body if it receives an error.
+func (client SolutionsClient) GetSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// GetResponder handles the response to the Get request. The method always
+// closes the http.Response Body.
+func (client SolutionsClient) GetResponder(resp *http.Response) (result Solution, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// List gets a list of Security Solutions for the subscription.
+func (client SolutionsClient) List(ctx context.Context) (result SolutionListPage, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SolutionsClient.List")
+ defer func() {
+ sc := -1
+ if result.sl.Response.Response != nil {
+ sc = result.sl.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.SolutionsClient", "List", err.Error())
+ }
+
+ result.fn = client.listNextResults
+ req, err := client.ListPreparer(ctx)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SolutionsClient", "List", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.sl.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.SolutionsClient", "List", resp, "Failure sending request")
+ return
+ }
+
+ result.sl, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SolutionsClient", "List", resp, "Failure responding to request")
+ }
+ if result.sl.hasNextLink() && result.sl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
+
+ return
+}
+
+// ListPreparer prepares the List request.
+func (client SolutionsClient) ListPreparer(ctx context.Context) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/securitySolutions", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListSender sends the List request. The method will close the
+// http.Response Body if it receives an error.
+func (client SolutionsClient) ListSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListResponder handles the response to the List request. The method always
+// closes the http.Response Body.
+func (client SolutionsClient) ListResponder(resp *http.Response) (result SolutionList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// listNextResults retrieves the next set of results, if any.
+func (client SolutionsClient) listNextResults(ctx context.Context, lastResults SolutionList) (result SolutionList, err error) {
+ req, err := lastResults.solutionListPreparer(ctx)
+ if err != nil {
+ return result, autorest.NewErrorWithError(err, "security.SolutionsClient", "listNextResults", nil, "Failure preparing next results request")
+ }
+ if req == nil {
+ return
+ }
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ return result, autorest.NewErrorWithError(err, "security.SolutionsClient", "listNextResults", resp, "Failure sending next results request")
+ }
+ result, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SolutionsClient", "listNextResults", resp, "Failure responding to next results request")
+ }
+ return
+}
+
+// ListComplete enumerates all values, automatically crossing page boundaries as required.
+func (client SolutionsClient) ListComplete(ctx context.Context) (result SolutionListIterator, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SolutionsClient.List")
+ defer func() {
+ sc := -1
+ if result.Response().Response.Response != nil {
+ sc = result.page.Response().Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ result.page, err = client.List(ctx)
+ return
+}
diff --git a/services/preview/security/mgmt/v3.0/security/solutionsreferencedata.go b/services/preview/security/mgmt/v3.0/security/solutionsreferencedata.go
new file mode 100644
index 000000000000..a1a371c454a4
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/solutionsreferencedata.go
@@ -0,0 +1,197 @@
+package security
+
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "context"
+ "github.com/Azure/go-autorest/autorest"
+ "github.com/Azure/go-autorest/autorest/azure"
+ "github.com/Azure/go-autorest/autorest/validation"
+ "github.com/Azure/go-autorest/tracing"
+ "net/http"
+)
+
+// SolutionsReferenceDataClient is the API spec for Microsoft.Security (Azure Security Center) resource provider
+type SolutionsReferenceDataClient struct {
+ BaseClient
+}
+
+// NewSolutionsReferenceDataClient creates an instance of the SolutionsReferenceDataClient client.
+func NewSolutionsReferenceDataClient(subscriptionID string, ascLocation string) SolutionsReferenceDataClient {
+ return NewSolutionsReferenceDataClientWithBaseURI(DefaultBaseURI, subscriptionID, ascLocation)
+}
+
+// NewSolutionsReferenceDataClientWithBaseURI creates an instance of the SolutionsReferenceDataClient client using a
+// custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds,
+// Azure stack).
+func NewSolutionsReferenceDataClientWithBaseURI(baseURI string, subscriptionID string, ascLocation string) SolutionsReferenceDataClient {
+ return SolutionsReferenceDataClient{NewWithBaseURI(baseURI, subscriptionID, ascLocation)}
+}
+
+// List gets a list of all supported Security Solutions for the subscription.
+func (client SolutionsReferenceDataClient) List(ctx context.Context) (result SolutionsReferenceDataList, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SolutionsReferenceDataClient.List")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.SolutionsReferenceDataClient", "List", err.Error())
+ }
+
+ req, err := client.ListPreparer(ctx)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SolutionsReferenceDataClient", "List", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.SolutionsReferenceDataClient", "List", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.ListResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SolutionsReferenceDataClient", "List", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// ListPreparer prepares the List request.
+func (client SolutionsReferenceDataClient) ListPreparer(ctx context.Context) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/securitySolutionsReferenceData", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListSender sends the List request. The method will close the
+// http.Response Body if it receives an error.
+func (client SolutionsReferenceDataClient) ListSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListResponder handles the response to the List request. The method always
+// closes the http.Response Body.
+func (client SolutionsReferenceDataClient) ListResponder(resp *http.Response) (result SolutionsReferenceDataList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
+
+// ListByHomeRegion gets list of all supported Security Solutions for subscription and location.
+func (client SolutionsReferenceDataClient) ListByHomeRegion(ctx context.Context) (result SolutionsReferenceDataList, err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/SolutionsReferenceDataClient.ListByHomeRegion")
+ defer func() {
+ sc := -1
+ if result.Response.Response != nil {
+ sc = result.Response.Response.StatusCode
+ }
+ tracing.EndSpan(ctx, sc, err)
+ }()
+ }
+ if err := validation.Validate([]validation.Validation{
+ {TargetValue: client.SubscriptionID,
+ Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.Pattern, Rule: `^[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}$`, Chain: nil}}}}); err != nil {
+ return result, validation.NewError("security.SolutionsReferenceDataClient", "ListByHomeRegion", err.Error())
+ }
+
+ req, err := client.ListByHomeRegionPreparer(ctx)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SolutionsReferenceDataClient", "ListByHomeRegion", nil, "Failure preparing request")
+ return
+ }
+
+ resp, err := client.ListByHomeRegionSender(req)
+ if err != nil {
+ result.Response = autorest.Response{Response: resp}
+ err = autorest.NewErrorWithError(err, "security.SolutionsReferenceDataClient", "ListByHomeRegion", resp, "Failure sending request")
+ return
+ }
+
+ result, err = client.ListByHomeRegionResponder(resp)
+ if err != nil {
+ err = autorest.NewErrorWithError(err, "security.SolutionsReferenceDataClient", "ListByHomeRegion", resp, "Failure responding to request")
+ }
+
+ return
+}
+
+// ListByHomeRegionPreparer prepares the ListByHomeRegion request.
+func (client SolutionsReferenceDataClient) ListByHomeRegionPreparer(ctx context.Context) (*http.Request, error) {
+ pathParameters := map[string]interface{}{
+ "ascLocation": autorest.Encode("path", client.AscLocation),
+ "subscriptionId": autorest.Encode("path", client.SubscriptionID),
+ }
+
+ const APIVersion = "2020-01-01"
+ queryParameters := map[string]interface{}{
+ "api-version": APIVersion,
+ }
+
+ preparer := autorest.CreatePreparer(
+ autorest.AsGet(),
+ autorest.WithBaseURL(client.BaseURI),
+ autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Security/locations/{ascLocation}/securitySolutionsReferenceData", pathParameters),
+ autorest.WithQueryParameters(queryParameters))
+ return preparer.Prepare((&http.Request{}).WithContext(ctx))
+}
+
+// ListByHomeRegionSender sends the ListByHomeRegion request. The method will close the
+// http.Response Body if it receives an error.
+func (client SolutionsReferenceDataClient) ListByHomeRegionSender(req *http.Request) (*http.Response, error) {
+ return client.Send(req, azure.DoRetryWithRegistration(client.Client))
+}
+
+// ListByHomeRegionResponder handles the response to the ListByHomeRegion request. The method always
+// closes the http.Response Body.
+func (client SolutionsReferenceDataClient) ListByHomeRegionResponder(resp *http.Response) (result SolutionsReferenceDataList, err error) {
+ err = autorest.Respond(
+ resp,
+ azure.WithErrorUnlessStatusCode(http.StatusOK),
+ autorest.ByUnmarshallingJSON(&result),
+ autorest.ByClosing())
+ result.Response = autorest.Response{Response: resp}
+ return
+}
diff --git a/services/preview/security/mgmt/v3.0/security/subassessments.go b/services/preview/security/mgmt/v3.0/security/subassessments.go
index 4b1a429a3e90..dcb46b74ca9d 100644
--- a/services/preview/security/mgmt/v3.0/security/subassessments.go
+++ b/services/preview/security/mgmt/v3.0/security/subassessments.go
@@ -83,7 +83,7 @@ func (client SubAssessmentsClient) Get(ctx context.Context, scope string, assess
func (client SubAssessmentsClient) GetPreparer(ctx context.Context, scope string, assessmentName string, subAssessmentName string) (*http.Request, error) {
pathParameters := map[string]interface{}{
"assessmentName": autorest.Encode("path", assessmentName),
- "scope": autorest.Encode("path", scope),
+ "scope": scope,
"subAssessmentName": autorest.Encode("path", subAssessmentName),
}
@@ -111,7 +111,6 @@ func (client SubAssessmentsClient) GetSender(req *http.Request) (*http.Response,
func (client SubAssessmentsClient) GetResponder(resp *http.Response) (result SubAssessment, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -153,6 +152,9 @@ func (client SubAssessmentsClient) List(ctx context.Context, scope string, asses
if err != nil {
err = autorest.NewErrorWithError(err, "security.SubAssessmentsClient", "List", resp, "Failure responding to request")
}
+ if result.sal.hasNextLink() && result.sal.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -161,7 +163,7 @@ func (client SubAssessmentsClient) List(ctx context.Context, scope string, asses
func (client SubAssessmentsClient) ListPreparer(ctx context.Context, scope string, assessmentName string) (*http.Request, error) {
pathParameters := map[string]interface{}{
"assessmentName": autorest.Encode("path", assessmentName),
- "scope": autorest.Encode("path", scope),
+ "scope": scope,
}
const APIVersion = "2019-01-01-preview"
@@ -188,7 +190,6 @@ func (client SubAssessmentsClient) ListSender(req *http.Request) (*http.Response
func (client SubAssessmentsClient) ListResponder(resp *http.Response) (result SubAssessmentList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -266,6 +267,9 @@ func (client SubAssessmentsClient) ListAll(ctx context.Context, scope string) (r
if err != nil {
err = autorest.NewErrorWithError(err, "security.SubAssessmentsClient", "ListAll", resp, "Failure responding to request")
}
+ if result.sal.hasNextLink() && result.sal.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -273,7 +277,7 @@ func (client SubAssessmentsClient) ListAll(ctx context.Context, scope string) (r
// ListAllPreparer prepares the ListAll request.
func (client SubAssessmentsClient) ListAllPreparer(ctx context.Context, scope string) (*http.Request, error) {
pathParameters := map[string]interface{}{
- "scope": autorest.Encode("path", scope),
+ "scope": scope,
}
const APIVersion = "2019-01-01-preview"
@@ -300,7 +304,6 @@ func (client SubAssessmentsClient) ListAllSender(req *http.Request) (*http.Respo
func (client SubAssessmentsClient) ListAllResponder(resp *http.Response) (result SubAssessmentList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/tasks.go b/services/preview/security/mgmt/v3.0/security/tasks.go
index 5215444c7a73..34d8790bd7c7 100644
--- a/services/preview/security/mgmt/v3.0/security/tasks.go
+++ b/services/preview/security/mgmt/v3.0/security/tasks.go
@@ -122,7 +122,6 @@ func (client TasksClient) GetResourceGroupLevelTaskSender(req *http.Request) (*h
func (client TasksClient) GetResourceGroupLevelTaskResponder(resp *http.Response) (result Task, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -203,7 +202,6 @@ func (client TasksClient) GetSubscriptionLevelTaskSender(req *http.Request) (*ht
func (client TasksClient) GetSubscriptionLevelTaskResponder(resp *http.Response) (result Task, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -249,6 +247,9 @@ func (client TasksClient) List(ctx context.Context, filter string) (result TaskL
if err != nil {
err = autorest.NewErrorWithError(err, "security.TasksClient", "List", resp, "Failure responding to request")
}
+ if result.tl.hasNextLink() && result.tl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -286,7 +287,6 @@ func (client TasksClient) ListSender(req *http.Request) (*http.Response, error)
func (client TasksClient) ListResponder(resp *http.Response) (result TaskList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -369,6 +369,9 @@ func (client TasksClient) ListByHomeRegion(ctx context.Context, filter string) (
if err != nil {
err = autorest.NewErrorWithError(err, "security.TasksClient", "ListByHomeRegion", resp, "Failure responding to request")
}
+ if result.tl.hasNextLink() && result.tl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -407,7 +410,6 @@ func (client TasksClient) ListByHomeRegionSender(req *http.Request) (*http.Respo
func (client TasksClient) ListByHomeRegionResponder(resp *http.Response) (result TaskList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -496,6 +498,9 @@ func (client TasksClient) ListByResourceGroup(ctx context.Context, resourceGroup
if err != nil {
err = autorest.NewErrorWithError(err, "security.TasksClient", "ListByResourceGroup", resp, "Failure responding to request")
}
+ if result.tl.hasNextLink() && result.tl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -535,7 +540,6 @@ func (client TasksClient) ListByResourceGroupSender(req *http.Request) (*http.Re
func (client TasksClient) ListByResourceGroupResponder(resp *http.Response) (result TaskList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -663,7 +667,6 @@ func (client TasksClient) UpdateResourceGroupLevelTaskStateSender(req *http.Requ
func (client TasksClient) UpdateResourceGroupLevelTaskStateResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
@@ -746,7 +749,6 @@ func (client TasksClient) UpdateSubscriptionLevelTaskStateSender(req *http.Reque
func (client TasksClient) UpdateSubscriptionLevelTaskStateResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
diff --git a/services/preview/security/mgmt/v3.0/security/topology.go b/services/preview/security/mgmt/v3.0/security/topology.go
index 5a020bc9863c..e2f193648053 100644
--- a/services/preview/security/mgmt/v3.0/security/topology.go
+++ b/services/preview/security/mgmt/v3.0/security/topology.go
@@ -98,7 +98,7 @@ func (client TopologyClient) GetPreparer(ctx context.Context, resourceGroupName
"topologyResourceName": autorest.Encode("path", topologyResourceName),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -122,7 +122,6 @@ func (client TopologyClient) GetSender(req *http.Request) (*http.Response, error
func (client TopologyClient) GetResponder(resp *http.Response) (result TopologyResource, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -166,6 +165,9 @@ func (client TopologyClient) List(ctx context.Context) (result TopologyListPage,
if err != nil {
err = autorest.NewErrorWithError(err, "security.TopologyClient", "List", resp, "Failure responding to request")
}
+ if result.tl.hasNextLink() && result.tl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -176,7 +178,7 @@ func (client TopologyClient) ListPreparer(ctx context.Context) (*http.Request, e
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -200,7 +202,6 @@ func (client TopologyClient) ListSender(req *http.Request) (*http.Response, erro
func (client TopologyClient) ListResponder(resp *http.Response) (result TopologyList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -281,6 +282,9 @@ func (client TopologyClient) ListByHomeRegion(ctx context.Context) (result Topol
if err != nil {
err = autorest.NewErrorWithError(err, "security.TopologyClient", "ListByHomeRegion", resp, "Failure responding to request")
}
+ if result.tl.hasNextLink() && result.tl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -292,7 +296,7 @@ func (client TopologyClient) ListByHomeRegionPreparer(ctx context.Context) (*htt
"subscriptionId": autorest.Encode("path", client.SubscriptionID),
}
- const APIVersion = "2015-06-01-preview"
+ const APIVersion = "2020-01-01"
queryParameters := map[string]interface{}{
"api-version": APIVersion,
}
@@ -316,7 +320,6 @@ func (client TopologyClient) ListByHomeRegionSender(req *http.Request) (*http.Re
func (client TopologyClient) ListByHomeRegionResponder(resp *http.Response) (result TopologyList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
diff --git a/services/preview/security/mgmt/v3.0/security/version.go b/services/preview/security/mgmt/v3.0/security/version.go
index 7058ebe587a3..9ef7c97c91a0 100644
--- a/services/preview/security/mgmt/v3.0/security/version.go
+++ b/services/preview/security/mgmt/v3.0/security/version.go
@@ -21,7 +21,7 @@ import "github.com/Azure/azure-sdk-for-go/version"
// UserAgent returns the UserAgent string to use when sending http.Requests.
func UserAgent() string {
- return "Azure-SDK-For-Go/" + version.Number + " security/v3.0"
+ return "Azure-SDK-For-Go/" + Version() + " security/v3.0"
}
// Version returns the semantic version (see http://semver.org) of the client.
diff --git a/services/preview/security/mgmt/v3.0/security/workspacesettings.go b/services/preview/security/mgmt/v3.0/security/workspacesettings.go
index e34ac16bdae2..9eb533d2e638 100644
--- a/services/preview/security/mgmt/v3.0/security/workspacesettings.go
+++ b/services/preview/security/mgmt/v3.0/security/workspacesettings.go
@@ -123,7 +123,6 @@ func (client WorkspaceSettingsClient) CreateSender(req *http.Request) (*http.Res
func (client WorkspaceSettingsClient) CreateResponder(resp *http.Response) (result WorkspaceSetting, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -203,7 +202,6 @@ func (client WorkspaceSettingsClient) DeleteSender(req *http.Request) (*http.Res
func (client WorkspaceSettingsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
autorest.ByClosing())
result.Response = resp
@@ -283,7 +281,6 @@ func (client WorkspaceSettingsClient) GetSender(req *http.Request) (*http.Respon
func (client WorkspaceSettingsClient) GetResponder(resp *http.Response) (result WorkspaceSetting, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -328,6 +325,9 @@ func (client WorkspaceSettingsClient) List(ctx context.Context) (result Workspac
if err != nil {
err = autorest.NewErrorWithError(err, "security.WorkspaceSettingsClient", "List", resp, "Failure responding to request")
}
+ if result.wsl.hasNextLink() && result.wsl.IsEmpty() {
+ err = result.NextWithContext(ctx)
+ }
return
}
@@ -362,7 +362,6 @@ func (client WorkspaceSettingsClient) ListSender(req *http.Request) (*http.Respo
func (client WorkspaceSettingsClient) ListResponder(resp *http.Response) (result WorkspaceSettingList, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())
@@ -482,7 +481,6 @@ func (client WorkspaceSettingsClient) UpdateSender(req *http.Request) (*http.Res
func (client WorkspaceSettingsClient) UpdateResponder(resp *http.Response) (result WorkspaceSetting, err error) {
err = autorest.Respond(
resp,
- client.ByInspecting(),
azure.WithErrorUnlessStatusCode(http.StatusOK),
autorest.ByUnmarshallingJSON(&result),
autorest.ByClosing())