From a28a61183f3386dbf074f03babc0edbc64cff582 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Tue, 24 Nov 2020 04:27:42 +0000 Subject: [PATCH] CodeGen from PR 11793 in Azure/azure-rest-api-specs Merge 8f6dcce300a0e071507028daa1d9df971225935c into d4d7ea6c660f853323ce6dc0ab9f3c239767169c --- .../src/Generated/IPolicyInsightsClient.cs | 10 + .../IPolicyRestrictionsOperations.cs | 83 +++ .../Models/CheckRestrictionsRequest.cs | 94 ++++ .../CheckRestrictionsResourceDetails.cs | 92 ++++ .../Models/CheckRestrictionsResult.cs | 64 +++ ...strictionsResultContentEvaluationResult.cs | 59 +++ .../Models/ExpressionEvaluationDetails.cs | 11 +- .../src/Generated/Models/FieldRestriction.cs | 86 ++++ .../Models/FieldRestrictionResult.cs | 32 ++ .../src/Generated/Models/FieldRestrictions.cs | 66 +++ .../src/Generated/Models/PendingField.cs | 81 +++ .../Models/PolicyEvaluationResult.cs | 75 +++ .../src/Generated/Models/PolicyReference.cs | 81 +++ .../src/Generated/PolicyInsightsClient.cs | 11 + .../Generated/PolicyRestrictionsOperations.cs | 481 ++++++++++++++++++ .../PolicyRestrictionsOperationsExtensions.cs | 117 +++++ .../Generated/SdkInfo_PolicyInsightsClient.cs | 12 +- 17 files changed, 1443 insertions(+), 12 deletions(-) create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/IPolicyRestrictionsOperations.cs create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsRequest.cs create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsResourceDetails.cs create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsResult.cs create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsResultContentEvaluationResult.cs create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/FieldRestriction.cs create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/FieldRestrictionResult.cs create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/FieldRestrictions.cs create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/PendingField.cs create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/PolicyEvaluationResult.cs create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/PolicyReference.cs create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/PolicyRestrictionsOperations.cs create mode 100644 sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/PolicyRestrictionsOperationsExtensions.cs diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/IPolicyInsightsClient.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/IPolicyInsightsClient.cs index 4a5a154b404fd..629ed95841631 100644 --- a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/IPolicyInsightsClient.cs +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/IPolicyInsightsClient.cs @@ -39,6 +39,11 @@ public partial interface IPolicyInsightsClient : System.IDisposable /// ServiceClientCredentials Credentials { get; } + /// + /// The ID of the target subscription. + /// + string SubscriptionId2 { get; set; } + /// /// The preferred language for the response. /// @@ -88,5 +93,10 @@ public partial interface IPolicyInsightsClient : System.IDisposable /// IPolicyMetadataOperations PolicyMetadata { get; } + /// + /// Gets the IPolicyRestrictionsOperations. + /// + IPolicyRestrictionsOperations PolicyRestrictions { get; } + } } diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/IPolicyRestrictionsOperations.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/IPolicyRestrictionsOperations.cs new file mode 100644 index 0000000000000..67a77a6ec6107 --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/IPolicyRestrictionsOperations.cs @@ -0,0 +1,83 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights +{ + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PolicyRestrictionsOperations operations. + /// + public partial interface IPolicyRestrictionsOperations + { + /// + /// Checks what restrictions Azure Policy will place on a resource + /// within a subscription. + /// + /// + /// The ID of the target subscription. + /// + /// + /// The check policy restrictions parameters. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> CheckAtSubscriptionScopeWithHttpMessagesAsync(string subscriptionId, CheckRestrictionsRequest parameters, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Checks what restrictions Azure Policy will place on a resource + /// within a resource group. Use this when the resource group the + /// resource will be created in is already known. + /// + /// + /// The ID of the target subscription. + /// + /// + /// The name of the resource group. The name is case insensitive. + /// + /// + /// The check policy restrictions parameters. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> CheckAtResourceGroupScopeWithHttpMessagesAsync(string subscriptionId, string resourceGroupName, CheckRestrictionsRequest parameters, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsRequest.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsRequest.cs new file mode 100644 index 0000000000000..4dfcb41ef2283 --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsRequest.cs @@ -0,0 +1,94 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights.Models +{ + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// The check policy restrictions parameters describing the resource that + /// is being evaluated. + /// + public partial class CheckRestrictionsRequest + { + /// + /// Initializes a new instance of the CheckRestrictionsRequest class. + /// + public CheckRestrictionsRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CheckRestrictionsRequest class. + /// + /// The information about the resource + /// that will be evaluated. + /// The list of fields and values that + /// should be evaluated for potential restrictions. + public CheckRestrictionsRequest(CheckRestrictionsResourceDetails resourceDetails, IList pendingFields = default(IList)) + { + ResourceDetails = resourceDetails; + PendingFields = pendingFields; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the information about the resource that will be + /// evaluated. + /// + [JsonProperty(PropertyName = "resourceDetails")] + public CheckRestrictionsResourceDetails ResourceDetails { get; set; } + + /// + /// Gets or sets the list of fields and values that should be evaluated + /// for potential restrictions. + /// + [JsonProperty(PropertyName = "pendingFields")] + public IList PendingFields { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (ResourceDetails == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "ResourceDetails"); + } + if (ResourceDetails != null) + { + ResourceDetails.Validate(); + } + if (PendingFields != null) + { + foreach (var element in PendingFields) + { + if (element != null) + { + element.Validate(); + } + } + } + } + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsResourceDetails.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsResourceDetails.cs new file mode 100644 index 0000000000000..38c72215ce088 --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsResourceDetails.cs @@ -0,0 +1,92 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights.Models +{ + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// The information about the resource that will be evaluated. + /// + public partial class CheckRestrictionsResourceDetails + { + /// + /// Initializes a new instance of the CheckRestrictionsResourceDetails + /// class. + /// + public CheckRestrictionsResourceDetails() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CheckRestrictionsResourceDetails + /// class. + /// + /// The resource content. This should + /// include whatever properties are already known and can be a partial + /// set of all resource properties. + /// The api-version of the resource + /// content. + /// The scope where the resource is being created. + /// For example, if the resource is a child resource this would be the + /// parent resource's resource ID. + public CheckRestrictionsResourceDetails(object resourceContent, string apiVersion = default(string), string scope = default(string)) + { + ResourceContent = resourceContent; + ApiVersion = apiVersion; + Scope = scope; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the resource content. This should include whatever + /// properties are already known and can be a partial set of all + /// resource properties. + /// + [JsonProperty(PropertyName = "resourceContent")] + public object ResourceContent { get; set; } + + /// + /// Gets or sets the api-version of the resource content. + /// + [JsonProperty(PropertyName = "apiVersion")] + public string ApiVersion { get; set; } + + /// + /// Gets or sets the scope where the resource is being created. For + /// example, if the resource is a child resource this would be the + /// parent resource's resource ID. + /// + [JsonProperty(PropertyName = "scope")] + public string Scope { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (ResourceContent == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "ResourceContent"); + } + } + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsResult.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsResult.cs new file mode 100644 index 0000000000000..9016faf1818e9 --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsResult.cs @@ -0,0 +1,64 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// The result of a check policy restrictions evaluation on a resource. + /// + public partial class CheckRestrictionsResult + { + /// + /// Initializes a new instance of the CheckRestrictionsResult class. + /// + public CheckRestrictionsResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CheckRestrictionsResult class. + /// + /// The restrictions that will be + /// placed on various fields in the resource by policy. + /// Evaluation results for the + /// provided partial resource content. + public CheckRestrictionsResult(IList fieldRestrictions = default(IList), CheckRestrictionsResultContentEvaluationResult contentEvaluationResult = default(CheckRestrictionsResultContentEvaluationResult)) + { + FieldRestrictions = fieldRestrictions; + ContentEvaluationResult = contentEvaluationResult; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets the restrictions that will be placed on various fields in the + /// resource by policy. + /// + [JsonProperty(PropertyName = "fieldRestrictions")] + public IList FieldRestrictions { get; private set; } + + /// + /// Gets evaluation results for the provided partial resource content. + /// + [JsonProperty(PropertyName = "contentEvaluationResult")] + public CheckRestrictionsResultContentEvaluationResult ContentEvaluationResult { get; private set; } + + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsResultContentEvaluationResult.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsResultContentEvaluationResult.cs new file mode 100644 index 0000000000000..22a854ef35cf6 --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/CheckRestrictionsResultContentEvaluationResult.cs @@ -0,0 +1,59 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Evaluation results for the provided partial resource content. + /// + public partial class CheckRestrictionsResultContentEvaluationResult + { + /// + /// Initializes a new instance of the + /// CheckRestrictionsResultContentEvaluationResult class. + /// + public CheckRestrictionsResultContentEvaluationResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the + /// CheckRestrictionsResultContentEvaluationResult class. + /// + /// Policy evaluation results against + /// the given resource content. This will indicate if the partial + /// content that was provided will be denied as-is. + public CheckRestrictionsResultContentEvaluationResult(IList policyEvaluations = default(IList)) + { + PolicyEvaluations = policyEvaluations; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets policy evaluation results against the given resource + /// content. This will indicate if the partial content that was + /// provided will be denied as-is. + /// + [JsonProperty(PropertyName = "policyEvaluations")] + public IList PolicyEvaluations { get; set; } + + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/ExpressionEvaluationDetails.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/ExpressionEvaluationDetails.cs index bfcee28fd06fe..53038318f51b1 100644 --- a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/ExpressionEvaluationDetails.cs +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/ExpressionEvaluationDetails.cs @@ -33,6 +33,8 @@ public ExpressionEvaluationDetails() /// /// Evaluation result. /// Expression evaluated. + /// The kind of expression that was + /// evaluated. /// Property path if the expression is a field or an /// alias. /// Value of the expression. @@ -40,10 +42,11 @@ public ExpressionEvaluationDetails() /// expression value. /// Operator to compare the expression /// value and the target value. - public ExpressionEvaluationDetails(string result = default(string), string expression = default(string), string path = default(string), object expressionValue = default(object), object targetValue = default(object), string operatorProperty = default(string)) + public ExpressionEvaluationDetails(string result = default(string), string expression = default(string), string expressionKind = default(string), string path = default(string), object expressionValue = default(object), object targetValue = default(object), string operatorProperty = default(string)) { Result = result; Expression = expression; + ExpressionKind = expressionKind; Path = path; ExpressionValue = expressionValue; TargetValue = targetValue; @@ -68,6 +71,12 @@ public ExpressionEvaluationDetails() [JsonProperty(PropertyName = "expression")] public string Expression { get; set; } + /// + /// Gets the kind of expression that was evaluated. + /// + [JsonProperty(PropertyName = "expressionKind")] + public string ExpressionKind { get; private set; } + /// /// Gets or sets property path if the expression is a field or an /// alias. diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/FieldRestriction.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/FieldRestriction.cs new file mode 100644 index 0000000000000..dd1e7178a607a --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/FieldRestriction.cs @@ -0,0 +1,86 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// The restrictions on a field imposed by a specific policy. + /// + public partial class FieldRestriction + { + /// + /// Initializes a new instance of the FieldRestriction class. + /// + public FieldRestriction() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FieldRestriction class. + /// + /// The type of restriction that is imposed on the + /// field. Possible values include: 'Required', 'Removed', + /// 'Deny' + /// The value that policy will set for the + /// field if the user does not provide a value. + /// The values that policy either requires or + /// denies for the field. + /// The details of the policy that is causing the + /// field restriction. + public FieldRestriction(string result = default(string), string defaultValue = default(string), IList values = default(IList), PolicyReference policy = default(PolicyReference)) + { + Result = result; + DefaultValue = defaultValue; + Values = values; + Policy = policy; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets the type of restriction that is imposed on the field. Possible + /// values include: 'Required', 'Removed', 'Deny' + /// + [JsonProperty(PropertyName = "result")] + public string Result { get; private set; } + + /// + /// Gets the value that policy will set for the field if the user does + /// not provide a value. + /// + [JsonProperty(PropertyName = "defaultValue")] + public string DefaultValue { get; private set; } + + /// + /// Gets the values that policy either requires or denies for the + /// field. + /// + [JsonProperty(PropertyName = "values")] + public IList Values { get; private set; } + + /// + /// Gets the details of the policy that is causing the field + /// restriction. + /// + [JsonProperty(PropertyName = "policy")] + public PolicyReference Policy { get; private set; } + + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/FieldRestrictionResult.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/FieldRestrictionResult.cs new file mode 100644 index 0000000000000..c0c9e03c296d8 --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/FieldRestrictionResult.cs @@ -0,0 +1,32 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights.Models +{ + + /// + /// Defines values for FieldRestrictionResult. + /// + public static class FieldRestrictionResult + { + /// + /// The field and/or values are required by policy. + /// + public const string Required = "Required"; + /// + /// The field will be removed by policy. + /// + public const string Removed = "Removed"; + /// + /// The field and/or values will be denied by policy. + /// + public const string Deny = "Deny"; + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/FieldRestrictions.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/FieldRestrictions.cs new file mode 100644 index 0000000000000..c55ffafa21392 --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/FieldRestrictions.cs @@ -0,0 +1,66 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights.Models +{ + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// The restrictions that will be placed on a field in the resource by + /// policy. + /// + public partial class FieldRestrictions + { + /// + /// Initializes a new instance of the FieldRestrictions class. + /// + public FieldRestrictions() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FieldRestrictions class. + /// + /// The name of the field. This can be a top-level + /// property like 'name' or 'type' or an Azure Policy field + /// alias. + /// The restrictions placed on that field by + /// policy. + public FieldRestrictions(string field = default(string), IList restrictions = default(IList)) + { + Field = field; + Restrictions = restrictions; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets the name of the field. This can be a top-level property like + /// 'name' or 'type' or an Azure Policy field alias. + /// + [JsonProperty(PropertyName = "field")] + public string Field { get; private set; } + + /// + /// Gets or sets the restrictions placed on that field by policy. + /// + [JsonProperty(PropertyName = "restrictions")] + public IList Restrictions { get; set; } + + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/PendingField.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/PendingField.cs new file mode 100644 index 0000000000000..854e36513ae83 --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/PendingField.cs @@ -0,0 +1,81 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights.Models +{ + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// A field that should be evaluated against Azure Policy to determine + /// restrictions. + /// + public partial class PendingField + { + /// + /// Initializes a new instance of the PendingField class. + /// + public PendingField() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PendingField class. + /// + /// The name of the field. This can be a top-level + /// property like 'name' or 'type' or an Azure Policy field + /// alias. + /// The list of potential values for the field + /// that should be evaluated against Azure Policy. + public PendingField(string field, IList values = default(IList)) + { + Field = field; + Values = values; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the name of the field. This can be a top-level + /// property like 'name' or 'type' or an Azure Policy field alias. + /// + [JsonProperty(PropertyName = "field")] + public string Field { get; set; } + + /// + /// Gets or sets the list of potential values for the field that should + /// be evaluated against Azure Policy. + /// + [JsonProperty(PropertyName = "values")] + public IList Values { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Field == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Field"); + } + } + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/PolicyEvaluationResult.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/PolicyEvaluationResult.cs new file mode 100644 index 0000000000000..cf9cd45d94ab7 --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/PolicyEvaluationResult.cs @@ -0,0 +1,75 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// The result of a non-compliant policy evaluation against the given + /// resource content. + /// + public partial class PolicyEvaluationResult + { + /// + /// Initializes a new instance of the PolicyEvaluationResult class. + /// + public PolicyEvaluationResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PolicyEvaluationResult class. + /// + /// The details of the policy that was + /// evaluated. + /// The result of the policy evaluation + /// against the resource. This will typically be 'NonCompliant' but may + /// contain other values if errors were encountered. + /// The detailed results of the policy + /// expressions and values that were evaluated. + public PolicyEvaluationResult(PolicyReference policyInfo = default(PolicyReference), string evaluationResult = default(string), PolicyEvaluationDetails evaluationDetails = default(PolicyEvaluationDetails)) + { + PolicyInfo = policyInfo; + EvaluationResult = evaluationResult; + EvaluationDetails = evaluationDetails; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets the details of the policy that was evaluated. + /// + [JsonProperty(PropertyName = "policyInfo")] + public PolicyReference PolicyInfo { get; private set; } + + /// + /// Gets the result of the policy evaluation against the resource. This + /// will typically be 'NonCompliant' but may contain other values if + /// errors were encountered. + /// + [JsonProperty(PropertyName = "evaluationResult")] + public string EvaluationResult { get; private set; } + + /// + /// Gets the detailed results of the policy expressions and values that + /// were evaluated. + /// + [JsonProperty(PropertyName = "evaluationDetails")] + public PolicyEvaluationDetails EvaluationDetails { get; private set; } + + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/PolicyReference.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/PolicyReference.cs new file mode 100644 index 0000000000000..b496dd096e519 --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/Models/PolicyReference.cs @@ -0,0 +1,81 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights.Models +{ + using Newtonsoft.Json; + using System.Linq; + + /// + /// Resource identifiers for a policy. + /// + public partial class PolicyReference + { + /// + /// Initializes a new instance of the PolicyReference class. + /// + public PolicyReference() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PolicyReference class. + /// + /// The resource identifier of the + /// policy definition. + /// The resource identifier of the + /// policy set definition. + /// The reference identifier + /// of a specific policy definition within a policy set + /// definition. + /// The resource identifier of the + /// policy assignment. + public PolicyReference(string policyDefinitionId = default(string), string policySetDefinitionId = default(string), string policyDefinitionReferenceId = default(string), string policyAssignmentId = default(string)) + { + PolicyDefinitionId = policyDefinitionId; + PolicySetDefinitionId = policySetDefinitionId; + PolicyDefinitionReferenceId = policyDefinitionReferenceId; + PolicyAssignmentId = policyAssignmentId; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets the resource identifier of the policy definition. + /// + [JsonProperty(PropertyName = "policyDefinitionId")] + public string PolicyDefinitionId { get; private set; } + + /// + /// Gets the resource identifier of the policy set definition. + /// + [JsonProperty(PropertyName = "policySetDefinitionId")] + public string PolicySetDefinitionId { get; private set; } + + /// + /// Gets the reference identifier of a specific policy definition + /// within a policy set definition. + /// + [JsonProperty(PropertyName = "policyDefinitionReferenceId")] + public string PolicyDefinitionReferenceId { get; private set; } + + /// + /// Gets the resource identifier of the policy assignment. + /// + [JsonProperty(PropertyName = "policyAssignmentId")] + public string PolicyAssignmentId { get; private set; } + + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/PolicyInsightsClient.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/PolicyInsightsClient.cs index bcea4394e4ccc..e9f82457db1ad 100644 --- a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/PolicyInsightsClient.cs +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/PolicyInsightsClient.cs @@ -43,6 +43,11 @@ public partial class PolicyInsightsClient : ServiceClient, /// public ServiceClientCredentials Credentials { get; private set; } + /// + /// The ID of the target subscription. + /// + public string SubscriptionId2 { get; set; } + /// /// The preferred language for the response. /// @@ -91,6 +96,11 @@ public partial class PolicyInsightsClient : ServiceClient, /// public virtual IPolicyMetadataOperations PolicyMetadata { get; private set; } + /// + /// Gets the IPolicyRestrictionsOperations. + /// + public virtual IPolicyRestrictionsOperations PolicyRestrictions { get; private set; } + /// /// Initializes a new instance of the PolicyInsightsClient class. /// @@ -338,6 +348,7 @@ private void Initialize() PolicyStates = new PolicyStatesOperations(this); Operations = new Operations(this); PolicyMetadata = new PolicyMetadataOperations(this); + PolicyRestrictions = new PolicyRestrictionsOperations(this); BaseUri = new System.Uri("https://management.azure.com"); AcceptLanguage = "en-US"; LongRunningOperationRetryTimeout = 30; diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/PolicyRestrictionsOperations.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/PolicyRestrictionsOperations.cs new file mode 100644 index 0000000000000..c0ba1e832ffcc --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/PolicyRestrictionsOperations.cs @@ -0,0 +1,481 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights +{ + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PolicyRestrictionsOperations operations. + /// + internal partial class PolicyRestrictionsOperations : IServiceOperations, IPolicyRestrictionsOperations + { + /// + /// Initializes a new instance of the PolicyRestrictionsOperations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + internal PolicyRestrictionsOperations(PolicyInsightsClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the PolicyInsightsClient + /// + public PolicyInsightsClient Client { get; private set; } + + /// + /// Checks what restrictions Azure Policy will place on a resource within a + /// subscription. + /// + /// + /// The ID of the target subscription. + /// + /// + /// The check policy restrictions parameters. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> CheckAtSubscriptionScopeWithHttpMessagesAsync(string subscriptionId, CheckRestrictionsRequest parameters, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (subscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "subscriptionId"); + } + if (subscriptionId != null) + { + if (subscriptionId.Length < 1) + { + throw new ValidationException(ValidationRules.MinLength, "subscriptionId", 1); + } + } + if (parameters == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "parameters"); + } + if (parameters != null) + { + parameters.Validate(); + } + string apiVersion = "2020-07-01"; + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("subscriptionId", subscriptionId); + tracingParameters.Add("apiVersion", apiVersion); + tracingParameters.Add("parameters", parameters); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "CheckAtSubscriptionScope", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/checkPolicyRestrictions").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(subscriptionId)); + List _queryParameters = new List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(parameters != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(parameters, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Checks what restrictions Azure Policy will place on a resource within a + /// resource group. Use this when the resource group the resource will be + /// created in is already known. + /// + /// + /// The ID of the target subscription. + /// + /// + /// The name of the resource group. The name is case insensitive. + /// + /// + /// The check policy restrictions parameters. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> CheckAtResourceGroupScopeWithHttpMessagesAsync(string subscriptionId, string resourceGroupName, CheckRestrictionsRequest parameters, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (subscriptionId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "subscriptionId"); + } + if (subscriptionId != null) + { + if (subscriptionId.Length < 1) + { + throw new ValidationException(ValidationRules.MinLength, "subscriptionId", 1); + } + } + if (resourceGroupName == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); + } + if (resourceGroupName != null) + { + if (resourceGroupName.Length > 90) + { + throw new ValidationException(ValidationRules.MaxLength, "resourceGroupName", 90); + } + if (resourceGroupName.Length < 1) + { + throw new ValidationException(ValidationRules.MinLength, "resourceGroupName", 1); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(resourceGroupName, "^[-\\w\\._\\(\\)]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "resourceGroupName", "^[-\\w\\._\\(\\)]+$"); + } + } + if (parameters == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "parameters"); + } + if (parameters != null) + { + parameters.Validate(); + } + string apiVersion = "2020-07-01"; + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("subscriptionId", subscriptionId); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("apiVersion", apiVersion); + tracingParameters.Add("parameters", parameters); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "CheckAtResourceGroupScope", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/checkPolicyRestrictions").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(subscriptionId)); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + List _queryParameters = new List(); + if (apiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(parameters != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(parameters, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Set Credentials + if (Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/PolicyRestrictionsOperationsExtensions.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/PolicyRestrictionsOperationsExtensions.cs new file mode 100644 index 0000000000000..289cb05b148ca --- /dev/null +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/PolicyRestrictionsOperationsExtensions.cs @@ -0,0 +1,117 @@ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// + +namespace Microsoft.Azure.Management.PolicyInsights +{ + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for PolicyRestrictionsOperations. + /// + public static partial class PolicyRestrictionsOperationsExtensions + { + /// + /// Checks what restrictions Azure Policy will place on a resource within a + /// subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The ID of the target subscription. + /// + /// + /// The check policy restrictions parameters. + /// + public static CheckRestrictionsResult CheckAtSubscriptionScope(this IPolicyRestrictionsOperations operations, string subscriptionId, CheckRestrictionsRequest parameters) + { + return operations.CheckAtSubscriptionScopeAsync(subscriptionId, parameters).GetAwaiter().GetResult(); + } + + /// + /// Checks what restrictions Azure Policy will place on a resource within a + /// subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The ID of the target subscription. + /// + /// + /// The check policy restrictions parameters. + /// + /// + /// The cancellation token. + /// + public static async Task CheckAtSubscriptionScopeAsync(this IPolicyRestrictionsOperations operations, string subscriptionId, CheckRestrictionsRequest parameters, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.CheckAtSubscriptionScopeWithHttpMessagesAsync(subscriptionId, parameters, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Checks what restrictions Azure Policy will place on a resource within a + /// resource group. Use this when the resource group the resource will be + /// created in is already known. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The ID of the target subscription. + /// + /// + /// The name of the resource group. The name is case insensitive. + /// + /// + /// The check policy restrictions parameters. + /// + public static CheckRestrictionsResult CheckAtResourceGroupScope(this IPolicyRestrictionsOperations operations, string subscriptionId, string resourceGroupName, CheckRestrictionsRequest parameters) + { + return operations.CheckAtResourceGroupScopeAsync(subscriptionId, resourceGroupName, parameters).GetAwaiter().GetResult(); + } + + /// + /// Checks what restrictions Azure Policy will place on a resource within a + /// resource group. Use this when the resource group the resource will be + /// created in is already known. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The ID of the target subscription. + /// + /// + /// The name of the resource group. The name is case insensitive. + /// + /// + /// The check policy restrictions parameters. + /// + /// + /// The cancellation token. + /// + public static async Task CheckAtResourceGroupScopeAsync(this IPolicyRestrictionsOperations operations, string subscriptionId, string resourceGroupName, CheckRestrictionsRequest parameters, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.CheckAtResourceGroupScopeWithHttpMessagesAsync(subscriptionId, resourceGroupName, parameters, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/SdkInfo_PolicyInsightsClient.cs b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/SdkInfo_PolicyInsightsClient.cs index 7b12a4b899305..456844678161a 100644 --- a/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/SdkInfo_PolicyInsightsClient.cs +++ b/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/src/Generated/SdkInfo_PolicyInsightsClient.cs @@ -22,22 +22,12 @@ public static IEnumerable> ApiInfo_PolicyInsightsC new Tuple("PolicyInsights", "Operations", "2019-10-01"), new Tuple("PolicyInsights", "PolicyEvents", "2019-10-01"), new Tuple("PolicyInsights", "PolicyMetadata", "2019-10-01"), + new Tuple("PolicyInsights", "PolicyRestrictions", "2020-07-01"), new Tuple("PolicyInsights", "PolicyStates", "2019-10-01"), new Tuple("PolicyInsights", "PolicyTrackedResources", "2018-07-01-preview"), new Tuple("PolicyInsights", "Remediations", "2019-07-01"), }.AsEnumerable(); } } - // BEGIN: Code Generation Metadata Section - public static readonly String AutoRestVersion = "v2"; - public static readonly String AutoRestBootStrapperVersion = "autorest@1.9.1"; - public static readonly String AutoRestCmdExecuted = "cmd.exe /c autorest.cmd https://github.com/Azure/azure-rest-api-specs/blob/master/specification/policyinsights/resource-manager/readme.md --csharp --version=v2 --reflect-api-versions --csharp-sdks-folder=C:\\Git\\narinem\\azure-sdk-for-net\\sdk"; - public static readonly String GithubForkName = "Azure"; - public static readonly String GithubBranchName = "master"; - public static readonly String GithubCommidId = "5d6c5386b27452b887d203e8f8238b64a31e4206"; - public static readonly String CodeGenerationErrors = ""; - public static readonly String GithubRepoName = "azure-rest-api-specs"; - // END: Code Generation Metadata Section } } -