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 4a5a154b404f..629ed9584163 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 000000000000..67a77a6ec610
--- /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 000000000000..4dfcb41ef228
--- /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 000000000000..38c72215ce08
--- /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 000000000000..9016faf1818e
--- /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 000000000000..22a854ef35cf
--- /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 bfcee28fd06f..53038318f51b 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 000000000000..dd1e7178a607
--- /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 000000000000..c0c9e03c296d
--- /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 000000000000..c55ffafa2139
--- /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 000000000000..854e36513ae8
--- /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 000000000000..cf9cd45d94ab
--- /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 000000000000..b496dd096e51
--- /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 bcea4394e4cc..e9f82457db1a 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 000000000000..c0ba1e832ffc
--- /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 000000000000..289cb05b148c
--- /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 7b12a4b89930..456844678161 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
}
}
-