diff --git a/services/datafactory/mgmt/2018-06-01/datafactory/datafactoryapi/interfaces.go b/services/datafactory/mgmt/2018-06-01/datafactory/datafactoryapi/interfaces.go index b2315d7930ba..bde967eebfef 100644 --- a/services/datafactory/mgmt/2018-06-01/datafactory/datafactoryapi/interfaces.go +++ b/services/datafactory/mgmt/2018-06-01/datafactory/datafactoryapi/interfaces.go @@ -48,6 +48,7 @@ var _ FactoriesClientAPI = (*datafactory.FactoriesClient)(nil) // ExposureControlClientAPI contains the set of methods on the ExposureControlClient type. type ExposureControlClientAPI interface { GetFeatureValue(ctx context.Context, locationID string, exposureControlRequest datafactory.ExposureControlRequest) (result datafactory.ExposureControlResponse, err error) + GetFeatureValueByFactory(ctx context.Context, resourceGroupName string, factoryName string, exposureControlRequest datafactory.ExposureControlRequest) (result datafactory.ExposureControlResponse, err error) } var _ ExposureControlClientAPI = (*datafactory.ExposureControlClient)(nil) diff --git a/services/datafactory/mgmt/2018-06-01/datafactory/exposurecontrol.go b/services/datafactory/mgmt/2018-06-01/datafactory/exposurecontrol.go index 3b289fb4a5ad..6b157276427e 100644 --- a/services/datafactory/mgmt/2018-06-01/datafactory/exposurecontrol.go +++ b/services/datafactory/mgmt/2018-06-01/datafactory/exposurecontrol.go @@ -21,6 +21,7 @@ import ( "context" "github.com/Azure/go-autorest/autorest" "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" "github.com/Azure/go-autorest/tracing" "net/http" ) @@ -118,3 +119,95 @@ func (client ExposureControlClient) GetFeatureValueResponder(resp *http.Response result.Response = autorest.Response{Response: resp} return } + +// GetFeatureValueByFactory get exposure control feature for specific factory. +// Parameters: +// resourceGroupName - the resource group name. +// factoryName - the factory name. +// exposureControlRequest - the exposure control request. +func (client ExposureControlClient) GetFeatureValueByFactory(ctx context.Context, resourceGroupName string, factoryName string, exposureControlRequest ExposureControlRequest) (result ExposureControlResponse, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ExposureControlClient.GetFeatureValueByFactory") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: resourceGroupName, + Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil}, + {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, + {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}, + {TargetValue: factoryName, + Constraints: []validation.Constraint{{Target: "factoryName", Name: validation.MaxLength, Rule: 63, Chain: nil}, + {Target: "factoryName", Name: validation.MinLength, Rule: 3, Chain: nil}, + {Target: "factoryName", Name: validation.Pattern, Rule: `^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$`, Chain: nil}}}}); err != nil { + return result, validation.NewError("datafactory.ExposureControlClient", "GetFeatureValueByFactory", err.Error()) + } + + req, err := client.GetFeatureValueByFactoryPreparer(ctx, resourceGroupName, factoryName, exposureControlRequest) + if err != nil { + err = autorest.NewErrorWithError(err, "datafactory.ExposureControlClient", "GetFeatureValueByFactory", nil, "Failure preparing request") + return + } + + resp, err := client.GetFeatureValueByFactorySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "datafactory.ExposureControlClient", "GetFeatureValueByFactory", resp, "Failure sending request") + return + } + + result, err = client.GetFeatureValueByFactoryResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "datafactory.ExposureControlClient", "GetFeatureValueByFactory", resp, "Failure responding to request") + } + + return +} + +// GetFeatureValueByFactoryPreparer prepares the GetFeatureValueByFactory request. +func (client ExposureControlClient) GetFeatureValueByFactoryPreparer(ctx context.Context, resourceGroupName string, factoryName string, exposureControlRequest ExposureControlRequest) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "factoryName": autorest.Encode("path", factoryName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-06-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/getFeatureValue", pathParameters), + autorest.WithJSON(exposureControlRequest), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetFeatureValueByFactorySender sends the GetFeatureValueByFactory request. The method will close the +// http.Response Body if it receives an error. +func (client ExposureControlClient) GetFeatureValueByFactorySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) +} + +// GetFeatureValueByFactoryResponder handles the response to the GetFeatureValueByFactory request. The method always +// closes the http.Response Body. +func (client ExposureControlClient) GetFeatureValueByFactoryResponder(resp *http.Response) (result ExposureControlResponse, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +}