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..5530f5d70fd0
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/adaptivenetworkhardenings.go
@@ -0,0 +1,361 @@
+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")
+ }
+
+ 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..a1758dc0eeb1 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
@@ -256,7 +256,7 @@ func (client AlertsClient) List(ctx context.Context, filter string, selectParame
}
// 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 +274,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 +297,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 +326,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 +337,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 +348,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 +372,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
@@ -390,7 +394,7 @@ func (client AlertsClient) ListByResourceGroup(ctx context.Context, resourceGrou
}
// 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 +413,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 +436,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 +465,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 +476,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 +488,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 +512,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
@@ -526,7 +534,7 @@ func (client AlertsClient) ListResourceGroupLevelAlertsByRegion(ctx context.Cont
}
// 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 +554,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 +577,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 +606,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 +617,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 +627,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 +647,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
@@ -657,7 +669,7 @@ func (client AlertsClient) ListSubscriptionLevelAlertsByRegion(ctx context.Conte
}
// 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 +688,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 +711,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 +740,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 +751,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 +835,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 +921,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 +1000,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 +1079,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..4fcb7d39434b
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/alertssuppressionrules.go
@@ -0,0 +1,409 @@
+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")
+ }
+
+ 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..7d0449a7bdcb 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())
@@ -178,7 +177,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 +201,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())
@@ -294,7 +292,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 +316,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..cfb8d3553818 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())
@@ -335,7 +332,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 +359,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..76c872d4933b 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())
@@ -427,7 +423,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())
@@ -542,7 +537,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..06ab18f48a8b 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())
@@ -377,7 +374,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())
@@ -501,7 +497,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 +624,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..d626b2049917 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())
@@ -276,7 +274,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..944407307e0d 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())
@@ -157,7 +156,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 +183,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..4f33618da8c0 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())
@@ -157,7 +156,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 +183,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..3af65acfa895
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/connectors.go
@@ -0,0 +1,397 @@
+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")
+ }
+
+ 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..efedb961a1f7 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())
@@ -357,7 +354,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 +473,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..1411cb702ecb 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())
@@ -311,7 +308,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 +335,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..58a46bcde8d3 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())
@@ -177,7 +176,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 +200,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())
@@ -293,7 +291,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 +315,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/externalsecuritysolutions.go b/services/preview/security/mgmt/v3.0/security/externalsecuritysolutions.go
index 614aa067c07b..6055ae9c8624 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())
@@ -177,7 +176,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 +200,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())
@@ -293,7 +291,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 +315,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..433b07e8986b 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())
@@ -234,7 +235,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 +262,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..690af205dd25
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/iotalerts.go
@@ -0,0 +1,275 @@
+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")
+ }
+
+ 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/iotsecuritysolution.go b/services/preview/security/mgmt/v3.0/security/iotsecuritysolution.go
index bcedd492e4e8..5c9282e44a79 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())
@@ -401,7 +397,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())
@@ -521,7 +516,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 +643,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..3f79a68ec8c7 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())
@@ -307,7 +305,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..059872397425 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())
@@ -220,7 +219,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..9c1db5d84c77 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())
@@ -454,7 +450,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 +474,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())
@@ -570,7 +565,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 +589,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())
@@ -694,7 +688,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 +712,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())
@@ -819,7 +812,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 +836,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..571c190ee208 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())
@@ -192,7 +191,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..32eab6bf85fd 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"
@@ -84,6 +85,49 @@ 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
@@ -99,6 +143,25 @@ 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
@@ -171,6 +234,44 @@ 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
@@ -285,6 +386,21 @@ 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
@@ -298,6 +414,21 @@ 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
@@ -315,38 +446,21 @@ func PossibleEnforcementModeValues() []EnforcementMode {
return []EnforcementMode{Audit, Enforce, None}
}
-// 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}
-}
-
// EnforcementSupport enumerates the values for enforcement support.
type EnforcementSupport string
const (
- // NotSupported ...
- NotSupported EnforcementSupport = "NotSupported"
- // Supported ...
- Supported EnforcementSupport = "Supported"
- // Unknown ...
- Unknown EnforcementSupport = "Unknown"
+ // 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{NotSupported, Supported, Unknown}
+ return []EnforcementSupport{EnforcementSupportNotSupported, EnforcementSupportSupported, EnforcementSupportUnknown}
}
// EventSource enumerates the values for event source.
@@ -398,6 +512,19 @@ 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
@@ -485,21 +612,38 @@ 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 (
- // High ...
- High ImplementationEffort = "High"
- // Low ...
- Low ImplementationEffort = "Low"
- // Moderate ...
- Moderate ImplementationEffort = "Moderate"
+ // 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{High, Low, Moderate}
+ return []ImplementationEffort{ImplementationEffortHigh, ImplementationEffortLow, ImplementationEffortModerate}
}
// Issue enumerates the values for issue.
@@ -528,20 +672,37 @@ func PossibleIssueValues() []Issue {
// 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 KindEnum = "AAD"
+ KindAAD KindEnum1 = "AAD"
// KindATA ...
- KindATA KindEnum = "ATA"
+ KindATA KindEnum1 = "ATA"
// KindCEF ...
- KindCEF KindEnum = "CEF"
+ KindCEF KindEnum1 = "CEF"
// KindExternalSecuritySolution ...
- KindExternalSecuritySolution KindEnum = "ExternalSecuritySolution"
+ KindExternalSecuritySolution KindEnum1 = "ExternalSecuritySolution"
)
-// PossibleKindEnumValues returns an array of possible values for the KindEnum const type.
-func PossibleKindEnumValues() []KindEnum {
- return []KindEnum{KindAAD, KindATA, KindCEF, KindExternalSecuritySolution}
+// 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.
@@ -590,6 +751,26 @@ 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
@@ -645,21 +826,59 @@ func PossibleProtocolValues() []Protocol {
type ProvisioningState string
const (
- // ProvisioningStateCanceled ...
- ProvisioningStateCanceled ProvisioningState = "Canceled"
- // ProvisioningStateDeprovisioning ...
- ProvisioningStateDeprovisioning ProvisioningState = "Deprovisioning"
// ProvisioningStateFailed ...
ProvisioningStateFailed ProvisioningState = "Failed"
- // ProvisioningStateProvisioning ...
- ProvisioningStateProvisioning ProvisioningState = "Provisioning"
// 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{ProvisioningStateCanceled, ProvisioningStateDeprovisioning, ProvisioningStateFailed, ProvisioningStateProvisioning, ProvisioningStateSucceeded}
+ 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.
@@ -823,6 +1042,84 @@ 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
@@ -840,21 +1137,6 @@ func PossibleScriptValues() []Script {
return []Script{ScriptAudit, ScriptEnforce, ScriptNone}
}
-// 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}
-}
-
// Severity enumerates the values for severity.
type Severity string
@@ -964,17 +1246,17 @@ func PossibleStatusValues() []Status {
type StatusReason string
const (
- // Expired ...
- Expired StatusReason = "Expired"
- // NewerRequestInitiated ...
- NewerRequestInitiated StatusReason = "NewerRequestInitiated"
- // UserRequested ...
- UserRequested StatusReason = "UserRequested"
+ // 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{Expired, NewerRequestInitiated, UserRequested}
+ return []StatusReason{StatusReasonExpired, StatusReasonNewerRequestInitiated, StatusReasonUserRequested}
}
// SubAssessmentStatusCode enumerates the values for sub assessment status code.
@@ -1021,6 +1303,21 @@ 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
@@ -1110,7 +1407,7 @@ type AadExternalSecuritySolution struct {
// 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"`
+ Kind KindEnum1 `json:"kind,omitempty"`
}
// MarshalJSON is the custom marshaler for AadExternalSecuritySolution.
@@ -1160,201 +1457,221 @@ type AadSolutionProperties struct {
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)
+// 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"`
}
-// AdditionalData details of the sub-assessment
-type AdditionalData struct {
- // AssessedResourceType - Possible values include: 'AssessedResourceTypeAdditionalData', 'AssessedResourceTypeSQLServerVulnerability', 'AssessedResourceTypeContainerRegistryVulnerability', 'AssessedResourceTypeServerVulnerabilityAssessment'
- AssessedResourceType AssessedResourceType `json:"assessedResourceType,omitempty"`
+// 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)
}
-func unmarshalBasicAdditionalData(body []byte) (BasicAdditionalData, error) {
- var m map[string]interface{}
- err := json.Unmarshal(body, &m)
- if err != nil {
- return nil, err
- }
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
+}
- 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
- }
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &acniar, true
}
-func unmarshalBasicAdditionalDataArray(body []byte) ([]BasicAdditionalData, error) {
- var rawMessages []*json.RawMessage
- err := json.Unmarshal(body, &rawMessages)
- if err != nil {
- return nil, err
- }
- adArray := make([]BasicAdditionalData, len(rawMessages))
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
+}
- for index, rawMessage := range rawMessages {
- ad, err := unmarshalBasicAdditionalData(*rawMessage)
- if err != nil {
- return nil, err
- }
- adArray[index] = ad
- }
- return adArray, nil
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &acniar, true
}
-// 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 json.Marshal(objectMap)
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// AsSQLServerVulnerabilityProperties is the BasicAdditionalData implementation for AdditionalData.
-func (ad AdditionalData) AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool) {
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
return nil, false
}
-// AsContainerRegistryVulnerabilityProperties is the BasicAdditionalData implementation for AdditionalData.
-func (ad AdditionalData) AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool) {
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
return nil, false
}
-// AsServerVulnerabilityProperties is the BasicAdditionalData implementation for AdditionalData.
-func (ad AdditionalData) AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool) {
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
return nil, false
}
-// AsAdditionalData is the BasicAdditionalData implementation for AdditionalData.
-func (ad AdditionalData) AsAdditionalData() (*AdditionalData, bool) {
- return &ad, true
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
}
-// AsBasicAdditionalData is the BasicAdditionalData implementation for AdditionalData.
-func (ad AdditionalData) AsBasicAdditionalData() (BasicAdditionalData, bool) {
- return &ad, true
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
}
-// AdvancedThreatProtectionProperties the Advanced Threat Protection settings.
-type AdvancedThreatProtectionProperties struct {
- // IsEnabled - Indicates whether Advanced Threat Protection is enabled.
- IsEnabled *bool `json:"isEnabled,omitempty"`
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
}
-// 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"`
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
}
-// 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)
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return &acniar, true
}
-// 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 {
- return err
- }
- 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
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- atps.ID = &ID
- }
- case "name":
- if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
- if err != nil {
- return err
- }
- atps.Name = &name
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- atps.Type = &typeVar
- }
- }
- }
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
- return nil
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Alert security alert
-type Alert struct {
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
+}
+
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for ActiveConnectionsNotInAllowedRange.
+func (acniar ActiveConnectionsNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &acniar, true
+}
+
+// AdaptiveApplicationControlGroup ...
+type AdaptiveApplicationControlGroup 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"`
+ *AdaptiveApplicationControlGroupData `json:"properties,omitempty"`
}
-// MarshalJSON is the custom marshaler for Alert.
-func (a Alert) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for AdaptiveApplicationControlGroup.
+func (aacg AdaptiveApplicationControlGroup) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if a.AlertProperties != nil {
- objectMap["properties"] = a.AlertProperties
+ if aacg.AdaptiveApplicationControlGroupData != nil {
+ objectMap["properties"] = aacg.AdaptiveApplicationControlGroupData
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for Alert struct.
-func (a *Alert) UnmarshalJSON(body []byte) error {
+// 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 {
@@ -1362,15 +1679,6 @@ func (a *Alert) 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
@@ -1378,7 +1686,7 @@ func (a *Alert) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.ID = &ID
+ aacg.ID = &ID
}
case "name":
if v != nil {
@@ -1387,7 +1695,7 @@ func (a *Alert) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.Name = &name
+ aacg.Name = &name
}
case "type":
if v != nil {
@@ -1396,7 +1704,25 @@ func (a *Alert) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.Type = &typeVar
+ 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
}
}
}
@@ -1404,33 +1730,64 @@ func (a *Alert) UnmarshalJSON(body []byte) error {
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"`
+// 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"`
}
-// 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
+// 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"`
+}
+
+// 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"`
+}
+
+// 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
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for AlertEntity.
-func (ae AlertEntity) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for AdaptiveNetworkHardening.
+func (anh AdaptiveNetworkHardening) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- for k, v := range ae.AdditionalProperties {
- objectMap[k] = v
+ if anh.AdaptiveNetworkHardeningProperties != nil {
+ objectMap["properties"] = anh.AdaptiveNetworkHardeningProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for AlertEntity struct.
-func (ae *AlertEntity) 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 {
@@ -1438,17 +1795,32 @@ func (ae *AlertEntity) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
- default:
+ case "properties":
if v != nil {
- var additionalProperties interface{}
- err = json.Unmarshal(*v, &additionalProperties)
+ var adaptiveNetworkHardeningProperties AdaptiveNetworkHardeningProperties
+ err = json.Unmarshal(*v, &adaptiveNetworkHardeningProperties)
if err != nil {
return err
}
- if ae.AdditionalProperties == nil {
- ae.AdditionalProperties = make(map[string]interface{})
+ anh.AdaptiveNetworkHardeningProperties = &adaptiveNetworkHardeningProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
}
- ae.AdditionalProperties[k] = additionalProperties
+ anh.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ anh.Name = &name
}
case "type":
if v != nil {
@@ -1457,7 +1829,7 @@ func (ae *AlertEntity) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- ae.Type = &typeVar
+ anh.Type = &typeVar
}
}
}
@@ -1465,25 +1837,68 @@ func (ae *AlertEntity) UnmarshalJSON(body []byte) error {
return nil
}
-// AlertList list of security alerts
-type AlertList struct {
+// 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"`
+}
+
+// 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"`
+}
+
+// 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 {
+ err = autorest.NewErrorWithError(err, "security.AdaptiveNetworkHardeningsEnforceFuture", "Result", future.Response(), "Polling failure")
+ return
+ }
+ if !done {
+ err = azure.NewAsyncOpIncompleteError("security.AdaptiveNetworkHardeningsEnforceFuture")
+ return
+ }
+ ar.Response = future.Response()
+ return
+}
+
+// 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 +1923,62 @@ 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.
+// 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.NextLink == nil || len(to.String(anhl.NextLink)) < 1 {
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 +1987,167 @@ func (page *AlertListPage) NextWithContext(ctx context.Context) (err error) {
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.al)
+ next, err := page.fn(ctx, page.anhl)
if err != nil {
return err
}
- page.al = next
+ page.anhl = 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"`
-}
-
-// 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)
-}
-
-// 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"`
+// BasicAdditionalData details of the sub-assessment
+type BasicAdditionalData interface {
+ AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool)
+ AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool)
+ AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool)
+ AsAdditionalData() (*AdditionalData, bool)
}
-// AllowedConnectionsListIterator provides access to a complete listing of AllowedConnectionsResource
-// values.
-type AllowedConnectionsListIterator struct {
- i int
- page AllowedConnectionsListPage
+// AdditionalData details of the sub-assessment
+type AdditionalData struct {
+ // 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 *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 unmarshalBasicAdditionalData(body []byte) (BasicAdditionalData, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
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()
-}
-// 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{}
+ 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 iter.page.Values()[iter.i]
-}
-
-// Creates a new instance of the AllowedConnectionsListIterator type.
-func NewAllowedConnectionsListIterator(page AllowedConnectionsListPage) AllowedConnectionsListIterator {
- return AllowedConnectionsListIterator{page: page}
}
+func unmarshalBasicAdditionalDataArray(body []byte) ([]BasicAdditionalData, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
+ if err != nil {
+ return nil, err
+ }
-// IsEmpty returns true if the ListResult contains no values.
-func (ACL AllowedConnectionsList) IsEmpty() bool {
- return ACL.Value == nil || len(*ACL.Value) == 0
-}
+ adArray := make([]BasicAdditionalData, len(rawMessages))
-// 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
+ for index, rawMessage := range rawMessages {
+ ad, err := unmarshalBasicAdditionalData(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ adArray[index] = ad
}
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(ACL.NextLink)))
+ return adArray, nil
}
-// AllowedConnectionsListPage contains a page of AllowedConnectionsResource values.
-type AllowedConnectionsListPage struct {
- fn func(context.Context, AllowedConnectionsList) (AllowedConnectionsList, error)
- ACL AllowedConnectionsList
+// 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 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 +2155,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 +2171,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 +2180,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 +2189,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 +2197,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 +2227,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 +2243,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 +2252,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 +2261,68 @@ func (awg *AppWhitelistingGroup) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- awg.Type = &typeVar
+ a.Type = &typeVar
}
- case "location":
+ }
+ }
+
+ 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 location string
- err = json.Unmarshal(*v, &location)
+ var additionalProperties interface{}
+ err = json.Unmarshal(*v, &additionalProperties)
if err != nil {
return err
}
- awg.Location = &location
+ if ae.AdditionalProperties == nil {
+ ae.AdditionalProperties = make(map[string]interface{})
+ }
+ ae.AdditionalProperties[k] = additionalProperties
}
- case "properties":
+ case "type":
if v != nil {
- var appWhitelistingGroupData AppWhitelistingGroupData
- err = json.Unmarshal(*v, &appWhitelistingGroupData)
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
if err != nil {
return err
}
- awg.AppWhitelistingGroupData = &appWhitelistingGroupData
+ ae.Type = &typeVar
}
}
}
@@ -2011,80 +2330,25 @@ 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"`
-}
-
-// 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"`
-}
-
-// 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"`
-}
-
-// 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"`
-}
-
-// 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"`
-}
-
-// 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 {
+// 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 +2373,62 @@ 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.
+// 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.NextLink == nil || len(to.String(al.NextLink)) < 1 {
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,67 +2437,131 @@ func (page *AscLocationListPage) NextWithContext(ctx context.Context) (err error
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.all)
+ next, err := page.fn(ctx, page.al)
if err != nil {
return err
}
- page.all = next
+ 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 *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
-}
-
-// 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"`
+ return *page.al.Value
}
-// 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)
+// Creates a new instance of the AlertListPage type.
+func NewAlertListPage(getNextPage func(context.Context, AlertList) (AlertList, error)) AlertListPage {
+ return AlertListPage{fn: getNextPage}
}
-// UnmarshalJSON is the custom unmarshaler for Assessment struct.
-func (a *Assessment) UnmarshalJSON(body []byte) error {
+// 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
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for AlertsSuppressionRule.
+func (asr AlertsSuppressionRule) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if asr.AlertsSuppressionRuleProperties != nil {
+ objectMap["properties"] = asr.AlertsSuppressionRuleProperties
+ }
+ return json.Marshal(objectMap)
+}
+
+// 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 +2571,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 +2585,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 +2594,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 +2603,7 @@ func (a *Assessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.Type = &typeVar
+ asr.Type = &typeVar
}
}
}
@@ -2283,32 +2611,44 @@ 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 {
+// 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 {
+// 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 +2673,62 @@ 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.
+// 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.NextLink == nil || len(to.String(asrl.NextLink)) < 1 {
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 +2737,65 @@ func (page *AssessmentListPage) NextWithContext(ctx context.Context) (err error)
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.al)
+ next, err := page.fn(ctx, page.asrl)
if err != nil {
return err
}
- page.al = next
+ page.asrl = 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 {
+// 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 +2820,62 @@ 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.
+// 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.NextLink == nil || len(to.String(ACL.NextLink)) < 1 {
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 +2884,68 @@ func (page *AssessmentMetadataListPage) NextWithContext(ctx context.Context) (er
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.aml)
+ next, err := page.fn(ctx, page.ACL)
if err != nil {
return err
}
- page.aml = next
+ page.ACL = 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
-}
-
-// 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: '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"`
+ return *page.ACL.Value
}
-// 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"`
+// Creates a new instance of the AllowedConnectionsListPage type.
+func NewAllowedConnectionsListPage(getNextPage func(context.Context, AllowedConnectionsList) (AllowedConnectionsList, error)) AllowedConnectionsListPage {
+ return AllowedConnectionsListPage{fn: getNextPage}
}
-// 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"`
+// 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"`
}
-// 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 +2953,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 +3004,8849 @@ 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"`
+}
+
+// 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) {
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for AllowlistCustomAlertRule.
+func (acar AllowlistCustomAlertRule) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
+
+// 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 asp.LastEventReceived != nil {
- objectMap["lastEventReceived"] = asp.LastEventReceived
+ if acmniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = acmniar.TimeWindowSize
}
- if asp.DeviceVendor != nil {
- objectMap["deviceVendor"] = asp.DeviceVendor
+ if acmniar.MinThreshold != nil {
+ objectMap["minThreshold"] = acmniar.MinThreshold
}
- if asp.DeviceType != nil {
- objectMap["deviceType"] = asp.DeviceType
+ if acmniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = acmniar.MaxThreshold
}
- if asp.Workspace != nil {
- objectMap["workspace"] = asp.Workspace
+ if acmniar.IsEnabled != nil {
+ objectMap["isEnabled"] = acmniar.IsEnabled
}
- for k, v := range asp.AdditionalProperties {
- objectMap[k] = v
+ if acmniar.RuleType != "" {
+ objectMap["ruleType"] = acmniar.RuleType
}
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
+// 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
}
- 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 {
+ 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"`
+}
+
+// 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"`
+}
+
+// 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
+}
+
+// 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.NextLink == nil || len(to.String(all.NextLink)) < 1 {
+ 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.all)
+ if err != nil {
+ return err
+ }
+ 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 {
+ 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"`
+}
+
+// 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"`
+}
+
+// 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
+}
+
+// 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.NextLink == nil || len(to.String(al.NextLink)) < 1 {
+ 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.al)
+ if err != nil {
+ return err
+ }
+ 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 {
+ 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"`
+}
+
+// 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
+}
+
+// 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.NextLink == nil || len(to.String(aml.NextLink)) < 1 {
+ 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.aml)
+ if err != nil {
+ return err
+ }
+ 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 {
+ 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"`
+}
+
+// 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"`
+}
+
+// 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
+}
+
+// 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.NextLink == nil || len(to.String(al.NextLink)) < 1 {
+ 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.al)
+ if err != nil {
+ return err
+ }
+ 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 {
+ 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"`
+}
+
+// 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
+}
+
+// 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.NextLink == nil || len(to.String(apsl.NextLink)) < 1 {
+ 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.apsl)
+ if err != nil {
+ return err
+ }
+ 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 {
+ 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', '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)
+}
+
+// AsOnPremiseResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
+func (ard AzureResourceDetails) AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, 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"`
+}
+
+// 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"`
+}
+
+// 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"`
+}
+
+// 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
+}
+
+// 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)))
+}
+
+// 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.cl)
+ if err != nil {
+ return err
+ }
+ page.cl = 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 *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"`
+}
+
+// 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"`
+}
+
+// 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
+}
+
+// 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)))
+}
+
+// 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.crl)
+ if err != nil {
+ return err
+ }
+ page.crl = 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 *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"`
+}
+
+// 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"`
+}
+
+// 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"`
+}
+
+// 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"`
+}
+
+// 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"`
+}
+
+// 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
+}
+
+// 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.NextLink == nil || len(to.String(csl.NextLink)) < 1 {
+ 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.csl)
+ if err != nil {
+ return err
+ }
+ page.csl = 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 *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"`
+}
+
+// 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
+}
+
+// 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)))
+}
+
+// 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.cl)
+ if err != nil {
+ return err
+ }
+ page.cl = 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 *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"`
+}
+
+// CVSS CVSS details
+type CVSS struct {
+ // Base - READ-ONLY; CVSS base
+ Base *float64 `json:"base,omitempty"`
+}
+
+// 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"`
+}
+
+// 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
+}
+
+// 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)))
+}
+
+// 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.dsgl)
+ if err != nil {
+ return err
+ }
+ page.dsgl = 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 *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"`
+}
+
+// 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
+}
+
+// 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)))
+}
+
+// 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.dssl)
+ if err != nil {
+ return err
+ }
+ page.dssl = 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 *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"`
+}
+
+// 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
+}
+
+// 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.NextLink == nil || len(to.String(essl.NextLink)) < 1 {
+ 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.essl)
+ if err != nil {
+ return err
+ }
+ 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 {
+ 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"`
+}
+
+// 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"`
+}
+
+// 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
+}
+
+// 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)))
+}
+
+// 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.ippl)
+ if err != nil {
+ return err
+ }
+ page.ippl = 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 *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"`
+}
+
+// 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
+}
+
+// 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.NextLink == nil || len(to.String(ial.NextLink)) < 1 {
+ 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.ial)
+ if err != nil {
+ return err
+ }
+ page.ial = 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 *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"`
+}
+
+// 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 iotAlertTypeProperties IotAlertTypeProperties
+ err = json.Unmarshal(*v, &iotAlertTypeProperties)
+ if err != nil {
+ return err
+ }
+ iat.IotAlertTypeProperties = &iotAlertTypeProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ iat.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ 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"`
+ // 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"`
+}
+
+// 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 ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ itsaa.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ itsaa.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ 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
+ }
+ }
+ }
+
+ return nil
+}
+
+// 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"`
+}
+
+// IoTSecurityAggregatedAlertListIterator provides access to a complete listing of
+// IoTSecurityAggregatedAlert values.
+type IoTSecurityAggregatedAlertListIterator struct {
+ i int
+ page IoTSecurityAggregatedAlertListPage
+}
+
+// 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
+}
+
+// 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())
+}
+
+// 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())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter IoTSecurityAggregatedAlertListIterator) Response() IoTSecurityAggregatedAlertList {
+ 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 {
+ if !iter.page.NotDone() {
+ return IoTSecurityAggregatedAlert{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// Creates a new instance of the IoTSecurityAggregatedAlertListIterator type.
+func NewIoTSecurityAggregatedAlertListIterator(page IoTSecurityAggregatedAlertListPage) IoTSecurityAggregatedAlertListIterator {
+ return IoTSecurityAggregatedAlertListIterator{page: page}
+}
+
+// IsEmpty returns true if the ListResult contains no values.
+func (itsaal IoTSecurityAggregatedAlertList) IsEmpty() bool {
+ return itsaal.Value == nil || len(*itsaal.Value) == 0
+}
+
+// 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.NextLink == nil || len(to.String(itsaal.NextLink)) < 1 {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(itsaal.NextLink)))
+}
+
+// IoTSecurityAggregatedAlertListPage contains a page of IoTSecurityAggregatedAlert values.
+type IoTSecurityAggregatedAlertListPage struct {
+ fn func(context.Context, IoTSecurityAggregatedAlertList) (IoTSecurityAggregatedAlertList, error)
+ itsaal IoTSecurityAggregatedAlertList
+}
+
+// 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)
+ }()
+ }
+ next, err := page.fn(ctx, page.itsaal)
+ if err != nil {
+ return err
+ }
+ 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 {
+ 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()
+}
+
+// Response returns the raw server response from the last page request.
+func (page IoTSecurityAggregatedAlertListPage) Response() IoTSecurityAggregatedAlertList {
+ return page.itsaal
+}
+
+// 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
+}
+
+// Creates a new instance of the IoTSecurityAggregatedAlertListPage type.
+func NewIoTSecurityAggregatedAlertListPage(getNextPage func(context.Context, IoTSecurityAggregatedAlertList) (IoTSecurityAggregatedAlertList, error)) IoTSecurityAggregatedAlertListPage {
+ return IoTSecurityAggregatedAlertListPage{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.
+ 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"`
+}
+
+// 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"`
+}
+
+// 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"`
+}
+
+// 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)
+}
+
+// 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
+}
+
+// IoTSecurityAggregatedRecommendationList list of IoT Security solution aggregated recommendations.
+type IoTSecurityAggregatedRecommendationList 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.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// IoTSecurityAggregatedRecommendationListIterator provides access to a complete listing of
+// IoTSecurityAggregatedRecommendation values.
+type IoTSecurityAggregatedRecommendationListIterator struct {
+ i int
+ 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 *IoTSecurityAggregatedRecommendationListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedRecommendationListIterator.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 *IoTSecurityAggregatedRecommendationListIterator) 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 {
+ 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 {
+ 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 {
+ if !iter.page.NotDone() {
+ return IoTSecurityAggregatedRecommendation{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// 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 (itsarl IoTSecurityAggregatedRecommendationList) IsEmpty() bool {
+ return itsarl.Value == nil || len(*itsarl.Value) == 0
+}
+
+// ioTSecurityAggregatedRecommendationListPreparer 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 {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(itsarl.NextLink)))
+}
+
+// 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 *IoTSecurityAggregatedRecommendationListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedRecommendationListPage.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.itsarl)
+ if err != nil {
+ return err
+ }
+ 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 {
+ 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()
+}
+
+// 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"`
+}
+
+// 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"`
+}
+
+// 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"`
+}
+
+// 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"`
+}
+
+// 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 IoTSecuritySolutionAnalyticsModel struct.
+func (itssam *IoTSecuritySolutionAnalyticsModel) 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 ioTSecuritySolutionAnalyticsModelProperties IoTSecuritySolutionAnalyticsModelProperties
+ err = json.Unmarshal(*v, &ioTSecuritySolutionAnalyticsModelProperties)
+ if err != nil {
return err
}
- asp.DeviceType = &deviceType
+ 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)
+ if err != nil {
+ return err
+ }
+ itssam.Type = &typeVar
+ }
+ }
+ }
+
+ 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
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ itssm.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ itssm.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)
+ if err != nil {
+ return err
+ }
+ itssm.IoTSecuritySolutionProperties = &ioTSecuritySolutionProperties
+ }
+ }
+ }
+
+ 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 {
+ autorest.Response `json:"-"`
+ // 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"`
+}
+
+// IoTSecuritySolutionsListIterator provides access to a complete listing of IoTSecuritySolutionModel
+// values.
+type IoTSecuritySolutionsListIterator struct {
+ i int
+ 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 *IoTSecuritySolutionsListIterator) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecuritySolutionsListIterator.NextWithContext")
+ defer func() {
+ sc := -1
+ if iter.Response().Response.Response != nil {
+ sc = iter.Response().Response.Response.StatusCode
}
- case "workspace":
- if v != nil {
- var workspace ConnectedWorkspace
- err = json.Unmarshal(*v, &workspace)
- if err != nil {
- return err
- }
- asp.Workspace = &workspace
+ 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 *IoTSecuritySolutionsListIterator) 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 {
+ 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 {
+ 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 {
+ if !iter.page.NotDone() {
+ return IoTSecuritySolutionModel{}
+ }
+ return iter.page.Values()[iter.i]
+}
+
+// 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 (itssl IoTSecuritySolutionsList) IsEmpty() bool {
+ return itssl.Value == nil || len(*itssl.Value) == 0
+}
+
+// ioTSecuritySolutionsListPreparer 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 {
+ return nil, nil
+ }
+ return autorest.Prepare((&http.Request{}).WithContext(ctx),
+ autorest.AsJSON(),
+ autorest.AsGet(),
+ autorest.WithBaseURL(to.String(itssl.NextLink)))
+}
+
+// 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 *IoTSecuritySolutionsListPage) NextWithContext(ctx context.Context) (err error) {
+ if tracing.IsEnabled() {
+ ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecuritySolutionsListPage.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.itssl)
+ if err != nil {
+ return err
+ }
+ 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 {
+ 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()
+}
+
+// Response returns the raw server response from the last page request.
+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 IoTSecuritySolutionsListPage) Values() []IoTSecuritySolutionModel {
+ if page.itssl.IsEmpty() {
+ return nil
+ }
+ return *page.itssl.Value
+}
+
+// Creates a new instance of the IoTSecuritySolutionsListPage type.
+func NewIoTSecuritySolutionsListPage(getNextPage func(context.Context, IoTSecuritySolutionsList) (IoTSecuritySolutionsList, error)) IoTSecuritySolutionsListPage {
+ return IoTSecuritySolutionsListPage{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"`
+}
+
+// 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"`
+}
+
+// JitNetworkAccessPoliciesListIterator provides access to a complete listing of JitNetworkAccessPolicy
+// values.
+type JitNetworkAccessPoliciesListIterator struct {
+ i int
+ page JitNetworkAccessPoliciesListPage
+}
+
+// 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
+}
+
+// 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())
+}
+
+// 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())
+}
+
+// Response returns the raw server response from the last page request.
+func (iter JitNetworkAccessPoliciesListIterator) Response() JitNetworkAccessPoliciesList {
+ 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 JitNetworkAccessPoliciesListIterator) Value() JitNetworkAccessPolicy {
+ if !iter.page.NotDone() {
+ return JitNetworkAccessPolicy{}
+ }
+ 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
+}
+
+// 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)))
+}
+
+// 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)
+ }()
}
-
+ next, err := page.fn(ctx, page.jnapl)
+ if err != nil {
+ return err
+ }
+ page.jnapl = next
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 *JitNetworkAccessPoliciesListPage) Next() error {
+ return page.NextWithContext(context.Background())
+}
+
+// NotDone returns true if the page enumeration should be started or is not yet complete.
+func (page JitNetworkAccessPoliciesListPage) NotDone() bool {
+ return !page.jnapl.IsEmpty()
+}
+
+// Response returns the raw server response from the last page request.
+func (page JitNetworkAccessPoliciesListPage) Response() JitNetworkAccessPoliciesList {
+ return page.jnapl
+}
+
+// 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
+}
+
+// Creates a new instance of the JitNetworkAccessPoliciesListPage type.
+func NewJitNetworkAccessPoliciesListPage(getNextPage func(context.Context, JitNetworkAccessPoliciesList) (JitNetworkAccessPoliciesList, error)) JitNetworkAccessPoliciesListPage {
+ return JitNetworkAccessPoliciesListPage{fn: getNextPage}
+}
+
+// JitNetworkAccessPolicy ...
+type JitNetworkAccessPolicy 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"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ *JitNetworkAccessPolicyProperties `json:"properties,omitempty"`
}
-// MarshalJSON is the custom marshaler for Automation.
-func (a Automation) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for JitNetworkAccessPolicy.
+func (jnap JitNetworkAccessPolicy) 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 jnap.Kind != nil {
+ objectMap["kind"] = jnap.Kind
}
- if a.Tags != nil {
- objectMap["tags"] = a.Tags
+ if jnap.JitNetworkAccessPolicyProperties != nil {
+ objectMap["properties"] = jnap.JitNetworkAccessPolicyProperties
}
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 JitNetworkAccessPolicy struct.
+func (jnap *JitNetworkAccessPolicy) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -3013,15 +11854,6 @@ func (a *Automation) UnmarshalJSON(body []byte) error {
}
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
@@ -3029,7 +11861,7 @@ func (a *Automation) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.ID = &ID
+ jnap.ID = &ID
}
case "name":
if v != nil {
@@ -3038,7 +11870,7 @@ func (a *Automation) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.Name = &name
+ jnap.Name = &name
}
case "type":
if v != nil {
@@ -3047,16 +11879,7 @@ func (a *Automation) UnmarshalJSON(body []byte) error {
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
+ jnap.Type = &typeVar
}
case "kind":
if v != nil {
@@ -3065,25 +11888,25 @@ func (a *Automation) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- a.Kind = &kind
+ jnap.Kind = &kind
}
- case "etag":
+ case "location":
if v != nil {
- var etag string
- err = json.Unmarshal(*v, &etag)
+ var location string
+ err = json.Unmarshal(*v, &location)
if err != nil {
return err
}
- a.Etag = &etag
+ jnap.Location = &location
}
- case "tags":
+ case "properties":
if v != nil {
- var tags map[string]*string
- err = json.Unmarshal(*v, &tags)
+ var jitNetworkAccessPolicyProperties JitNetworkAccessPolicyProperties
+ err = json.Unmarshal(*v, &jitNetworkAccessPolicyProperties)
if err != nil {
return err
}
- a.Tags = tags
+ jnap.JitNetworkAccessPolicyProperties = &jitNetworkAccessPolicyProperties
}
}
}
@@ -3091,2016 +11914,1206 @@ func (a *Automation) UnmarshalJSON(body []byte) error {
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)
+// 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"`
}
-// AsAutomationActionLogicApp is the BasicAutomationAction implementation for AutomationActionEventHub.
-func (aaeh AutomationActionEventHub) AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool) {
- return nil, false
+// 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"`
}
-// AsAutomationActionEventHub is the BasicAutomationAction implementation for AutomationActionEventHub.
-func (aaeh AutomationActionEventHub) AsAutomationActionEventHub() (*AutomationActionEventHub, bool) {
- return &aaeh, true
+// 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"`
}
-// AsAutomationActionWorkspace is the BasicAutomationAction implementation for AutomationActionEventHub.
-func (aaeh AutomationActionEventHub) AsAutomationActionWorkspace() (*AutomationActionWorkspace, bool) {
- return nil, false
+// 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"`
}
-// AsAutomationAction is the BasicAutomationAction implementation for AutomationActionEventHub.
-func (aaeh AutomationActionEventHub) AsAutomationAction() (*AutomationAction, bool) {
- return nil, false
+// 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"`
}
-// AsBasicAutomationAction is the BasicAutomationAction implementation for AutomationActionEventHub.
-func (aaeh AutomationActionEventHub) AsBasicAutomationAction() (BasicAutomationAction, bool) {
- return &aaeh, true
+// 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"`
}
-// 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"`
+// 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"`
}
-// 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)
+// 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"`
}
-// AsAutomationActionLogicApp is the BasicAutomationAction implementation for AutomationActionLogicApp.
-func (aala AutomationActionLogicApp) AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool) {
- return &aala, true
+// 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"`
}
-// AsAutomationActionEventHub is the BasicAutomationAction implementation for AutomationActionLogicApp.
-func (aala AutomationActionLogicApp) AsAutomationActionEventHub() (*AutomationActionEventHub, bool) {
- return nil, false
+// Kind describes an Azure resource with kind
+type Kind struct {
+ // Kind - Kind of the resource
+ Kind *string `json:"kind,omitempty"`
}
-// AsAutomationActionWorkspace is the BasicAutomationAction implementation for AutomationActionLogicApp.
-func (aala AutomationActionLogicApp) AsAutomationActionWorkspace() (*AutomationActionWorkspace, bool) {
- return nil, false
+// 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)
}
-// AsAutomationAction is the BasicAutomationAction implementation for AutomationActionLogicApp.
-func (aala AutomationActionLogicApp) AsAutomationAction() (*AutomationAction, bool) {
- return nil, false
+// 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"`
}
-// AsBasicAutomationAction is the BasicAutomationAction implementation for AutomationActionLogicApp.
-func (aala AutomationActionLogicApp) AsBasicAutomationAction() (BasicAutomationAction, bool) {
- return &aala, true
+func unmarshalBasicListCustomAlertRule(body []byte) (BasicListCustomAlertRule, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return nil, err
+ }
+
+ 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
+ }
-// 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"`
+ lcarArray := make([]BasicListCustomAlertRule, len(rawMessages))
+
+ 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 AutomationActionWorkspace.
-func (aaw AutomationActionWorkspace) MarshalJSON() ([]byte, error) {
- aaw.ActionType = ActionTypeWorkspace
+// MarshalJSON is the custom marshaler for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) MarshalJSON() ([]byte, error) {
+ lcar.RuleType = RuleTypeListCustomAlertRule
objectMap := make(map[string]interface{})
- if aaw.WorkspaceResourceID != nil {
- objectMap["workspaceResourceId"] = aaw.WorkspaceResourceID
+ if lcar.IsEnabled != nil {
+ objectMap["isEnabled"] = lcar.IsEnabled
}
- if aaw.ActionType != "" {
- objectMap["actionType"] = aaw.ActionType
+ if lcar.RuleType != "" {
+ objectMap["ruleType"] = lcar.RuleType
}
return json.Marshal(objectMap)
}
-// AsAutomationActionLogicApp is the BasicAutomationAction implementation for AutomationActionWorkspace.
-func (aaw AutomationActionWorkspace) AsAutomationActionLogicApp() (*AutomationActionLogicApp, bool) {
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
return nil, false
}
-// AsAutomationActionEventHub is the BasicAutomationAction implementation for AutomationActionWorkspace.
-func (aaw AutomationActionWorkspace) AsAutomationActionEventHub() (*AutomationActionEventHub, bool) {
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, 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) {
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, 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"`
-}
-
-// 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())
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter AutomationListIterator) Response() AutomationList {
- return iter.page.Response()
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, 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 AutomationListIterator) Value() Automation {
- if !iter.page.NotDone() {
- return Automation{}
- }
- return iter.page.Values()[iter.i]
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// Creates a new instance of the AutomationListIterator type.
-func NewAutomationListIterator(page AutomationListPage) AutomationListIterator {
- return AutomationListIterator{page: page}
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (al AutomationList) IsEmpty() bool {
- return al.Value == nil || len(*al.Value) == 0
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return &lcar, true
}
-// 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.NextLink == nil || len(to.String(al.NextLink)) < 1 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(al.NextLink)))
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return &lcar, true
}
-// AutomationListPage contains a page of Automation values.
-type AutomationListPage struct {
- fn func(context.Context, AutomationList) (AutomationList, error)
- al AutomationList
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, 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 *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)
- }()
- }
- next, err := page.fn(ctx, page.al)
- if err != nil {
- return err
- }
- page.al = next
- return nil
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsLocalUserNotAllowed() (*LocalUserNotAllowed, 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 *AutomationListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page AutomationListPage) NotDone() bool {
- return !page.al.IsEmpty()
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page AutomationListPage) Response() AutomationList {
- return page.al
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the AutomationListPage type.
-func NewAutomationListPage(getNextPage func(context.Context, AutomationList) (AutomationList, error)) AutomationListPage {
- return AutomationListPage{fn: getNextPage}
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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
- }
- }
- }
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
- return nil
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
}
-// 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)
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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
- }
- }
- }
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
- return nil
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
}
-// 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"`
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for ListCustomAlertRule.
+func (lcar ListCustomAlertRule) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &lcar, true
}
-// AutoProvisioningSettingListIterator provides access to a complete listing of AutoProvisioningSetting
-// values.
-type AutoProvisioningSettingListIterator struct {
- i int
- page AutoProvisioningSettingListPage
+// 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"`
}
-// 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)
- }()
+// MarshalJSON is the custom marshaler for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) MarshalJSON() ([]byte, error) {
+ luna.RuleType = RuleTypeLocalUserNotAllowed
+ objectMap := make(map[string]interface{})
+ if luna.AllowlistValues != nil {
+ objectMap["allowlistValues"] = luna.AllowlistValues
}
- iter.i++
- if iter.i < len(iter.page.Values()) {
- return nil
+ if luna.IsEnabled != nil {
+ objectMap["isEnabled"] = luna.IsEnabled
}
- err = iter.page.NextWithContext(ctx)
- if err != nil {
- iter.i--
- return err
+ if luna.RuleType != "" {
+ objectMap["ruleType"] = luna.RuleType
}
- iter.i = 0
- return nil
+ 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 *AutoProvisioningSettingListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
}
-// 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())
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter AutoProvisioningSettingListIterator) Response() AutoProvisioningSettingList {
- return iter.page.Response()
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, 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 AutoProvisioningSettingListIterator) Value() AutoProvisioningSetting {
- if !iter.page.NotDone() {
- return AutoProvisioningSetting{}
- }
- return iter.page.Values()[iter.i]
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return nil, false
}
-// Creates a new instance of the AutoProvisioningSettingListIterator type.
-func NewAutoProvisioningSettingListIterator(page AutoProvisioningSettingListPage) AutoProvisioningSettingListIterator {
- return AutoProvisioningSettingListIterator{page: page}
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (apsl AutoProvisioningSettingList) IsEmpty() bool {
- return apsl.Value == nil || len(*apsl.Value) == 0
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return &luna, true
}
-// 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.NextLink == nil || len(to.String(apsl.NextLink)) < 1 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(apsl.NextLink)))
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
}
-// AutoProvisioningSettingListPage contains a page of AutoProvisioningSetting values.
-type AutoProvisioningSettingListPage struct {
- fn func(context.Context, AutoProvisioningSettingList) (AutoProvisioningSettingList, error)
- apsl AutoProvisioningSettingList
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsListCustomAlertRule() (*ListCustomAlertRule, 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 *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)
- }()
- }
- next, err := page.fn(ctx, page.apsl)
- if err != nil {
- return err
- }
- page.apsl = next
- return nil
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return &luna, 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 *AutoProvisioningSettingListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page AutoProvisioningSettingListPage) NotDone() bool {
- return !page.apsl.IsEmpty()
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return &luna, true
}
-// Response returns the raw server response from the last page request.
-func (page AutoProvisioningSettingListPage) Response() AutoProvisioningSettingList {
- return page.apsl
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
}
-// 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
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the AutoProvisioningSettingListPage type.
-func NewAutoProvisioningSettingListPage(getNextPage func(context.Context, AutoProvisioningSettingList) (AutoProvisioningSettingList, error)) AutoProvisioningSettingListPage {
- return AutoProvisioningSettingListPage{fn: getNextPage}
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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)
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// AsOnPremiseResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
-func (ard AzureResourceDetails) AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool) {
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
return nil, false
}
-// AsAzureResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
-func (ard AzureResourceDetails) AsAzureResourceDetails() (*AzureResourceDetails, bool) {
- return &ard, true
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// AsResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
-func (ard AzureResourceDetails) AsResourceDetails() (*ResourceDetails, bool) {
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
return nil, false
}
-// AsBasicResourceDetails is the BasicResourceDetails implementation for AzureResourceDetails.
-func (ard AzureResourceDetails) AsBasicResourceDetails() (BasicResourceDetails, bool) {
- return &ard, true
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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)
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
}
-// AsCefExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
-func (cess CefExternalSecuritySolution) AsCefExternalSecuritySolution() (*CefExternalSecuritySolution, bool) {
- return &cess, true
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
}
-// AsAtaExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
-func (cess CefExternalSecuritySolution) AsAtaExternalSecuritySolution() (*AtaExternalSecuritySolution, bool) {
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
return nil, false
}
-// AsAadExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
-func (cess CefExternalSecuritySolution) AsAadExternalSecuritySolution() (*AadExternalSecuritySolution, bool) {
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
return nil, false
}
-// AsExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
-func (cess CefExternalSecuritySolution) AsExternalSecuritySolution() (*ExternalSecuritySolution, bool) {
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
return nil, false
}
-// AsBasicExternalSecuritySolution is the BasicExternalSecuritySolution implementation for CefExternalSecuritySolution.
-func (cess CefExternalSecuritySolution) AsBasicExternalSecuritySolution() (BasicExternalSecuritySolution, bool) {
- return &cess, true
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
}
-// MarshalJSON is the custom marshaler for CefSolutionProperties.
-func (csp CefSolutionProperties) MarshalJSON() ([]byte, error) {
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for LocalUserNotAllowed.
+func (luna LocalUserNotAllowed) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &luna, true
+}
+
+// Location describes an Azure resource with location
+type Location struct {
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+}
+
+// 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 csp.Hostname != nil {
- objectMap["hostname"] = csp.Hostname
- }
- if csp.Agent != nil {
- objectMap["agent"] = csp.Agent
+ if mcmniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = mcmniar.TimeWindowSize
}
- 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 mcmniar.MinThreshold != nil {
+ objectMap["minThreshold"] = mcmniar.MinThreshold
}
- if csp.Workspace != nil {
- objectMap["workspace"] = csp.Workspace
+ if mcmniar.MaxThreshold != nil {
+ objectMap["maxThreshold"] = mcmniar.MaxThreshold
}
- for k, v := range csp.AdditionalProperties {
- objectMap[k] = v
+ 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 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
- }
- }
- }
+// 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
}
-// CloudError error response structure.
-type CloudError struct {
- // CloudErrorBody - Error data
- *CloudErrorBody `json:"error,omitempty"`
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return nil, false
}
-// 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)
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &mcmniar, true
}
-// 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
- }
- }
- }
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
+}
- return nil
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// 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"`
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
}
-// 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"`
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
}
-// 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)
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
}
-// 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
- }
- }
- }
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
+}
- return nil
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, 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"`
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
}
-// ComplianceListIterator provides access to a complete listing of Compliance values.
-type ComplianceListIterator struct {
- i int
- page ComplianceListPage
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) 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 *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
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return &mcmniar, true
+}
+
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
+}
+
+// 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
}
-// 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())
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, 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())
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter ComplianceListIterator) Response() ComplianceList {
- return iter.page.Response()
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, 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 ComplianceListIterator) Value() Compliance {
- if !iter.page.NotDone() {
- return Compliance{}
- }
- return iter.page.Values()[iter.i]
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the ComplianceListIterator type.
-func NewComplianceListIterator(page ComplianceListPage) ComplianceListIterator {
- return ComplianceListIterator{page: page}
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, 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
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, 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)))
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
}
-// ComplianceListPage contains a page of Compliance values.
-type ComplianceListPage struct {
- fn func(context.Context, ComplianceList) (ComplianceList, error)
- cl ComplianceList
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, 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
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DMessagesNotInAllowedRange.
+func (mcmniar MqttC2DMessagesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &mcmniar, 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 *ComplianceListPage) Next() error {
- return page.NextWithContext(context.Background())
+// 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 - 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"`
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page ComplianceListPage) NotDone() bool {
- return !page.cl.IsEmpty()
+// 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)
}
-// Response returns the raw server response from the last page request.
-func (page ComplianceListPage) Response() ComplianceList {
- return page.cl
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, 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
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &mcrmniar, true
}
-// Creates a new instance of the ComplianceListPage type.
-func NewComplianceListPage(getNextPage func(context.Context, ComplianceList) (ComplianceList, error)) ComplianceListPage {
- return ComplianceListPage{fn: getNextPage}
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, 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"`
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &mcrmniar, true
}
-// 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"`
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// 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)
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// 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
- }
- }
- }
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
+}
- return nil
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, 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"`
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
}
-// ComplianceResultListIterator provides access to a complete listing of ComplianceResult values.
-type ComplianceResultListIterator struct {
- i int
- page ComplianceResultListPage
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, 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
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, 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())
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
}
-// 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())
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter ComplianceResultListIterator) Response() ComplianceResultList {
- return iter.page.Response()
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, 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]
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the ComplianceResultListIterator type.
-func NewComplianceResultListIterator(page ComplianceResultListPage) ComplianceResultListIterator {
- return ComplianceResultListIterator{page: page}
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, 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
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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)))
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return &mcrmniar, true
}
-// ComplianceResultListPage contains a page of ComplianceResult values.
-type ComplianceResultListPage struct {
- fn func(context.Context, ComplianceResultList) (ComplianceResultList, error)
- crl ComplianceResultList
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, 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
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, 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())
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, 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()
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page ComplianceResultListPage) Response() ComplianceResultList {
- return page.crl
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, 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
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, 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}
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, 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"`
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, 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"`
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, 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"`
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, 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"`
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
}
-// ConnectedWorkspace ...
-type ConnectedWorkspace struct {
- // ID - Azure resource ID of the connected OMS workspace
- ID *string `json:"id,omitempty"`
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for MqttC2DRejectedMessagesNotInAllowedRange.
+func (mcrmniar MqttC2DRejectedMessagesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &mcrmniar, true
}
-// 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"`
+// 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 Contact.
-func (c Contact) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ mdmniar.RuleType = RuleTypeMqttD2CMessagesNotInAllowedRange
objectMap := make(map[string]interface{})
- if c.ContactProperties != nil {
- objectMap["properties"] = c.ContactProperties
+ if mdmniar.TimeWindowSize != nil {
+ objectMap["timeWindowSize"] = mdmniar.TimeWindowSize
}
- 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
+ if mdmniar.MinThreshold != nil {
+ objectMap["minThreshold"] = mdmniar.MinThreshold
}
- 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
- }
- }
+ 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)
+}
- return nil
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
}
-// 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"`
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &mdmniar, true
}
-// ContactListIterator provides access to a complete listing of Contact values.
-type ContactListIterator struct {
- i int
- page ContactListPage
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, 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 *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
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &mdmniar, 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 *ContactListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, 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())
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter ContactListIterator) Response() ContactList {
- return iter.page.Response()
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, 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]
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
}
-// Creates a new instance of the ContactListIterator type.
-func NewContactListIterator(page ContactListPage) ContactListIterator {
- return ContactListIterator{page: page}
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, 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
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, 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)))
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
}
-// ContactListPage contains a page of Contact values.
-type ContactListPage struct {
- fn func(context.Context, ContactList) (ContactList, error)
- cl ContactList
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, 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
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, 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())
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page ContactListPage) NotDone() bool {
- return !page.cl.IsEmpty()
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page ContactListPage) Response() ContactList {
- return page.cl
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, 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
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, 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}
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, 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"`
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, 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"`
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, 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)
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return &mdmniar, true
}
-// AsSQLServerVulnerabilityProperties is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
-func (crvp ContainerRegistryVulnerabilityProperties) AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool) {
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
return nil, false
}
-// AsContainerRegistryVulnerabilityProperties is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
-func (crvp ContainerRegistryVulnerabilityProperties) AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool) {
- return &crvp, true
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
}
-// AsServerVulnerabilityProperties is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
-func (crvp ContainerRegistryVulnerabilityProperties) AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool) {
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
return nil, false
}
-// AsAdditionalData is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
-func (crvp ContainerRegistryVulnerabilityProperties) AsAdditionalData() (*AdditionalData, bool) {
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
return nil, false
}
-// AsBasicAdditionalData is the BasicAdditionalData implementation for ContainerRegistryVulnerabilityProperties.
-func (crvp ContainerRegistryVulnerabilityProperties) AsBasicAdditionalData() (BasicAdditionalData, bool) {
- return &crvp, true
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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 - The type of the custom alert rule.
- RuleType *string `json:"ruleType,omitempty"`
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
}
-// CVSS CVSS details
-type CVSS struct {
- // Base - READ-ONLY; CVSS base
- Base *float64 `json:"base,omitempty"`
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, 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"`
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for MqttD2CMessagesNotInAllowedRange.
+func (mdmniar MqttD2CMessagesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &mdmniar, true
+}
+
+// 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"`
}
-// MarshalJSON is the custom marshaler for DataExportSetting.
-func (desVar DataExportSetting) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for OnPremiseResourceDetails.
+func (oprd OnPremiseResourceDetails) MarshalJSON() ([]byte, error) {
+ oprd.Source = SourceOnPremise
objectMap := make(map[string]interface{})
- if desVar.DataExportSettingProperties != nil {
- objectMap["properties"] = desVar.DataExportSettingProperties
+ if oprd.WorkspaceID != nil {
+ objectMap["workspaceId"] = oprd.WorkspaceID
}
- if desVar.Kind != "" {
- objectMap["kind"] = desVar.Kind
+ if oprd.Vmuuid != nil {
+ objectMap["vmuuid"] = oprd.Vmuuid
}
- return json.Marshal(objectMap)
-}
-
-// 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
+ if oprd.SourceComputerID != nil {
+ objectMap["sourceComputerId"] = oprd.SourceComputerID
}
- 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
- }
- }
+ if oprd.MachineName != nil {
+ objectMap["machineName"] = oprd.MachineName
}
-
- return nil
+ if oprd.Source != "" {
+ objectMap["source"] = oprd.Source
+ }
+ 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"`
+// AsOnPremiseResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
+func (oprd OnPremiseResourceDetails) AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool) {
+ return &oprd, true
}
-// 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"`
+// AsAzureResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
+func (oprd OnPremiseResourceDetails) AsAzureResourceDetails() (*AzureResourceDetails, 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"`
+// AsResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
+func (oprd OnPremiseResourceDetails) AsResourceDetails() (*ResourceDetails, 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)
+// AsBasicResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
+func (oprd OnPremiseResourceDetails) AsBasicResourceDetails() (BasicResourceDetails, bool) {
+ return &oprd, true
}
-// 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
- }
- }
- }
+// 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"`
+}
- return nil
+// 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"`
}
-// DeviceSecurityGroupList list of device security groups
-type DeviceSecurityGroupList struct {
+// OperationList list of possible operations for Microsoft.Security resource provider
+type OperationList struct {
autorest.Response `json:"-"`
- // Value - List of device security group objects
- Value *[]DeviceSecurityGroup `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"`
}
-// DeviceSecurityGroupListIterator provides access to a complete listing of DeviceSecurityGroup values.
-type DeviceSecurityGroupListIterator struct {
+// OperationListIterator provides access to a complete listing of Operation values.
+type OperationListIterator struct {
i int
- page DeviceSecurityGroupListPage
+ 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 *DeviceSecurityGroupListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *OperationListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/DeviceSecurityGroupListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/OperationListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -5125,62 +13138,62 @@ func (iter *DeviceSecurityGroupListIterator) 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 *DeviceSecurityGroupListIterator) 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 DeviceSecurityGroupListIterator) 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 DeviceSecurityGroupListIterator) Response() DeviceSecurityGroupList {
+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 DeviceSecurityGroupListIterator) Value() DeviceSecurityGroup {
+func (iter OperationListIterator) Value() Operation {
if !iter.page.NotDone() {
- return DeviceSecurityGroup{}
+ return Operation{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the DeviceSecurityGroupListIterator type.
-func NewDeviceSecurityGroupListIterator(page DeviceSecurityGroupListPage) DeviceSecurityGroupListIterator {
- return DeviceSecurityGroupListIterator{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 (dsgl DeviceSecurityGroupList) IsEmpty() bool {
- return dsgl.Value == nil || len(*dsgl.Value) == 0
+func (ol OperationList) IsEmpty() bool {
+ return ol.Value == nil || len(*ol.Value) == 0
}
-// deviceSecurityGroupListPreparer prepares a request to retrieve the next set of results.
+// operationListPreparer 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 {
+func (ol OperationList) operationListPreparer(ctx context.Context) (*http.Request, error) {
+ if ol.NextLink == nil || len(to.String(ol.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(dsgl.NextLink)))
+ autorest.WithBaseURL(to.String(ol.NextLink)))
}
-// DeviceSecurityGroupListPage contains a page of DeviceSecurityGroup values.
-type DeviceSecurityGroupListPage struct {
- fn func(context.Context, DeviceSecurityGroupList) (DeviceSecurityGroupList, error)
- dsgl DeviceSecurityGroupList
+// 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 *DeviceSecurityGroupListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *OperationListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/DeviceSecurityGroupListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/OperationListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -5189,81 +13202,89 @@ func (page *DeviceSecurityGroupListPage) NextWithContext(ctx context.Context) (e
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.dsgl)
+ next, err := page.fn(ctx, page.ol)
if err != nil {
return err
}
- page.dsgl = next
+ 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 *DeviceSecurityGroupListPage) 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 DeviceSecurityGroupListPage) NotDone() bool {
- return !page.dsgl.IsEmpty()
+func (page OperationListPage) NotDone() bool {
+ return !page.ol.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page DeviceSecurityGroupListPage) Response() DeviceSecurityGroupList {
- return page.dsgl
+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 DeviceSecurityGroupListPage) Values() []DeviceSecurityGroup {
- if page.dsgl.IsEmpty() {
+func (page OperationListPage) Values() []Operation {
+ if page.ol.IsEmpty() {
return nil
}
- return *page.dsgl.Value
+ return *page.ol.Value
}
-// Creates a new instance of the DeviceSecurityGroupListPage type.
-func NewDeviceSecurityGroupListPage(getNextPage func(context.Context, DeviceSecurityGroupList) (DeviceSecurityGroupList, error)) DeviceSecurityGroupListPage {
- return DeviceSecurityGroupListPage{fn: getNextPage}
+// Creates a new instance of the OperationListPage type.
+func NewOperationListPage(getNextPage func(context.Context, OperationList) (OperationList, error)) OperationListPage {
+ return OperationListPage{fn: getNextPage}
}
-// 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"`
+// 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"`
}
-// DiscoveredSecuritySolution ...
-type DiscoveredSecuritySolution 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:"-"`
+ // 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"`
- // 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) {
+// MarshalJSON is the custom marshaler for Pricing.
+func (p Pricing) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if dss.DiscoveredSecuritySolutionProperties != nil {
- objectMap["properties"] = dss.DiscoveredSecuritySolutionProperties
+ if p.PricingProperties != nil {
+ objectMap["properties"] = p.PricingProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for DiscoveredSecuritySolution struct.
-func (dss *DiscoveredSecuritySolution) 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 {
@@ -5271,6 +13292,15 @@ func (dss *DiscoveredSecuritySolution) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
+ case "properties":
+ if v != nil {
+ var pricingProperties PricingProperties
+ err = json.Unmarshal(*v, &pricingProperties)
+ if err != nil {
+ return err
+ }
+ p.PricingProperties = &pricingProperties
+ }
case "id":
if v != nil {
var ID string
@@ -5278,7 +13308,7 @@ func (dss *DiscoveredSecuritySolution) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- dss.ID = &ID
+ p.ID = &ID
}
case "name":
if v != nil {
@@ -5287,7 +13317,7 @@ func (dss *DiscoveredSecuritySolution) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- dss.Name = &name
+ p.Name = &name
}
case "type":
if v != nil {
@@ -5296,600 +13326,451 @@ func (dss *DiscoveredSecuritySolution) UnmarshalJSON(body []byte) error {
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
+ 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"`
+}
+
+// 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
}
-// 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"`
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return nil, false
}
-// DiscoveredSecuritySolutionListIterator provides access to a complete listing of
-// DiscoveredSecuritySolution values.
-type DiscoveredSecuritySolutionListIterator struct {
- i int
- page DiscoveredSecuritySolutionListPage
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, 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
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, 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())
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, 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())
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return &pna, true
}
-// Response returns the raw server response from the last page request.
-func (iter DiscoveredSecuritySolutionListIterator) Response() DiscoveredSecuritySolutionList {
- return iter.page.Response()
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, 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]
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
}
-// Creates a new instance of the DiscoveredSecuritySolutionListIterator type.
-func NewDiscoveredSecuritySolutionListIterator(page DiscoveredSecuritySolutionListPage) DiscoveredSecuritySolutionListIterator {
- return DiscoveredSecuritySolutionListIterator{page: page}
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return &pna, true
}
-// IsEmpty returns true if the ListResult contains no values.
-func (dssl DiscoveredSecuritySolutionList) IsEmpty() bool {
- return dssl.Value == nil || len(*dssl.Value) == 0
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, 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)))
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
}
-// DiscoveredSecuritySolutionListPage contains a page of DiscoveredSecuritySolution values.
-type DiscoveredSecuritySolutionListPage struct {
- fn func(context.Context, DiscoveredSecuritySolutionList) (DiscoveredSecuritySolutionList, error)
- dssl DiscoveredSecuritySolutionList
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return &pna, true
}
-// 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
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, 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())
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, 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()
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page DiscoveredSecuritySolutionListPage) Response() DiscoveredSecuritySolutionList {
- return page.dssl
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, 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
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, 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}
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, 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"`
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, 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"`
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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)
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-func unmarshalBasicExternalSecuritySolution(body []byte) (BasicExternalSecuritySolution, error) {
- var m map[string]interface{}
- err := json.Unmarshal(body, &m)
- if err != nil {
- return nil, err
- }
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for ProcessNotAllowed.
+func (pna ProcessNotAllowed) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
+}
- 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
- }
+// 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"`
}
-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
+// 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 ExternalSecuritySolution.
-func (ess ExternalSecuritySolution) MarshalJSON() ([]byte, error) {
- ess.Kind = KindExternalSecuritySolution
+// MarshalJSON is the custom marshaler for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) MarshalJSON() ([]byte, error) {
+ qpniar.RuleType = RuleTypeQueuePurgesNotInAllowedRange
objectMap := make(map[string]interface{})
- if ess.Kind != "" {
- objectMap["kind"] = ess.Kind
+ 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)
}
-// AsCefExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
-func (ess ExternalSecuritySolution) AsCefExternalSecuritySolution() (*CefExternalSecuritySolution, bool) {
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
return nil, false
}
-// AsAtaExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
-func (ess ExternalSecuritySolution) AsAtaExternalSecuritySolution() (*AtaExternalSecuritySolution, bool) {
- return nil, false
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &qpniar, true
}
-// AsAadExternalSecuritySolution is the BasicExternalSecuritySolution implementation for ExternalSecuritySolution.
-func (ess ExternalSecuritySolution) AsAadExternalSecuritySolution() (*AadExternalSecuritySolution, bool) {
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, 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
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &qpniar, 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"`
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// 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"`
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsBasicAllowlistCustomAlertRule() (BasicAllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// 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
+// AsDenylistCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsDenylistCustomAlertRule() (*DenylistCustomAlertRule, bool) {
+ return nil, false
}
-// ExternalSecuritySolutionListIterator provides access to a complete listing of ExternalSecuritySolution
-// values.
-type ExternalSecuritySolutionListIterator struct {
- i int
- page ExternalSecuritySolutionListPage
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsListCustomAlertRule() (*ListCustomAlertRule, 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 *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
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, 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 *ExternalSecuritySolutionListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsConnectionToIPNotAllowed() (*ConnectionToIPNotAllowed, bool) {
+ return nil, false
}
-// 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())
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter ExternalSecuritySolutionListIterator) Response() ExternalSecuritySolutionList {
- return iter.page.Response()
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsProcessNotAllowed() (*ProcessNotAllowed, 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 ExternalSecuritySolutionListIterator) Value() BasicExternalSecuritySolution {
- if !iter.page.NotDone() {
- return ExternalSecuritySolution{}
- }
- return iter.page.Values()[iter.i]
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the ExternalSecuritySolutionListIterator type.
-func NewExternalSecuritySolutionListIterator(page ExternalSecuritySolutionListPage) ExternalSecuritySolutionListIterator {
- return ExternalSecuritySolutionListIterator{page: page}
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (essl ExternalSecuritySolutionList) IsEmpty() bool {
- return essl.Value == nil || len(*essl.Value) == 0
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsMqttC2DMessagesNotInAllowedRange() (*MqttC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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.NextLink == nil || len(to.String(essl.NextLink)) < 1 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(essl.NextLink)))
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsHTTPC2DMessagesNotInAllowedRange() (*HTTPC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// ExternalSecuritySolutionListPage contains a page of BasicExternalSecuritySolution values.
-type ExternalSecuritySolutionListPage struct {
- fn func(context.Context, ExternalSecuritySolutionList) (ExternalSecuritySolutionList, error)
- essl ExternalSecuritySolutionList
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, 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 *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)
- }()
- }
- next, err := page.fn(ctx, page.essl)
- if err != nil {
- return err
- }
- page.essl = next
- return nil
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, 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 *ExternalSecuritySolutionListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page ExternalSecuritySolutionListPage) NotDone() bool {
- return !page.essl.IsEmpty()
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page ExternalSecuritySolutionListPage) Response() ExternalSecuritySolutionList {
- return page.essl
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the ExternalSecuritySolutionListPage type.
-func NewExternalSecuritySolutionListPage(getNextPage func(context.Context, ExternalSecuritySolutionList) (ExternalSecuritySolutionList, error)) ExternalSecuritySolutionListPage {
- return ExternalSecuritySolutionListPage{fn: getNextPage}
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
}
-// ExternalSecuritySolutionModel ...
-type ExternalSecuritySolutionModel struct {
- autorest.Response `json:"-"`
- Value BasicExternalSecuritySolution `json:"value,omitempty"`
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
}
-// 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
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return &qpniar, true
}
-// 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)
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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
- }
- }
- }
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
+}
- return nil
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
}
-// 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"`
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for QueuePurgesNotInAllowedRange.
+func (qpniar QueuePurgesNotInAllowedRange) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &qpniar, true
}
-// InformationProtectionPolicy information protection policy.
-type InformationProtectionPolicy struct {
+// 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 {
autorest.Response `json:"-"`
- // InformationProtectionPolicyProperties - Information protection policy data
- *InformationProtectionPolicyProperties `json:"properties,omitempty"`
+ // RegulatoryComplianceAssessmentProperties - Regulatory compliance assessment data
+ *RegulatoryComplianceAssessmentProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
@@ -5898,17 +13779,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 RegulatoryComplianceAssessment.
+func (rca RegulatoryComplianceAssessment) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if ipp.InformationProtectionPolicyProperties != nil {
- objectMap["properties"] = ipp.InformationProtectionPolicyProperties
+ if rca.RegulatoryComplianceAssessmentProperties != nil {
+ objectMap["properties"] = rca.RegulatoryComplianceAssessmentProperties
}
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 RegulatoryComplianceAssessment struct.
+func (rca *RegulatoryComplianceAssessment) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -5918,12 +13799,12 @@ func (ipp *InformationProtectionPolicy) UnmarshalJSON(body []byte) error {
switch k {
case "properties":
if v != nil {
- var informationProtectionPolicyProperties InformationProtectionPolicyProperties
- err = json.Unmarshal(*v, &informationProtectionPolicyProperties)
+ var regulatoryComplianceAssessmentProperties RegulatoryComplianceAssessmentProperties
+ err = json.Unmarshal(*v, ®ulatoryComplianceAssessmentProperties)
if err != nil {
return err
}
- ipp.InformationProtectionPolicyProperties = &informationProtectionPolicyProperties
+ rca.RegulatoryComplianceAssessmentProperties = ®ulatoryComplianceAssessmentProperties
}
case "id":
if v != nil {
@@ -5932,7 +13813,7 @@ func (ipp *InformationProtectionPolicy) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- ipp.ID = &ID
+ rca.ID = &ID
}
case "name":
if v != nil {
@@ -5941,7 +13822,7 @@ func (ipp *InformationProtectionPolicy) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- ipp.Name = &name
+ rca.Name = &name
}
case "type":
if v != nil {
@@ -5950,7 +13831,7 @@ func (ipp *InformationProtectionPolicy) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- ipp.Type = &typeVar
+ rca.Type = &typeVar
}
}
}
@@ -5958,27 +13839,26 @@ func (ipp *InformationProtectionPolicy) UnmarshalJSON(body []byte) error {
return nil
}
-// InformationProtectionPolicyList information protection policies response.
-type InformationProtectionPolicyList struct {
+// RegulatoryComplianceAssessmentList list of regulatory compliance assessment response
+type RegulatoryComplianceAssessmentList struct {
autorest.Response `json:"-"`
- // Value - List of information protection policies.
- Value *[]InformationProtectionPolicy `json:"value,omitempty"`
+ Value *[]RegulatoryComplianceAssessment `json:"value,omitempty"`
// NextLink - READ-ONLY; The URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// InformationProtectionPolicyListIterator provides access to a complete listing of
-// InformationProtectionPolicy values.
-type InformationProtectionPolicyListIterator struct {
+// RegulatoryComplianceAssessmentListIterator provides access to a complete listing of
+// RegulatoryComplianceAssessment values.
+type RegulatoryComplianceAssessmentListIterator struct {
i int
- page InformationProtectionPolicyListPage
+ 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 *InformationProtectionPolicyListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *RegulatoryComplianceAssessmentListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/InformationProtectionPolicyListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceAssessmentListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -6003,62 +13883,62 @@ func (iter *InformationProtectionPolicyListIterator) 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 *InformationProtectionPolicyListIterator) 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 InformationProtectionPolicyListIterator) 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 InformationProtectionPolicyListIterator) Response() InformationProtectionPolicyList {
+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 InformationProtectionPolicyListIterator) Value() InformationProtectionPolicy {
+func (iter RegulatoryComplianceAssessmentListIterator) Value() RegulatoryComplianceAssessment {
if !iter.page.NotDone() {
- return InformationProtectionPolicy{}
+ return RegulatoryComplianceAssessment{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the InformationProtectionPolicyListIterator type.
-func NewInformationProtectionPolicyListIterator(page InformationProtectionPolicyListPage) InformationProtectionPolicyListIterator {
- return InformationProtectionPolicyListIterator{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 (ippl InformationProtectionPolicyList) IsEmpty() bool {
- return ippl.Value == nil || len(*ippl.Value) == 0
+func (rcal RegulatoryComplianceAssessmentList) IsEmpty() bool {
+ return rcal.Value == nil || len(*rcal.Value) == 0
}
-// informationProtectionPolicyListPreparer prepares a request to retrieve the next set of results.
+// regulatoryComplianceAssessmentListPreparer 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 {
+func (rcal RegulatoryComplianceAssessmentList) regulatoryComplianceAssessmentListPreparer(ctx context.Context) (*http.Request, error) {
+ if rcal.NextLink == nil || len(to.String(rcal.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(ippl.NextLink)))
+ autorest.WithBaseURL(to.String(rcal.NextLink)))
}
-// InformationProtectionPolicyListPage contains a page of InformationProtectionPolicy values.
-type InformationProtectionPolicyListPage struct {
- fn func(context.Context, InformationProtectionPolicyList) (InformationProtectionPolicyList, error)
- ippl InformationProtectionPolicyList
+// 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 *InformationProtectionPolicyListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *RegulatoryComplianceAssessmentListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/InformationProtectionPolicyListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceAssessmentListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -6067,111 +13947,88 @@ func (page *InformationProtectionPolicyListPage) NextWithContext(ctx context.Con
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.ippl)
+ next, err := page.fn(ctx, page.rcal)
if err != nil {
return err
}
- page.ippl = next
+ 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 *InformationProtectionPolicyListPage) 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 InformationProtectionPolicyListPage) NotDone() bool {
- return !page.ippl.IsEmpty()
+func (page RegulatoryComplianceAssessmentListPage) NotDone() bool {
+ return !page.rcal.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page InformationProtectionPolicyListPage) Response() InformationProtectionPolicyList {
- return page.ippl
+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 InformationProtectionPolicyListPage) Values() []InformationProtectionPolicy {
- if page.ippl.IsEmpty() {
+func (page RegulatoryComplianceAssessmentListPage) Values() []RegulatoryComplianceAssessment {
+ if page.rcal.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"`
- // Labels - Dictionary of sensitivity labels.
- Labels map[string]*SensitivityLabel `json:"labels"`
- // InformationTypes - The sensitivity information types.
- InformationTypes map[string]*InformationType `json:"informationTypes"`
+ return *page.rcal.Value
}
-// 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)
+// Creates a new instance of the RegulatoryComplianceAssessmentListPage type.
+func NewRegulatoryComplianceAssessmentListPage(getNextPage func(context.Context, RegulatoryComplianceAssessmentList) (RegulatoryComplianceAssessmentList, error)) RegulatoryComplianceAssessmentListPage {
+ return RegulatoryComplianceAssessmentListPage{fn: getNextPage}
}
-// 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"`
+// RegulatoryComplianceAssessmentProperties regulatory compliance assessment data
+type RegulatoryComplianceAssessmentProperties struct {
+ // Description - READ-ONLY; The description of the regulatory compliance assessment
+ 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"`
}
-// IoTSecurityAggregatedAlert security Solution Aggregated Alert information
-type IoTSecurityAggregatedAlert 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"`
- // IoTSecurityAggregatedAlertProperties - IoT Security solution aggregated alert details.
- *IoTSecurityAggregatedAlertProperties `json:"properties,omitempty"`
+ Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for IoTSecurityAggregatedAlert.
-func (itsaa IoTSecurityAggregatedAlert) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for RegulatoryComplianceControl.
+func (rcc RegulatoryComplianceControl) 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 rcc.RegulatoryComplianceControlProperties != nil {
+ objectMap["properties"] = rcc.RegulatoryComplianceControlProperties
}
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 RegulatoryComplianceControl struct.
+func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -6179,6 +14036,15 @@ func (itsaa *IoTSecurityAggregatedAlert) UnmarshalJSON(body []byte) error {
}
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
@@ -6186,7 +14052,7 @@ func (itsaa *IoTSecurityAggregatedAlert) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- itsaa.ID = &ID
+ rcc.ID = &ID
}
case "name":
if v != nil {
@@ -6195,7 +14061,7 @@ func (itsaa *IoTSecurityAggregatedAlert) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- itsaa.Name = &name
+ rcc.Name = &name
}
case "type":
if v != nil {
@@ -6204,25 +14070,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
+ rcc.Type = &typeVar
}
}
}
@@ -6230,27 +14078,27 @@ func (itsaa *IoTSecurityAggregatedAlert) UnmarshalJSON(body []byte) error {
return nil
}
-// IoTSecurityAggregatedAlertList list of IoT Security solution aggregated alert data.
-type IoTSecurityAggregatedAlertList struct {
+// RegulatoryComplianceControlList list of regulatory compliance controls response
+type RegulatoryComplianceControlList 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 - 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"`
}
-// IoTSecurityAggregatedAlertListIterator provides access to a complete listing of
-// IoTSecurityAggregatedAlert values.
-type IoTSecurityAggregatedAlertListIterator struct {
+// RegulatoryComplianceControlListIterator provides access to a complete listing of
+// RegulatoryComplianceControl values.
+type RegulatoryComplianceControlListIterator struct {
i int
- page IoTSecurityAggregatedAlertListPage
+ 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 *IoTSecurityAggregatedAlertListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *RegulatoryComplianceControlListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedAlertListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceControlListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -6275,62 +14123,62 @@ 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 *RegulatoryComplianceControlListIterator) 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 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 IoTSecurityAggregatedAlertListIterator) Response() IoTSecurityAggregatedAlertList {
+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 IoTSecurityAggregatedAlertListIterator) Value() IoTSecurityAggregatedAlert {
+func (iter RegulatoryComplianceControlListIterator) Value() RegulatoryComplianceControl {
if !iter.page.NotDone() {
- return IoTSecurityAggregatedAlert{}
+ return RegulatoryComplianceControl{}
}
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 RegulatoryComplianceControlListIterator type.
+func NewRegulatoryComplianceControlListIterator(page RegulatoryComplianceControlListPage) RegulatoryComplianceControlListIterator {
+ return RegulatoryComplianceControlListIterator{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 (rccl RegulatoryComplianceControlList) IsEmpty() bool {
+ return rccl.Value == nil || len(*rccl.Value) == 0
}
-// ioTSecurityAggregatedAlertListPreparer prepares a request to retrieve the next set of results.
+// regulatoryComplianceControlListPreparer 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 (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(itsaal.NextLink)))
+ autorest.WithBaseURL(to.String(rccl.NextLink)))
}
-// IoTSecurityAggregatedAlertListPage contains a page of IoTSecurityAggregatedAlert values.
-type IoTSecurityAggregatedAlertListPage struct {
- fn func(context.Context, IoTSecurityAggregatedAlertList) (IoTSecurityAggregatedAlertList, error)
- itsaal IoTSecurityAggregatedAlertList
+// 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 *IoTSecurityAggregatedAlertListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *RegulatoryComplianceControlListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedAlertListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceControlListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -6339,113 +14187,82 @@ func (page *IoTSecurityAggregatedAlertListPage) NextWithContext(ctx context.Cont
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.itsaal)
+ next, err := page.fn(ctx, page.rccl)
if err != nil {
return err
}
- page.itsaal = next
+ page.rccl = 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 *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 IoTSecurityAggregatedAlertListPage) NotDone() bool {
- return !page.itsaal.IsEmpty()
+func (page RegulatoryComplianceControlListPage) NotDone() bool {
+ return !page.rccl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page IoTSecurityAggregatedAlertListPage) Response() IoTSecurityAggregatedAlertList {
- return page.itsaal
+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 IoTSecurityAggregatedAlertListPage) Values() []IoTSecurityAggregatedAlert {
- if page.itsaal.IsEmpty() {
+func (page RegulatoryComplianceControlListPage) Values() []RegulatoryComplianceControl {
+ if page.rccl.IsEmpty() {
return nil
}
- return *page.itsaal.Value
+ return *page.rccl.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 RegulatoryComplianceControlListPage type.
+func NewRegulatoryComplianceControlListPage(getNextPage func(context.Context, RegulatoryComplianceControlList) (RegulatoryComplianceControlList, error)) RegulatoryComplianceControlListPage {
+ return RegulatoryComplianceControlListPage{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.
+// RegulatoryComplianceControlProperties regulatory compliance control data
+type RegulatoryComplianceControlProperties struct {
+ // Description - READ-ONLY; The description of the regulatory compliance control
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"`
-}
-
-// 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"`
+ // 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"`
}
-// IoTSecurityAggregatedRecommendation ioT Security solution recommendation information.
-type IoTSecurityAggregatedRecommendation struct {
+// RegulatoryComplianceStandard regulatory compliance standard details and state
+type RegulatoryComplianceStandard 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"`
- // 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 RegulatoryComplianceStandard.
+func (rcs RegulatoryComplianceStandard) 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 rcs.RegulatoryComplianceStandardProperties != nil {
+ objectMap["properties"] = rcs.RegulatoryComplianceStandardProperties
}
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 RegulatoryComplianceStandard struct.
+func (rcs *RegulatoryComplianceStandard) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -6453,6 +14270,15 @@ func (itsar *IoTSecurityAggregatedRecommendation) UnmarshalJSON(body []byte) err
}
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
@@ -6460,7 +14286,7 @@ func (itsar *IoTSecurityAggregatedRecommendation) UnmarshalJSON(body []byte) err
if err != nil {
return err
}
- itsar.ID = &ID
+ rcs.ID = &ID
}
case "name":
if v != nil {
@@ -6469,7 +14295,7 @@ func (itsar *IoTSecurityAggregatedRecommendation) UnmarshalJSON(body []byte) err
if err != nil {
return err
}
- itsar.Name = &name
+ rcs.Name = &name
}
case "type":
if v != nil {
@@ -6478,25 +14304,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
+ rcs.Type = &typeVar
}
}
}
@@ -6504,27 +14312,26 @@ func (itsar *IoTSecurityAggregatedRecommendation) UnmarshalJSON(body []byte) err
return nil
}
-// IoTSecurityAggregatedRecommendationList list of IoT Security solution aggregated recommendations.
-type IoTSecurityAggregatedRecommendationList struct {
+// RegulatoryComplianceStandardList list of regulatory compliance standards response
+type RegulatoryComplianceStandardList 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 *[]RegulatoryComplianceStandard `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 {
+
+// RegulatoryComplianceStandardListIterator provides access to a complete listing of
+// RegulatoryComplianceStandard values.
+type RegulatoryComplianceStandardListIterator struct {
i int
- page IoTSecurityAggregatedRecommendationListPage
+ 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 *IoTSecurityAggregatedRecommendationListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *RegulatoryComplianceStandardListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedRecommendationListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceStandardListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -6549,63 +14356,62 @@ 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 *RegulatoryComplianceStandardListIterator) 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 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 IoTSecurityAggregatedRecommendationListIterator) Response() IoTSecurityAggregatedRecommendationList {
+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 IoTSecurityAggregatedRecommendationListIterator) Value() IoTSecurityAggregatedRecommendation {
+func (iter RegulatoryComplianceStandardListIterator) Value() RegulatoryComplianceStandard {
if !iter.page.NotDone() {
- return IoTSecurityAggregatedRecommendation{}
+ return RegulatoryComplianceStandard{}
}
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 RegulatoryComplianceStandardListIterator type.
+func NewRegulatoryComplianceStandardListIterator(page RegulatoryComplianceStandardListPage) RegulatoryComplianceStandardListIterator {
+ return RegulatoryComplianceStandardListIterator{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 (rcsl RegulatoryComplianceStandardList) IsEmpty() bool {
+ return rcsl.Value == nil || len(*rcsl.Value) == 0
}
-// ioTSecurityAggregatedRecommendationListPreparer prepares a request to retrieve the next set of results.
+// regulatoryComplianceStandardListPreparer 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 (rcsl RegulatoryComplianceStandardList) regulatoryComplianceStandardListPreparer(ctx context.Context) (*http.Request, error) {
+ if rcsl.NextLink == nil || len(to.String(rcsl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(itsarl.NextLink)))
+ autorest.WithBaseURL(to.String(rcsl.NextLink)))
}
-// IoTSecurityAggregatedRecommendationListPage contains a page of IoTSecurityAggregatedRecommendation
-// values.
-type IoTSecurityAggregatedRecommendationListPage struct {
- fn func(context.Context, IoTSecurityAggregatedRecommendationList) (IoTSecurityAggregatedRecommendationList, error)
- itsarl IoTSecurityAggregatedRecommendationList
+// 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 *IoTSecurityAggregatedRecommendationListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *RegulatoryComplianceStandardListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecurityAggregatedRecommendationListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceStandardListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -6614,166 +14420,216 @@ func (page *IoTSecurityAggregatedRecommendationListPage) NextWithContext(ctx con
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.itsarl)
+ next, err := page.fn(ctx, page.rcsl)
if err != nil {
return err
}
- page.itsarl = next
+ 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 *IoTSecurityAggregatedRecommendationListPage) 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 IoTSecurityAggregatedRecommendationListPage) NotDone() bool {
- return !page.itsarl.IsEmpty()
+func (page RegulatoryComplianceStandardListPage) NotDone() bool {
+ return !page.rcsl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page IoTSecurityAggregatedRecommendationListPage) Response() IoTSecurityAggregatedRecommendationList {
- return page.itsarl
+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 IoTSecurityAggregatedRecommendationListPage) Values() []IoTSecurityAggregatedRecommendation {
- if page.itsarl.IsEmpty() {
+func (page RegulatoryComplianceStandardListPage) Values() []RegulatoryComplianceStandard {
+ if page.rcsl.IsEmpty() {
return nil
}
- return *page.itsarl.Value
+ return *page.rcsl.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 RegulatoryComplianceStandardListPage type.
+func NewRegulatoryComplianceStandardListPage(getNextPage func(context.Context, RegulatoryComplianceStandardList) (RegulatoryComplianceStandardList, error)) RegulatoryComplianceStandardListPage {
+ return RegulatoryComplianceStandardListPage{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"`
+// 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"`
}
-// 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"`
+// 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"`
}
-// 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"`
+// BasicResourceDetails details of the resource that was assessed
+type BasicResourceDetails interface {
+ AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool)
+ AsAzureResourceDetails() (*AzureResourceDetails, bool)
+ AsResourceDetails() (*ResourceDetails, bool)
}
-// 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"`
+// ResourceDetails details of the resource that was assessed
+type ResourceDetails struct {
+ // Source - Possible values include: 'SourceResourceDetails', 'SourceOnPremise', 'SourceAzure'
+ Source Source `json:"source,omitempty"`
}
-// 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
+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
+}
+
+// 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"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,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"`
}
-// MarshalJSON is the custom marshaler for IoTSecuritySolutionAnalyticsModel.
-func (itssam IoTSecuritySolutionAnalyticsModel) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for ScopeElement.
+func (se ScopeElement) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if itssam.IoTSecuritySolutionAnalyticsModelProperties != nil {
- objectMap["properties"] = itssam.IoTSecuritySolutionAnalyticsModelProperties
+ if se.Field != nil {
+ objectMap["field"] = se.Field
+ }
+ for k, v := range se.AdditionalProperties {
+ objectMap[k] = v
}
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 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
}
for k, v := range m {
- 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":
+ switch k {
+ default:
if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
+ var additionalProperties interface{}
+ err = json.Unmarshal(*v, &additionalProperties)
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
+ if se.AdditionalProperties == nil {
+ se.AdditionalProperties = make(map[string]interface{})
}
- itssam.Name = &name
+ se.AdditionalProperties[k] = additionalProperties
}
- case "type":
+ case "field":
if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
+ var field string
+ err = json.Unmarshal(*v, &field)
if err != nil {
return err
}
- itssam.Type = &typeVar
+ se.Field = &field
}
}
}
@@ -6781,73 +14637,36 @@ func (itssam *IoTSecuritySolutionAnalyticsModel) UnmarshalJSON(body []byte) erro
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"`
+// 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"`
}
-// IoTSecuritySolutionModel ioT Security solution configuration and resource information.
-type IoTSecuritySolutionModel struct {
- autorest.Response `json:"-"`
+// 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"`
- // 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) {
+// MarshalJSON is the custom marshaler for SecureScoreControlDefinitionItem.
+func (sscdi SecureScoreControlDefinitionItem) 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
+ if sscdi.SecureScoreControlDefinitionItemProperties != nil {
+ objectMap["properties"] = sscdi.SecureScoreControlDefinitionItemProperties
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for IoTSecuritySolutionModel struct.
-func (itssm *IoTSecuritySolutionModel) 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 {
@@ -6855,6 +14674,15 @@ func (itssm *IoTSecuritySolutionModel) 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
@@ -6862,7 +14690,7 @@ func (itssm *IoTSecuritySolutionModel) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- itssm.ID = &ID
+ sscdi.ID = &ID
}
case "name":
if v != nil {
@@ -6871,7 +14699,7 @@ func (itssm *IoTSecuritySolutionModel) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- itssm.Name = &name
+ sscdi.Name = &name
}
case "type":
if v != nil {
@@ -6880,34 +14708,7 @@ func (itssm *IoTSecuritySolutionModel) UnmarshalJSON(body []byte) error {
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)
- if err != nil {
- return err
- }
- itssm.IoTSecuritySolutionProperties = &ioTSecuritySolutionProperties
+ sscdi.Type = &typeVar
}
}
}
@@ -6915,49 +14716,41 @@ 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.
+// SecureScoreControlDefinitionItemProperties security Control Definition Properties.
+type SecureScoreControlDefinitionItemProperties struct {
+ // DisplayName - READ-ONLY; User friendly display name of the control
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"`
+ // 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"`
}
-// IoTSecuritySolutionsList list of IoT Security solutions.
-type IoTSecuritySolutionsList struct {
+// SecureScoreControlDefinitionList list of security controls definition
+type SecureScoreControlDefinitionList struct {
autorest.Response `json:"-"`
- // Value - List of IoT Security solutions
- Value *[]IoTSecuritySolutionModel `json:"value,omitempty"`
+ // 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"`
}
-// IoTSecuritySolutionsListIterator provides access to a complete listing of IoTSecuritySolutionModel
-// values.
-type IoTSecuritySolutionsListIterator struct {
+// SecureScoreControlDefinitionListIterator provides access to a complete listing of
+// SecureScoreControlDefinitionItem values.
+type SecureScoreControlDefinitionListIterator struct {
i int
- page IoTSecuritySolutionsListPage
+ page SecureScoreControlDefinitionListPage
}
// 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 *SecureScoreControlDefinitionListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecuritySolutionsListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlDefinitionListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -6982,62 +14775,62 @@ 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 *SecureScoreControlDefinitionListIterator) 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 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 IoTSecuritySolutionsListIterator) Response() IoTSecuritySolutionsList {
+func (iter SecureScoreControlDefinitionListIterator) Response() SecureScoreControlDefinitionList {
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 SecureScoreControlDefinitionListIterator) Value() SecureScoreControlDefinitionItem {
if !iter.page.NotDone() {
- return IoTSecuritySolutionModel{}
+ return SecureScoreControlDefinitionItem{}
}
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 SecureScoreControlDefinitionListIterator type.
+func NewSecureScoreControlDefinitionListIterator(page SecureScoreControlDefinitionListPage) SecureScoreControlDefinitionListIterator {
+ return SecureScoreControlDefinitionListIterator{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 (sscdl SecureScoreControlDefinitionList) IsEmpty() bool {
+ return sscdl.Value == nil || len(*sscdl.Value) == 0
}
-// ioTSecuritySolutionsListPreparer prepares a request to retrieve the next set of results.
+// secureScoreControlDefinitionListPreparer 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 (sscdl SecureScoreControlDefinitionList) secureScoreControlDefinitionListPreparer(ctx context.Context) (*http.Request, error) {
+ if sscdl.NextLink == nil || len(to.String(sscdl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(itssl.NextLink)))
+ autorest.WithBaseURL(to.String(sscdl.NextLink)))
}
-// IoTSecuritySolutionsListPage contains a page of IoTSecuritySolutionModel values.
-type IoTSecuritySolutionsListPage struct {
- fn func(context.Context, IoTSecuritySolutionsList) (IoTSecuritySolutionsList, error)
- itssl IoTSecuritySolutionsList
+// SecureScoreControlDefinitionListPage contains a page of SecureScoreControlDefinitionItem values.
+type SecureScoreControlDefinitionListPage struct {
+ fn func(context.Context, SecureScoreControlDefinitionList) (SecureScoreControlDefinitionList, error)
+ sscdl SecureScoreControlDefinitionList
}
// 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 *SecureScoreControlDefinitionListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/IoTSecuritySolutionsListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlDefinitionListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -7046,74 +14839,143 @@ func (page *IoTSecuritySolutionsListPage) NextWithContext(ctx context.Context) (
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.itssl)
+ next, err := page.fn(ctx, page.sscdl)
if err != nil {
return err
}
- page.itssl = next
+ page.sscdl = 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 *SecureScoreControlDefinitionListPage) 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 SecureScoreControlDefinitionListPage) NotDone() bool {
+ return !page.sscdl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page IoTSecuritySolutionsListPage) Response() IoTSecuritySolutionsList {
- return page.itssl
+func (page SecureScoreControlDefinitionListPage) Response() SecureScoreControlDefinitionList {
+ return page.sscdl
}
// 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 SecureScoreControlDefinitionListPage) Values() []SecureScoreControlDefinitionItem {
+ if page.sscdl.IsEmpty() {
return nil
}
- return *page.itssl.Value
+ return *page.sscdl.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 SecureScoreControlDefinitionListPage type.
+func NewSecureScoreControlDefinitionListPage(getNextPage func(context.Context, SecureScoreControlDefinitionList) (SecureScoreControlDefinitionList, error)) SecureScoreControlDefinitionListPage {
+ return SecureScoreControlDefinitionListPage{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"`
+// 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"`
}
-// JitNetworkAccessPoliciesList ...
-type JitNetworkAccessPoliciesList struct {
+// 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"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,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)
+}
+
+// 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 *[]JitNetworkAccessPolicy `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"`
}
-// JitNetworkAccessPoliciesListIterator provides access to a complete listing of JitNetworkAccessPolicy
+// SecureScoreControlListIterator provides access to a complete listing of SecureScoreControlDetails
// values.
-type JitNetworkAccessPoliciesListIterator struct {
+type SecureScoreControlListIterator struct {
i int
- page JitNetworkAccessPoliciesListPage
+ 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 *JitNetworkAccessPoliciesListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *SecureScoreControlListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/JitNetworkAccessPoliciesListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -7138,62 +15000,62 @@ func (iter *JitNetworkAccessPoliciesListIterator) 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 *JitNetworkAccessPoliciesListIterator) 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 JitNetworkAccessPoliciesListIterator) 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 JitNetworkAccessPoliciesListIterator) Response() JitNetworkAccessPoliciesList {
+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 JitNetworkAccessPoliciesListIterator) Value() JitNetworkAccessPolicy {
+func (iter SecureScoreControlListIterator) Value() SecureScoreControlDetails {
if !iter.page.NotDone() {
- return JitNetworkAccessPolicy{}
+ return SecureScoreControlDetails{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the JitNetworkAccessPoliciesListIterator type.
-func NewJitNetworkAccessPoliciesListIterator(page JitNetworkAccessPoliciesListPage) JitNetworkAccessPoliciesListIterator {
- return JitNetworkAccessPoliciesListIterator{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 (jnapl JitNetworkAccessPoliciesList) IsEmpty() bool {
- return jnapl.Value == nil || len(*jnapl.Value) == 0
+func (sscl SecureScoreControlList) IsEmpty() bool {
+ return sscl.Value == nil || len(*sscl.Value) == 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.NextLink == nil || len(to.String(jnapl.NextLink)) < 1 {
+// secureScoreControlListPreparer prepares a request to retrieve the next set of results.
+// It returns nil if no more results exist.
+func (sscl SecureScoreControlList) secureScoreControlListPreparer(ctx context.Context) (*http.Request, error) {
+ if sscl.NextLink == nil || len(to.String(sscl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(jnapl.NextLink)))
+ autorest.WithBaseURL(to.String(sscl.NextLink)))
}
-// JitNetworkAccessPoliciesListPage contains a page of JitNetworkAccessPolicy values.
-type JitNetworkAccessPoliciesListPage struct {
- fn func(context.Context, JitNetworkAccessPoliciesList) (JitNetworkAccessPoliciesList, error)
- jnapl JitNetworkAccessPoliciesList
+// 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 *JitNetworkAccessPoliciesListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *SecureScoreControlListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/JitNetworkAccessPoliciesListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoreControlListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -7202,74 +15064,81 @@ func (page *JitNetworkAccessPoliciesListPage) NextWithContext(ctx context.Contex
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.jnapl)
+ next, err := page.fn(ctx, page.sscl)
if err != nil {
return err
}
- page.jnapl = next
+ page.sscl = 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 *JitNetworkAccessPoliciesListPage) 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 JitNetworkAccessPoliciesListPage) NotDone() bool {
- return !page.jnapl.IsEmpty()
+func (page SecureScoreControlListPage) NotDone() bool {
+ return !page.sscl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page JitNetworkAccessPoliciesListPage) Response() JitNetworkAccessPoliciesList {
- return page.jnapl
+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 JitNetworkAccessPoliciesListPage) Values() []JitNetworkAccessPolicy {
- if page.jnapl.IsEmpty() {
+func (page SecureScoreControlListPage) Values() []SecureScoreControlDetails {
+ if page.sscl.IsEmpty() {
return nil
}
- return *page.jnapl.Value
+ return *page.sscl.Value
}
-// Creates a new instance of the JitNetworkAccessPoliciesListPage type.
-func NewJitNetworkAccessPoliciesListPage(getNextPage func(context.Context, JitNetworkAccessPoliciesList) (JitNetworkAccessPoliciesList, error)) JitNetworkAccessPoliciesListPage {
- return JitNetworkAccessPoliciesListPage{fn: getNextPage}
+// Creates a new instance of the SecureScoreControlListPage type.
+func NewSecureScoreControlListPage(getNextPage func(context.Context, SecureScoreControlList) (SecureScoreControlList, error)) SecureScoreControlListPage {
+ return SecureScoreControlListPage{fn: getNextPage}
}
-// 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"`
+// 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 JitNetworkAccessPolicy.
-func (jnap JitNetworkAccessPolicy) MarshalJSON() ([]byte, error) {
+// 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 jnap.Kind != nil {
- objectMap["kind"] = jnap.Kind
+ if sscsd.ScoreDetails != nil {
+ objectMap["score"] = sscsd.ScoreDetails
}
- if jnap.JitNetworkAccessPolicyProperties != nil {
- objectMap["properties"] = jnap.JitNetworkAccessPolicyProperties
+ if sscsd.Definition != nil {
+ objectMap["definition"] = sscsd.Definition
}
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 SecureScoreControlScoreDetails struct.
+func (sscsd *SecureScoreControlScoreDetails) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -7277,59 +15146,59 @@ func (jnap *JitNetworkAccessPolicy) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
- case "id":
+ case "displayName":
if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
+ var displayName string
+ err = json.Unmarshal(*v, &displayName)
if err != nil {
return err
}
- jnap.ID = &ID
+ sscsd.DisplayName = &displayName
}
- case "name":
+ case "score":
if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
+ var scoreDetails ScoreDetails
+ err = json.Unmarshal(*v, &scoreDetails)
if err != nil {
return err
}
- jnap.Name = &name
+ sscsd.ScoreDetails = &scoreDetails
}
- case "type":
+ case "healthyResourceCount":
if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
+ var healthyResourceCount int32
+ err = json.Unmarshal(*v, &healthyResourceCount)
if err != nil {
return err
}
- jnap.Type = &typeVar
+ sscsd.HealthyResourceCount = &healthyResourceCount
}
- case "kind":
+ case "unhealthyResourceCount":
if v != nil {
- var kind string
- err = json.Unmarshal(*v, &kind)
+ var unhealthyResourceCount int32
+ err = json.Unmarshal(*v, &unhealthyResourceCount)
if err != nil {
return err
}
- jnap.Kind = &kind
+ sscsd.UnhealthyResourceCount = &unhealthyResourceCount
}
- case "location":
+ case "notApplicableResourceCount":
if v != nil {
- var location string
- err = json.Unmarshal(*v, &location)
+ var notApplicableResourceCount int32
+ err = json.Unmarshal(*v, ¬ApplicableResourceCount)
if err != nil {
return err
}
- jnap.Location = &location
+ sscsd.NotApplicableResourceCount = ¬ApplicableResourceCount
}
- case "properties":
+ case "definition":
if v != nil {
- var jitNetworkAccessPolicyProperties JitNetworkAccessPolicyProperties
- err = json.Unmarshal(*v, &jitNetworkAccessPolicyProperties)
+ var definition SecureScoreControlDefinitionItem
+ err = json.Unmarshal(*v, &definition)
if err != nil {
return err
}
- jnap.JitNetworkAccessPolicyProperties = &jitNetworkAccessPolicyProperties
+ sscsd.Definition = &definition
}
}
}
@@ -7337,223 +15206,143 @@ 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"`
-}
-
-// 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"`
-}
-
-// 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 {
+// SecureScoreItem secure score item data model
+type SecureScoreItem 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: '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"`
-}
-
-// JitNetworkAccessRequestVirtualMachine ...
-type JitNetworkAccessRequestVirtualMachine struct {
- // ID - Resource ID of the virtual machine that is linked to this policy
+ // SecureScoreItemProperties - READ-ONLY; Secure score item
+ *SecureScoreItemProperties `json:"properties,omitempty"`
+ // ID - READ-ONLY; Resource Id
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"`
-}
-
-// 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"`
-}
-
-// Location describes an Azure resource with location
-type Location struct {
- // Location - READ-ONLY; Location where the resource is stored
- Location *string `json:"location,omitempty"`
+ // Name - READ-ONLY; Resource name
+ Name *string `json:"name,omitempty"`
+ // Type - READ-ONLY; Resource type
+ Type *string `json:"type,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', 'SourceOnPremise', 'SourceAzure'
- Source Source `json:"source,omitempty"`
+// MarshalJSON is the custom marshaler for SecureScoreItem.
+func (ssi SecureScoreItem) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
}
-// 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
+// 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 {
+ return err
}
- if oprd.Source != "" {
- objectMap["source"] = oprd.Source
+ for k, v := range m {
+ switch k {
+ case "properties":
+ if v != nil {
+ var secureScoreItemProperties SecureScoreItemProperties
+ err = json.Unmarshal(*v, &secureScoreItemProperties)
+ if err != nil {
+ return err
+ }
+ ssi.SecureScoreItemProperties = &secureScoreItemProperties
+ }
+ case "id":
+ if v != nil {
+ var ID string
+ err = json.Unmarshal(*v, &ID)
+ if err != nil {
+ return err
+ }
+ ssi.ID = &ID
+ }
+ case "name":
+ if v != nil {
+ var name string
+ err = json.Unmarshal(*v, &name)
+ if err != nil {
+ return err
+ }
+ ssi.Name = &name
+ }
+ case "type":
+ if v != nil {
+ var typeVar string
+ err = json.Unmarshal(*v, &typeVar)
+ if err != nil {
+ return err
+ }
+ ssi.Type = &typeVar
+ }
+ }
}
- return json.Marshal(objectMap)
-}
-
-// AsOnPremiseResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
-func (oprd OnPremiseResourceDetails) AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool) {
- return &oprd, true
-}
-// AsAzureResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
-func (oprd OnPremiseResourceDetails) AsAzureResourceDetails() (*AzureResourceDetails, bool) {
- return nil, false
+ return nil
}
-// AsResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
-func (oprd OnPremiseResourceDetails) AsResourceDetails() (*ResourceDetails, bool) {
- return nil, false
+// 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"`
}
-// AsBasicResourceDetails is the BasicResourceDetails implementation for OnPremiseResourceDetails.
-func (oprd OnPremiseResourceDetails) AsBasicResourceDetails() (BasicResourceDetails, bool) {
- return &oprd, true
+// MarshalJSON is the custom marshaler for SecureScoreItemProperties.
+func (ssip SecureScoreItemProperties) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ return json.Marshal(objectMap)
}
-// 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"`
-}
+// 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
+ }
+ }
+ }
-// 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"`
+ return nil
}
-// OperationList list of possible operations for Microsoft.Security resource provider
-type OperationList struct {
+// SecureScoresList list of secure scores
+type SecureScoresList struct {
autorest.Response `json:"-"`
- // Value - List of Security operations
- Value *[]Operation `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"`
}
-// OperationListIterator provides access to a complete listing of Operation values.
-type OperationListIterator struct {
+// SecureScoresListIterator provides access to a complete listing of SecureScoreItem values.
+type SecureScoresListIterator struct {
i int
- page OperationListPage
+ 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 *OperationListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *SecureScoresListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/OperationListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoresListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -7578,62 +15367,62 @@ 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 *SecureScoresListIterator) 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 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 OperationListIterator) Response() OperationList {
+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 OperationListIterator) Value() Operation {
+func (iter SecureScoresListIterator) Value() SecureScoreItem {
if !iter.page.NotDone() {
- return Operation{}
+ return SecureScoreItem{}
}
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 SecureScoresListIterator type.
+func NewSecureScoresListIterator(page SecureScoresListPage) SecureScoresListIterator {
+ return SecureScoresListIterator{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 (ssl SecureScoresList) IsEmpty() bool {
+ return ssl.Value == nil || len(*ssl.Value) == 0
}
-// operationListPreparer prepares a request to retrieve the next set of results.
+// secureScoresListPreparer 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 (ssl SecureScoresList) secureScoresListPreparer(ctx context.Context) (*http.Request, error) {
+ if ssl.NextLink == nil || len(to.String(ssl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(ol.NextLink)))
+ autorest.WithBaseURL(to.String(ssl.NextLink)))
}
-// OperationListPage contains a page of Operation values.
-type OperationListPage struct {
- fn func(context.Context, OperationList) (OperationList, error)
- ol OperationList
+// 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 *OperationListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *SecureScoresListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/OperationListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SecureScoresListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -7642,70 +15431,62 @@ func (page *OperationListPage) NextWithContext(ctx context.Context) (err error)
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.ol)
+ next, err := page.fn(ctx, page.ssl)
if err != nil {
return err
}
- page.ol = next
+ page.ssl = 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 *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 OperationListPage) NotDone() bool {
- return !page.ol.IsEmpty()
+func (page SecureScoresListPage) NotDone() bool {
+ return !page.ssl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page OperationListPage) Response() OperationList {
- return page.ol
+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 OperationListPage) Values() []Operation {
- if page.ol.IsEmpty() {
+func (page SecureScoresListPage) Values() []SecureScoreItem {
+ if page.ssl.IsEmpty() {
return nil
}
- return *page.ol.Value
+ return *page.ssl.Value
}
-// Creates a new instance of the OperationListPage type.
-func NewOperationListPage(getNextPage func(context.Context, OperationList) (OperationList, error)) OperationListPage {
- return OperationListPage{fn: getNextPage}
+// Creates a new instance of the SecureScoresListPage type.
+func NewSecureScoresListPage(getNextPage func(context.Context, SecureScoresList) (SecureScoresList, error)) SecureScoresListPage {
+ return SecureScoresListPage{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"`
+// 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"`
+ // 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"`
}
-// 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"`
+// 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
@@ -7714,17 +15495,17 @@ type Pricing struct {
Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for Pricing.
-func (p Pricing) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for ServerVulnerabilityAssessment.
+func (sva ServerVulnerabilityAssessment) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if p.PricingProperties != nil {
- objectMap["properties"] = p.PricingProperties
+ if sva.ServerVulnerabilityAssessmentProperties != nil {
+ objectMap["properties"] = sva.ServerVulnerabilityAssessmentProperties
}
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 ServerVulnerabilityAssessment struct.
+func (sva *ServerVulnerabilityAssessment) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -7734,12 +15515,12 @@ func (p *Pricing) UnmarshalJSON(body []byte) error {
switch k {
case "properties":
if v != nil {
- var pricingProperties PricingProperties
- err = json.Unmarshal(*v, &pricingProperties)
+ var serverVulnerabilityAssessmentProperties ServerVulnerabilityAssessmentProperties
+ err = json.Unmarshal(*v, &serverVulnerabilityAssessmentProperties)
if err != nil {
return err
}
- p.PricingProperties = &pricingProperties
+ sva.ServerVulnerabilityAssessmentProperties = &serverVulnerabilityAssessmentProperties
}
case "id":
if v != nil {
@@ -7748,7 +15529,7 @@ func (p *Pricing) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- p.ID = &ID
+ sva.ID = &ID
}
case "name":
if v != nil {
@@ -7757,7 +15538,7 @@ func (p *Pricing) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- p.Name = &name
+ sva.Name = &name
}
case "type":
if v != nil {
@@ -7766,69 +15547,192 @@ func (p *Pricing) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- p.Type = &typeVar
+ sva.Type = &typeVar
}
}
}
- return nil
+ 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: 'ProvisioningState1Succeeded', 'ProvisioningState1Failed', 'ProvisioningState1Canceled', 'ProvisioningState1Provisioning', 'ProvisioningState1Deprovisioning'
+ ProvisioningState ProvisioningState1 `json:"provisioningState,omitempty"`
+}
+
+// ServerVulnerabilityAssessmentsList list of server vulnerability assessments
+type ServerVulnerabilityAssessmentsList 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"`
+}
+
+// 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
+ }
+ 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
+ }
+
+ 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 {
+ return nil, err
+ }
+
+ 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
+}
+
+// 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)
}
-// PricingList list of pricing configurations response.
-type PricingList struct {
- autorest.Response `json:"-"`
- // Value - List of pricing configurations
- Value *[]Pricing `json:"value,omitempty"`
+// AsSetting is the BasicSettingResource implementation for Setting.
+func (s Setting) AsSetting() (*Setting, bool) {
+ return &s, true
}
-// 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"`
+// AsBasicSetting is the BasicSettingResource implementation for Setting.
+func (s Setting) AsBasicSetting() (BasicSetting, bool) {
+ return &s, 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"`
+// AsDataExportSettings is the BasicSettingResource implementation for Setting.
+func (s Setting) AsDataExportSettings() (*DataExportSettings, bool) {
+ return nil, false
}
-// 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"`
+// AsSettingResource is the BasicSettingResource implementation for Setting.
+func (s Setting) AsSettingResource() (*SettingResource, bool) {
+ return nil, false
}
-// 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"`
+// AsBasicSettingResource is the BasicSettingResource implementation for Setting.
+func (s Setting) AsBasicSettingResource() (BasicSettingResource, bool) {
+ return &s, true
}
-// RegulatoryComplianceAssessment regulatory compliance assessment details and state
-type RegulatoryComplianceAssessment struct {
- autorest.Response `json:"-"`
- // RegulatoryComplianceAssessmentProperties - Regulatory compliance assessment data
- *RegulatoryComplianceAssessmentProperties `json:"properties,omitempty"`
+// BasicSettingResource the kind of the security setting
+type BasicSettingResource interface {
+ AsSetting() (*Setting, bool)
+ AsBasicSetting() (BasicSetting, bool)
+ AsDataExportSettings() (*DataExportSettings, bool)
+ AsSettingResource() (*SettingResource, bool)
+}
+
+// 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
@@ -7837,17 +15741,93 @@ type RegulatoryComplianceAssessment struct {
Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for RegulatoryComplianceAssessment.
-func (rca RegulatoryComplianceAssessment) MarshalJSON() ([]byte, error) {
+func unmarshalBasicSettingResource(body []byte) (BasicSettingResource, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ 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
+ }
+}
+func unmarshalBasicSettingResourceArray(body []byte) ([]BasicSettingResource, error) {
+ var rawMessages []*json.RawMessage
+ err := json.Unmarshal(body, &rawMessages)
+ if err != nil {
+ return nil, err
+ }
+
+ 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
+}
+
+// MarshalJSON is the custom marshaler for SettingResource.
+func (sr SettingResource) MarshalJSON() ([]byte, error) {
+ sr.Kind = KindSettingResource
objectMap := make(map[string]interface{})
- if rca.RegulatoryComplianceAssessmentProperties != nil {
- objectMap["properties"] = rca.RegulatoryComplianceAssessmentProperties
+ if sr.Kind != "" {
+ objectMap["kind"] = sr.Kind
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for RegulatoryComplianceAssessment struct.
-func (rca *RegulatoryComplianceAssessment) UnmarshalJSON(body []byte) error {
+// AsSetting is the BasicSettingResource implementation for SettingResource.
+func (sr SettingResource) AsSetting() (*Setting, bool) {
+ return nil, false
+}
+
+// AsBasicSetting is the BasicSettingResource implementation for SettingResource.
+func (sr SettingResource) AsBasicSetting() (BasicSetting, bool) {
+ return nil, false
+}
+
+// AsDataExportSettings is the BasicSettingResource implementation for SettingResource.
+func (sr SettingResource) AsDataExportSettings() (*DataExportSettings, bool) {
+ return nil, false
+}
+
+// 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
+}
+
+// SettingsList subscription settings list.
+type SettingsList struct {
+ autorest.Response `json:"-"`
+ // Value - The settings list.
+ Value *[]BasicSetting `json:"value,omitempty"`
+ // NextLink - READ-ONLY; The URI to fetch the next page.
+ NextLink *string `json:"nextLink,omitempty"`
+}
+
+// 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 {
@@ -7855,41 +15835,22 @@ func (rca *RegulatoryComplianceAssessment) 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
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- rca.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
}
- rca.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
}
- rca.Type = &typeVar
+ sl.NextLink = &nextLink
}
}
}
@@ -7897,26 +15858,17 @@ func (rca *RegulatoryComplianceAssessment) UnmarshalJSON(body []byte) error {
return nil
}
-// RegulatoryComplianceAssessmentList list of regulatory compliance assessment response
-type RegulatoryComplianceAssessmentList struct {
- autorest.Response `json:"-"`
- Value *[]RegulatoryComplianceAssessment `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 {
+// SettingsListIterator provides access to a complete listing of Setting values.
+type SettingsListIterator struct {
i int
- page RegulatoryComplianceAssessmentListPage
+ 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 *RegulatoryComplianceAssessmentListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *SettingsListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceAssessmentListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SettingsListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -7941,62 +15893,62 @@ 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 *SettingsListIterator) 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 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 RegulatoryComplianceAssessmentListIterator) Response() RegulatoryComplianceAssessmentList {
+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 RegulatoryComplianceAssessmentListIterator) Value() RegulatoryComplianceAssessment {
+func (iter SettingsListIterator) Value() BasicSetting {
if !iter.page.NotDone() {
- return RegulatoryComplianceAssessment{}
+ return Setting{}
}
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 SettingsListIterator type.
+func NewSettingsListIterator(page SettingsListPage) SettingsListIterator {
+ return SettingsListIterator{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 (sl SettingsList) IsEmpty() bool {
+ return sl.Value == nil || len(*sl.Value) == 0
}
-// regulatoryComplianceAssessmentListPreparer prepares a request to retrieve the next set of results.
+// settingsListPreparer 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 (sl SettingsList) settingsListPreparer(ctx context.Context) (*http.Request, error) {
+ if sl.NextLink == nil || len(to.String(sl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(rcal.NextLink)))
+ autorest.WithBaseURL(to.String(sl.NextLink)))
}
-// RegulatoryComplianceAssessmentListPage contains a page of RegulatoryComplianceAssessment values.
-type RegulatoryComplianceAssessmentListPage struct {
- fn func(context.Context, RegulatoryComplianceAssessmentList) (RegulatoryComplianceAssessmentList, error)
- rcal RegulatoryComplianceAssessmentList
+// 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 *RegulatoryComplianceAssessmentListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *SettingsListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceAssessmentListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SettingsListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -8005,88 +15957,69 @@ func (page *RegulatoryComplianceAssessmentListPage) NextWithContext(ctx context.
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.rcal)
+ next, err := page.fn(ctx, page.sl)
if err != nil {
return err
}
- page.rcal = next
+ 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 *RegulatoryComplianceAssessmentListPage) 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 RegulatoryComplianceAssessmentListPage) NotDone() bool {
- return !page.rcal.IsEmpty()
-}
-
-// Response returns the raw server response from the last page request.
-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 RegulatoryComplianceAssessmentListPage) Values() []RegulatoryComplianceAssessment {
- if page.rcal.IsEmpty() {
- return nil
- }
- return *page.rcal.Value
-}
-
-// Creates a new instance of the RegulatoryComplianceAssessmentListPage type.
-func NewRegulatoryComplianceAssessmentListPage(getNextPage func(context.Context, RegulatoryComplianceAssessmentList) (RegulatoryComplianceAssessmentList, error)) RegulatoryComplianceAssessmentListPage {
- return RegulatoryComplianceAssessmentListPage{fn: getNextPage}
+func (page SettingsListPage) NotDone() bool {
+ return !page.sl.IsEmpty()
}
-
-// RegulatoryComplianceAssessmentProperties regulatory compliance assessment data
-type RegulatoryComplianceAssessmentProperties struct {
- // Description - READ-ONLY; The description of the regulatory compliance assessment
- 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"`
+
+// Response returns the raw server response from the last page request.
+func (page SettingsListPage) Response() SettingsList {
+ return page.sl
}
-// RegulatoryComplianceControl regulatory compliance control details and state
-type RegulatoryComplianceControl struct {
+// Values returns the slice of values for the current page or nil if there are no values.
+func (page SettingsListPage) Values() []BasicSetting {
+ 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}
+}
+
+// Solution ...
+type Solution 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"`
+ // Location - READ-ONLY; Location where the resource is stored
+ Location *string `json:"location,omitempty"`
+ *SolutionProperties `json:"properties,omitempty"`
}
-// MarshalJSON is the custom marshaler for RegulatoryComplianceControl.
-func (rcc RegulatoryComplianceControl) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for Solution.
+func (s Solution) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if rcc.RegulatoryComplianceControlProperties != nil {
- objectMap["properties"] = rcc.RegulatoryComplianceControlProperties
+ if s.SolutionProperties != nil {
+ objectMap["properties"] = s.SolutionProperties
}
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 Solution struct.
+func (s *Solution) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -8094,15 +16027,6 @@ func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
}
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
@@ -8110,7 +16034,7 @@ func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- rcc.ID = &ID
+ s.ID = &ID
}
case "name":
if v != nil {
@@ -8119,7 +16043,7 @@ func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- rcc.Name = &name
+ s.Name = &name
}
case "type":
if v != nil {
@@ -8128,7 +16052,25 @@ func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- rcc.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
}
}
}
@@ -8136,27 +16078,25 @@ func (rcc *RegulatoryComplianceControl) UnmarshalJSON(body []byte) error {
return nil
}
-// RegulatoryComplianceControlList list of regulatory compliance controls response
-type RegulatoryComplianceControlList struct {
+// SolutionList ...
+type SolutionList struct {
autorest.Response `json:"-"`
- // Value - List of regulatory compliance controls
- Value *[]RegulatoryComplianceControl `json:"value,omitempty"`
+ Value *[]Solution `json:"value,omitempty"`
// NextLink - READ-ONLY; The URI to fetch the next page.
NextLink *string `json:"nextLink,omitempty"`
}
-// RegulatoryComplianceControlListIterator provides access to a complete listing of
-// RegulatoryComplianceControl values.
-type RegulatoryComplianceControlListIterator struct {
+// SolutionListIterator provides access to a complete listing of Solution values.
+type SolutionListIterator struct {
i int
- page RegulatoryComplianceControlListPage
+ 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 *RegulatoryComplianceControlListIterator) NextWithContext(ctx context.Context) (err error) {
+func (iter *SolutionListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceControlListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SolutionListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -8181,62 +16121,62 @@ func (iter *RegulatoryComplianceControlListIterator) 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 *RegulatoryComplianceControlListIterator) 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 RegulatoryComplianceControlListIterator) 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 RegulatoryComplianceControlListIterator) Response() RegulatoryComplianceControlList {
+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 RegulatoryComplianceControlListIterator) Value() RegulatoryComplianceControl {
+func (iter SolutionListIterator) Value() Solution {
if !iter.page.NotDone() {
- return RegulatoryComplianceControl{}
+ return Solution{}
}
return iter.page.Values()[iter.i]
}
-// Creates a new instance of the RegulatoryComplianceControlListIterator type.
-func NewRegulatoryComplianceControlListIterator(page RegulatoryComplianceControlListPage) RegulatoryComplianceControlListIterator {
- return RegulatoryComplianceControlListIterator{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 (rccl RegulatoryComplianceControlList) IsEmpty() bool {
- return rccl.Value == nil || len(*rccl.Value) == 0
+func (sl SolutionList) IsEmpty() bool {
+ return sl.Value == nil || len(*sl.Value) == 0
}
-// regulatoryComplianceControlListPreparer prepares a request to retrieve the next set of results.
+// solutionListPreparer 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 {
+func (sl SolutionList) solutionListPreparer(ctx context.Context) (*http.Request, error) {
+ if sl.NextLink == nil || len(to.String(sl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(rccl.NextLink)))
+ autorest.WithBaseURL(to.String(sl.NextLink)))
}
-// RegulatoryComplianceControlListPage contains a page of RegulatoryComplianceControl values.
-type RegulatoryComplianceControlListPage struct {
- fn func(context.Context, RegulatoryComplianceControlList) (RegulatoryComplianceControlList, error)
- rccl RegulatoryComplianceControlList
+// 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 *RegulatoryComplianceControlListPage) NextWithContext(ctx context.Context) (err error) {
+func (page *SolutionListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceControlListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SolutionListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -8245,63 +16185,211 @@ func (page *RegulatoryComplianceControlListPage) NextWithContext(ctx context.Con
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.rccl)
+ next, err := page.fn(ctx, page.sl)
if err != nil {
return err
}
- page.rccl = next
+ 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 *RegulatoryComplianceControlListPage) 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 RegulatoryComplianceControlListPage) NotDone() bool {
- return !page.rccl.IsEmpty()
+func (page SolutionListPage) NotDone() bool {
+ return !page.sl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page RegulatoryComplianceControlListPage) Response() RegulatoryComplianceControlList {
- return page.rccl
+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 RegulatoryComplianceControlListPage) Values() []RegulatoryComplianceControl {
- if page.rccl.IsEmpty() {
+func (page SolutionListPage) Values() []Solution {
+ if page.sl.IsEmpty() {
return nil
}
- return *page.rccl.Value
+ return *page.sl.Value
}
-// Creates a new instance of the RegulatoryComplianceControlListPage type.
-func NewRegulatoryComplianceControlListPage(getNextPage func(context.Context, RegulatoryComplianceControlList) (RegulatoryComplianceControlList, error)) RegulatoryComplianceControlListPage {
- return RegulatoryComplianceControlListPage{fn: getNextPage}
+// Creates a new instance of the SolutionListPage type.
+func NewSolutionListPage(getNextPage func(context.Context, SolutionList) (SolutionList, error)) SolutionListPage {
+ return SolutionListPage{fn: getNextPage}
}
-// 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"`
+// 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"`
}
-// RegulatoryComplianceStandard regulatory compliance standard details and state
-type RegulatoryComplianceStandard struct {
+// 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:"-"`
- // RegulatoryComplianceStandardProperties - Regulatory compliance standard data
- *RegulatoryComplianceStandardProperties `json:"properties,omitempty"`
+ 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
+type SQLServerVulnerabilityProperties struct {
+ // Type - READ-ONLY; The resource type the sub assessment refers to in its resource details
+ Type *string `json:"type,omitempty"`
+ // Query - READ-ONLY; The T-SQL query that runs on your SQL database to perform the particular check
+ Query *string `json:"query,omitempty"`
+ // AssessedResourceType - Possible values include: 'AssessedResourceTypeAdditionalData', 'AssessedResourceTypeSQLServerVulnerability', 'AssessedResourceTypeContainerRegistryVulnerability', 'AssessedResourceTypeServerVulnerabilityAssessment'
+ AssessedResourceType AssessedResourceType `json:"assessedResourceType,omitempty"`
+}
+
+// MarshalJSON is the custom marshaler for SQLServerVulnerabilityProperties.
+func (ssvp SQLServerVulnerabilityProperties) MarshalJSON() ([]byte, error) {
+ ssvp.AssessedResourceType = AssessedResourceTypeSQLServerVulnerability
+ objectMap := make(map[string]interface{})
+ if ssvp.AssessedResourceType != "" {
+ objectMap["assessedResourceType"] = ssvp.AssessedResourceType
+ }
+ return json.Marshal(objectMap)
+}
+
+// AsSQLServerVulnerabilityProperties is the BasicAdditionalData implementation for SQLServerVulnerabilityProperties.
+func (ssvp SQLServerVulnerabilityProperties) AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool) {
+ return &ssvp, true
+}
+
+// AsContainerRegistryVulnerabilityProperties is the BasicAdditionalData implementation for SQLServerVulnerabilityProperties.
+func (ssvp SQLServerVulnerabilityProperties) AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool) {
+ return nil, false
+}
+
+// AsServerVulnerabilityProperties is the BasicAdditionalData implementation for SQLServerVulnerabilityProperties.
+func (ssvp SQLServerVulnerabilityProperties) AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool) {
+ return nil, false
+}
+
+// AsAdditionalData is the BasicAdditionalData implementation for SQLServerVulnerabilityProperties.
+func (ssvp SQLServerVulnerabilityProperties) AsAdditionalData() (*AdditionalData, bool) {
+ return nil, false
+}
+
+// AsBasicAdditionalData is the BasicAdditionalData implementation for SQLServerVulnerabilityProperties.
+func (ssvp SQLServerVulnerabilityProperties) AsBasicAdditionalData() (BasicAdditionalData, bool) {
+ return &ssvp, true
+}
+
+// SubAssessment security sub-assessment on a resource
+type SubAssessment struct {
+ autorest.Response `json:"-"`
+ *SubAssessmentProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
@@ -8310,17 +16398,17 @@ type RegulatoryComplianceStandard struct {
Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for RegulatoryComplianceStandard.
-func (rcs RegulatoryComplianceStandard) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for SubAssessment.
+func (sa SubAssessment) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if rcs.RegulatoryComplianceStandardProperties != nil {
- objectMap["properties"] = rcs.RegulatoryComplianceStandardProperties
+ if sa.SubAssessmentProperties != nil {
+ objectMap["properties"] = sa.SubAssessmentProperties
}
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 SubAssessment struct.
+func (sa *SubAssessment) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -8330,12 +16418,12 @@ func (rcs *RegulatoryComplianceStandard) UnmarshalJSON(body []byte) error {
switch k {
case "properties":
if v != nil {
- var regulatoryComplianceStandardProperties RegulatoryComplianceStandardProperties
- err = json.Unmarshal(*v, ®ulatoryComplianceStandardProperties)
+ var subAssessmentProperties SubAssessmentProperties
+ err = json.Unmarshal(*v, &subAssessmentProperties)
if err != nil {
return err
}
- rcs.RegulatoryComplianceStandardProperties = ®ulatoryComplianceStandardProperties
+ sa.SubAssessmentProperties = &subAssessmentProperties
}
case "id":
if v != nil {
@@ -8344,7 +16432,7 @@ func (rcs *RegulatoryComplianceStandard) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- rcs.ID = &ID
+ sa.ID = &ID
}
case "name":
if v != nil {
@@ -8353,7 +16441,7 @@ func (rcs *RegulatoryComplianceStandard) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- rcs.Name = &name
+ sa.Name = &name
}
case "type":
if v != nil {
@@ -8362,7 +16450,7 @@ func (rcs *RegulatoryComplianceStandard) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- rcs.Type = &typeVar
+ sa.Type = &typeVar
}
}
}
@@ -8370,26 +16458,26 @@ func (rcs *RegulatoryComplianceStandard) UnmarshalJSON(body []byte) error {
return nil
}
-// RegulatoryComplianceStandardList list of regulatory compliance standards response
-type RegulatoryComplianceStandardList struct {
+// SubAssessmentList list of security sub-assessments
+type SubAssessmentList struct {
autorest.Response `json:"-"`
- Value *[]RegulatoryComplianceStandard `json:"value,omitempty"`
+ // Value - READ-ONLY
+ Value *[]SubAssessment `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 {
+// SubAssessmentListIterator provides access to a complete listing of SubAssessment values.
+type SubAssessmentListIterator struct {
i int
- page RegulatoryComplianceStandardListPage
+ page SubAssessmentListPage
}
// 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 *SubAssessmentListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceStandardListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SubAssessmentListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -8414,62 +16502,62 @@ 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 *SubAssessmentListIterator) 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 SubAssessmentListIterator) 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 SubAssessmentListIterator) Response() SubAssessmentList {
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 SubAssessmentListIterator) Value() SubAssessment {
if !iter.page.NotDone() {
- return RegulatoryComplianceStandard{}
+ return SubAssessment{}
}
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 SubAssessmentListIterator type.
+func NewSubAssessmentListIterator(page SubAssessmentListPage) SubAssessmentListIterator {
+ return SubAssessmentListIterator{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 (sal SubAssessmentList) IsEmpty() bool {
+ return sal.Value == nil || len(*sal.Value) == 0
}
-// regulatoryComplianceStandardListPreparer prepares a request to retrieve the next set of results.
+// subAssessmentListPreparer 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 (sal SubAssessmentList) subAssessmentListPreparer(ctx context.Context) (*http.Request, error) {
+ if sal.NextLink == nil || len(to.String(sal.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(rcsl.NextLink)))
+ autorest.WithBaseURL(to.String(sal.NextLink)))
}
-// RegulatoryComplianceStandardListPage contains a page of RegulatoryComplianceStandard values.
-type RegulatoryComplianceStandardListPage struct {
- fn func(context.Context, RegulatoryComplianceStandardList) (RegulatoryComplianceStandardList, error)
- rcsl RegulatoryComplianceStandardList
+// SubAssessmentListPage contains a page of SubAssessment values.
+type SubAssessmentListPage struct {
+ fn func(context.Context, SubAssessmentList) (SubAssessmentList, error)
+ sal SubAssessmentList
}
// 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 *SubAssessmentListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/RegulatoryComplianceStandardListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/SubAssessmentListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -8478,166 +16566,220 @@ func (page *RegulatoryComplianceStandardListPage) NextWithContext(ctx context.Co
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.rcsl)
+ next, err := page.fn(ctx, page.sal)
if err != nil {
return err
}
- page.rcsl = next
+ page.sal = 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 *SubAssessmentListPage) 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 SubAssessmentListPage) NotDone() bool {
+ return !page.sal.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page RegulatoryComplianceStandardListPage) Response() RegulatoryComplianceStandardList {
- return page.rcsl
+func (page SubAssessmentListPage) Response() SubAssessmentList {
+ return page.sal
}
// 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 SubAssessmentListPage) Values() []SubAssessment {
+ if page.sal.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}
+ return *page.sal.Value
}
-// 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"`
+// Creates a new instance of the SubAssessmentListPage type.
+func NewSubAssessmentListPage(getNextPage func(context.Context, SubAssessmentList) (SubAssessmentList, error)) SubAssessmentListPage {
+ return SubAssessmentListPage{fn: getNextPage}
}
-// Resource describes an Azure resource.
-type Resource struct {
- // ID - READ-ONLY; Resource Id
+// SubAssessmentProperties describes properties of an sub-assessment.
+type SubAssessmentProperties struct {
+ // ID - READ-ONLY; Vulnerability 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"`
+ // DisplayName - READ-ONLY; User friendly display name of the sub-assessment
+ DisplayName *string `json:"displayName,omitempty"`
+ Status *SubAssessmentStatus `json:"status,omitempty"`
+ // Remediation - READ-ONLY; Information on how to remediate this sub-assessment
+ Remediation *string `json:"remediation,omitempty"`
+ // Impact - READ-ONLY; Description of the impact of this sub-assessment
+ Impact *string `json:"impact,omitempty"`
+ // Category - READ-ONLY; Category of the sub-assessment
+ Category *string `json:"category,omitempty"`
+ // Description - READ-ONLY; Human readable description of the assessment status
+ Description *string `json:"description,omitempty"`
+ // TimeGenerated - READ-ONLY; The date and time the sub-assessment was generated
+ TimeGenerated *date.Time `json:"timeGenerated,omitempty"`
+ ResourceDetails BasicResourceDetails `json:"resourceDetails,omitempty"`
+ AdditionalData BasicAdditionalData `json:"additionalData,omitempty"`
}
-func unmarshalBasicResourceDetails(body []byte) (BasicResourceDetails, error) {
- var m map[string]interface{}
+// UnmarshalJSON is the custom unmarshaler for SubAssessmentProperties struct.
+func (sap *SubAssessmentProperties) UnmarshalJSON(body []byte) error {
+ var m map[string]*json.RawMessage
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
+ return err
}
-
- rdArray := make([]BasicResourceDetails, len(rawMessages))
-
- for index, rawMessage := range rawMessages {
- rd, err := unmarshalBasicResourceDetails(*rawMessage)
- 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
+ }
+ sap.ID = &ID
+ }
+ case "displayName":
+ if v != nil {
+ var displayName string
+ err = json.Unmarshal(*v, &displayName)
+ if err != nil {
+ return err
+ }
+ sap.DisplayName = &displayName
+ }
+ case "status":
+ if v != nil {
+ var status SubAssessmentStatus
+ err = json.Unmarshal(*v, &status)
+ if err != nil {
+ return err
+ }
+ sap.Status = &status
+ }
+ case "remediation":
+ if v != nil {
+ var remediation string
+ err = json.Unmarshal(*v, &remediation)
+ if err != nil {
+ return err
+ }
+ sap.Remediation = &remediation
+ }
+ case "impact":
+ if v != nil {
+ var impact string
+ err = json.Unmarshal(*v, &impact)
+ if err != nil {
+ return err
+ }
+ sap.Impact = &impact
+ }
+ case "category":
+ if v != nil {
+ var category string
+ err = json.Unmarshal(*v, &category)
+ if err != nil {
+ return err
+ }
+ sap.Category = &category
+ }
+ case "description":
+ if v != nil {
+ var description string
+ err = json.Unmarshal(*v, &description)
+ if err != nil {
+ return err
+ }
+ sap.Description = &description
+ }
+ case "timeGenerated":
+ if v != nil {
+ var timeGenerated date.Time
+ err = json.Unmarshal(*v, &timeGenerated)
+ if err != nil {
+ return err
+ }
+ sap.TimeGenerated = &timeGenerated
+ }
+ case "resourceDetails":
+ if v != nil {
+ resourceDetails, err := unmarshalBasicResourceDetails(*v)
+ if err != nil {
+ return err
+ }
+ sap.ResourceDetails = resourceDetails
+ }
+ case "additionalData":
+ if v != nil {
+ additionalData, err := unmarshalBasicAdditionalData(*v)
+ if err != nil {
+ return err
+ }
+ sap.AdditionalData = additionalData
+ }
}
- rdArray[index] = rd
}
- return rdArray, nil
+
+ return 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)
+// SubAssessmentStatus status of the sub-assessment
+type SubAssessmentStatus struct {
+ // Code - READ-ONLY; Programmatic code for the status of the assessment. Possible values include: 'SubAssessmentStatusCodeHealthy', 'SubAssessmentStatusCodeUnhealthy', 'SubAssessmentStatusCodeNotApplicable'
+ Code SubAssessmentStatusCode `json:"code,omitempty"`
+ // Cause - READ-ONLY; Programmatic code for the cause of the assessment status
+ Cause *string `json:"cause,omitempty"`
+ // Description - READ-ONLY; Human readable description of the assessment status
+ Description *string `json:"description,omitempty"`
+ // Severity - READ-ONLY; The sub-assessment severity level. Possible values include: 'SeverityLow', 'SeverityMedium', 'SeverityHigh'
+ Severity Severity `json:"severity,omitempty"`
}
-// AsOnPremiseResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
-func (rd ResourceDetails) AsOnPremiseResourceDetails() (*OnPremiseResourceDetails, bool) {
- return nil, false
+// SuppressionAlertsScope ...
+type SuppressionAlertsScope struct {
+ // AllOf - All the conditions inside need to be true in order to suppress the alert
+ AllOf *[]ScopeElement `json:"allOf,omitempty"`
}
-// AsAzureResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
-func (rd ResourceDetails) AsAzureResourceDetails() (*AzureResourceDetails, bool) {
- return nil, false
+// 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.
+ Tags map[string]*string `json:"tags"`
}
-// AsResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
-func (rd ResourceDetails) AsResourceDetails() (*ResourceDetails, bool) {
- return &rd, true
+// MarshalJSON is the custom marshaler for Tags.
+func (t Tags) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if t.Tags != nil {
+ objectMap["tags"] = t.Tags
+ }
+ return json.Marshal(objectMap)
}
-// AsBasicResourceDetails is the BasicResourceDetails implementation for ResourceDetails.
-func (rd ResourceDetails) AsBasicResourceDetails() (BasicResourceDetails, bool) {
- return &rd, true
+// TagsResource a container holding only the Tags for a resource, allowing the user to update the tags.
+type TagsResource struct {
+ // Tags - Resource tags
+ Tags map[string]*string `json:"tags"`
}
-// 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"`
+// MarshalJSON is the custom marshaler for TagsResource.
+func (tr TagsResource) MarshalJSON() ([]byte, error) {
+ objectMap := make(map[string]interface{})
+ if tr.Tags != nil {
+ objectMap["tags"] = tr.Tags
+ }
+ return json.Marshal(objectMap)
}
-// ServerVulnerabilityAssessment describes the server vulnerability assessment details on a resource
-type ServerVulnerabilityAssessment struct {
- autorest.Response `json:"-"`
- *ServerVulnerabilityAssessmentProperties `json:"properties,omitempty"`
+// Task security task that we recommend to do in order to strengthen security
+type Task struct {
+ autorest.Response `json:"-"`
+ *TaskProperties `json:"properties,omitempty"`
// ID - READ-ONLY; Resource Id
ID *string `json:"id,omitempty"`
// Name - READ-ONLY; Resource name
@@ -8646,17 +16788,17 @@ type ServerVulnerabilityAssessment struct {
Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for ServerVulnerabilityAssessment.
-func (sva ServerVulnerabilityAssessment) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for Task.
+func (t Task) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if sva.ServerVulnerabilityAssessmentProperties != nil {
- objectMap["properties"] = sva.ServerVulnerabilityAssessmentProperties
+ if t.TaskProperties != nil {
+ objectMap["properties"] = t.TaskProperties
}
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 Task struct.
+func (t *Task) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -8666,12 +16808,12 @@ func (sva *ServerVulnerabilityAssessment) UnmarshalJSON(body []byte) error {
switch k {
case "properties":
if v != nil {
- var serverVulnerabilityAssessmentProperties ServerVulnerabilityAssessmentProperties
- err = json.Unmarshal(*v, &serverVulnerabilityAssessmentProperties)
+ var taskProperties TaskProperties
+ err = json.Unmarshal(*v, &taskProperties)
if err != nil {
return err
}
- sva.ServerVulnerabilityAssessmentProperties = &serverVulnerabilityAssessmentProperties
+ t.TaskProperties = &taskProperties
}
case "id":
if v != nil {
@@ -8680,7 +16822,7 @@ func (sva *ServerVulnerabilityAssessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- sva.ID = &ID
+ t.ID = &ID
}
case "name":
if v != nil {
@@ -8689,7 +16831,7 @@ func (sva *ServerVulnerabilityAssessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- sva.Name = &name
+ t.Name = &name
}
case "type":
if v != nil {
@@ -8698,7 +16840,7 @@ func (sva *ServerVulnerabilityAssessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- sva.Type = &typeVar
+ t.Type = &typeVar
}
}
}
@@ -8706,118 +16848,26 @@ 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 {
- 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"`
-}
-
-// 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
- }
- 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 {
+// TaskList list of security task recommendations
+type TaskList struct {
autorest.Response `json:"-"`
- // Value - The settings list.
- Value *[]Setting `json:"value,omitempty"`
+ // Value - READ-ONLY
+ Value *[]Task `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 {
+// TaskListIterator provides access to a complete listing of Task values.
+type TaskListIterator struct {
i int
- page SettingsListPage
+ page TaskListPage
}
// 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 *TaskListIterator) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/SettingsListIterator.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/TaskListIterator.NextWithContext")
defer func() {
sc := -1
if iter.Response().Response.Response != nil {
@@ -8842,62 +16892,62 @@ 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 *TaskListIterator) 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 TaskListIterator) 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 TaskListIterator) Response() TaskList {
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 TaskListIterator) Value() Task {
if !iter.page.NotDone() {
- return Setting{}
+ return Task{}
}
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 TaskListIterator type.
+func NewTaskListIterator(page TaskListPage) TaskListIterator {
+ return TaskListIterator{page: page}
}
// IsEmpty returns true if the ListResult contains no values.
-func (sl SettingsList) IsEmpty() bool {
- return sl.Value == nil || len(*sl.Value) == 0
+func (tl TaskList) IsEmpty() bool {
+ return tl.Value == nil || len(*tl.Value) == 0
}
-// settingsListPreparer prepares a request to retrieve the next set of results.
+// taskListPreparer 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 (tl TaskList) taskListPreparer(ctx context.Context) (*http.Request, error) {
+ if tl.NextLink == nil || len(to.String(tl.NextLink)) < 1 {
return nil, nil
}
return autorest.Prepare((&http.Request{}).WithContext(ctx),
autorest.AsJSON(),
autorest.AsGet(),
- autorest.WithBaseURL(to.String(sl.NextLink)))
+ autorest.WithBaseURL(to.String(tl.NextLink)))
}
-// SettingsListPage contains a page of Setting values.
-type SettingsListPage struct {
- fn func(context.Context, SettingsList) (SettingsList, error)
- sl SettingsList
+// TaskListPage contains a page of Task values.
+type TaskListPage struct {
+ fn func(context.Context, TaskList) (TaskList, error)
+ tl TaskList
}
// 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 *TaskListPage) NextWithContext(ctx context.Context) (err error) {
if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/SettingsListPage.NextWithContext")
+ ctx = tracing.StartSpan(ctx, fqdn+"/TaskListPage.NextWithContext")
defer func() {
sc := -1
if page.Response().Response.Response != nil {
@@ -8906,112 +16956,64 @@ func (page *SettingsListPage) NextWithContext(ctx context.Context) (err error) {
tracing.EndSpan(ctx, sc, err)
}()
}
- next, err := page.fn(ctx, page.sl)
+ next, err := page.fn(ctx, page.tl)
if err != nil {
return err
}
- page.sl = next
+ page.tl = 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 *TaskListPage) 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 {
- return !page.sl.IsEmpty()
+func (page TaskListPage) NotDone() bool {
+ return !page.tl.IsEmpty()
}
// Response returns the raw server response from the last page request.
-func (page SettingsListPage) Response() SettingsList {
- return page.sl
+func (page TaskListPage) Response() TaskList {
+ return page.tl
}
// Values returns the slice of values for the current page or nil if there are no values.
-func (page SettingsListPage) Values() []Setting {
- if page.sl.IsEmpty() {
+func (page TaskListPage) Values() []Task {
+ if page.tl.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}
-}
-
-// SQLServerVulnerabilityProperties details of the resource that was assessed
-type SQLServerVulnerabilityProperties struct {
- // Type - READ-ONLY; The resource type the sub assessment refers to in its resource details
- Type *string `json:"type,omitempty"`
- // Query - READ-ONLY; The T-SQL query that runs on your SQL database to perform the particular check
- Query *string `json:"query,omitempty"`
- // AssessedResourceType - Possible values include: 'AssessedResourceTypeAdditionalData', 'AssessedResourceTypeSQLServerVulnerability', 'AssessedResourceTypeContainerRegistryVulnerability', 'AssessedResourceTypeServerVulnerabilityAssessment'
- AssessedResourceType AssessedResourceType `json:"assessedResourceType,omitempty"`
-}
-
-// MarshalJSON is the custom marshaler for SQLServerVulnerabilityProperties.
-func (ssvp SQLServerVulnerabilityProperties) MarshalJSON() ([]byte, error) {
- ssvp.AssessedResourceType = AssessedResourceTypeSQLServerVulnerability
- objectMap := make(map[string]interface{})
- if ssvp.AssessedResourceType != "" {
- objectMap["assessedResourceType"] = ssvp.AssessedResourceType
- }
- return json.Marshal(objectMap)
-}
-
-// AsSQLServerVulnerabilityProperties is the BasicAdditionalData implementation for SQLServerVulnerabilityProperties.
-func (ssvp SQLServerVulnerabilityProperties) AsSQLServerVulnerabilityProperties() (*SQLServerVulnerabilityProperties, bool) {
- return &ssvp, true
-}
-
-// AsContainerRegistryVulnerabilityProperties is the BasicAdditionalData implementation for SQLServerVulnerabilityProperties.
-func (ssvp SQLServerVulnerabilityProperties) AsContainerRegistryVulnerabilityProperties() (*ContainerRegistryVulnerabilityProperties, bool) {
- return nil, false
-}
-
-// AsServerVulnerabilityProperties is the BasicAdditionalData implementation for SQLServerVulnerabilityProperties.
-func (ssvp SQLServerVulnerabilityProperties) AsServerVulnerabilityProperties() (*ServerVulnerabilityProperties, bool) {
- return nil, false
-}
-
-// AsAdditionalData is the BasicAdditionalData implementation for SQLServerVulnerabilityProperties.
-func (ssvp SQLServerVulnerabilityProperties) AsAdditionalData() (*AdditionalData, bool) {
- return nil, false
+ return *page.tl.Value
}
-// AsBasicAdditionalData is the BasicAdditionalData implementation for SQLServerVulnerabilityProperties.
-func (ssvp SQLServerVulnerabilityProperties) AsBasicAdditionalData() (BasicAdditionalData, bool) {
- return &ssvp, true
+// Creates a new instance of the TaskListPage type.
+func NewTaskListPage(getNextPage func(context.Context, TaskList) (TaskList, error)) TaskListPage {
+ return TaskListPage{fn: getNextPage}
}
-// SubAssessment security sub-assessment on a resource
-type SubAssessment struct {
- autorest.Response `json:"-"`
- *SubAssessmentProperties `json:"properties,omitempty"`
- // ID - READ-ONLY; Resource Id
- ID *string `json:"id,omitempty"`
- // Name - READ-ONLY; Resource name
+// 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:""`
+ // Name - READ-ONLY; Name of the task type
Name *string `json:"name,omitempty"`
- // Type - READ-ONLY; Resource type
- Type *string `json:"type,omitempty"`
}
-// MarshalJSON is the custom marshaler for SubAssessment.
-func (sa SubAssessment) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for TaskParameters.
+func (tp TaskParameters) MarshalJSON() ([]byte, error) {
objectMap := make(map[string]interface{})
- if sa.SubAssessmentProperties != nil {
- objectMap["properties"] = sa.SubAssessmentProperties
+ for k, v := range tp.AdditionalProperties {
+ objectMap[k] = v
}
return json.Marshal(objectMap)
}
-// UnmarshalJSON is the custom unmarshaler for SubAssessment struct.
-func (sa *SubAssessment) UnmarshalJSON(body []byte) error {
+// UnmarshalJSON is the custom unmarshaler for TaskParameters struct.
+func (tp *TaskParameters) UnmarshalJSON(body []byte) error {
var m map[string]*json.RawMessage
err := json.Unmarshal(body, &m)
if err != nil {
@@ -9019,23 +17021,17 @@ func (sa *SubAssessment) UnmarshalJSON(body []byte) error {
}
for k, v := range m {
switch k {
- case "properties":
+ default:
if v != nil {
- var subAssessmentProperties SubAssessmentProperties
- err = json.Unmarshal(*v, &subAssessmentProperties)
+ var additionalProperties interface{}
+ err = json.Unmarshal(*v, &additionalProperties)
if err != nil {
return err
}
- sa.SubAssessmentProperties = &subAssessmentProperties
- }
- case "id":
- if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
+ if tp.AdditionalProperties == nil {
+ tp.AdditionalProperties = make(map[string]interface{})
}
- sa.ID = &ID
+ tp.AdditionalProperties[k] = additionalProperties
}
case "name":
if v != nil {
@@ -9044,16 +17040,7 @@ func (sa *SubAssessment) UnmarshalJSON(body []byte) error {
if err != nil {
return err
}
- sa.Name = &name
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- sa.Type = &typeVar
+ tp.Name = &name
}
}
}
@@ -9061,637 +17048,638 @@ func (sa *SubAssessment) UnmarshalJSON(body []byte) error {
return nil
}
-// SubAssessmentList list of security sub-assessments
-type SubAssessmentList struct {
- autorest.Response `json:"-"`
- // Value - READ-ONLY
- Value *[]SubAssessment `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
+// TaskProperties describes properties of a task.
+type TaskProperties struct {
+ // State - READ-ONLY; State of the task (Active, Resolved etc.)
+ State *string `json:"state,omitempty"`
+ // CreationTimeUtc - READ-ONLY; The time this task was discovered in UTC
+ CreationTimeUtc *date.Time `json:"creationTimeUtc,omitempty"`
+ SecurityTaskParameters *TaskParameters `json:"securityTaskParameters,omitempty"`
+ // LastStateChangeTimeUtc - READ-ONLY; The time this task's details were last changed in UTC
+ LastStateChangeTimeUtc *date.Time `json:"lastStateChangeTimeUtc,omitempty"`
+ // SubState - READ-ONLY; Additional data on the state of the task
+ SubState *string `json:"subState,omitempty"`
}
-// SubAssessmentListIterator provides access to a complete listing of SubAssessment values.
-type SubAssessmentListIterator struct {
- i int
- page SubAssessmentListPage
+// 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"`
+ // 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"`
}
-// 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 *SubAssessmentListIterator) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/SubAssessmentListIterator.NextWithContext")
- defer func() {
- sc := -1
- if iter.Response().Response.Response != nil {
- sc = iter.Response().Response.Response.StatusCode
- }
- tracing.EndSpan(ctx, sc, err)
- }()
+func unmarshalBasicThresholdCustomAlertRule(body []byte) (BasicThresholdCustomAlertRule, error) {
+ var m map[string]interface{}
+ err := json.Unmarshal(body, &m)
+ if err != nil {
+ return nil, err
}
- iter.i++
- if iter.i < len(iter.page.Values()) {
- return nil
+
+ 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
}
- err = iter.page.NextWithContext(ctx)
+}
+func unmarshalBasicThresholdCustomAlertRuleArray(body []byte) ([]BasicThresholdCustomAlertRule, 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
+
+ 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
}
-// 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 *SubAssessmentListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// 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)
}
-// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter SubAssessmentListIterator) NotDone() bool {
- return iter.page.NotDone() && iter.i < len(iter.page.Values())
+// 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
}
-// Response returns the raw server response from the last page request.
-func (iter SubAssessmentListIterator) Response() SubAssessmentList {
- return iter.page.Response()
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, 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 SubAssessmentListIterator) Value() SubAssessment {
- if !iter.page.NotDone() {
- return SubAssessment{}
- }
- return iter.page.Values()[iter.i]
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsHTTPC2DRejectedMessagesNotInAllowedRange() (*HTTPC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the SubAssessmentListIterator type.
-func NewSubAssessmentListIterator(page SubAssessmentListPage) SubAssessmentListIterator {
- return SubAssessmentListIterator{page: page}
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (sal SubAssessmentList) IsEmpty() bool {
- return sal.Value == nil || len(*sal.Value) == 0
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(sal.NextLink)))
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// SubAssessmentListPage contains a page of SubAssessment values.
-type SubAssessmentListPage struct {
- fn func(context.Context, SubAssessmentList) (SubAssessmentList, error)
- sal SubAssessmentList
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, 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 *SubAssessmentListPage) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/SubAssessmentListPage.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.sal)
- if err != nil {
- return err
- }
- page.sal = next
- return nil
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, 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 *SubAssessmentListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsFileUploadsNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsFileUploadsNotInAllowedRange() (*FileUploadsNotInAllowedRange, bool) {
+ return nil, false
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page SubAssessmentListPage) NotDone() bool {
- return !page.sal.IsEmpty()
+// AsQueuePurgesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsQueuePurgesNotInAllowedRange() (*QueuePurgesNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page SubAssessmentListPage) Response() SubAssessmentList {
- return page.sal
+// AsTwinUpdatesNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsTwinUpdatesNotInAllowedRange() (*TwinUpdatesNotInAllowedRange, bool) {
+ return nil, false
}
-// Values returns the slice of values for the current page or nil if there are no values.
-func (page SubAssessmentListPage) Values() []SubAssessment {
- if page.sal.IsEmpty() {
- return nil
- }
- return *page.sal.Value
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the SubAssessmentListPage type.
-func NewSubAssessmentListPage(getNextPage func(context.Context, SubAssessmentList) (SubAssessmentList, error)) SubAssessmentListPage {
- return SubAssessmentListPage{fn: getNextPage}
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for ThresholdCustomAlertRule.
+func (tcar ThresholdCustomAlertRule) AsCustomAlertRule() (*CustomAlertRule, bool) {
+ return nil, false
}
-// SubAssessmentProperties describes properties of an sub-assessment.
-type SubAssessmentProperties struct {
- // ID - READ-ONLY; Vulnerability ID
- ID *string `json:"id,omitempty"`
- // DisplayName - READ-ONLY; User friendly display name of the sub-assessment
- DisplayName *string `json:"displayName,omitempty"`
- Status *SubAssessmentStatus `json:"status,omitempty"`
- // Remediation - READ-ONLY; Information on how to remediate this sub-assessment
- Remediation *string `json:"remediation,omitempty"`
- // Impact - READ-ONLY; Description of the impact of this sub-assessment
- Impact *string `json:"impact,omitempty"`
- // Category - READ-ONLY; Category of the sub-assessment
- Category *string `json:"category,omitempty"`
- // Description - READ-ONLY; Human readable description of the assessment status
+// 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"`
+ // 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"`
- // TimeGenerated - READ-ONLY; The date and time the sub-assessment was generated
- TimeGenerated *date.Time `json:"timeGenerated,omitempty"`
- ResourceDetails BasicResourceDetails `json:"resourceDetails,omitempty"`
- AdditionalData BasicAdditionalData `json:"additionalData,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 SubAssessmentProperties struct.
-func (sap *SubAssessmentProperties) UnmarshalJSON(body []byte) error {
- var m map[string]*json.RawMessage
+func unmarshalBasicTimeWindowCustomAlertRule(body []byte) (BasicTimeWindowCustomAlertRule, error) {
+ var m map[string]interface{}
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
- }
- sap.ID = &ID
- }
- case "displayName":
- if v != nil {
- var displayName string
- err = json.Unmarshal(*v, &displayName)
- if err != nil {
- return err
- }
- sap.DisplayName = &displayName
- }
- case "status":
- if v != nil {
- var status SubAssessmentStatus
- err = json.Unmarshal(*v, &status)
- if err != nil {
- return err
- }
- sap.Status = &status
- }
- case "remediation":
- if v != nil {
- var remediation string
- err = json.Unmarshal(*v, &remediation)
- if err != nil {
- return err
- }
- sap.Remediation = &remediation
- }
- case "impact":
- if v != nil {
- var impact string
- err = json.Unmarshal(*v, &impact)
- if err != nil {
- return err
- }
- sap.Impact = &impact
- }
- case "category":
- if v != nil {
- var category string
- err = json.Unmarshal(*v, &category)
- if err != nil {
- return err
- }
- sap.Category = &category
- }
- case "description":
- if v != nil {
- var description string
- err = json.Unmarshal(*v, &description)
- if err != nil {
- return err
- }
- sap.Description = &description
- }
- case "timeGenerated":
- if v != nil {
- var timeGenerated date.Time
- err = json.Unmarshal(*v, &timeGenerated)
- if err != nil {
- return err
- }
- sap.TimeGenerated = &timeGenerated
- }
- case "resourceDetails":
- if v != nil {
- resourceDetails, err := unmarshalBasicResourceDetails(*v)
- if err != nil {
- return err
- }
- sap.ResourceDetails = resourceDetails
- }
- case "additionalData":
- if v != nil {
- additionalData, err := unmarshalBasicAdditionalData(*v)
- if err != nil {
- return err
- }
- sap.AdditionalData = additionalData
- }
- }
+ return nil, err
}
- return nil
-}
-
-// SubAssessmentStatus status of the sub-assessment
-type SubAssessmentStatus struct {
- // Code - READ-ONLY; Programmatic code for the status of the assessment. Possible values include: 'SubAssessmentStatusCodeHealthy', 'SubAssessmentStatusCodeUnhealthy', 'SubAssessmentStatusCodeNotApplicable'
- Code SubAssessmentStatusCode `json:"code,omitempty"`
- // Cause - READ-ONLY; Programmatic code for the cause of the assessment status
- Cause *string `json:"cause,omitempty"`
- // Description - READ-ONLY; Human readable description of the assessment status
- Description *string `json:"description,omitempty"`
- // Severity - READ-ONLY; The sub-assessment severity level. Possible values include: 'SeverityLow', 'SeverityMedium', 'SeverityHigh'
- Severity Severity `json:"severity,omitempty"`
+ 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
+ }
-// 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.
- Tags map[string]*string `json:"tags"`
-}
+ twcarArray := make([]BasicTimeWindowCustomAlertRule, len(rawMessages))
-// MarshalJSON is the custom marshaler for Tags.
-func (t Tags) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- if t.Tags != nil {
- objectMap["tags"] = t.Tags
+ for index, rawMessage := range rawMessages {
+ twcar, err := unmarshalBasicTimeWindowCustomAlertRule(*rawMessage)
+ if err != nil {
+ return nil, err
+ }
+ twcarArray[index] = twcar
}
- return json.Marshal(objectMap)
-}
-
-// TagsResource a container holding only the Tags for a resource, allowing the user to update the tags.
-type TagsResource struct {
- // Tags - Resource tags
- Tags map[string]*string `json:"tags"`
+ return twcarArray, nil
}
-// MarshalJSON is the custom marshaler for TagsResource.
-func (tr TagsResource) MarshalJSON() ([]byte, error) {
+// MarshalJSON is the custom marshaler for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) MarshalJSON() ([]byte, error) {
+ twcar.RuleType = RuleTypeTimeWindowCustomAlertRule
objectMap := make(map[string]interface{})
- if tr.Tags != nil {
- objectMap["tags"] = tr.Tags
+ 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)
}
-// Task security task that we recommend to do in order to strengthen security
-type Task struct {
- autorest.Response `json:"-"`
- *TaskProperties `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"`
+// AsThresholdCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsThresholdCustomAlertRule() (*ThresholdCustomAlertRule, bool) {
+ return nil, false
}
-// MarshalJSON is the custom marshaler for Task.
-func (t Task) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- if t.TaskProperties != nil {
- objectMap["properties"] = t.TaskProperties
- }
- return json.Marshal(objectMap)
+// AsBasicThresholdCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsBasicThresholdCustomAlertRule() (BasicThresholdCustomAlertRule, bool) {
+ return &twcar, true
}
-// UnmarshalJSON is the custom unmarshaler for Task struct.
-func (t *Task) 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 taskProperties TaskProperties
- err = json.Unmarshal(*v, &taskProperties)
- if err != nil {
- return err
- }
- t.TaskProperties = &taskProperties
- }
- case "id":
- if v != nil {
- var ID string
- err = json.Unmarshal(*v, &ID)
- if err != nil {
- return err
- }
- t.ID = &ID
- }
- case "name":
- if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
- if err != nil {
- return err
- }
- t.Name = &name
- }
- case "type":
- if v != nil {
- var typeVar string
- err = json.Unmarshal(*v, &typeVar)
- if err != nil {
- return err
- }
- t.Type = &typeVar
- }
- }
- }
+// AsTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsTimeWindowCustomAlertRule() (*TimeWindowCustomAlertRule, bool) {
+ return &twcar, true
+}
- return nil
+// AsBasicTimeWindowCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsBasicTimeWindowCustomAlertRule() (BasicTimeWindowCustomAlertRule, bool) {
+ return &twcar, true
}
-// TaskList list of security task recommendations
-type TaskList struct {
- autorest.Response `json:"-"`
- // Value - READ-ONLY
- Value *[]Task `json:"value,omitempty"`
- // NextLink - READ-ONLY; The URI to fetch the next page.
- NextLink *string `json:"nextLink,omitempty"`
+// AsAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsAllowlistCustomAlertRule() (*AllowlistCustomAlertRule, bool) {
+ return nil, false
}
-// TaskListIterator provides access to a complete listing of Task values.
-type TaskListIterator struct {
- i int
- page TaskListPage
+// AsBasicAllowlistCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) 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 *TaskListIterator) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/TaskListIterator.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 TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) 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 *TaskListIterator) Next() error {
- return iter.NextWithContext(context.Background())
+// AsListCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsListCustomAlertRule() (*ListCustomAlertRule, bool) {
+ return nil, false
}
-// NotDone returns true if the enumeration should be started or is not yet complete.
-func (iter TaskListIterator) NotDone() bool {
- return iter.page.NotDone() && iter.i < len(iter.page.Values())
+// AsBasicListCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsBasicListCustomAlertRule() (BasicListCustomAlertRule, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (iter TaskListIterator) Response() TaskList {
- return iter.page.Response()
+// AsConnectionToIPNotAllowed is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) 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 TaskListIterator) Value() Task {
- if !iter.page.NotDone() {
- return Task{}
- }
- return iter.page.Values()[iter.i]
+// AsLocalUserNotAllowed is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsLocalUserNotAllowed() (*LocalUserNotAllowed, bool) {
+ return nil, false
}
-// Creates a new instance of the TaskListIterator type.
-func NewTaskListIterator(page TaskListPage) TaskListIterator {
- return TaskListIterator{page: page}
+// AsProcessNotAllowed is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsProcessNotAllowed() (*ProcessNotAllowed, bool) {
+ return nil, false
}
-// IsEmpty returns true if the ListResult contains no values.
-func (tl TaskList) IsEmpty() bool {
- return tl.Value == nil || len(*tl.Value) == 0
+// AsActiveConnectionsNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsActiveConnectionsNotInAllowedRange() (*ActiveConnectionsNotInAllowedRange, bool) {
+ return nil, false
}
-// 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 {
- return nil, nil
- }
- return autorest.Prepare((&http.Request{}).WithContext(ctx),
- autorest.AsJSON(),
- autorest.AsGet(),
- autorest.WithBaseURL(to.String(tl.NextLink)))
+// AsAmqpC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsAmqpC2DMessagesNotInAllowedRange() (*AmqpC2DMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// TaskListPage contains a page of Task values.
-type TaskListPage struct {
- fn func(context.Context, TaskList) (TaskList, error)
- tl TaskList
+// AsMqttC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) 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 *TaskListPage) NextWithContext(ctx context.Context) (err error) {
- if tracing.IsEnabled() {
- ctx = tracing.StartSpan(ctx, fqdn+"/TaskListPage.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.tl)
- if err != nil {
- return err
- }
- page.tl = next
- return nil
+// AsHTTPC2DMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) 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 *TaskListPage) Next() error {
- return page.NextWithContext(context.Background())
+// AsAmqpC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsAmqpC2DRejectedMessagesNotInAllowedRange() (*AmqpC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// NotDone returns true if the page enumeration should be started or is not yet complete.
-func (page TaskListPage) NotDone() bool {
- return !page.tl.IsEmpty()
+// AsMqttC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsMqttC2DRejectedMessagesNotInAllowedRange() (*MqttC2DRejectedMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Response returns the raw server response from the last page request.
-func (page TaskListPage) Response() TaskList {
- return page.tl
+// AsHTTPC2DRejectedMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) 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 TaskListPage) Values() []Task {
- if page.tl.IsEmpty() {
- return nil
- }
- return *page.tl.Value
+// AsAmqpD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsAmqpD2CMessagesNotInAllowedRange() (*AmqpD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// Creates a new instance of the TaskListPage type.
-func NewTaskListPage(getNextPage func(context.Context, TaskList) (TaskList, error)) TaskListPage {
- return TaskListPage{fn: getNextPage}
+// AsMqttD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsMqttD2CMessagesNotInAllowedRange() (*MqttD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// 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:""`
- // Name - READ-ONLY; Name of the task type
- Name *string `json:"name,omitempty"`
+// AsHTTPD2CMessagesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsHTTPD2CMessagesNotInAllowedRange() (*HTTPD2CMessagesNotInAllowedRange, bool) {
+ return nil, false
}
-// MarshalJSON is the custom marshaler for TaskParameters.
-func (tp TaskParameters) MarshalJSON() ([]byte, error) {
- objectMap := make(map[string]interface{})
- for k, v := range tp.AdditionalProperties {
- objectMap[k] = v
- }
- return json.Marshal(objectMap)
+// AsDirectMethodInvokesNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsDirectMethodInvokesNotInAllowedRange() (*DirectMethodInvokesNotInAllowedRange, bool) {
+ return nil, false
}
-// UnmarshalJSON is the custom unmarshaler for TaskParameters struct.
-func (tp *TaskParameters) 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 tp.AdditionalProperties == nil {
- tp.AdditionalProperties = make(map[string]interface{})
- }
- tp.AdditionalProperties[k] = additionalProperties
- }
- case "name":
- if v != nil {
- var name string
- err = json.Unmarshal(*v, &name)
- if err != nil {
- return err
- }
- tp.Name = &name
- }
- }
- }
+// AsFailedLocalLoginsNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsFailedLocalLoginsNotInAllowedRange() (*FailedLocalLoginsNotInAllowedRange, bool) {
+ return nil, false
+}
- return nil
+// 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
}
-// TaskProperties describes properties of a task.
-type TaskProperties struct {
- // State - READ-ONLY; State of the task (Active, Resolved etc.)
- State *string `json:"state,omitempty"`
- // CreationTimeUtc - READ-ONLY; The time this task was discovered in UTC
- CreationTimeUtc *date.Time `json:"creationTimeUtc,omitempty"`
- SecurityTaskParameters *TaskParameters `json:"securityTaskParameters,omitempty"`
- // LastStateChangeTimeUtc - READ-ONLY; The time this task's details were last changed in UTC
- LastStateChangeTimeUtc *date.Time `json:"lastStateChangeTimeUtc,omitempty"`
- // SubState - READ-ONLY; Additional data on the state of the task
- SubState *string `json:"subState,omitempty"`
+// AsUnauthorizedOperationsNotInAllowedRange is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsUnauthorizedOperationsNotInAllowedRange() (*UnauthorizedOperationsNotInAllowedRange, bool) {
+ return nil, false
}
-// 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"`
- // 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"`
+// AsCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) 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.
-type TimeWindowCustomAlertRule 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"`
+// AsBasicCustomAlertRule is the BasicCustomAlertRule implementation for TimeWindowCustomAlertRule.
+func (twcar TimeWindowCustomAlertRule) AsBasicCustomAlertRule() (BasicCustomAlertRule, bool) {
+ return &twcar, true
}
// TopologyList ...
@@ -9994,6 +17982,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 +18445,14 @@ type VendorReference struct {
Link *string `json:"link,omitempty"`
}
-// VMRecommendation represents a machine that is part of a VM/server group
+// 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"`
}
diff --git a/services/preview/security/mgmt/v3.0/security/operations.go b/services/preview/security/mgmt/v3.0/security/operations.go
index 916396d2b42f..4a28b4b47df6 100644
--- a/services/preview/security/mgmt/v3.0/security/operations.go
+++ b/services/preview/security/mgmt/v3.0/security/operations.go
@@ -101,7 +101,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..6c24ac9cca9e 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())
@@ -207,7 +206,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..75c1d438a3b2 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())
@@ -202,7 +201,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..a711d560f34e 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())
@@ -198,7 +197,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..ea112d977ea4
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/securescorecontroldefinitions.go
@@ -0,0 +1,263 @@
+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")
+ }
+
+ 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")
+ }
+
+ 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..4685aeb1b7a2
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/securescorecontrols.go
@@ -0,0 +1,285 @@
+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")
+ }
+
+ 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")
+ }
+
+ 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..b9b5d5698196
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/securescores.go
@@ -0,0 +1,238 @@
+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")
+ }
+
+ 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..aa7ff8e322e4 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,22 @@ 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)
-}
-
-var _ AllowedConnectionsClientAPI = (*security.AllowedConnectionsClient)(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)
+// 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 _ DiscoveredSecuritySolutionsClientAPI = (*security.DiscoveredSecuritySolutionsClient)(nil)
+var _ IotAlertTypesClientAPI = (*security.IotAlertTypesClient)(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)
-
-// 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)
-
-// 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)
-}
-
-var _ AdaptiveApplicationControlsClientAPI = (*security.AdaptiveApplicationControlsClient)(nil)
+var _ IotAlertsClientAPI = (*security.IotAlertsClient)(nil)
// LocationsClientAPI contains the set of methods on the LocationsClient type.
type LocationsClientAPI interface {
@@ -224,17 +181,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 +202,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 +261,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 +286,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 +331,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..cb4cf87ec907 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())
@@ -192,7 +191,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 +239,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 +278,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 +310,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..4977d5eb1181
--- /dev/null
+++ b/services/preview/security/mgmt/v3.0/security/solutions.go
@@ -0,0 +1,244 @@
+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")
+ }
+
+ 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..0698d13a7f60 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())
@@ -161,7 +160,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 +187,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())
@@ -273,7 +271,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 +298,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..e224a9a5e10f 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())
@@ -286,7 +284,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())
@@ -407,7 +404,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())
@@ -535,7 +531,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 +658,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 +740,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..638fd149aeb0 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())
@@ -176,7 +175,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 +199,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())
@@ -292,7 +290,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 +314,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..b8fa662d8c0e 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())
@@ -362,7 +359,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 +478,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())