diff --git a/profiles/latest/servicefabric/mgmt/servicefabric/models.go b/profiles/latest/servicefabric/mgmt/servicefabric/models.go index b836cce76496..0f8b50fa3cc8 100644 --- a/profiles/latest/servicefabric/mgmt/servicefabric/models.go +++ b/profiles/latest/servicefabric/mgmt/servicefabric/models.go @@ -36,6 +36,13 @@ const ( SharedProcess ArmServicePackageActivationMode = original.SharedProcess ) +type ArmUpgradeFailureAction = original.ArmUpgradeFailureAction + +const ( + Manual ArmUpgradeFailureAction = original.Manual + Rollback ArmUpgradeFailureAction = original.Rollback +) + type ClusterState = original.ClusterState const ( @@ -184,8 +191,8 @@ const ( type UpgradeMode = original.UpgradeMode const ( - Automatic UpgradeMode = original.Automatic - Manual UpgradeMode = original.Manual + UpgradeModeAutomatic UpgradeMode = original.UpgradeModeAutomatic + UpgradeModeManual UpgradeMode = original.UpgradeModeManual ) type UpgradeMode1 = original.UpgradeMode1 @@ -236,16 +243,18 @@ type ApplicationTypeVersionResource = original.ApplicationTypeVersionResource type ApplicationTypeVersionResourceList = original.ApplicationTypeVersionResourceList type ApplicationTypeVersionResourceProperties = original.ApplicationTypeVersionResourceProperties type ApplicationTypeVersionsClient = original.ApplicationTypeVersionsClient -type ApplicationTypeVersionsCreateFuture = original.ApplicationTypeVersionsCreateFuture +type ApplicationTypeVersionsCreateOrUpdateFuture = original.ApplicationTypeVersionsCreateOrUpdateFuture type ApplicationTypeVersionsDeleteFuture = original.ApplicationTypeVersionsDeleteFuture type ApplicationTypesClient = original.ApplicationTypesClient type ApplicationTypesDeleteFuture = original.ApplicationTypesDeleteFuture type ApplicationUpgradePolicy = original.ApplicationUpgradePolicy type ApplicationsClient = original.ApplicationsClient -type ApplicationsCreateFuture = original.ApplicationsCreateFuture +type ApplicationsCreateOrUpdateFuture = original.ApplicationsCreateOrUpdateFuture type ApplicationsDeleteFuture = original.ApplicationsDeleteFuture type ApplicationsUpdateFuture = original.ApplicationsUpdateFuture type ArmApplicationHealthPolicy = original.ArmApplicationHealthPolicy +type ArmRollingUpgradeMonitoringPolicy = original.ArmRollingUpgradeMonitoringPolicy +type ArmServiceTypeHealthPolicy = original.ArmServiceTypeHealthPolicy type AvailableOperationDisplay = original.AvailableOperationDisplay type AzureActiveDirectory = original.AzureActiveDirectory type BaseClient = original.BaseClient @@ -269,7 +278,7 @@ type ClusterUpgradePolicy = original.ClusterUpgradePolicy type ClusterVersionDetails = original.ClusterVersionDetails type ClusterVersionsClient = original.ClusterVersionsClient type ClustersClient = original.ClustersClient -type ClustersCreateFuture = original.ClustersCreateFuture +type ClustersCreateOrUpdateFuture = original.ClustersCreateOrUpdateFuture type ClustersUpdateFuture = original.ClustersUpdateFuture type DiagnosticsStorageAccountConfig = original.DiagnosticsStorageAccountConfig type EndpointRangeDescription = original.EndpointRangeDescription @@ -285,7 +294,6 @@ type OperationsClient = original.OperationsClient type PartitionSchemeDescription = original.PartitionSchemeDescription type ProxyResource = original.ProxyResource type Resource = original.Resource -type RollingUpgradeMonitoringPolicy = original.RollingUpgradeMonitoringPolicy type ServerCertificateCommonName = original.ServerCertificateCommonName type ServerCertificateCommonNames = original.ServerCertificateCommonNames type ServiceCorrelationDescription = original.ServiceCorrelationDescription @@ -300,7 +308,7 @@ type ServiceResourceUpdateProperties = original.ServiceResourceUpdateProperties type ServiceTypeDeltaHealthPolicy = original.ServiceTypeDeltaHealthPolicy type ServiceTypeHealthPolicy = original.ServiceTypeHealthPolicy type ServicesClient = original.ServicesClient -type ServicesCreateFuture = original.ServicesCreateFuture +type ServicesCreateOrUpdateFuture = original.ServicesCreateOrUpdateFuture type ServicesDeleteFuture = original.ServicesDeleteFuture type ServicesUpdateFuture = original.ServicesUpdateFuture type SettingsParameterDescription = original.SettingsParameterDescription @@ -369,6 +377,9 @@ func NewWithBaseURI(baseURI string, subscriptionID string) BaseClient { func PossibleArmServicePackageActivationModeValues() []ArmServicePackageActivationMode { return original.PossibleArmServicePackageActivationModeValues() } +func PossibleArmUpgradeFailureActionValues() []ArmUpgradeFailureAction { + return original.PossibleArmUpgradeFailureActionValues() +} func PossibleClusterStateValues() []ClusterState { return original.PossibleClusterStateValues() } diff --git a/profiles/preview/servicefabric/mgmt/servicefabric/models.go b/profiles/preview/servicefabric/mgmt/servicefabric/models.go index 651ca35ef2dd..1646871573e3 100644 --- a/profiles/preview/servicefabric/mgmt/servicefabric/models.go +++ b/profiles/preview/servicefabric/mgmt/servicefabric/models.go @@ -36,6 +36,13 @@ const ( SharedProcess ArmServicePackageActivationMode = original.SharedProcess ) +type ArmUpgradeFailureAction = original.ArmUpgradeFailureAction + +const ( + Manual ArmUpgradeFailureAction = original.Manual + Rollback ArmUpgradeFailureAction = original.Rollback +) + type ClusterState = original.ClusterState const ( @@ -184,8 +191,8 @@ const ( type UpgradeMode = original.UpgradeMode const ( - Automatic UpgradeMode = original.Automatic - Manual UpgradeMode = original.Manual + UpgradeModeAutomatic UpgradeMode = original.UpgradeModeAutomatic + UpgradeModeManual UpgradeMode = original.UpgradeModeManual ) type UpgradeMode1 = original.UpgradeMode1 @@ -236,16 +243,18 @@ type ApplicationTypeVersionResource = original.ApplicationTypeVersionResource type ApplicationTypeVersionResourceList = original.ApplicationTypeVersionResourceList type ApplicationTypeVersionResourceProperties = original.ApplicationTypeVersionResourceProperties type ApplicationTypeVersionsClient = original.ApplicationTypeVersionsClient -type ApplicationTypeVersionsCreateFuture = original.ApplicationTypeVersionsCreateFuture +type ApplicationTypeVersionsCreateOrUpdateFuture = original.ApplicationTypeVersionsCreateOrUpdateFuture type ApplicationTypeVersionsDeleteFuture = original.ApplicationTypeVersionsDeleteFuture type ApplicationTypesClient = original.ApplicationTypesClient type ApplicationTypesDeleteFuture = original.ApplicationTypesDeleteFuture type ApplicationUpgradePolicy = original.ApplicationUpgradePolicy type ApplicationsClient = original.ApplicationsClient -type ApplicationsCreateFuture = original.ApplicationsCreateFuture +type ApplicationsCreateOrUpdateFuture = original.ApplicationsCreateOrUpdateFuture type ApplicationsDeleteFuture = original.ApplicationsDeleteFuture type ApplicationsUpdateFuture = original.ApplicationsUpdateFuture type ArmApplicationHealthPolicy = original.ArmApplicationHealthPolicy +type ArmRollingUpgradeMonitoringPolicy = original.ArmRollingUpgradeMonitoringPolicy +type ArmServiceTypeHealthPolicy = original.ArmServiceTypeHealthPolicy type AvailableOperationDisplay = original.AvailableOperationDisplay type AzureActiveDirectory = original.AzureActiveDirectory type BaseClient = original.BaseClient @@ -269,7 +278,7 @@ type ClusterUpgradePolicy = original.ClusterUpgradePolicy type ClusterVersionDetails = original.ClusterVersionDetails type ClusterVersionsClient = original.ClusterVersionsClient type ClustersClient = original.ClustersClient -type ClustersCreateFuture = original.ClustersCreateFuture +type ClustersCreateOrUpdateFuture = original.ClustersCreateOrUpdateFuture type ClustersUpdateFuture = original.ClustersUpdateFuture type DiagnosticsStorageAccountConfig = original.DiagnosticsStorageAccountConfig type EndpointRangeDescription = original.EndpointRangeDescription @@ -285,7 +294,6 @@ type OperationsClient = original.OperationsClient type PartitionSchemeDescription = original.PartitionSchemeDescription type ProxyResource = original.ProxyResource type Resource = original.Resource -type RollingUpgradeMonitoringPolicy = original.RollingUpgradeMonitoringPolicy type ServerCertificateCommonName = original.ServerCertificateCommonName type ServerCertificateCommonNames = original.ServerCertificateCommonNames type ServiceCorrelationDescription = original.ServiceCorrelationDescription @@ -300,7 +308,7 @@ type ServiceResourceUpdateProperties = original.ServiceResourceUpdateProperties type ServiceTypeDeltaHealthPolicy = original.ServiceTypeDeltaHealthPolicy type ServiceTypeHealthPolicy = original.ServiceTypeHealthPolicy type ServicesClient = original.ServicesClient -type ServicesCreateFuture = original.ServicesCreateFuture +type ServicesCreateOrUpdateFuture = original.ServicesCreateOrUpdateFuture type ServicesDeleteFuture = original.ServicesDeleteFuture type ServicesUpdateFuture = original.ServicesUpdateFuture type SettingsParameterDescription = original.SettingsParameterDescription @@ -369,6 +377,9 @@ func NewWithBaseURI(baseURI string, subscriptionID string) BaseClient { func PossibleArmServicePackageActivationModeValues() []ArmServicePackageActivationMode { return original.PossibleArmServicePackageActivationModeValues() } +func PossibleArmUpgradeFailureActionValues() []ArmUpgradeFailureAction { + return original.PossibleArmUpgradeFailureActionValues() +} func PossibleClusterStateValues() []ClusterState { return original.PossibleClusterStateValues() } diff --git a/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/applications.go b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/applications.go new file mode 100644 index 000000000000..6fa4e1a8c9a5 --- /dev/null +++ b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/applications.go @@ -0,0 +1,441 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// ApplicationsClient is the service Fabric Management Client +type ApplicationsClient struct { + BaseClient +} + +// NewApplicationsClient creates an instance of the ApplicationsClient client. +func NewApplicationsClient(subscriptionID string) ApplicationsClient { + return NewApplicationsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewApplicationsClientWithBaseURI creates an instance of the ApplicationsClient client. +func NewApplicationsClientWithBaseURI(baseURI string, subscriptionID string) ApplicationsClient { + return ApplicationsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Create create or update a Service Fabric application resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationName - the name of the application resource. +// parameters - the application resource. +func (client ApplicationsClient) Create(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, parameters ApplicationResource) (result ApplicationsCreateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationsClient.Create") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CreatePreparer(ctx, resourceGroupName, clusterName, applicationName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "Create", nil, "Failure preparing request") + return + } + + result, err = client.CreateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "Create", result.Response(), "Failure sending request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client ApplicationsClient) CreatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, parameters ApplicationResource) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationName": autorest.Encode("path", applicationName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationsClient) CreateSender(req *http.Request) (future ApplicationsCreateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client ApplicationsClient) CreateResponder(resp *http.Response) (result ApplicationResource, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete delete a Service Fabric application resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationName - the name of the application resource. +func (client ApplicationsClient) Delete(ctx context.Context, resourceGroupName string, clusterName string, applicationName string) (result ApplicationsDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationsClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, clusterName, applicationName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client ApplicationsClient) DeletePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationName": autorest.Encode("path", applicationName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationsClient) DeleteSender(req *http.Request) (future ApplicationsDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client ApplicationsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get a Service Fabric application resource created or in the process of being created in the Service Fabric +// cluster resource. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationName - the name of the application resource. +func (client ApplicationsClient) Get(ctx context.Context, resourceGroupName string, clusterName string, applicationName string) (result ApplicationResource, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, clusterName, applicationName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client ApplicationsClient) GetPreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationName": autorest.Encode("path", applicationName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationsClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client ApplicationsClient) GetResponder(resp *http.Response) (result ApplicationResource, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets all application resources created or in the process of being created in the Service Fabric cluster +// resource. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +func (client ApplicationsClient) List(ctx context.Context, resourceGroupName string, clusterName string) (result ApplicationResourceList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationsClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx, resourceGroupName, clusterName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client ApplicationsClient) ListPreparer(ctx context.Context, resourceGroupName string, clusterName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationsClient) ListSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ApplicationsClient) ListResponder(resp *http.Response) (result ApplicationResourceList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Update update a Service Fabric application resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationName - the name of the application resource. +// parameters - the application resource for patch operations. +func (client ApplicationsClient) Update(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, parameters ApplicationResourceUpdate) (result ApplicationsUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationsClient.Update") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, resourceGroupName, clusterName, applicationName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "Update", nil, "Failure preparing request") + return + } + + result, err = client.UpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "Update", result.Response(), "Failure sending request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client ApplicationsClient) UpdatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, parameters ApplicationResourceUpdate) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationName": autorest.Encode("path", applicationName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationsClient) UpdateSender(req *http.Request) (future ApplicationsUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client ApplicationsClient) UpdateResponder(resp *http.Response) (result ApplicationResource, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/applicationtypes.go b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/applicationtypes.go new file mode 100644 index 000000000000..6e7d97a9a721 --- /dev/null +++ b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/applicationtypes.go @@ -0,0 +1,359 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// ApplicationTypesClient is the service Fabric Management Client +type ApplicationTypesClient struct { + BaseClient +} + +// NewApplicationTypesClient creates an instance of the ApplicationTypesClient client. +func NewApplicationTypesClient(subscriptionID string) ApplicationTypesClient { + return NewApplicationTypesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewApplicationTypesClientWithBaseURI creates an instance of the ApplicationTypesClient client. +func NewApplicationTypesClientWithBaseURI(baseURI string, subscriptionID string) ApplicationTypesClient { + return ApplicationTypesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Create create or update a Service Fabric application type name resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationTypeName - the name of the application type name resource. +// parameters - the application type name resource. +func (client ApplicationTypesClient) Create(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, parameters ApplicationTypeResource) (result ApplicationTypeResource, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationTypesClient.Create") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CreatePreparer(ctx, resourceGroupName, clusterName, applicationTypeName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "Create", nil, "Failure preparing request") + return + } + + resp, err := client.CreateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "Create", resp, "Failure sending request") + return + } + + result, err = client.CreateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "Create", resp, "Failure responding to request") + } + + return +} + +// CreatePreparer prepares the Create request. +func (client ApplicationTypesClient) CreatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, parameters ApplicationTypeResource) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationTypesClient) CreateSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client ApplicationTypesClient) CreateResponder(resp *http.Response) (result ApplicationTypeResource, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete delete a Service Fabric application type name resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationTypeName - the name of the application type name resource. +func (client ApplicationTypesClient) Delete(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string) (result ApplicationTypesDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationTypesClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, clusterName, applicationTypeName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client ApplicationTypesClient) DeletePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationTypesClient) DeleteSender(req *http.Request) (future ApplicationTypesDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client ApplicationTypesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get a Service Fabric application type name resource created or in the process of being created in the Service +// Fabric cluster resource. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationTypeName - the name of the application type name resource. +func (client ApplicationTypesClient) Get(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string) (result ApplicationTypeResource, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationTypesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, clusterName, applicationTypeName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client ApplicationTypesClient) GetPreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationTypesClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client ApplicationTypesClient) GetResponder(resp *http.Response) (result ApplicationTypeResource, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets all application type name resources created or in the process of being created in the Service Fabric +// cluster resource. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +func (client ApplicationTypesClient) List(ctx context.Context, resourceGroupName string, clusterName string) (result ApplicationTypeResourceList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationTypesClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx, resourceGroupName, clusterName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client ApplicationTypesClient) ListPreparer(ctx context.Context, resourceGroupName string, clusterName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationTypesClient) ListSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ApplicationTypesClient) ListResponder(resp *http.Response) (result ApplicationTypeResourceList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/applicationtypeversions.go b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/applicationtypeversions.go new file mode 100644 index 000000000000..b9a1c3476dc9 --- /dev/null +++ b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/applicationtypeversions.go @@ -0,0 +1,375 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// ApplicationTypeVersionsClient is the service Fabric Management Client +type ApplicationTypeVersionsClient struct { + BaseClient +} + +// NewApplicationTypeVersionsClient creates an instance of the ApplicationTypeVersionsClient client. +func NewApplicationTypeVersionsClient(subscriptionID string) ApplicationTypeVersionsClient { + return NewApplicationTypeVersionsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewApplicationTypeVersionsClientWithBaseURI creates an instance of the ApplicationTypeVersionsClient client. +func NewApplicationTypeVersionsClientWithBaseURI(baseURI string, subscriptionID string) ApplicationTypeVersionsClient { + return ApplicationTypeVersionsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Create create or update a Service Fabric application type version resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationTypeName - the name of the application type name resource. +// version - the application type version. +// parameters - the application type version resource. +func (client ApplicationTypeVersionsClient) Create(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string, parameters ApplicationTypeVersionResource) (result ApplicationTypeVersionsCreateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationTypeVersionsClient.Create") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.ApplicationTypeVersionResourceProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ApplicationTypeVersionResourceProperties.AppPackageURL", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("servicefabric.ApplicationTypeVersionsClient", "Create", err.Error()) + } + + req, err := client.CreatePreparer(ctx, resourceGroupName, clusterName, applicationTypeName, version, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "Create", nil, "Failure preparing request") + return + } + + result, err = client.CreateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "Create", result.Response(), "Failure sending request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client ApplicationTypeVersionsClient) CreatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string, parameters ApplicationTypeVersionResource) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "version": autorest.Encode("path", version), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}/versions/{version}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationTypeVersionsClient) CreateSender(req *http.Request) (future ApplicationTypeVersionsCreateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client ApplicationTypeVersionsClient) CreateResponder(resp *http.Response) (result ApplicationTypeVersionResource, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete delete a Service Fabric application type version resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationTypeName - the name of the application type name resource. +// version - the application type version. +func (client ApplicationTypeVersionsClient) Delete(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string) (result ApplicationTypeVersionsDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationTypeVersionsClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, clusterName, applicationTypeName, version) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client ApplicationTypeVersionsClient) DeletePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "version": autorest.Encode("path", version), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}/versions/{version}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationTypeVersionsClient) DeleteSender(req *http.Request) (future ApplicationTypeVersionsDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client ApplicationTypeVersionsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get a Service Fabric application type version resource created or in the process of being created in the Service +// Fabric application type name resource. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationTypeName - the name of the application type name resource. +// version - the application type version. +func (client ApplicationTypeVersionsClient) Get(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string) (result ApplicationTypeVersionResource, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationTypeVersionsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, clusterName, applicationTypeName, version) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client ApplicationTypeVersionsClient) GetPreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "version": autorest.Encode("path", version), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}/versions/{version}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationTypeVersionsClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client ApplicationTypeVersionsClient) GetResponder(resp *http.Response) (result ApplicationTypeVersionResource, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets all application type version resources created or in the process of being created in the Service Fabric +// application type name resource. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationTypeName - the name of the application type name resource. +func (client ApplicationTypeVersionsClient) List(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string) (result ApplicationTypeVersionResourceList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationTypeVersionsClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx, resourceGroupName, clusterName, applicationTypeName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client ApplicationTypeVersionsClient) ListPreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applicationTypes/{applicationTypeName}/versions", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client ApplicationTypeVersionsClient) ListSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ApplicationTypeVersionsClient) ListResponder(resp *http.Response) (result ApplicationTypeVersionResourceList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/client.go b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/client.go new file mode 100644 index 000000000000..0563316480f8 --- /dev/null +++ b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/client.go @@ -0,0 +1,51 @@ +// Package servicefabric implements the Azure ARM Servicefabric service API version 2019-03-01-preview. +// +// Service Fabric Management Client +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "github.com/Azure/go-autorest/autorest" +) + +const ( + // DefaultBaseURI is the default URI used for the service Servicefabric + DefaultBaseURI = "https://management.azure.com" +) + +// BaseClient is the base client for Servicefabric. +type BaseClient struct { + autorest.Client + BaseURI string + SubscriptionID string +} + +// New creates an instance of the BaseClient client. +func New(subscriptionID string) BaseClient { + return NewWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewWithBaseURI creates an instance of the BaseClient client. +func NewWithBaseURI(baseURI string, subscriptionID string) BaseClient { + return BaseClient{ + Client: autorest.NewClientWithUserAgent(UserAgent()), + BaseURI: baseURI, + SubscriptionID: subscriptionID, + } +} diff --git a/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/clusters.go b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/clusters.go new file mode 100644 index 000000000000..82e30df9d6d1 --- /dev/null +++ b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/clusters.go @@ -0,0 +1,557 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// ClustersClient is the service Fabric Management Client +type ClustersClient struct { + BaseClient +} + +// NewClustersClient creates an instance of the ClustersClient client. +func NewClustersClient(subscriptionID string) ClustersClient { + return NewClustersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewClustersClientWithBaseURI creates an instance of the ClustersClient client. +func NewClustersClientWithBaseURI(baseURI string, subscriptionID string) ClustersClient { + return ClustersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Create create or update a Service Fabric cluster resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// parameters - the cluster resource. +func (client ClustersClient) Create(ctx context.Context, resourceGroupName string, clusterName string, parameters Cluster) (result ClustersCreateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ClustersClient.Create") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.ClusterProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ClusterProperties.Certificate", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ClusterProperties.Certificate.Thumbprint", Name: validation.Null, Rule: true, Chain: nil}}}, + {Target: "parameters.ClusterProperties.DiagnosticsStorageAccountConfig", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ClusterProperties.DiagnosticsStorageAccountConfig.StorageAccountName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.ClusterProperties.DiagnosticsStorageAccountConfig.ProtectedAccountKeyName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.ClusterProperties.DiagnosticsStorageAccountConfig.BlobEndpoint", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.ClusterProperties.DiagnosticsStorageAccountConfig.QueueEndpoint", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.ClusterProperties.DiagnosticsStorageAccountConfig.TableEndpoint", Name: validation.Null, Rule: true, Chain: nil}, + }}, + {Target: "parameters.ClusterProperties.ManagementEndpoint", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.ClusterProperties.NodeTypes", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.ClusterProperties.ReverseProxyCertificate", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ClusterProperties.ReverseProxyCertificate.Thumbprint", Name: validation.Null, Rule: true, Chain: nil}}}, + {Target: "parameters.ClusterProperties.UpgradeDescription", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ClusterProperties.UpgradeDescription.UpgradeReplicaSetCheckTimeout", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.ClusterProperties.UpgradeDescription.HealthCheckWaitDuration", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.ClusterProperties.UpgradeDescription.HealthCheckStableDuration", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.ClusterProperties.UpgradeDescription.HealthCheckRetryTimeout", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.ClusterProperties.UpgradeDescription.UpgradeTimeout", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.ClusterProperties.UpgradeDescription.UpgradeDomainTimeout", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.ClusterProperties.UpgradeDescription.HealthPolicy", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "parameters.ClusterProperties.UpgradeDescription.HealthPolicy.MaxPercentUnhealthyNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ClusterProperties.UpgradeDescription.HealthPolicy.MaxPercentUnhealthyNodes", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "parameters.ClusterProperties.UpgradeDescription.HealthPolicy.MaxPercentUnhealthyNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "parameters.ClusterProperties.UpgradeDescription.HealthPolicy.MaxPercentUnhealthyApplications", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ClusterProperties.UpgradeDescription.HealthPolicy.MaxPercentUnhealthyApplications", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "parameters.ClusterProperties.UpgradeDescription.HealthPolicy.MaxPercentUnhealthyApplications", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + }}, + {Target: "parameters.ClusterProperties.UpgradeDescription.DeltaHealthPolicy", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "parameters.ClusterProperties.UpgradeDescription.DeltaHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "parameters.ClusterProperties.UpgradeDescription.DeltaHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "parameters.ClusterProperties.UpgradeDescription.DeltaHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "parameters.ClusterProperties.UpgradeDescription.DeltaHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "parameters.ClusterProperties.UpgradeDescription.DeltaHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "parameters.ClusterProperties.UpgradeDescription.DeltaHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "parameters.ClusterProperties.UpgradeDescription.DeltaHealthPolicy.MaxPercentDeltaUnhealthyApplications", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "parameters.ClusterProperties.UpgradeDescription.DeltaHealthPolicy.MaxPercentDeltaUnhealthyApplications", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "parameters.ClusterProperties.UpgradeDescription.DeltaHealthPolicy.MaxPercentDeltaUnhealthyApplications", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + }}, + }}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.ClustersClient", "Create", err.Error()) + } + + req, err := client.CreatePreparer(ctx, resourceGroupName, clusterName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "Create", nil, "Failure preparing request") + return + } + + result, err = client.CreateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "Create", result.Response(), "Failure sending request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client ClustersClient) CreatePreparer(ctx context.Context, resourceGroupName string, clusterName string, parameters Cluster) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client ClustersClient) CreateSender(req *http.Request) (future ClustersCreateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client ClustersClient) CreateResponder(resp *http.Response) (result Cluster, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete delete a Service Fabric cluster resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +func (client ClustersClient) Delete(ctx context.Context, resourceGroupName string, clusterName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ClustersClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, clusterName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "Delete", resp, "Failure responding to request") + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client ClustersClient) DeletePreparer(ctx context.Context, resourceGroupName string, clusterName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client ClustersClient) DeleteSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client ClustersClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get a Service Fabric cluster resource created or in the process of being created in the specified resource +// group. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +func (client ClustersClient) Get(ctx context.Context, resourceGroupName string, clusterName string) (result Cluster, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ClustersClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, clusterName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client ClustersClient) GetPreparer(ctx context.Context, resourceGroupName string, clusterName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client ClustersClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client ClustersClient) GetResponder(resp *http.Response) (result Cluster, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets all Service Fabric cluster resources created or in the process of being created in the subscription. +func (client ClustersClient) List(ctx context.Context) (result ClusterListResult, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ClustersClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client ClustersClient) ListPreparer(ctx context.Context) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/clusters", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client ClustersClient) ListSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ClustersClient) ListResponder(resp *http.Response) (result ClusterListResult, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByResourceGroup gets all Service Fabric cluster resources created or in the process of being created in the +// resource group. +// Parameters: +// resourceGroupName - the name of the resource group. +func (client ClustersClient) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result ClusterListResult, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ClustersClient.ListByResourceGroup") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "ListByResourceGroup", nil, "Failure preparing request") + return + } + + resp, err := client.ListByResourceGroupSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "ListByResourceGroup", resp, "Failure sending request") + return + } + + result, err = client.ListByResourceGroupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "ListByResourceGroup", resp, "Failure responding to request") + } + + return +} + +// ListByResourceGroupPreparer prepares the ListByResourceGroup request. +func (client ClustersClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the +// http.Response Body if it receives an error. +func (client ClustersClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always +// closes the http.Response Body. +func (client ClustersClient) ListByResourceGroupResponder(resp *http.Response) (result ClusterListResult, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Update update the configuration of a Service Fabric cluster resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// parameters - the parameters which contains the property value and property name which used to update the +// cluster configuration. +func (client ClustersClient) Update(ctx context.Context, resourceGroupName string, clusterName string, parameters ClusterUpdateParameters) (result ClustersUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ClustersClient.Update") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, resourceGroupName, clusterName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "Update", nil, "Failure preparing request") + return + } + + result, err = client.UpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "Update", result.Response(), "Failure sending request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client ClustersClient) UpdatePreparer(ctx context.Context, resourceGroupName string, clusterName string, parameters ClusterUpdateParameters) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client ClustersClient) UpdateSender(req *http.Request) (future ClustersUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client ClustersClient) UpdateResponder(resp *http.Response) (result Cluster, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/clusterversions.go b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/clusterversions.go new file mode 100644 index 000000000000..4bf841f027bc --- /dev/null +++ b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/clusterversions.go @@ -0,0 +1,349 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// ClusterVersionsClient is the service Fabric Management Client +type ClusterVersionsClient struct { + BaseClient +} + +// NewClusterVersionsClient creates an instance of the ClusterVersionsClient client. +func NewClusterVersionsClient(subscriptionID string) ClusterVersionsClient { + return NewClusterVersionsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewClusterVersionsClientWithBaseURI creates an instance of the ClusterVersionsClient client. +func NewClusterVersionsClientWithBaseURI(baseURI string, subscriptionID string) ClusterVersionsClient { + return ClusterVersionsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Get gets information about an available Service Fabric cluster code version. +// Parameters: +// location - the location for the cluster code versions. This is different from cluster location. +// clusterVersion - the cluster code version. +func (client ClusterVersionsClient) Get(ctx context.Context, location string, clusterVersion string) (result ClusterCodeVersionsListResult, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ClusterVersionsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, location, clusterVersion) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClusterVersionsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ClusterVersionsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClusterVersionsClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client ClusterVersionsClient) GetPreparer(ctx context.Context, location string, clusterVersion string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "clusterVersion": autorest.Encode("path", clusterVersion), + "location": autorest.Encode("path", location), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/clusterVersions/{clusterVersion}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client ClusterVersionsClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client ClusterVersionsClient) GetResponder(resp *http.Response) (result ClusterCodeVersionsListResult, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetByEnvironment gets information about an available Service Fabric cluster code version by environment. +// Parameters: +// location - the location for the cluster code versions. This is different from cluster location. +// environment - the operating system of the cluster. The default means all. +// clusterVersion - the cluster code version. +func (client ClusterVersionsClient) GetByEnvironment(ctx context.Context, location string, environment string, clusterVersion string) (result ClusterCodeVersionsListResult, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ClusterVersionsClient.GetByEnvironment") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetByEnvironmentPreparer(ctx, location, environment, clusterVersion) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClusterVersionsClient", "GetByEnvironment", nil, "Failure preparing request") + return + } + + resp, err := client.GetByEnvironmentSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ClusterVersionsClient", "GetByEnvironment", resp, "Failure sending request") + return + } + + result, err = client.GetByEnvironmentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClusterVersionsClient", "GetByEnvironment", resp, "Failure responding to request") + } + + return +} + +// GetByEnvironmentPreparer prepares the GetByEnvironment request. +func (client ClusterVersionsClient) GetByEnvironmentPreparer(ctx context.Context, location string, environment string, clusterVersion string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "clusterVersion": autorest.Encode("path", clusterVersion), + "environment": autorest.Encode("path", environment), + "location": autorest.Encode("path", location), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/environments/{environment}/clusterVersions/{clusterVersion}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetByEnvironmentSender sends the GetByEnvironment request. The method will close the +// http.Response Body if it receives an error. +func (client ClusterVersionsClient) GetByEnvironmentSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetByEnvironmentResponder handles the response to the GetByEnvironment request. The method always +// closes the http.Response Body. +func (client ClusterVersionsClient) GetByEnvironmentResponder(resp *http.Response) (result ClusterCodeVersionsListResult, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets all available code versions for Service Fabric cluster resources by location. +// Parameters: +// location - the location for the cluster code versions. This is different from cluster location. +func (client ClusterVersionsClient) List(ctx context.Context, location string) (result ClusterCodeVersionsListResult, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ClusterVersionsClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx, location) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClusterVersionsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ClusterVersionsClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClusterVersionsClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client ClusterVersionsClient) ListPreparer(ctx context.Context, location string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "location": autorest.Encode("path", location), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/clusterVersions", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client ClusterVersionsClient) ListSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ClusterVersionsClient) ListResponder(resp *http.Response) (result ClusterCodeVersionsListResult, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByEnvironment gets all available code versions for Service Fabric cluster resources by environment. +// Parameters: +// location - the location for the cluster code versions. This is different from cluster location. +// environment - the operating system of the cluster. The default means all. +func (client ClusterVersionsClient) ListByEnvironment(ctx context.Context, location string, environment string) (result ClusterCodeVersionsListResult, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ClusterVersionsClient.ListByEnvironment") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListByEnvironmentPreparer(ctx, location, environment) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClusterVersionsClient", "ListByEnvironment", nil, "Failure preparing request") + return + } + + resp, err := client.ListByEnvironmentSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ClusterVersionsClient", "ListByEnvironment", resp, "Failure sending request") + return + } + + result, err = client.ListByEnvironmentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClusterVersionsClient", "ListByEnvironment", resp, "Failure responding to request") + } + + return +} + +// ListByEnvironmentPreparer prepares the ListByEnvironment request. +func (client ClusterVersionsClient) ListByEnvironmentPreparer(ctx context.Context, location string, environment string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "environment": autorest.Encode("path", environment), + "location": autorest.Encode("path", location), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.ServiceFabric/locations/{location}/environments/{environment}/clusterVersions", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByEnvironmentSender sends the ListByEnvironment request. The method will close the +// http.Response Body if it receives an error. +func (client ClusterVersionsClient) ListByEnvironmentSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByEnvironmentResponder handles the response to the ListByEnvironment request. The method always +// closes the http.Response Body. +func (client ClusterVersionsClient) ListByEnvironmentResponder(resp *http.Response) (result ClusterCodeVersionsListResult, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/models.go b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/models.go new file mode 100644 index 000000000000..b4a34e62c15a --- /dev/null +++ b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/models.go @@ -0,0 +1,4239 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "encoding/json" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/date" + "github.com/Azure/go-autorest/autorest/to" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// The package's fully qualified name. +const fqdn = "github.com/Azure/azure-sdk-for-go/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric" + +// ArmServicePackageActivationMode enumerates the values for arm service package activation mode. +type ArmServicePackageActivationMode string + +const ( + // ExclusiveProcess Indicates the application package activation mode will use exclusive process. + ExclusiveProcess ArmServicePackageActivationMode = "ExclusiveProcess" + // SharedProcess Indicates the application package activation mode will use shared process. + SharedProcess ArmServicePackageActivationMode = "SharedProcess" +) + +// PossibleArmServicePackageActivationModeValues returns an array of possible values for the ArmServicePackageActivationMode const type. +func PossibleArmServicePackageActivationModeValues() []ArmServicePackageActivationMode { + return []ArmServicePackageActivationMode{ExclusiveProcess, SharedProcess} +} + +// ArmUpgradeFailureAction enumerates the values for arm upgrade failure action. +type ArmUpgradeFailureAction string + +const ( + // Manual Indicates that a manual repair will need to be performed by the administrator if the upgrade + // fails. Service Fabric will not proceed to the next upgrade domain automatically. + Manual ArmUpgradeFailureAction = "Manual" + // Rollback Indicates that a rollback of the upgrade will be performed by Service Fabric if the upgrade + // fails. + Rollback ArmUpgradeFailureAction = "Rollback" +) + +// PossibleArmUpgradeFailureActionValues returns an array of possible values for the ArmUpgradeFailureAction const type. +func PossibleArmUpgradeFailureActionValues() []ArmUpgradeFailureAction { + return []ArmUpgradeFailureAction{Manual, Rollback} +} + +// ClusterState enumerates the values for cluster state. +type ClusterState string + +const ( + // AutoScale ... + AutoScale ClusterState = "AutoScale" + // BaselineUpgrade ... + BaselineUpgrade ClusterState = "BaselineUpgrade" + // Deploying ... + Deploying ClusterState = "Deploying" + // EnforcingClusterVersion ... + EnforcingClusterVersion ClusterState = "EnforcingClusterVersion" + // Ready ... + Ready ClusterState = "Ready" + // UpdatingInfrastructure ... + UpdatingInfrastructure ClusterState = "UpdatingInfrastructure" + // UpdatingUserCertificate ... + UpdatingUserCertificate ClusterState = "UpdatingUserCertificate" + // UpdatingUserConfiguration ... + UpdatingUserConfiguration ClusterState = "UpdatingUserConfiguration" + // UpgradeServiceUnreachable ... + UpgradeServiceUnreachable ClusterState = "UpgradeServiceUnreachable" + // WaitingForNodes ... + WaitingForNodes ClusterState = "WaitingForNodes" +) + +// PossibleClusterStateValues returns an array of possible values for the ClusterState const type. +func PossibleClusterStateValues() []ClusterState { + return []ClusterState{AutoScale, BaselineUpgrade, Deploying, EnforcingClusterVersion, Ready, UpdatingInfrastructure, UpdatingUserCertificate, UpdatingUserConfiguration, UpgradeServiceUnreachable, WaitingForNodes} +} + +// DurabilityLevel enumerates the values for durability level. +type DurabilityLevel string + +const ( + // Bronze ... + Bronze DurabilityLevel = "Bronze" + // Gold ... + Gold DurabilityLevel = "Gold" + // Silver ... + Silver DurabilityLevel = "Silver" +) + +// PossibleDurabilityLevelValues returns an array of possible values for the DurabilityLevel const type. +func PossibleDurabilityLevelValues() []DurabilityLevel { + return []DurabilityLevel{Bronze, Gold, Silver} +} + +// Environment enumerates the values for environment. +type Environment string + +const ( + // Linux ... + Linux Environment = "Linux" + // Windows ... + Windows Environment = "Windows" +) + +// PossibleEnvironmentValues returns an array of possible values for the Environment const type. +func PossibleEnvironmentValues() []Environment { + return []Environment{Linux, Windows} +} + +// MoveCost enumerates the values for move cost. +type MoveCost string + +const ( + // High Specifies the move cost of the service as High. The value is 3. + High MoveCost = "High" + // Low Specifies the move cost of the service as Low. The value is 1. + Low MoveCost = "Low" + // Medium Specifies the move cost of the service as Medium. The value is 2. + Medium MoveCost = "Medium" + // Zero Zero move cost. This value is zero. + Zero MoveCost = "Zero" +) + +// PossibleMoveCostValues returns an array of possible values for the MoveCost const type. +func PossibleMoveCostValues() []MoveCost { + return []MoveCost{High, Low, Medium, Zero} +} + +// PartitionScheme enumerates the values for partition scheme. +type PartitionScheme string + +const ( + // Invalid Indicates the partition kind is invalid. All Service Fabric enumerations have the invalid type. + // The value is zero. + Invalid PartitionScheme = "Invalid" + // Named Indicates that the partition is based on string names, and is a NamedPartitionSchemeDescription + // object. The value is 3 + Named PartitionScheme = "Named" + // Singleton Indicates that the partition is based on string names, and is a + // SingletonPartitionSchemeDescription object, The value is 1. + Singleton PartitionScheme = "Singleton" + // UniformInt64Range Indicates that the partition is based on Int64 key ranges, and is a + // UniformInt64RangePartitionSchemeDescription object. The value is 2. + UniformInt64Range PartitionScheme = "UniformInt64Range" +) + +// PossiblePartitionSchemeValues returns an array of possible values for the PartitionScheme const type. +func PossiblePartitionSchemeValues() []PartitionScheme { + return []PartitionScheme{Invalid, Named, Singleton, UniformInt64Range} +} + +// PartitionSchemeBasicPartitionSchemeDescription enumerates the values for partition scheme basic partition +// scheme description. +type PartitionSchemeBasicPartitionSchemeDescription string + +const ( + // PartitionSchemeNamed ... + PartitionSchemeNamed PartitionSchemeBasicPartitionSchemeDescription = "Named" + // PartitionSchemePartitionSchemeDescription ... + PartitionSchemePartitionSchemeDescription PartitionSchemeBasicPartitionSchemeDescription = "PartitionSchemeDescription" + // PartitionSchemeSingleton ... + PartitionSchemeSingleton PartitionSchemeBasicPartitionSchemeDescription = "Singleton" + // PartitionSchemeUniformInt64Range ... + PartitionSchemeUniformInt64Range PartitionSchemeBasicPartitionSchemeDescription = "UniformInt64Range" +) + +// PossiblePartitionSchemeBasicPartitionSchemeDescriptionValues returns an array of possible values for the PartitionSchemeBasicPartitionSchemeDescription const type. +func PossiblePartitionSchemeBasicPartitionSchemeDescriptionValues() []PartitionSchemeBasicPartitionSchemeDescription { + return []PartitionSchemeBasicPartitionSchemeDescription{PartitionSchemeNamed, PartitionSchemePartitionSchemeDescription, PartitionSchemeSingleton, PartitionSchemeUniformInt64Range} +} + +// ProvisioningState enumerates the values for provisioning state. +type ProvisioningState string + +const ( + // Canceled ... + Canceled ProvisioningState = "Canceled" + // Failed ... + Failed ProvisioningState = "Failed" + // Succeeded ... + Succeeded ProvisioningState = "Succeeded" + // Updating ... + Updating ProvisioningState = "Updating" +) + +// PossibleProvisioningStateValues returns an array of possible values for the ProvisioningState const type. +func PossibleProvisioningStateValues() []ProvisioningState { + return []ProvisioningState{Canceled, Failed, Succeeded, Updating} +} + +// ReliabilityLevel enumerates the values for reliability level. +type ReliabilityLevel string + +const ( + // ReliabilityLevelBronze ... + ReliabilityLevelBronze ReliabilityLevel = "Bronze" + // ReliabilityLevelGold ... + ReliabilityLevelGold ReliabilityLevel = "Gold" + // ReliabilityLevelNone ... + ReliabilityLevelNone ReliabilityLevel = "None" + // ReliabilityLevelPlatinum ... + ReliabilityLevelPlatinum ReliabilityLevel = "Platinum" + // ReliabilityLevelSilver ... + ReliabilityLevelSilver ReliabilityLevel = "Silver" +) + +// PossibleReliabilityLevelValues returns an array of possible values for the ReliabilityLevel const type. +func PossibleReliabilityLevelValues() []ReliabilityLevel { + return []ReliabilityLevel{ReliabilityLevelBronze, ReliabilityLevelGold, ReliabilityLevelNone, ReliabilityLevelPlatinum, ReliabilityLevelSilver} +} + +// ReliabilityLevel1 enumerates the values for reliability level 1. +type ReliabilityLevel1 string + +const ( + // ReliabilityLevel1Bronze ... + ReliabilityLevel1Bronze ReliabilityLevel1 = "Bronze" + // ReliabilityLevel1Gold ... + ReliabilityLevel1Gold ReliabilityLevel1 = "Gold" + // ReliabilityLevel1None ... + ReliabilityLevel1None ReliabilityLevel1 = "None" + // ReliabilityLevel1Platinum ... + ReliabilityLevel1Platinum ReliabilityLevel1 = "Platinum" + // ReliabilityLevel1Silver ... + ReliabilityLevel1Silver ReliabilityLevel1 = "Silver" +) + +// PossibleReliabilityLevel1Values returns an array of possible values for the ReliabilityLevel1 const type. +func PossibleReliabilityLevel1Values() []ReliabilityLevel1 { + return []ReliabilityLevel1{ReliabilityLevel1Bronze, ReliabilityLevel1Gold, ReliabilityLevel1None, ReliabilityLevel1Platinum, ReliabilityLevel1Silver} +} + +// ServiceCorrelationScheme enumerates the values for service correlation scheme. +type ServiceCorrelationScheme string + +const ( + // ServiceCorrelationSchemeAffinity Indicates that this service has an affinity relationship with another + // service. Provided for backwards compatibility, consider preferring the Aligned or NonAlignedAffinity + // options. The value is 1. + ServiceCorrelationSchemeAffinity ServiceCorrelationScheme = "Affinity" + // ServiceCorrelationSchemeAlignedAffinity Aligned affinity ensures that the primaries of the partitions of + // the affinitized services are collocated on the same nodes. This is the default and is the same as + // selecting the Affinity scheme. The value is 2. + ServiceCorrelationSchemeAlignedAffinity ServiceCorrelationScheme = "AlignedAffinity" + // ServiceCorrelationSchemeInvalid An invalid correlation scheme. Cannot be used. The value is zero. + ServiceCorrelationSchemeInvalid ServiceCorrelationScheme = "Invalid" + // ServiceCorrelationSchemeNonAlignedAffinity Non-Aligned affinity guarantees that all replicas of each + // service will be placed on the same nodes. Unlike Aligned Affinity, this does not guarantee that replicas + // of particular role will be collocated. The value is 3. + ServiceCorrelationSchemeNonAlignedAffinity ServiceCorrelationScheme = "NonAlignedAffinity" +) + +// PossibleServiceCorrelationSchemeValues returns an array of possible values for the ServiceCorrelationScheme const type. +func PossibleServiceCorrelationSchemeValues() []ServiceCorrelationScheme { + return []ServiceCorrelationScheme{ServiceCorrelationSchemeAffinity, ServiceCorrelationSchemeAlignedAffinity, ServiceCorrelationSchemeInvalid, ServiceCorrelationSchemeNonAlignedAffinity} +} + +// ServiceKind enumerates the values for service kind. +type ServiceKind string + +const ( + // ServiceKindInvalid Indicates the service kind is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + ServiceKindInvalid ServiceKind = "Invalid" + // ServiceKindStateful Uses Service Fabric to make its state or part of its state highly available and + // reliable. The value is 2. + ServiceKindStateful ServiceKind = "Stateful" + // ServiceKindStateless Does not use Service Fabric to make its state highly available or reliable. The + // value is 1. + ServiceKindStateless ServiceKind = "Stateless" +) + +// PossibleServiceKindValues returns an array of possible values for the ServiceKind const type. +func PossibleServiceKindValues() []ServiceKind { + return []ServiceKind{ServiceKindInvalid, ServiceKindStateful, ServiceKindStateless} +} + +// ServiceKindBasicServiceResourceProperties enumerates the values for service kind basic service resource +// properties. +type ServiceKindBasicServiceResourceProperties string + +const ( + // ServiceKindServiceResourceProperties ... + ServiceKindServiceResourceProperties ServiceKindBasicServiceResourceProperties = "ServiceResourceProperties" + // ServiceKindStateful1 ... + ServiceKindStateful1 ServiceKindBasicServiceResourceProperties = "Stateful" + // ServiceKindStateless1 ... + ServiceKindStateless1 ServiceKindBasicServiceResourceProperties = "Stateless" +) + +// PossibleServiceKindBasicServiceResourcePropertiesValues returns an array of possible values for the ServiceKindBasicServiceResourceProperties const type. +func PossibleServiceKindBasicServiceResourcePropertiesValues() []ServiceKindBasicServiceResourceProperties { + return []ServiceKindBasicServiceResourceProperties{ServiceKindServiceResourceProperties, ServiceKindStateful1, ServiceKindStateless1} +} + +// ServiceKindBasicServiceResourceUpdateProperties enumerates the values for service kind basic service +// resource update properties. +type ServiceKindBasicServiceResourceUpdateProperties string + +const ( + // ServiceKindBasicServiceResourceUpdatePropertiesServiceKindServiceResourceUpdateProperties ... + ServiceKindBasicServiceResourceUpdatePropertiesServiceKindServiceResourceUpdateProperties ServiceKindBasicServiceResourceUpdateProperties = "ServiceResourceUpdateProperties" + // ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateful ... + ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateful ServiceKindBasicServiceResourceUpdateProperties = "Stateful" + // ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateless ... + ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateless ServiceKindBasicServiceResourceUpdateProperties = "Stateless" +) + +// PossibleServiceKindBasicServiceResourceUpdatePropertiesValues returns an array of possible values for the ServiceKindBasicServiceResourceUpdateProperties const type. +func PossibleServiceKindBasicServiceResourceUpdatePropertiesValues() []ServiceKindBasicServiceResourceUpdateProperties { + return []ServiceKindBasicServiceResourceUpdateProperties{ServiceKindBasicServiceResourceUpdatePropertiesServiceKindServiceResourceUpdateProperties, ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateful, ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateless} +} + +// ServiceLoadMetricWeight enumerates the values for service load metric weight. +type ServiceLoadMetricWeight string + +const ( + // ServiceLoadMetricWeightHigh Specifies the metric weight of the service load as High. The value is 3. + ServiceLoadMetricWeightHigh ServiceLoadMetricWeight = "High" + // ServiceLoadMetricWeightLow Specifies the metric weight of the service load as Low. The value is 1. + ServiceLoadMetricWeightLow ServiceLoadMetricWeight = "Low" + // ServiceLoadMetricWeightMedium Specifies the metric weight of the service load as Medium. The value is 2. + ServiceLoadMetricWeightMedium ServiceLoadMetricWeight = "Medium" + // ServiceLoadMetricWeightZero Disables resource balancing for this metric. This value is zero. + ServiceLoadMetricWeightZero ServiceLoadMetricWeight = "Zero" +) + +// PossibleServiceLoadMetricWeightValues returns an array of possible values for the ServiceLoadMetricWeight const type. +func PossibleServiceLoadMetricWeightValues() []ServiceLoadMetricWeight { + return []ServiceLoadMetricWeight{ServiceLoadMetricWeightHigh, ServiceLoadMetricWeightLow, ServiceLoadMetricWeightMedium, ServiceLoadMetricWeightZero} +} + +// ServicePlacementPolicyType enumerates the values for service placement policy type. +type ServicePlacementPolicyType string + +const ( + // ServicePlacementPolicyTypeInvalid Indicates the type of the placement policy is invalid. All Service + // Fabric enumerations have the invalid type. The value is zero. + ServicePlacementPolicyTypeInvalid ServicePlacementPolicyType = "Invalid" + // ServicePlacementPolicyTypeInvalidDomain Indicates that the ServicePlacementPolicyDescription is of type + // ServicePlacementInvalidDomainPolicyDescription, which indicates that a particular fault or upgrade + // domain cannot be used for placement of this service. The value is 1. + ServicePlacementPolicyTypeInvalidDomain ServicePlacementPolicyType = "InvalidDomain" + // ServicePlacementPolicyTypeNonPartiallyPlaceService Indicates that the ServicePlacementPolicyDescription + // is of type ServicePlacementNonPartiallyPlaceServicePolicyDescription, which indicates that if possible + // all replicas of a particular partition of the service should be placed atomically. The value is 5. + ServicePlacementPolicyTypeNonPartiallyPlaceService ServicePlacementPolicyType = "NonPartiallyPlaceService" + // ServicePlacementPolicyTypePreferredPrimaryDomain Indicates that the ServicePlacementPolicyDescription is + // of type ServicePlacementPreferPrimaryDomainPolicyDescription, which indicates that if possible the + // Primary replica for the partitions of the service should be located in a particular domain as an + // optimization. The value is 3. + ServicePlacementPolicyTypePreferredPrimaryDomain ServicePlacementPolicyType = "PreferredPrimaryDomain" + // ServicePlacementPolicyTypeRequiredDomain Indicates that the ServicePlacementPolicyDescription is of type + // ServicePlacementRequireDomainDistributionPolicyDescription indicating that the replicas of the service + // must be placed in a specific domain. The value is 2. + ServicePlacementPolicyTypeRequiredDomain ServicePlacementPolicyType = "RequiredDomain" + // ServicePlacementPolicyTypeRequiredDomainDistribution Indicates that the + // ServicePlacementPolicyDescription is of type ServicePlacementRequireDomainDistributionPolicyDescription, + // indicating that the system will disallow placement of any two replicas from the same partition in the + // same domain at any time. The value is 4. + ServicePlacementPolicyTypeRequiredDomainDistribution ServicePlacementPolicyType = "RequiredDomainDistribution" +) + +// PossibleServicePlacementPolicyTypeValues returns an array of possible values for the ServicePlacementPolicyType const type. +func PossibleServicePlacementPolicyTypeValues() []ServicePlacementPolicyType { + return []ServicePlacementPolicyType{ServicePlacementPolicyTypeInvalid, ServicePlacementPolicyTypeInvalidDomain, ServicePlacementPolicyTypeNonPartiallyPlaceService, ServicePlacementPolicyTypePreferredPrimaryDomain, ServicePlacementPolicyTypeRequiredDomain, ServicePlacementPolicyTypeRequiredDomainDistribution} +} + +// Type enumerates the values for type. +type Type string + +const ( + // TypeServicePlacementPolicyDescription ... + TypeServicePlacementPolicyDescription Type = "ServicePlacementPolicyDescription" +) + +// PossibleTypeValues returns an array of possible values for the Type const type. +func PossibleTypeValues() []Type { + return []Type{TypeServicePlacementPolicyDescription} +} + +// UpgradeMode enumerates the values for upgrade mode. +type UpgradeMode string + +const ( + // UpgradeModeAutomatic ... + UpgradeModeAutomatic UpgradeMode = "Automatic" + // UpgradeModeManual ... + UpgradeModeManual UpgradeMode = "Manual" +) + +// PossibleUpgradeModeValues returns an array of possible values for the UpgradeMode const type. +func PossibleUpgradeModeValues() []UpgradeMode { + return []UpgradeMode{UpgradeModeAutomatic, UpgradeModeManual} +} + +// UpgradeMode1 enumerates the values for upgrade mode 1. +type UpgradeMode1 string + +const ( + // UpgradeMode1Automatic ... + UpgradeMode1Automatic UpgradeMode1 = "Automatic" + // UpgradeMode1Manual ... + UpgradeMode1Manual UpgradeMode1 = "Manual" +) + +// PossibleUpgradeMode1Values returns an array of possible values for the UpgradeMode1 const type. +func PossibleUpgradeMode1Values() []UpgradeMode1 { + return []UpgradeMode1{UpgradeMode1Automatic, UpgradeMode1Manual} +} + +// X509StoreName enumerates the values for x509 store name. +type X509StoreName string + +const ( + // AddressBook ... + AddressBook X509StoreName = "AddressBook" + // AuthRoot ... + AuthRoot X509StoreName = "AuthRoot" + // CertificateAuthority ... + CertificateAuthority X509StoreName = "CertificateAuthority" + // Disallowed ... + Disallowed X509StoreName = "Disallowed" + // My ... + My X509StoreName = "My" + // Root ... + Root X509StoreName = "Root" + // TrustedPeople ... + TrustedPeople X509StoreName = "TrustedPeople" + // TrustedPublisher ... + TrustedPublisher X509StoreName = "TrustedPublisher" +) + +// PossibleX509StoreNameValues returns an array of possible values for the X509StoreName const type. +func PossibleX509StoreNameValues() []X509StoreName { + return []X509StoreName{AddressBook, AuthRoot, CertificateAuthority, Disallowed, My, Root, TrustedPeople, TrustedPublisher} +} + +// X509StoreName1 enumerates the values for x509 store name 1. +type X509StoreName1 string + +const ( + // X509StoreName1AddressBook ... + X509StoreName1AddressBook X509StoreName1 = "AddressBook" + // X509StoreName1AuthRoot ... + X509StoreName1AuthRoot X509StoreName1 = "AuthRoot" + // X509StoreName1CertificateAuthority ... + X509StoreName1CertificateAuthority X509StoreName1 = "CertificateAuthority" + // X509StoreName1Disallowed ... + X509StoreName1Disallowed X509StoreName1 = "Disallowed" + // X509StoreName1My ... + X509StoreName1My X509StoreName1 = "My" + // X509StoreName1Root ... + X509StoreName1Root X509StoreName1 = "Root" + // X509StoreName1TrustedPeople ... + X509StoreName1TrustedPeople X509StoreName1 = "TrustedPeople" + // X509StoreName1TrustedPublisher ... + X509StoreName1TrustedPublisher X509StoreName1 = "TrustedPublisher" +) + +// PossibleX509StoreName1Values returns an array of possible values for the X509StoreName1 const type. +func PossibleX509StoreName1Values() []X509StoreName1 { + return []X509StoreName1{X509StoreName1AddressBook, X509StoreName1AuthRoot, X509StoreName1CertificateAuthority, X509StoreName1Disallowed, X509StoreName1My, X509StoreName1Root, X509StoreName1TrustedPeople, X509StoreName1TrustedPublisher} +} + +// ApplicationDeltaHealthPolicy defines a delta health policy used to evaluate the health of an application +// or one of its child entities when upgrading the cluster. +type ApplicationDeltaHealthPolicy struct { + // DefaultServiceTypeDeltaHealthPolicy - The delta health policy used by default to evaluate the health of a service type when upgrading the cluster. + DefaultServiceTypeDeltaHealthPolicy *ServiceTypeDeltaHealthPolicy `json:"defaultServiceTypeDeltaHealthPolicy,omitempty"` + // ServiceTypeDeltaHealthPolicies - The map with service type delta health policy per service type name. The map is empty by default. + ServiceTypeDeltaHealthPolicies map[string]*ServiceTypeDeltaHealthPolicy `json:"serviceTypeDeltaHealthPolicies"` +} + +// MarshalJSON is the custom marshaler for ApplicationDeltaHealthPolicy. +func (adhp ApplicationDeltaHealthPolicy) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if adhp.DefaultServiceTypeDeltaHealthPolicy != nil { + objectMap["defaultServiceTypeDeltaHealthPolicy"] = adhp.DefaultServiceTypeDeltaHealthPolicy + } + if adhp.ServiceTypeDeltaHealthPolicies != nil { + objectMap["serviceTypeDeltaHealthPolicies"] = adhp.ServiceTypeDeltaHealthPolicies + } + return json.Marshal(objectMap) +} + +// ApplicationHealthPolicy defines a health policy used to evaluate the health of an application or one of +// its children entities. +type ApplicationHealthPolicy struct { + // DefaultServiceTypeHealthPolicy - The health policy used by default to evaluate the health of a service type. + DefaultServiceTypeHealthPolicy *ServiceTypeHealthPolicy `json:"defaultServiceTypeHealthPolicy,omitempty"` + // ServiceTypeHealthPolicies - The map with service type health policy per service type name. The map is empty by default. + ServiceTypeHealthPolicies map[string]*ServiceTypeHealthPolicy `json:"serviceTypeHealthPolicies"` +} + +// MarshalJSON is the custom marshaler for ApplicationHealthPolicy. +func (ahp ApplicationHealthPolicy) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ahp.DefaultServiceTypeHealthPolicy != nil { + objectMap["defaultServiceTypeHealthPolicy"] = ahp.DefaultServiceTypeHealthPolicy + } + if ahp.ServiceTypeHealthPolicies != nil { + objectMap["serviceTypeHealthPolicies"] = ahp.ServiceTypeHealthPolicies + } + return json.Marshal(objectMap) +} + +// ApplicationMetricDescription describes capacity information for a custom resource balancing metric. This +// can be used to limit the total consumption of this metric by the services of this application. +type ApplicationMetricDescription struct { + // Name - The name of the metric. + Name *string `json:"name,omitempty"` + // MaximumCapacity - The maximum node capacity for Service Fabric application. + // This is the maximum Load for an instance of this application on a single node. Even if the capacity of node is greater than this value, Service Fabric will limit the total load of services within the application on each node to this value. + // If set to zero, capacity for this metric is unlimited on each node. + // When creating a new application with application capacity defined, the product of MaximumNodes and this value must always be smaller than or equal to TotalApplicationCapacity. + // When updating existing application with application capacity, the product of MaximumNodes and this value must always be smaller than or equal to TotalApplicationCapacity. + MaximumCapacity *int64 `json:"maximumCapacity,omitempty"` + // ReservationCapacity - The node reservation capacity for Service Fabric application. + // This is the amount of load which is reserved on nodes which have instances of this application. + // If MinimumNodes is specified, then the product of these values will be the capacity reserved in the cluster for the application. + // If set to zero, no capacity is reserved for this metric. + // When setting application capacity or when updating application capacity; this value must be smaller than or equal to MaximumCapacity for each metric. + ReservationCapacity *int64 `json:"reservationCapacity,omitempty"` + // TotalApplicationCapacity - The total metric capacity for Service Fabric application. + // This is the total metric capacity for this application in the cluster. Service Fabric will try to limit the sum of loads of services within the application to this value. + // When creating a new application with application capacity defined, the product of MaximumNodes and MaximumCapacity must always be smaller than or equal to this value. + TotalApplicationCapacity *int64 `json:"totalApplicationCapacity,omitempty"` +} + +// ApplicationResource the application resource. +type ApplicationResource struct { + autorest.Response `json:"-"` + // ApplicationResourceProperties - The application resource properties. + *ApplicationResourceProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Azure resource identifier. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Azure resource name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Azure resource type. + Type *string `json:"type,omitempty"` + // Location - Azure resource location. + Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationResource. +func (ar ApplicationResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ar.ApplicationResourceProperties != nil { + objectMap["properties"] = ar.ApplicationResourceProperties + } + if ar.Location != nil { + objectMap["location"] = ar.Location + } + if ar.Tags != nil { + objectMap["tags"] = ar.Tags + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ApplicationResource struct. +func (ar *ApplicationResource) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var applicationResourceProperties ApplicationResourceProperties + err = json.Unmarshal(*v, &applicationResourceProperties) + if err != nil { + return err + } + ar.ApplicationResourceProperties = &applicationResourceProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + ar.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + ar.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + ar.Type = &typeVar + } + case "location": + if v != nil { + var location string + err = json.Unmarshal(*v, &location) + if err != nil { + return err + } + ar.Location = &location + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + ar.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + ar.Etag = &etag + } + } + } + + return nil +} + +// ApplicationResourceList the list of application resources. +type ApplicationResourceList struct { + autorest.Response `json:"-"` + Value *[]ApplicationResource `json:"value,omitempty"` + // NextLink - READ-ONLY; URL to get the next set of application list results if there are any. + NextLink *string `json:"nextLink,omitempty"` +} + +// ApplicationResourceProperties the application resource properties. +type ApplicationResourceProperties struct { + // ProvisioningState - READ-ONLY; The current deployment or provisioning state, which only appears in the response + ProvisioningState *string `json:"provisioningState,omitempty"` + // TypeName - The application type name as defined in the application manifest. + TypeName *string `json:"typeName,omitempty"` + // TypeVersion - The version of the application type as defined in the application manifest. + TypeVersion *string `json:"typeVersion,omitempty"` + // Parameters - List of application parameters with overridden values from their default values specified in the application manifest. + Parameters map[string]*string `json:"parameters"` + // UpgradePolicy - Describes the policy for a monitored application upgrade. + UpgradePolicy *ApplicationUpgradePolicy `json:"upgradePolicy,omitempty"` + // MinimumNodes - The minimum number of nodes where Service Fabric will reserve capacity for this application. Note that this does not mean that the services of this application will be placed on all of those nodes. If this property is set to zero, no capacity will be reserved. The value of this property cannot be more than the value of the MaximumNodes property. + MinimumNodes *int64 `json:"minimumNodes,omitempty"` + // MaximumNodes - The maximum number of nodes where Service Fabric will reserve capacity for this application. Note that this does not mean that the services of this application will be placed on all of those nodes. By default, the value of this property is zero and it means that the services can be placed on any node. + MaximumNodes *int64 `json:"maximumNodes,omitempty"` + // RemoveApplicationCapacity - Remove the current application capacity settings. + RemoveApplicationCapacity *bool `json:"removeApplicationCapacity,omitempty"` + // Metrics - List of application capacity metric description. + Metrics *[]ApplicationMetricDescription `json:"metrics,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationResourceProperties. +func (arp ApplicationResourceProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if arp.TypeName != nil { + objectMap["typeName"] = arp.TypeName + } + if arp.TypeVersion != nil { + objectMap["typeVersion"] = arp.TypeVersion + } + if arp.Parameters != nil { + objectMap["parameters"] = arp.Parameters + } + if arp.UpgradePolicy != nil { + objectMap["upgradePolicy"] = arp.UpgradePolicy + } + if arp.MinimumNodes != nil { + objectMap["minimumNodes"] = arp.MinimumNodes + } + if arp.MaximumNodes != nil { + objectMap["maximumNodes"] = arp.MaximumNodes + } + if arp.RemoveApplicationCapacity != nil { + objectMap["removeApplicationCapacity"] = arp.RemoveApplicationCapacity + } + if arp.Metrics != nil { + objectMap["metrics"] = arp.Metrics + } + return json.Marshal(objectMap) +} + +// ApplicationResourceUpdate the application resource for patch operations. +type ApplicationResourceUpdate struct { + // ApplicationResourceUpdateProperties - The application resource properties for patch operations. + *ApplicationResourceUpdateProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Azure resource identifier. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Azure resource name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Azure resource type. + Type *string `json:"type,omitempty"` + // Location - Azure resource location. + Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationResourceUpdate. +func (aru ApplicationResourceUpdate) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if aru.ApplicationResourceUpdateProperties != nil { + objectMap["properties"] = aru.ApplicationResourceUpdateProperties + } + if aru.Location != nil { + objectMap["location"] = aru.Location + } + if aru.Tags != nil { + objectMap["tags"] = aru.Tags + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ApplicationResourceUpdate struct. +func (aru *ApplicationResourceUpdate) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var applicationResourceUpdateProperties ApplicationResourceUpdateProperties + err = json.Unmarshal(*v, &applicationResourceUpdateProperties) + if err != nil { + return err + } + aru.ApplicationResourceUpdateProperties = &applicationResourceUpdateProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + aru.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + aru.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + aru.Type = &typeVar + } + case "location": + if v != nil { + var location string + err = json.Unmarshal(*v, &location) + if err != nil { + return err + } + aru.Location = &location + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + aru.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + aru.Etag = &etag + } + } + } + + return nil +} + +// ApplicationResourceUpdateProperties the application resource properties for patch operations. +type ApplicationResourceUpdateProperties struct { + // TypeVersion - The version of the application type as defined in the application manifest. + TypeVersion *string `json:"typeVersion,omitempty"` + // Parameters - List of application parameters with overridden values from their default values specified in the application manifest. + Parameters map[string]*string `json:"parameters"` + // UpgradePolicy - Describes the policy for a monitored application upgrade. + UpgradePolicy *ApplicationUpgradePolicy `json:"upgradePolicy,omitempty"` + // MinimumNodes - The minimum number of nodes where Service Fabric will reserve capacity for this application. Note that this does not mean that the services of this application will be placed on all of those nodes. If this property is set to zero, no capacity will be reserved. The value of this property cannot be more than the value of the MaximumNodes property. + MinimumNodes *int64 `json:"minimumNodes,omitempty"` + // MaximumNodes - The maximum number of nodes where Service Fabric will reserve capacity for this application. Note that this does not mean that the services of this application will be placed on all of those nodes. By default, the value of this property is zero and it means that the services can be placed on any node. + MaximumNodes *int64 `json:"maximumNodes,omitempty"` + // RemoveApplicationCapacity - Remove the current application capacity settings. + RemoveApplicationCapacity *bool `json:"removeApplicationCapacity,omitempty"` + // Metrics - List of application capacity metric description. + Metrics *[]ApplicationMetricDescription `json:"metrics,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationResourceUpdateProperties. +func (arup ApplicationResourceUpdateProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if arup.TypeVersion != nil { + objectMap["typeVersion"] = arup.TypeVersion + } + if arup.Parameters != nil { + objectMap["parameters"] = arup.Parameters + } + if arup.UpgradePolicy != nil { + objectMap["upgradePolicy"] = arup.UpgradePolicy + } + if arup.MinimumNodes != nil { + objectMap["minimumNodes"] = arup.MinimumNodes + } + if arup.MaximumNodes != nil { + objectMap["maximumNodes"] = arup.MaximumNodes + } + if arup.RemoveApplicationCapacity != nil { + objectMap["removeApplicationCapacity"] = arup.RemoveApplicationCapacity + } + if arup.Metrics != nil { + objectMap["metrics"] = arup.Metrics + } + return json.Marshal(objectMap) +} + +// ApplicationsCreateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ApplicationsCreateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ApplicationsCreateFuture) Result(client ApplicationsClient) (ar ApplicationResource, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsCreateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("servicefabric.ApplicationsCreateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if ar.Response.Response, err = future.GetResult(sender); err == nil && ar.Response.Response.StatusCode != http.StatusNoContent { + ar, err = client.CreateResponder(ar.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsCreateFuture", "Result", ar.Response.Response, "Failure responding to request") + } + } + return +} + +// ApplicationsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ApplicationsDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ApplicationsDeleteFuture) Result(client ApplicationsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("servicefabric.ApplicationsDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// ApplicationsUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ApplicationsUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ApplicationsUpdateFuture) Result(client ApplicationsClient) (ar ApplicationResource, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("servicefabric.ApplicationsUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if ar.Response.Response, err = future.GetResult(sender); err == nil && ar.Response.Response.StatusCode != http.StatusNoContent { + ar, err = client.UpdateResponder(ar.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsUpdateFuture", "Result", ar.Response.Response, "Failure responding to request") + } + } + return +} + +// ApplicationTypeResource the application type name resource +type ApplicationTypeResource struct { + autorest.Response `json:"-"` + // ApplicationTypeResourceProperties - The application type name properties + *ApplicationTypeResourceProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Azure resource identifier. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Azure resource name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Azure resource type. + Type *string `json:"type,omitempty"` + // Location - Azure resource location. + Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationTypeResource. +func (atr ApplicationTypeResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if atr.ApplicationTypeResourceProperties != nil { + objectMap["properties"] = atr.ApplicationTypeResourceProperties + } + if atr.Location != nil { + objectMap["location"] = atr.Location + } + if atr.Tags != nil { + objectMap["tags"] = atr.Tags + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ApplicationTypeResource struct. +func (atr *ApplicationTypeResource) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var applicationTypeResourceProperties ApplicationTypeResourceProperties + err = json.Unmarshal(*v, &applicationTypeResourceProperties) + if err != nil { + return err + } + atr.ApplicationTypeResourceProperties = &applicationTypeResourceProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + atr.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + atr.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + atr.Type = &typeVar + } + case "location": + if v != nil { + var location string + err = json.Unmarshal(*v, &location) + if err != nil { + return err + } + atr.Location = &location + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + atr.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + atr.Etag = &etag + } + } + } + + return nil +} + +// ApplicationTypeResourceList the list of application type names. +type ApplicationTypeResourceList struct { + autorest.Response `json:"-"` + Value *[]ApplicationTypeResource `json:"value,omitempty"` + // NextLink - READ-ONLY; URL to get the next set of application type list results if there are any. + NextLink *string `json:"nextLink,omitempty"` +} + +// ApplicationTypeResourceProperties the application type name properties +type ApplicationTypeResourceProperties struct { + // ProvisioningState - READ-ONLY; The current deployment or provisioning state, which only appears in the response. + ProvisioningState *string `json:"provisioningState,omitempty"` +} + +// ApplicationTypesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ApplicationTypesDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ApplicationTypesDeleteFuture) Result(client ApplicationTypesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("servicefabric.ApplicationTypesDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// ApplicationTypeVersionResource an application type version resource for the specified application type +// name resource. +type ApplicationTypeVersionResource struct { + autorest.Response `json:"-"` + // ApplicationTypeVersionResourceProperties - The properties of the application type version resource. + *ApplicationTypeVersionResourceProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Azure resource identifier. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Azure resource name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Azure resource type. + Type *string `json:"type,omitempty"` + // Location - Azure resource location. + Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationTypeVersionResource. +func (atvr ApplicationTypeVersionResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if atvr.ApplicationTypeVersionResourceProperties != nil { + objectMap["properties"] = atvr.ApplicationTypeVersionResourceProperties + } + if atvr.Location != nil { + objectMap["location"] = atvr.Location + } + if atvr.Tags != nil { + objectMap["tags"] = atvr.Tags + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ApplicationTypeVersionResource struct. +func (atvr *ApplicationTypeVersionResource) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var applicationTypeVersionResourceProperties ApplicationTypeVersionResourceProperties + err = json.Unmarshal(*v, &applicationTypeVersionResourceProperties) + if err != nil { + return err + } + atvr.ApplicationTypeVersionResourceProperties = &applicationTypeVersionResourceProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + atvr.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + atvr.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + atvr.Type = &typeVar + } + case "location": + if v != nil { + var location string + err = json.Unmarshal(*v, &location) + if err != nil { + return err + } + atvr.Location = &location + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + atvr.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + atvr.Etag = &etag + } + } + } + + return nil +} + +// ApplicationTypeVersionResourceList the list of application type version resources for the specified +// application type name resource. +type ApplicationTypeVersionResourceList struct { + autorest.Response `json:"-"` + Value *[]ApplicationTypeVersionResource `json:"value,omitempty"` + // NextLink - READ-ONLY; URL to get the next set of application type version list results if there are any. + NextLink *string `json:"nextLink,omitempty"` +} + +// ApplicationTypeVersionResourceProperties the properties of the application type version resource. +type ApplicationTypeVersionResourceProperties struct { + // ProvisioningState - READ-ONLY; The current deployment or provisioning state, which only appears in the response + ProvisioningState *string `json:"provisioningState,omitempty"` + // AppPackageURL - The URL to the application package + AppPackageURL *string `json:"appPackageUrl,omitempty"` + // DefaultParameterList - READ-ONLY; List of application type parameters that can be overridden when creating or updating the application. + DefaultParameterList map[string]*string `json:"defaultParameterList"` +} + +// MarshalJSON is the custom marshaler for ApplicationTypeVersionResourceProperties. +func (atvrp ApplicationTypeVersionResourceProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if atvrp.AppPackageURL != nil { + objectMap["appPackageUrl"] = atvrp.AppPackageURL + } + return json.Marshal(objectMap) +} + +// ApplicationTypeVersionsCreateFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ApplicationTypeVersionsCreateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ApplicationTypeVersionsCreateFuture) Result(client ApplicationTypeVersionsClient) (atvr ApplicationTypeVersionResource, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsCreateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("servicefabric.ApplicationTypeVersionsCreateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if atvr.Response.Response, err = future.GetResult(sender); err == nil && atvr.Response.Response.StatusCode != http.StatusNoContent { + atvr, err = client.CreateResponder(atvr.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsCreateFuture", "Result", atvr.Response.Response, "Failure responding to request") + } + } + return +} + +// ApplicationTypeVersionsDeleteFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ApplicationTypeVersionsDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ApplicationTypeVersionsDeleteFuture) Result(client ApplicationTypeVersionsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("servicefabric.ApplicationTypeVersionsDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// ApplicationUpgradePolicy describes the policy for a monitored application upgrade. +type ApplicationUpgradePolicy struct { + // UpgradeReplicaSetCheckTimeout - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + UpgradeReplicaSetCheckTimeout *string `json:"upgradeReplicaSetCheckTimeout,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"forceRestart,omitempty"` + // RollingUpgradeMonitoringPolicy - The policy used for monitoring the application upgrade + RollingUpgradeMonitoringPolicy *ArmRollingUpgradeMonitoringPolicy `json:"rollingUpgradeMonitoringPolicy,omitempty"` + // ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicy *ArmApplicationHealthPolicy `json:"applicationHealthPolicy,omitempty"` +} + +// ArmApplicationHealthPolicy defines a health policy used to evaluate the health of an application or one +// of its children entities. +type ArmApplicationHealthPolicy struct { + // ConsiderWarningAsError - Indicates whether warnings are treated with the same severity as errors. + ConsiderWarningAsError *bool `json:"considerWarningAsError,omitempty"` + // MaxPercentUnhealthyDeployedApplications - The maximum allowed percentage of unhealthy deployed applications. Allowed values are Byte values from zero to 100. + // The percentage represents the maximum tolerated percentage of deployed applications that can be unhealthy before the application is considered in error. + // This is calculated by dividing the number of unhealthy deployed applications over the number of nodes where the application is currently deployed on in the cluster. + // The computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero. + MaxPercentUnhealthyDeployedApplications *int32 `json:"maxPercentUnhealthyDeployedApplications,omitempty"` + // DefaultServiceTypeHealthPolicy - The health policy used by default to evaluate the health of a service type. + DefaultServiceTypeHealthPolicy *ArmServiceTypeHealthPolicy `json:"defaultServiceTypeHealthPolicy,omitempty"` + // ServiceTypeHealthPolicyMap - The map with service type health policy per service type name. The map is empty by default. + ServiceTypeHealthPolicyMap map[string]*ArmServiceTypeHealthPolicy `json:"serviceTypeHealthPolicyMap"` +} + +// MarshalJSON is the custom marshaler for ArmApplicationHealthPolicy. +func (aahp ArmApplicationHealthPolicy) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if aahp.ConsiderWarningAsError != nil { + objectMap["considerWarningAsError"] = aahp.ConsiderWarningAsError + } + if aahp.MaxPercentUnhealthyDeployedApplications != nil { + objectMap["maxPercentUnhealthyDeployedApplications"] = aahp.MaxPercentUnhealthyDeployedApplications + } + if aahp.DefaultServiceTypeHealthPolicy != nil { + objectMap["defaultServiceTypeHealthPolicy"] = aahp.DefaultServiceTypeHealthPolicy + } + if aahp.ServiceTypeHealthPolicyMap != nil { + objectMap["serviceTypeHealthPolicyMap"] = aahp.ServiceTypeHealthPolicyMap + } + return json.Marshal(objectMap) +} + +// ArmRollingUpgradeMonitoringPolicy the policy used for monitoring the application upgrade +type ArmRollingUpgradeMonitoringPolicy struct { + // FailureAction - The activation Mode of the service package. Possible values include: 'Rollback', 'Manual' + FailureAction ArmUpgradeFailureAction `json:"failureAction,omitempty"` + // HealthCheckWaitDuration - The amount of time to wait after completing an upgrade domain before applying health policies. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckWaitDuration *string `json:"healthCheckWaitDuration,omitempty"` + // HealthCheckStableDuration - The amount of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckStableDuration *string `json:"healthCheckStableDuration,omitempty"` + // HealthCheckRetryTimeout - The amount of time to retry health evaluation when the application or cluster is unhealthy before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckRetryTimeout *string `json:"healthCheckRetryTimeout,omitempty"` + // UpgradeTimeout - The amount of time the overall upgrade has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeTimeout *string `json:"upgradeTimeout,omitempty"` + // UpgradeDomainTimeout - The amount of time each upgrade domain has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeDomainTimeout *string `json:"upgradeDomainTimeout,omitempty"` +} + +// ArmServiceTypeHealthPolicy represents the health policy used to evaluate the health of services +// belonging to a service type. +type ArmServiceTypeHealthPolicy struct { + // MaxPercentUnhealthyServices - The maximum percentage of services allowed to be unhealthy before your application is considered in error. + MaxPercentUnhealthyServices *int32 `json:"maxPercentUnhealthyServices,omitempty"` + // MaxPercentUnhealthyPartitionsPerService - The maximum percentage of partitions per service allowed to be unhealthy before your application is considered in error. + MaxPercentUnhealthyPartitionsPerService *int32 `json:"maxPercentUnhealthyPartitionsPerService,omitempty"` + // MaxPercentUnhealthyReplicasPerPartition - The maximum percentage of replicas per partition allowed to be unhealthy before your application is considered in error. + MaxPercentUnhealthyReplicasPerPartition *int32 `json:"maxPercentUnhealthyReplicasPerPartition,omitempty"` +} + +// AvailableOperationDisplay operation supported by the Service Fabric resource provider +type AvailableOperationDisplay struct { + // Provider - The name of the provider. + Provider *string `json:"provider,omitempty"` + // Resource - The resource on which the operation is performed + Resource *string `json:"resource,omitempty"` + // Operation - The operation that can be performed. + Operation *string `json:"operation,omitempty"` + // Description - Operation description + Description *string `json:"description,omitempty"` +} + +// AzureActiveDirectory the settings to enable AAD authentication on the cluster. +type AzureActiveDirectory struct { + // TenantID - Azure active directory tenant id. + TenantID *string `json:"tenantId,omitempty"` + // ClusterApplication - Azure active directory cluster application id. + ClusterApplication *string `json:"clusterApplication,omitempty"` + // ClientApplication - Azure active directory client application id. + ClientApplication *string `json:"clientApplication,omitempty"` +} + +// CertificateDescription describes the certificate details. +type CertificateDescription struct { + // Thumbprint - Thumbprint of the primary certificate. + Thumbprint *string `json:"thumbprint,omitempty"` + // ThumbprintSecondary - Thumbprint of the secondary certificate. + ThumbprintSecondary *string `json:"thumbprintSecondary,omitempty"` + // X509StoreName - The local certificate store location. Possible values include: 'AddressBook', 'AuthRoot', 'CertificateAuthority', 'Disallowed', 'My', 'Root', 'TrustedPeople', 'TrustedPublisher' + X509StoreName X509StoreName `json:"x509StoreName,omitempty"` +} + +// ClientCertificateCommonName describes the client certificate details using common name. +type ClientCertificateCommonName struct { + // IsAdmin - Indicates if the client certificate has admin access to the cluster. Non admin clients can perform only read only operations on the cluster. + IsAdmin *bool `json:"isAdmin,omitempty"` + // CertificateCommonName - The common name of the client certificate. + CertificateCommonName *string `json:"certificateCommonName,omitempty"` + // CertificateIssuerThumbprint - The issuer thumbprint of the client certificate. + CertificateIssuerThumbprint *string `json:"certificateIssuerThumbprint,omitempty"` +} + +// ClientCertificateThumbprint describes the client certificate details using thumbprint. +type ClientCertificateThumbprint struct { + // IsAdmin - Indicates if the client certificate has admin access to the cluster. Non admin clients can perform only read only operations on the cluster. + IsAdmin *bool `json:"isAdmin,omitempty"` + // CertificateThumbprint - The thumbprint of the client certificate. + CertificateThumbprint *string `json:"certificateThumbprint,omitempty"` +} + +// Cluster the cluster resource +type Cluster struct { + autorest.Response `json:"-"` + // ClusterProperties - The cluster resource properties + *ClusterProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Azure resource identifier. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Azure resource name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Azure resource type. + Type *string `json:"type,omitempty"` + // Location - Azure resource location. + Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` +} + +// MarshalJSON is the custom marshaler for Cluster. +func (c Cluster) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if c.ClusterProperties != nil { + objectMap["properties"] = c.ClusterProperties + } + if c.Location != nil { + objectMap["location"] = c.Location + } + if c.Tags != nil { + objectMap["tags"] = c.Tags + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Cluster struct. +func (c *Cluster) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var clusterProperties ClusterProperties + err = json.Unmarshal(*v, &clusterProperties) + if err != nil { + return err + } + c.ClusterProperties = &clusterProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + c.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + c.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + c.Type = &typeVar + } + case "location": + if v != nil { + var location string + err = json.Unmarshal(*v, &location) + if err != nil { + return err + } + c.Location = &location + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + c.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + c.Etag = &etag + } + } + } + + return nil +} + +// ClusterCodeVersionsListResult the list results of the Service Fabric runtime versions. +type ClusterCodeVersionsListResult struct { + autorest.Response `json:"-"` + Value *[]ClusterCodeVersionsResult `json:"value,omitempty"` + // NextLink - The URL to use for getting the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// ClusterCodeVersionsResult the result of the Service Fabric runtime versions +type ClusterCodeVersionsResult struct { + // ID - The identification of the result + ID *string `json:"id,omitempty"` + // Name - The name of the result + Name *string `json:"name,omitempty"` + // Type - The result resource type + Type *string `json:"type,omitempty"` + // ClusterVersionDetails - The detail of the Service Fabric runtime version result + *ClusterVersionDetails `json:"properties,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterCodeVersionsResult. +func (ccvr ClusterCodeVersionsResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ccvr.ID != nil { + objectMap["id"] = ccvr.ID + } + if ccvr.Name != nil { + objectMap["name"] = ccvr.Name + } + if ccvr.Type != nil { + objectMap["type"] = ccvr.Type + } + if ccvr.ClusterVersionDetails != nil { + objectMap["properties"] = ccvr.ClusterVersionDetails + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ClusterCodeVersionsResult struct. +func (ccvr *ClusterCodeVersionsResult) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + ccvr.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + ccvr.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + ccvr.Type = &typeVar + } + case "properties": + if v != nil { + var clusterVersionDetails ClusterVersionDetails + err = json.Unmarshal(*v, &clusterVersionDetails) + if err != nil { + return err + } + ccvr.ClusterVersionDetails = &clusterVersionDetails + } + } + } + + return nil +} + +// ClusterHealthPolicy defines a health policy used to evaluate the health of the cluster or of a cluster +// node. +type ClusterHealthPolicy struct { + // MaxPercentUnhealthyNodes - The maximum allowed percentage of unhealthy nodes before reporting an error. For example, to allow 10% of nodes to be unhealthy, this value would be 10. + // The percentage represents the maximum tolerated percentage of nodes that can be unhealthy before the cluster is considered in error. + // If the percentage is respected but there is at least one unhealthy node, the health is evaluated as Warning. + // The percentage is calculated by dividing the number of unhealthy nodes over the total number of nodes in the cluster. + // The computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero. + // In large clusters, some nodes will always be down or out for repairs, so this percentage should be configured to tolerate that. + MaxPercentUnhealthyNodes *int32 `json:"maxPercentUnhealthyNodes,omitempty"` + // MaxPercentUnhealthyApplications - The maximum allowed percentage of unhealthy applications before reporting an error. For example, to allow 10% of applications to be unhealthy, this value would be 10. + // The percentage represents the maximum tolerated percentage of applications that can be unhealthy before the cluster is considered in error. + // If the percentage is respected but there is at least one unhealthy application, the health is evaluated as Warning. + // This is calculated by dividing the number of unhealthy applications over the total number of application instances in the cluster, excluding applications of application types that are included in the ApplicationTypeHealthPolicyMap. + // The computation rounds up to tolerate one failure on small numbers of applications. Default percentage is zero. + MaxPercentUnhealthyApplications *int32 `json:"maxPercentUnhealthyApplications,omitempty"` + // ApplicationHealthPolicies - Defines the application health policy map used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicies map[string]*ApplicationHealthPolicy `json:"applicationHealthPolicies"` +} + +// MarshalJSON is the custom marshaler for ClusterHealthPolicy. +func (chp ClusterHealthPolicy) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if chp.MaxPercentUnhealthyNodes != nil { + objectMap["maxPercentUnhealthyNodes"] = chp.MaxPercentUnhealthyNodes + } + if chp.MaxPercentUnhealthyApplications != nil { + objectMap["maxPercentUnhealthyApplications"] = chp.MaxPercentUnhealthyApplications + } + if chp.ApplicationHealthPolicies != nil { + objectMap["applicationHealthPolicies"] = chp.ApplicationHealthPolicies + } + return json.Marshal(objectMap) +} + +// ClusterListResult cluster list results +type ClusterListResult struct { + autorest.Response `json:"-"` + Value *[]Cluster `json:"value,omitempty"` + // NextLink - The URL to use for getting the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// ClusterProperties describes the cluster resource properties. +type ClusterProperties struct { + // AddOnFeatures - The list of add-on features to enable in the cluster. + AddOnFeatures *[]string `json:"addOnFeatures,omitempty"` + // AvailableClusterVersions - READ-ONLY; The Service Fabric runtime versions available for this cluster. + AvailableClusterVersions *[]ClusterVersionDetails `json:"availableClusterVersions,omitempty"` + // AzureActiveDirectory - The AAD authentication settings of the cluster. + AzureActiveDirectory *AzureActiveDirectory `json:"azureActiveDirectory,omitempty"` + // Certificate - The certificate to use for securing the cluster. The certificate provided will be used for node to node security within the cluster, SSL certificate for cluster management endpoint and default admin client. + Certificate *CertificateDescription `json:"certificate,omitempty"` + // CertificateCommonNames - Describes a list of server certificates referenced by common name that are used to secure the cluster. + CertificateCommonNames *ServerCertificateCommonNames `json:"certificateCommonNames,omitempty"` + // ClientCertificateCommonNames - The list of client certificates referenced by common name that are allowed to manage the cluster. + ClientCertificateCommonNames *[]ClientCertificateCommonName `json:"clientCertificateCommonNames,omitempty"` + // ClientCertificateThumbprints - The list of client certificates referenced by thumbprint that are allowed to manage the cluster. + ClientCertificateThumbprints *[]ClientCertificateThumbprint `json:"clientCertificateThumbprints,omitempty"` + // ClusterCodeVersion - The Service Fabric runtime version of the cluster. This property can only by set the user when **upgradeMode** is set to 'Manual'. To get list of available Service Fabric versions for new clusters use [ClusterVersion API](./ClusterVersion.md). To get the list of available version for existing clusters use **availableClusterVersions**. + ClusterCodeVersion *string `json:"clusterCodeVersion,omitempty"` + // ClusterEndpoint - READ-ONLY; The Azure Resource Provider endpoint. A system service in the cluster connects to this endpoint. + ClusterEndpoint *string `json:"clusterEndpoint,omitempty"` + // ClusterID - READ-ONLY; A service generated unique identifier for the cluster resource. + ClusterID *string `json:"clusterId,omitempty"` + // ClusterState - READ-ONLY; The current state of the cluster. + // - WaitingForNodes - Indicates that the cluster resource is created and the resource provider is waiting for Service Fabric VM extension to boot up and report to it. + // - Deploying - Indicates that the Service Fabric runtime is being installed on the VMs. Cluster resource will be in this state until the cluster boots up and system services are up. + // - BaselineUpgrade - Indicates that the cluster is upgrading to establishes the cluster version. This upgrade is automatically initiated when the cluster boots up for the first time. + // - UpdatingUserConfiguration - Indicates that the cluster is being upgraded with the user provided configuration. + // - UpdatingUserCertificate - Indicates that the cluster is being upgraded with the user provided certificate. + // - UpdatingInfrastructure - Indicates that the cluster is being upgraded with the latest Service Fabric runtime version. This happens only when the **upgradeMode** is set to 'Automatic'. + // - EnforcingClusterVersion - Indicates that cluster is on a different version than expected and the cluster is being upgraded to the expected version. + // - UpgradeServiceUnreachable - Indicates that the system service in the cluster is no longer polling the Resource Provider. Clusters in this state cannot be managed by the Resource Provider. + // - AutoScale - Indicates that the ReliabilityLevel of the cluster is being adjusted. + // - Ready - Indicates that the cluster is in a stable state. + // . Possible values include: 'WaitingForNodes', 'Deploying', 'BaselineUpgrade', 'UpdatingUserConfiguration', 'UpdatingUserCertificate', 'UpdatingInfrastructure', 'EnforcingClusterVersion', 'UpgradeServiceUnreachable', 'AutoScale', 'Ready' + ClusterState ClusterState `json:"clusterState,omitempty"` + // DiagnosticsStorageAccountConfig - The storage account information for storing Service Fabric diagnostic logs. + DiagnosticsStorageAccountConfig *DiagnosticsStorageAccountConfig `json:"diagnosticsStorageAccountConfig,omitempty"` + // EventStoreServiceEnabled - Indicates if the event store service is enabled. + EventStoreServiceEnabled *bool `json:"eventStoreServiceEnabled,omitempty"` + // FabricSettings - The list of custom fabric settings to configure the cluster. + FabricSettings *[]SettingsSectionDescription `json:"fabricSettings,omitempty"` + // ManagementEndpoint - The http management endpoint of the cluster. + ManagementEndpoint *string `json:"managementEndpoint,omitempty"` + // NodeTypes - The list of node types in the cluster. + NodeTypes *[]NodeTypeDescription `json:"nodeTypes,omitempty"` + // ProvisioningState - READ-ONLY; The provisioning state of the cluster resource. Possible values include: 'Updating', 'Succeeded', 'Failed', 'Canceled' + ProvisioningState ProvisioningState `json:"provisioningState,omitempty"` + // ReliabilityLevel - The reliability level sets the replica set size of system services. Learn about [ReliabilityLevel](https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-capacity). + // - None - Run the System services with a target replica set count of 1. This should only be used for test clusters. + // - Bronze - Run the System services with a target replica set count of 3. This should only be used for test clusters. + // - Silver - Run the System services with a target replica set count of 5. + // - Gold - Run the System services with a target replica set count of 7. + // - Platinum - Run the System services with a target replica set count of 9. + // . Possible values include: 'ReliabilityLevelNone', 'ReliabilityLevelBronze', 'ReliabilityLevelSilver', 'ReliabilityLevelGold', 'ReliabilityLevelPlatinum' + ReliabilityLevel ReliabilityLevel `json:"reliabilityLevel,omitempty"` + // ReverseProxyCertificate - The server certificate used by reverse proxy. + ReverseProxyCertificate *CertificateDescription `json:"reverseProxyCertificate,omitempty"` + // ReverseProxyCertificateCommonNames - Describes a list of server certificates referenced by common name that are used to secure the cluster. + ReverseProxyCertificateCommonNames *ServerCertificateCommonNames `json:"reverseProxyCertificateCommonNames,omitempty"` + // UpgradeDescription - The policy to use when upgrading the cluster. + UpgradeDescription *ClusterUpgradePolicy `json:"upgradeDescription,omitempty"` + // UpgradeMode - The upgrade mode of the cluster when new Service Fabric runtime version is available. + // - Automatic - The cluster will be automatically upgraded to the latest Service Fabric runtime version as soon as it is available. + // - Manual - The cluster will not be automatically upgraded to the latest Service Fabric runtime version. The cluster is upgraded by setting the **clusterCodeVersion** property in the cluster resource. + // . Possible values include: 'UpgradeModeAutomatic', 'UpgradeModeManual' + UpgradeMode UpgradeMode `json:"upgradeMode,omitempty"` + // VMImage - The VM image VMSS has been configured with. Generic names such as Windows or Linux can be used. + VMImage *string `json:"vmImage,omitempty"` +} + +// ClusterPropertiesUpdateParameters describes the cluster resource properties that can be updated during +// PATCH operation. +type ClusterPropertiesUpdateParameters struct { + // AddOnFeatures - The list of add-on features to enable in the cluster. + AddOnFeatures *[]string `json:"addOnFeatures,omitempty"` + // Certificate - The certificate to use for securing the cluster. The certificate provided will be used for node to node security within the cluster, SSL certificate for cluster management endpoint and default admin client. + Certificate *CertificateDescription `json:"certificate,omitempty"` + // CertificateCommonNames - Describes a list of server certificates referenced by common name that are used to secure the cluster. + CertificateCommonNames *ServerCertificateCommonNames `json:"certificateCommonNames,omitempty"` + // ClientCertificateCommonNames - The list of client certificates referenced by common name that are allowed to manage the cluster. This will overwrite the existing list. + ClientCertificateCommonNames *[]ClientCertificateCommonName `json:"clientCertificateCommonNames,omitempty"` + // ClientCertificateThumbprints - The list of client certificates referenced by thumbprint that are allowed to manage the cluster. This will overwrite the existing list. + ClientCertificateThumbprints *[]ClientCertificateThumbprint `json:"clientCertificateThumbprints,omitempty"` + // ClusterCodeVersion - The Service Fabric runtime version of the cluster. This property can only by set the user when **upgradeMode** is set to 'Manual'. To get list of available Service Fabric versions for new clusters use [ClusterVersion API](./ClusterVersion.md). To get the list of available version for existing clusters use **availableClusterVersions**. + ClusterCodeVersion *string `json:"clusterCodeVersion,omitempty"` + // EventStoreServiceEnabled - Indicates if the event store service is enabled. + EventStoreServiceEnabled *bool `json:"eventStoreServiceEnabled,omitempty"` + // FabricSettings - The list of custom fabric settings to configure the cluster. This will overwrite the existing list. + FabricSettings *[]SettingsSectionDescription `json:"fabricSettings,omitempty"` + // NodeTypes - The list of node types in the cluster. This will overwrite the existing list. + NodeTypes *[]NodeTypeDescription `json:"nodeTypes,omitempty"` + // ReliabilityLevel - The reliability level sets the replica set size of system services. Learn about [ReliabilityLevel](https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-capacity). + // - None - Run the System services with a target replica set count of 1. This should only be used for test clusters. + // - Bronze - Run the System services with a target replica set count of 3. This should only be used for test clusters. + // - Silver - Run the System services with a target replica set count of 5. + // - Gold - Run the System services with a target replica set count of 7. + // - Platinum - Run the System services with a target replica set count of 9. + // . Possible values include: 'ReliabilityLevel1None', 'ReliabilityLevel1Bronze', 'ReliabilityLevel1Silver', 'ReliabilityLevel1Gold', 'ReliabilityLevel1Platinum' + ReliabilityLevel ReliabilityLevel1 `json:"reliabilityLevel,omitempty"` + // ReverseProxyCertificate - The server certificate used by reverse proxy. + ReverseProxyCertificate *CertificateDescription `json:"reverseProxyCertificate,omitempty"` + // UpgradeDescription - The policy to use when upgrading the cluster. + UpgradeDescription *ClusterUpgradePolicy `json:"upgradeDescription,omitempty"` + // UpgradeMode - The upgrade mode of the cluster when new Service Fabric runtime version is available. + // - Automatic - The cluster will be automatically upgraded to the latest Service Fabric runtime version as soon as it is available. + // - Manual - The cluster will not be automatically upgraded to the latest Service Fabric runtime version. The cluster is upgraded by setting the **clusterCodeVersion** property in the cluster resource. + // . Possible values include: 'UpgradeMode1Automatic', 'UpgradeMode1Manual' + UpgradeMode UpgradeMode1 `json:"upgradeMode,omitempty"` +} + +// ClustersCreateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ClustersCreateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ClustersCreateFuture) Result(client ClustersClient) (c Cluster, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersCreateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("servicefabric.ClustersCreateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if c.Response.Response, err = future.GetResult(sender); err == nil && c.Response.Response.StatusCode != http.StatusNoContent { + c, err = client.CreateResponder(c.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersCreateFuture", "Result", c.Response.Response, "Failure responding to request") + } + } + return +} + +// ClustersUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ClustersUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ClustersUpdateFuture) Result(client ClustersClient) (c Cluster, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("servicefabric.ClustersUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if c.Response.Response, err = future.GetResult(sender); err == nil && c.Response.Response.StatusCode != http.StatusNoContent { + c, err = client.UpdateResponder(c.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ClustersUpdateFuture", "Result", c.Response.Response, "Failure responding to request") + } + } + return +} + +// ClusterUpdateParameters cluster update request +type ClusterUpdateParameters struct { + // ClusterPropertiesUpdateParameters - Describes the cluster resource properties that can be updated during PATCH operation. + *ClusterPropertiesUpdateParameters `json:"properties,omitempty"` + // Tags - Cluster update parameters + Tags map[string]*string `json:"tags"` +} + +// MarshalJSON is the custom marshaler for ClusterUpdateParameters. +func (cup ClusterUpdateParameters) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if cup.ClusterPropertiesUpdateParameters != nil { + objectMap["properties"] = cup.ClusterPropertiesUpdateParameters + } + if cup.Tags != nil { + objectMap["tags"] = cup.Tags + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ClusterUpdateParameters struct. +func (cup *ClusterUpdateParameters) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var clusterPropertiesUpdateParameters ClusterPropertiesUpdateParameters + err = json.Unmarshal(*v, &clusterPropertiesUpdateParameters) + if err != nil { + return err + } + cup.ClusterPropertiesUpdateParameters = &clusterPropertiesUpdateParameters + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + cup.Tags = tags + } + } + } + + return nil +} + +// ClusterUpgradeDeltaHealthPolicy describes the delta health policies for the cluster upgrade. +type ClusterUpgradeDeltaHealthPolicy struct { + // MaxPercentDeltaUnhealthyNodes - The maximum allowed percentage of nodes health degradation allowed during cluster upgrades. + // The delta is measured between the state of the nodes at the beginning of upgrade and the state of the nodes at the time of the health evaluation. + // The check is performed after every upgrade domain upgrade completion to make sure the global state of the cluster is within tolerated limits. + MaxPercentDeltaUnhealthyNodes *int32 `json:"maxPercentDeltaUnhealthyNodes,omitempty"` + // MaxPercentUpgradeDomainDeltaUnhealthyNodes - The maximum allowed percentage of upgrade domain nodes health degradation allowed during cluster upgrades. + // The delta is measured between the state of the upgrade domain nodes at the beginning of upgrade and the state of the upgrade domain nodes at the time of the health evaluation. + // The check is performed after every upgrade domain upgrade completion for all completed upgrade domains to make sure the state of the upgrade domains is within tolerated limits. + MaxPercentUpgradeDomainDeltaUnhealthyNodes *int32 `json:"maxPercentUpgradeDomainDeltaUnhealthyNodes,omitempty"` + // MaxPercentDeltaUnhealthyApplications - The maximum allowed percentage of applications health degradation allowed during cluster upgrades. + // The delta is measured between the state of the applications at the beginning of upgrade and the state of the applications at the time of the health evaluation. + // The check is performed after every upgrade domain upgrade completion to make sure the global state of the cluster is within tolerated limits. System services are not included in this. + MaxPercentDeltaUnhealthyApplications *int32 `json:"maxPercentDeltaUnhealthyApplications,omitempty"` + // ApplicationDeltaHealthPolicies - Defines the application delta health policy map used to evaluate the health of an application or one of its child entities when upgrading the cluster. + ApplicationDeltaHealthPolicies map[string]*ApplicationDeltaHealthPolicy `json:"applicationDeltaHealthPolicies"` +} + +// MarshalJSON is the custom marshaler for ClusterUpgradeDeltaHealthPolicy. +func (cudhp ClusterUpgradeDeltaHealthPolicy) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if cudhp.MaxPercentDeltaUnhealthyNodes != nil { + objectMap["maxPercentDeltaUnhealthyNodes"] = cudhp.MaxPercentDeltaUnhealthyNodes + } + if cudhp.MaxPercentUpgradeDomainDeltaUnhealthyNodes != nil { + objectMap["maxPercentUpgradeDomainDeltaUnhealthyNodes"] = cudhp.MaxPercentUpgradeDomainDeltaUnhealthyNodes + } + if cudhp.MaxPercentDeltaUnhealthyApplications != nil { + objectMap["maxPercentDeltaUnhealthyApplications"] = cudhp.MaxPercentDeltaUnhealthyApplications + } + if cudhp.ApplicationDeltaHealthPolicies != nil { + objectMap["applicationDeltaHealthPolicies"] = cudhp.ApplicationDeltaHealthPolicies + } + return json.Marshal(objectMap) +} + +// ClusterUpgradePolicy describes the policy used when upgrading the cluster. +type ClusterUpgradePolicy struct { + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"forceRestart,omitempty"` + // UpgradeReplicaSetCheckTimeout - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. The timeout can be in either hh:mm:ss or in d.hh:mm:ss.ms format. + UpgradeReplicaSetCheckTimeout *string `json:"upgradeReplicaSetCheckTimeout,omitempty"` + // HealthCheckWaitDuration - The length of time to wait after completing an upgrade domain before performing health checks. The duration can be in either hh:mm:ss or in d.hh:mm:ss.ms format. + HealthCheckWaitDuration *string `json:"healthCheckWaitDuration,omitempty"` + // HealthCheckStableDuration - The amount of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. The duration can be in either hh:mm:ss or in d.hh:mm:ss.ms format. + HealthCheckStableDuration *string `json:"healthCheckStableDuration,omitempty"` + // HealthCheckRetryTimeout - The amount of time to retry health evaluation when the application or cluster is unhealthy before the upgrade rolls back. The timeout can be in either hh:mm:ss or in d.hh:mm:ss.ms format. + HealthCheckRetryTimeout *string `json:"healthCheckRetryTimeout,omitempty"` + // UpgradeTimeout - The amount of time the overall upgrade has to complete before the upgrade rolls back. The timeout can be in either hh:mm:ss or in d.hh:mm:ss.ms format. + UpgradeTimeout *string `json:"upgradeTimeout,omitempty"` + // UpgradeDomainTimeout - The amount of time each upgrade domain has to complete before the upgrade rolls back. The timeout can be in either hh:mm:ss or in d.hh:mm:ss.ms format. + UpgradeDomainTimeout *string `json:"upgradeDomainTimeout,omitempty"` + // HealthPolicy - The cluster health policy used when upgrading the cluster. + HealthPolicy *ClusterHealthPolicy `json:"healthPolicy,omitempty"` + // DeltaHealthPolicy - The cluster delta health policy used when upgrading the cluster. + DeltaHealthPolicy *ClusterUpgradeDeltaHealthPolicy `json:"deltaHealthPolicy,omitempty"` +} + +// ClusterVersionDetails the detail of the Service Fabric runtime version result +type ClusterVersionDetails struct { + // CodeVersion - The Service Fabric runtime version of the cluster. + CodeVersion *string `json:"codeVersion,omitempty"` + // SupportExpiryUtc - The date of expiry of support of the version. + SupportExpiryUtc *string `json:"supportExpiryUtc,omitempty"` + // Environment - Indicates if this version is for Windows or Linux operating system. Possible values include: 'Windows', 'Linux' + Environment Environment `json:"environment,omitempty"` +} + +// DiagnosticsStorageAccountConfig the storage account information for storing Service Fabric diagnostic +// logs. +type DiagnosticsStorageAccountConfig struct { + // StorageAccountName - The Azure storage account name. + StorageAccountName *string `json:"storageAccountName,omitempty"` + // ProtectedAccountKeyName - The protected diagnostics storage key name. + ProtectedAccountKeyName *string `json:"protectedAccountKeyName,omitempty"` + // BlobEndpoint - The blob endpoint of the azure storage account. + BlobEndpoint *string `json:"blobEndpoint,omitempty"` + // QueueEndpoint - The queue endpoint of the azure storage account. + QueueEndpoint *string `json:"queueEndpoint,omitempty"` + // TableEndpoint - The table endpoint of the azure storage account. + TableEndpoint *string `json:"tableEndpoint,omitempty"` +} + +// EndpointRangeDescription port range details +type EndpointRangeDescription struct { + // StartPort - Starting port of a range of ports + StartPort *int32 `json:"startPort,omitempty"` + // EndPort - End port of a range of ports + EndPort *int32 `json:"endPort,omitempty"` +} + +// ErrorModel the structure of the error. +type ErrorModel struct { + // Error - The error details. + Error *ErrorModelError `json:"error,omitempty"` +} + +// ErrorModelError the error details. +type ErrorModelError struct { + // Code - The error code. + Code *string `json:"code,omitempty"` + // Message - The error message. + Message *string `json:"message,omitempty"` +} + +// NamedPartitionSchemeDescription describes the named partition scheme of the service. +type NamedPartitionSchemeDescription struct { + // Count - The number of partitions. + Count *int32 `json:"Count,omitempty"` + // Names - Array of size specified by the ‘Count’ parameter, for the names of the partitions. + Names *[]string `json:"Names,omitempty"` + // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed', 'PartitionSchemeSingleton', 'PartitionSchemeUniformInt64Range' + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"partitionScheme,omitempty"` +} + +// MarshalJSON is the custom marshaler for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) MarshalJSON() ([]byte, error) { + npsd.PartitionScheme = PartitionSchemeNamed + objectMap := make(map[string]interface{}) + if npsd.Count != nil { + objectMap["Count"] = npsd.Count + } + if npsd.Names != nil { + objectMap["Names"] = npsd.Names + } + if npsd.PartitionScheme != "" { + objectMap["partitionScheme"] = npsd.PartitionScheme + } + return json.Marshal(objectMap) +} + +// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) { + return &npsd, true +} + +// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) { + return nil, false +} + +// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) { + return nil, false +} + +// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) { + return nil, false +} + +// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) { + return &npsd, true +} + +// NodeTypeDescription describes a node type in the cluster, each node type represents sub set of nodes in +// the cluster. +type NodeTypeDescription struct { + // Name - The name of the node type. + Name *string `json:"name,omitempty"` + // PlacementProperties - The placement tags applied to nodes in the node type, which can be used to indicate where certain services (workload) should run. + PlacementProperties map[string]*string `json:"placementProperties"` + // Capacities - The capacity tags applied to the nodes in the node type, the cluster resource manager uses these tags to understand how much resource a node has. + Capacities map[string]*string `json:"capacities"` + // ClientConnectionEndpointPort - The TCP cluster management endpoint port. + ClientConnectionEndpointPort *int32 `json:"clientConnectionEndpointPort,omitempty"` + // HTTPGatewayEndpointPort - The HTTP cluster management endpoint port. + HTTPGatewayEndpointPort *int32 `json:"httpGatewayEndpointPort,omitempty"` + // DurabilityLevel - The durability level of the node type. Learn about [DurabilityLevel](https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-capacity). + // - Bronze - No privileges. This is the default. + // - Silver - The infrastructure jobs can be paused for a duration of 10 minutes per UD. + // - Gold - The infrastructure jobs can be paused for a duration of 2 hours per UD. Gold durability can be enabled only on full node VM skus like D15_V2, G5 etc. + // . Possible values include: 'Bronze', 'Silver', 'Gold' + DurabilityLevel DurabilityLevel `json:"durabilityLevel,omitempty"` + // ApplicationPorts - The range of ports from which cluster assigned port to Service Fabric applications. + ApplicationPorts *EndpointRangeDescription `json:"applicationPorts,omitempty"` + // EphemeralPorts - The range of ephemeral ports that nodes in this node type should be configured with. + EphemeralPorts *EndpointRangeDescription `json:"ephemeralPorts,omitempty"` + // IsPrimary - The node type on which system services will run. Only one node type should be marked as primary. Primary node type cannot be deleted or changed for existing clusters. + IsPrimary *bool `json:"isPrimary,omitempty"` + // VMInstanceCount - The number of nodes in the node type. This count should match the capacity property in the corresponding VirtualMachineScaleSet resource. + VMInstanceCount *int32 `json:"vmInstanceCount,omitempty"` + // ReverseProxyEndpointPort - The endpoint used by reverse proxy. + ReverseProxyEndpointPort *int32 `json:"reverseProxyEndpointPort,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeTypeDescription. +func (ntd NodeTypeDescription) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ntd.Name != nil { + objectMap["name"] = ntd.Name + } + if ntd.PlacementProperties != nil { + objectMap["placementProperties"] = ntd.PlacementProperties + } + if ntd.Capacities != nil { + objectMap["capacities"] = ntd.Capacities + } + if ntd.ClientConnectionEndpointPort != nil { + objectMap["clientConnectionEndpointPort"] = ntd.ClientConnectionEndpointPort + } + if ntd.HTTPGatewayEndpointPort != nil { + objectMap["httpGatewayEndpointPort"] = ntd.HTTPGatewayEndpointPort + } + if ntd.DurabilityLevel != "" { + objectMap["durabilityLevel"] = ntd.DurabilityLevel + } + if ntd.ApplicationPorts != nil { + objectMap["applicationPorts"] = ntd.ApplicationPorts + } + if ntd.EphemeralPorts != nil { + objectMap["ephemeralPorts"] = ntd.EphemeralPorts + } + if ntd.IsPrimary != nil { + objectMap["isPrimary"] = ntd.IsPrimary + } + if ntd.VMInstanceCount != nil { + objectMap["vmInstanceCount"] = ntd.VMInstanceCount + } + if ntd.ReverseProxyEndpointPort != nil { + objectMap["reverseProxyEndpointPort"] = ntd.ReverseProxyEndpointPort + } + return json.Marshal(objectMap) +} + +// OperationListResult describes the result of the request to list Service Fabric resource provider +// operations. +type OperationListResult struct { + autorest.Response `json:"-"` + // Value - List of operations supported by the Service Fabric resource provider. + Value *[]OperationResult `json:"value,omitempty"` + // NextLink - READ-ONLY; URL to get the next set of operation list results if there are any. + NextLink *string `json:"nextLink,omitempty"` +} + +// OperationListResultIterator provides access to a complete listing of OperationResult values. +type OperationListResultIterator struct { + i int + page OperationListResultPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *OperationListResultIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationListResultIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *OperationListResultIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter OperationListResultIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter OperationListResultIterator) Response() OperationListResult { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter OperationListResultIterator) Value() OperationResult { + if !iter.page.NotDone() { + return OperationResult{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the OperationListResultIterator type. +func NewOperationListResultIterator(page OperationListResultPage) OperationListResultIterator { + return OperationListResultIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (olr OperationListResult) IsEmpty() bool { + return olr.Value == nil || len(*olr.Value) == 0 +} + +// operationListResultPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (olr OperationListResult) operationListResultPreparer(ctx context.Context) (*http.Request, error) { + if olr.NextLink == nil || len(to.String(olr.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(olr.NextLink))) +} + +// OperationListResultPage contains a page of OperationResult values. +type OperationListResultPage struct { + fn func(context.Context, OperationListResult) (OperationListResult, error) + olr OperationListResult +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *OperationListResultPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationListResultPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.olr) + if err != nil { + return err + } + page.olr = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *OperationListResultPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page OperationListResultPage) NotDone() bool { + return !page.olr.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page OperationListResultPage) Response() OperationListResult { + return page.olr +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page OperationListResultPage) Values() []OperationResult { + if page.olr.IsEmpty() { + return nil + } + return *page.olr.Value +} + +// Creates a new instance of the OperationListResultPage type. +func NewOperationListResultPage(getNextPage func(context.Context, OperationListResult) (OperationListResult, error)) OperationListResultPage { + return OperationListResultPage{fn: getNextPage} +} + +// OperationResult available operation list result +type OperationResult struct { + // Name - The name of the operation. + Name *string `json:"name,omitempty"` + // Display - The object that represents the operation. + Display *AvailableOperationDisplay `json:"display,omitempty"` + // Origin - Origin result + Origin *string `json:"origin,omitempty"` + // NextLink - The URL to use for getting the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// BasicPartitionSchemeDescription describes how the service is partitioned. +type BasicPartitionSchemeDescription interface { + AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) + AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) + AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) + AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) +} + +// PartitionSchemeDescription describes how the service is partitioned. +type PartitionSchemeDescription struct { + // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed', 'PartitionSchemeSingleton', 'PartitionSchemeUniformInt64Range' + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"partitionScheme,omitempty"` +} + +func unmarshalBasicPartitionSchemeDescription(body []byte) (BasicPartitionSchemeDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["partitionScheme"] { + case string(PartitionSchemeNamed): + var npsd NamedPartitionSchemeDescription + err := json.Unmarshal(body, &npsd) + return npsd, err + case string(PartitionSchemeSingleton): + var spsd SingletonPartitionSchemeDescription + err := json.Unmarshal(body, &spsd) + return spsd, err + case string(PartitionSchemeUniformInt64Range): + var ui6rpsd UniformInt64RangePartitionSchemeDescription + err := json.Unmarshal(body, &ui6rpsd) + return ui6rpsd, err + default: + var psd PartitionSchemeDescription + err := json.Unmarshal(body, &psd) + return psd, err + } +} +func unmarshalBasicPartitionSchemeDescriptionArray(body []byte) ([]BasicPartitionSchemeDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + psdArray := make([]BasicPartitionSchemeDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + psd, err := unmarshalBasicPartitionSchemeDescription(*rawMessage) + if err != nil { + return nil, err + } + psdArray[index] = psd + } + return psdArray, nil +} + +// MarshalJSON is the custom marshaler for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) MarshalJSON() ([]byte, error) { + psd.PartitionScheme = PartitionSchemePartitionSchemeDescription + objectMap := make(map[string]interface{}) + if psd.PartitionScheme != "" { + objectMap["partitionScheme"] = psd.PartitionScheme + } + return json.Marshal(objectMap) +} + +// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) { + return nil, false +} + +// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) { + return nil, false +} + +// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) { + return nil, false +} + +// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) { + return &psd, true +} + +// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) { + return &psd, true +} + +// ProxyResource the resource model definition for proxy-only resource. +type ProxyResource struct { + // ID - READ-ONLY; Azure resource identifier. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Azure resource name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Azure resource type. + Type *string `json:"type,omitempty"` + // Location - Azure resource location. + Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` +} + +// MarshalJSON is the custom marshaler for ProxyResource. +func (pr ProxyResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if pr.Location != nil { + objectMap["location"] = pr.Location + } + if pr.Tags != nil { + objectMap["tags"] = pr.Tags + } + return json.Marshal(objectMap) +} + +// Resource the resource model definition. +type Resource struct { + // ID - READ-ONLY; Azure resource identifier. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Azure resource name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Azure resource type. + Type *string `json:"type,omitempty"` + // Location - Azure resource location. + Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` +} + +// MarshalJSON is the custom marshaler for Resource. +func (r Resource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if r.Location != nil { + objectMap["location"] = r.Location + } + if r.Tags != nil { + objectMap["tags"] = r.Tags + } + return json.Marshal(objectMap) +} + +// ServerCertificateCommonName describes the server certificate details using common name. +type ServerCertificateCommonName struct { + // CertificateCommonName - The common name of the server certificate. + CertificateCommonName *string `json:"certificateCommonName,omitempty"` + // CertificateIssuerThumbprint - The issuer thumbprint of the server certificate. + CertificateIssuerThumbprint *string `json:"certificateIssuerThumbprint,omitempty"` +} + +// ServerCertificateCommonNames describes a list of server certificates referenced by common name that are +// used to secure the cluster. +type ServerCertificateCommonNames struct { + // CommonNames - The list of server certificates referenced by common name that are used to secure the cluster. + CommonNames *[]ServerCertificateCommonName `json:"commonNames,omitempty"` + // X509StoreName - The local certificate store location. Possible values include: 'X509StoreName1AddressBook', 'X509StoreName1AuthRoot', 'X509StoreName1CertificateAuthority', 'X509StoreName1Disallowed', 'X509StoreName1My', 'X509StoreName1Root', 'X509StoreName1TrustedPeople', 'X509StoreName1TrustedPublisher' + X509StoreName X509StoreName1 `json:"x509StoreName,omitempty"` +} + +// ServiceCorrelationDescription creates a particular correlation between services. +type ServiceCorrelationDescription struct { + // Scheme - The ServiceCorrelationScheme which describes the relationship between this service and the service specified via ServiceName. Possible values include: 'ServiceCorrelationSchemeInvalid', 'ServiceCorrelationSchemeAffinity', 'ServiceCorrelationSchemeAlignedAffinity', 'ServiceCorrelationSchemeNonAlignedAffinity' + Scheme ServiceCorrelationScheme `json:"scheme,omitempty"` + // ServiceName - The name of the service that the correlation relationship is established with. + ServiceName *string `json:"serviceName,omitempty"` +} + +// ServiceLoadMetricDescription specifies a metric to load balance a service during runtime. +type ServiceLoadMetricDescription struct { + // Name - The name of the metric. If the service chooses to report load during runtime, the load metric name should match the name that is specified in Name exactly. Note that metric names are case sensitive. + Name *string `json:"name,omitempty"` + // Weight - The service load metric relative weight, compared to other metrics configured for this service, as a number. Possible values include: 'ServiceLoadMetricWeightZero', 'ServiceLoadMetricWeightLow', 'ServiceLoadMetricWeightMedium', 'ServiceLoadMetricWeightHigh' + Weight ServiceLoadMetricWeight `json:"weight,omitempty"` + // PrimaryDefaultLoad - Used only for Stateful services. The default amount of load, as a number, that this service creates for this metric when it is a Primary replica. + PrimaryDefaultLoad *int32 `json:"primaryDefaultLoad,omitempty"` + // SecondaryDefaultLoad - Used only for Stateful services. The default amount of load, as a number, that this service creates for this metric when it is a Secondary replica. + SecondaryDefaultLoad *int32 `json:"secondaryDefaultLoad,omitempty"` + // DefaultLoad - Used only for Stateless services. The default amount of load, as a number, that this service creates for this metric. + DefaultLoad *int32 `json:"defaultLoad,omitempty"` +} + +// BasicServicePlacementPolicyDescription describes the policy to be used for placement of a Service Fabric service. +type BasicServicePlacementPolicyDescription interface { + AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) +} + +// ServicePlacementPolicyDescription describes the policy to be used for placement of a Service Fabric service. +type ServicePlacementPolicyDescription struct { + // Type - Possible values include: 'TypeServicePlacementPolicyDescription' + Type Type `json:"Type,omitempty"` +} + +func unmarshalBasicServicePlacementPolicyDescription(body []byte) (BasicServicePlacementPolicyDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Type"] { + default: + var sppd ServicePlacementPolicyDescription + err := json.Unmarshal(body, &sppd) + return sppd, err + } +} +func unmarshalBasicServicePlacementPolicyDescriptionArray(body []byte) ([]BasicServicePlacementPolicyDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + sppdArray := make([]BasicServicePlacementPolicyDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + sppd, err := unmarshalBasicServicePlacementPolicyDescription(*rawMessage) + if err != nil { + return nil, err + } + sppdArray[index] = sppd + } + return sppdArray, nil +} + +// MarshalJSON is the custom marshaler for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) MarshalJSON() ([]byte, error) { + sppd.Type = TypeServicePlacementPolicyDescription + objectMap := make(map[string]interface{}) + if sppd.Type != "" { + objectMap["Type"] = sppd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return &sppd, true +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &sppd, true +} + +// ServiceResource the service resource. +type ServiceResource struct { + autorest.Response `json:"-"` + // BasicServiceResourceProperties - The service resource properties. + BasicServiceResourceProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Azure resource identifier. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Azure resource name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Azure resource type. + Type *string `json:"type,omitempty"` + // Location - Azure resource location. + Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceResource. +func (sr ServiceResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + objectMap["properties"] = sr.BasicServiceResourceProperties + if sr.Location != nil { + objectMap["location"] = sr.Location + } + if sr.Tags != nil { + objectMap["tags"] = sr.Tags + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ServiceResource struct. +func (sr *ServiceResource) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + basicServiceResourceProperties, err := unmarshalBasicServiceResourceProperties(*v) + if err != nil { + return err + } + sr.BasicServiceResourceProperties = basicServiceResourceProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + sr.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + sr.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + sr.Type = &typeVar + } + case "location": + if v != nil { + var location string + err = json.Unmarshal(*v, &location) + if err != nil { + return err + } + sr.Location = &location + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + sr.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + sr.Etag = &etag + } + } + } + + return nil +} + +// ServiceResourceList the list of service resources. +type ServiceResourceList struct { + autorest.Response `json:"-"` + Value *[]ServiceResource `json:"value,omitempty"` + // NextLink - READ-ONLY; URL to get the next set of service list results if there are any. + NextLink *string `json:"nextLink,omitempty"` +} + +// BasicServiceResourceProperties the service resource properties. +type BasicServiceResourceProperties interface { + AsStatefulServiceProperties() (*StatefulServiceProperties, bool) + AsStatelessServiceProperties() (*StatelessServiceProperties, bool) + AsServiceResourceProperties() (*ServiceResourceProperties, bool) +} + +// ServiceResourceProperties the service resource properties. +type ServiceResourceProperties struct { + // ProvisioningState - READ-ONLY; The current deployment or provisioning state, which only appears in the response + ProvisioningState *string `json:"provisioningState,omitempty"` + // ServiceTypeName - The name of the service type + ServiceTypeName *string `json:"serviceTypeName,omitempty"` + // PartitionDescription - Describes how the service is partitioned. + PartitionDescription BasicPartitionSchemeDescription `json:"partitionDescription,omitempty"` + // ServicePackageActivationMode - The activation Mode of the service package. Possible values include: 'SharedProcess', 'ExclusiveProcess' + ServicePackageActivationMode ArmServicePackageActivationMode `json:"servicePackageActivationMode,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindServiceResourceProperties', 'ServiceKindStateful1', 'ServiceKindStateless1' + ServiceKind ServiceKindBasicServiceResourceProperties `json:"serviceKind,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"placementConstraints,omitempty"` + // CorrelationScheme - A list that describes the correlation of the service with other services. + CorrelationScheme *[]ServiceCorrelationDescription `json:"correlationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"serviceLoadMetrics,omitempty"` + // ServicePlacementPolicies - A list that describes the correlation of the service with other services. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"servicePlacementPolicies,omitempty"` + // DefaultMoveCost - Specifies the move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"defaultMoveCost,omitempty"` +} + +func unmarshalBasicServiceResourceProperties(body []byte) (BasicServiceResourceProperties, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["serviceKind"] { + case string(ServiceKindStateful1): + var ssp StatefulServiceProperties + err := json.Unmarshal(body, &ssp) + return ssp, err + case string(ServiceKindStateless1): + var ssp StatelessServiceProperties + err := json.Unmarshal(body, &ssp) + return ssp, err + default: + var srp ServiceResourceProperties + err := json.Unmarshal(body, &srp) + return srp, err + } +} +func unmarshalBasicServiceResourcePropertiesArray(body []byte) ([]BasicServiceResourceProperties, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + srpArray := make([]BasicServiceResourceProperties, len(rawMessages)) + + for index, rawMessage := range rawMessages { + srp, err := unmarshalBasicServiceResourceProperties(*rawMessage) + if err != nil { + return nil, err + } + srpArray[index] = srp + } + return srpArray, nil +} + +// MarshalJSON is the custom marshaler for ServiceResourceProperties. +func (srp ServiceResourceProperties) MarshalJSON() ([]byte, error) { + srp.ServiceKind = ServiceKindServiceResourceProperties + objectMap := make(map[string]interface{}) + if srp.ServiceTypeName != nil { + objectMap["serviceTypeName"] = srp.ServiceTypeName + } + objectMap["partitionDescription"] = srp.PartitionDescription + if srp.ServicePackageActivationMode != "" { + objectMap["servicePackageActivationMode"] = srp.ServicePackageActivationMode + } + if srp.ServiceKind != "" { + objectMap["serviceKind"] = srp.ServiceKind + } + if srp.PlacementConstraints != nil { + objectMap["placementConstraints"] = srp.PlacementConstraints + } + if srp.CorrelationScheme != nil { + objectMap["correlationScheme"] = srp.CorrelationScheme + } + if srp.ServiceLoadMetrics != nil { + objectMap["serviceLoadMetrics"] = srp.ServiceLoadMetrics + } + if srp.ServicePlacementPolicies != nil { + objectMap["servicePlacementPolicies"] = srp.ServicePlacementPolicies + } + if srp.DefaultMoveCost != "" { + objectMap["defaultMoveCost"] = srp.DefaultMoveCost + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceProperties is the BasicServiceResourceProperties implementation for ServiceResourceProperties. +func (srp ServiceResourceProperties) AsStatefulServiceProperties() (*StatefulServiceProperties, bool) { + return nil, false +} + +// AsStatelessServiceProperties is the BasicServiceResourceProperties implementation for ServiceResourceProperties. +func (srp ServiceResourceProperties) AsStatelessServiceProperties() (*StatelessServiceProperties, bool) { + return nil, false +} + +// AsServiceResourceProperties is the BasicServiceResourceProperties implementation for ServiceResourceProperties. +func (srp ServiceResourceProperties) AsServiceResourceProperties() (*ServiceResourceProperties, bool) { + return &srp, true +} + +// AsBasicServiceResourceProperties is the BasicServiceResourceProperties implementation for ServiceResourceProperties. +func (srp ServiceResourceProperties) AsBasicServiceResourceProperties() (BasicServiceResourceProperties, bool) { + return &srp, true +} + +// UnmarshalJSON is the custom unmarshaler for ServiceResourceProperties struct. +func (srp *ServiceResourceProperties) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "provisioningState": + if v != nil { + var provisioningState string + err = json.Unmarshal(*v, &provisioningState) + if err != nil { + return err + } + srp.ProvisioningState = &provisioningState + } + case "serviceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + srp.ServiceTypeName = &serviceTypeName + } + case "partitionDescription": + if v != nil { + partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v) + if err != nil { + return err + } + srp.PartitionDescription = partitionDescription + } + case "servicePackageActivationMode": + if v != nil { + var servicePackageActivationMode ArmServicePackageActivationMode + err = json.Unmarshal(*v, &servicePackageActivationMode) + if err != nil { + return err + } + srp.ServicePackageActivationMode = servicePackageActivationMode + } + case "serviceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceResourceProperties + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + srp.ServiceKind = serviceKind + } + case "placementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + srp.PlacementConstraints = &placementConstraints + } + case "correlationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + srp.CorrelationScheme = &correlationScheme + } + case "serviceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + srp.ServiceLoadMetrics = &serviceLoadMetrics + } + case "servicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + srp.ServicePlacementPolicies = &servicePlacementPolicies + } + case "defaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + srp.DefaultMoveCost = defaultMoveCost + } + } + } + + return nil +} + +// ServiceResourcePropertiesBase the common service resource properties. +type ServiceResourcePropertiesBase struct { + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"placementConstraints,omitempty"` + // CorrelationScheme - A list that describes the correlation of the service with other services. + CorrelationScheme *[]ServiceCorrelationDescription `json:"correlationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"serviceLoadMetrics,omitempty"` + // ServicePlacementPolicies - A list that describes the correlation of the service with other services. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"servicePlacementPolicies,omitempty"` + // DefaultMoveCost - Specifies the move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"defaultMoveCost,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ServiceResourcePropertiesBase struct. +func (srpb *ServiceResourcePropertiesBase) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "placementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + srpb.PlacementConstraints = &placementConstraints + } + case "correlationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + srpb.CorrelationScheme = &correlationScheme + } + case "serviceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + srpb.ServiceLoadMetrics = &serviceLoadMetrics + } + case "servicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + srpb.ServicePlacementPolicies = &servicePlacementPolicies + } + case "defaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + srpb.DefaultMoveCost = defaultMoveCost + } + } + } + + return nil +} + +// ServiceResourceUpdate the service resource for patch operations. +type ServiceResourceUpdate struct { + // BasicServiceResourceUpdateProperties - The service resource properties for patch operations. + BasicServiceResourceUpdateProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Azure resource identifier. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Azure resource name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Azure resource type. + Type *string `json:"type,omitempty"` + // Location - Azure resource location. + Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceResourceUpdate. +func (sru ServiceResourceUpdate) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + objectMap["properties"] = sru.BasicServiceResourceUpdateProperties + if sru.Location != nil { + objectMap["location"] = sru.Location + } + if sru.Tags != nil { + objectMap["tags"] = sru.Tags + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ServiceResourceUpdate struct. +func (sru *ServiceResourceUpdate) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + basicServiceResourceUpdateProperties, err := unmarshalBasicServiceResourceUpdateProperties(*v) + if err != nil { + return err + } + sru.BasicServiceResourceUpdateProperties = basicServiceResourceUpdateProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + sru.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + sru.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + sru.Type = &typeVar + } + case "location": + if v != nil { + var location string + err = json.Unmarshal(*v, &location) + if err != nil { + return err + } + sru.Location = &location + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + sru.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + sru.Etag = &etag + } + } + } + + return nil +} + +// BasicServiceResourceUpdateProperties the service resource properties for patch operations. +type BasicServiceResourceUpdateProperties interface { + AsStatefulServiceUpdateProperties() (*StatefulServiceUpdateProperties, bool) + AsStatelessServiceUpdateProperties() (*StatelessServiceUpdateProperties, bool) + AsServiceResourceUpdateProperties() (*ServiceResourceUpdateProperties, bool) +} + +// ServiceResourceUpdateProperties the service resource properties for patch operations. +type ServiceResourceUpdateProperties struct { + // ServiceKind - Possible values include: 'ServiceKindBasicServiceResourceUpdatePropertiesServiceKindServiceResourceUpdateProperties', 'ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateful', 'ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateless' + ServiceKind ServiceKindBasicServiceResourceUpdateProperties `json:"serviceKind,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"placementConstraints,omitempty"` + // CorrelationScheme - A list that describes the correlation of the service with other services. + CorrelationScheme *[]ServiceCorrelationDescription `json:"correlationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"serviceLoadMetrics,omitempty"` + // ServicePlacementPolicies - A list that describes the correlation of the service with other services. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"servicePlacementPolicies,omitempty"` + // DefaultMoveCost - Specifies the move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"defaultMoveCost,omitempty"` +} + +func unmarshalBasicServiceResourceUpdateProperties(body []byte) (BasicServiceResourceUpdateProperties, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["serviceKind"] { + case string(ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateful): + var ssup StatefulServiceUpdateProperties + err := json.Unmarshal(body, &ssup) + return ssup, err + case string(ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateless): + var ssup StatelessServiceUpdateProperties + err := json.Unmarshal(body, &ssup) + return ssup, err + default: + var srup ServiceResourceUpdateProperties + err := json.Unmarshal(body, &srup) + return srup, err + } +} +func unmarshalBasicServiceResourceUpdatePropertiesArray(body []byte) ([]BasicServiceResourceUpdateProperties, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + srupArray := make([]BasicServiceResourceUpdateProperties, len(rawMessages)) + + for index, rawMessage := range rawMessages { + srup, err := unmarshalBasicServiceResourceUpdateProperties(*rawMessage) + if err != nil { + return nil, err + } + srupArray[index] = srup + } + return srupArray, nil +} + +// MarshalJSON is the custom marshaler for ServiceResourceUpdateProperties. +func (srup ServiceResourceUpdateProperties) MarshalJSON() ([]byte, error) { + srup.ServiceKind = ServiceKindBasicServiceResourceUpdatePropertiesServiceKindServiceResourceUpdateProperties + objectMap := make(map[string]interface{}) + if srup.ServiceKind != "" { + objectMap["serviceKind"] = srup.ServiceKind + } + if srup.PlacementConstraints != nil { + objectMap["placementConstraints"] = srup.PlacementConstraints + } + if srup.CorrelationScheme != nil { + objectMap["correlationScheme"] = srup.CorrelationScheme + } + if srup.ServiceLoadMetrics != nil { + objectMap["serviceLoadMetrics"] = srup.ServiceLoadMetrics + } + if srup.ServicePlacementPolicies != nil { + objectMap["servicePlacementPolicies"] = srup.ServicePlacementPolicies + } + if srup.DefaultMoveCost != "" { + objectMap["defaultMoveCost"] = srup.DefaultMoveCost + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceUpdateProperties is the BasicServiceResourceUpdateProperties implementation for ServiceResourceUpdateProperties. +func (srup ServiceResourceUpdateProperties) AsStatefulServiceUpdateProperties() (*StatefulServiceUpdateProperties, bool) { + return nil, false +} + +// AsStatelessServiceUpdateProperties is the BasicServiceResourceUpdateProperties implementation for ServiceResourceUpdateProperties. +func (srup ServiceResourceUpdateProperties) AsStatelessServiceUpdateProperties() (*StatelessServiceUpdateProperties, bool) { + return nil, false +} + +// AsServiceResourceUpdateProperties is the BasicServiceResourceUpdateProperties implementation for ServiceResourceUpdateProperties. +func (srup ServiceResourceUpdateProperties) AsServiceResourceUpdateProperties() (*ServiceResourceUpdateProperties, bool) { + return &srup, true +} + +// AsBasicServiceResourceUpdateProperties is the BasicServiceResourceUpdateProperties implementation for ServiceResourceUpdateProperties. +func (srup ServiceResourceUpdateProperties) AsBasicServiceResourceUpdateProperties() (BasicServiceResourceUpdateProperties, bool) { + return &srup, true +} + +// UnmarshalJSON is the custom unmarshaler for ServiceResourceUpdateProperties struct. +func (srup *ServiceResourceUpdateProperties) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "serviceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceResourceUpdateProperties + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + srup.ServiceKind = serviceKind + } + case "placementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + srup.PlacementConstraints = &placementConstraints + } + case "correlationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + srup.CorrelationScheme = &correlationScheme + } + case "serviceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + srup.ServiceLoadMetrics = &serviceLoadMetrics + } + case "servicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + srup.ServicePlacementPolicies = &servicePlacementPolicies + } + case "defaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + srup.DefaultMoveCost = defaultMoveCost + } + } + } + + return nil +} + +// ServicesCreateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ServicesCreateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ServicesCreateFuture) Result(client ServicesClient) (sr ServiceResource, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesCreateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("servicefabric.ServicesCreateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if sr.Response.Response, err = future.GetResult(sender); err == nil && sr.Response.Response.StatusCode != http.StatusNoContent { + sr, err = client.CreateResponder(sr.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesCreateFuture", "Result", sr.Response.Response, "Failure responding to request") + } + } + return +} + +// ServicesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ServicesDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ServicesDeleteFuture) Result(client ServicesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("servicefabric.ServicesDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// ServicesUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ServicesUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ServicesUpdateFuture) Result(client ServicesClient) (sr ServiceResource, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("servicefabric.ServicesUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if sr.Response.Response, err = future.GetResult(sender); err == nil && sr.Response.Response.StatusCode != http.StatusNoContent { + sr, err = client.UpdateResponder(sr.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesUpdateFuture", "Result", sr.Response.Response, "Failure responding to request") + } + } + return +} + +// ServiceTypeDeltaHealthPolicy represents the delta health policy used to evaluate the health of services +// belonging to a service type when upgrading the cluster. +type ServiceTypeDeltaHealthPolicy struct { + // MaxPercentDeltaUnhealthyServices - The maximum allowed percentage of services health degradation allowed during cluster upgrades. + // The delta is measured between the state of the services at the beginning of upgrade and the state of the services at the time of the health evaluation. + // The check is performed after every upgrade domain upgrade completion to make sure the global state of the cluster is within tolerated limits. + MaxPercentDeltaUnhealthyServices *int32 `json:"maxPercentDeltaUnhealthyServices,omitempty"` +} + +// ServiceTypeHealthPolicy represents the health policy used to evaluate the health of services belonging +// to a service type. +type ServiceTypeHealthPolicy struct { + // MaxPercentUnhealthyServices - The maximum percentage of services allowed to be unhealthy before your application is considered in error. + MaxPercentUnhealthyServices *int32 `json:"maxPercentUnhealthyServices,omitempty"` +} + +// SettingsParameterDescription describes a parameter in fabric settings of the cluster. +type SettingsParameterDescription struct { + // Name - The parameter name of fabric setting. + Name *string `json:"name,omitempty"` + // Value - The parameter value of fabric setting. + Value *string `json:"value,omitempty"` +} + +// SettingsSectionDescription describes a section in the fabric settings of the cluster. +type SettingsSectionDescription struct { + // Name - The section name of the fabric settings. + Name *string `json:"name,omitempty"` + // Parameters - The collection of parameters in the section. + Parameters *[]SettingsParameterDescription `json:"parameters,omitempty"` +} + +// SingletonPartitionSchemeDescription describes the partition scheme of a singleton-partitioned, or +// non-partitioned service. +type SingletonPartitionSchemeDescription struct { + // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed', 'PartitionSchemeSingleton', 'PartitionSchemeUniformInt64Range' + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"partitionScheme,omitempty"` +} + +// MarshalJSON is the custom marshaler for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) MarshalJSON() ([]byte, error) { + spsd.PartitionScheme = PartitionSchemeSingleton + objectMap := make(map[string]interface{}) + if spsd.PartitionScheme != "" { + objectMap["partitionScheme"] = spsd.PartitionScheme + } + return json.Marshal(objectMap) +} + +// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) { + return nil, false +} + +// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) { + return &spsd, true +} + +// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) { + return nil, false +} + +// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) { + return nil, false +} + +// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) { + return &spsd, true +} + +// StatefulServiceProperties the properties of a stateful service resource. +type StatefulServiceProperties struct { + // HasPersistedState - A flag indicating whether this is a persistent service which stores states on the local disk. If it is then the value of this property is true, if not it is false. + HasPersistedState *bool `json:"hasPersistedState,omitempty"` + // TargetReplicaSetSize - The target replica set size as a number. + TargetReplicaSetSize *int32 `json:"targetReplicaSetSize,omitempty"` + // MinReplicaSetSize - The minimum replica set size as a number. + MinReplicaSetSize *int32 `json:"minReplicaSetSize,omitempty"` + // ReplicaRestartWaitDuration - The duration between when a replica goes down and when a new replica is created, represented in ISO 8601 format (hh:mm:ss.s). + ReplicaRestartWaitDuration *date.Time `json:"replicaRestartWaitDuration,omitempty"` + // QuorumLossWaitDuration - The maximum duration for which a partition is allowed to be in a state of quorum loss, represented in ISO 8601 format (hh:mm:ss.s). + QuorumLossWaitDuration *date.Time `json:"quorumLossWaitDuration,omitempty"` + // StandByReplicaKeepDuration - The definition on how long StandBy replicas should be maintained before being removed, represented in ISO 8601 format (hh:mm:ss.s). + StandByReplicaKeepDuration *date.Time `json:"standByReplicaKeepDuration,omitempty"` + // ProvisioningState - READ-ONLY; The current deployment or provisioning state, which only appears in the response + ProvisioningState *string `json:"provisioningState,omitempty"` + // ServiceTypeName - The name of the service type + ServiceTypeName *string `json:"serviceTypeName,omitempty"` + // PartitionDescription - Describes how the service is partitioned. + PartitionDescription BasicPartitionSchemeDescription `json:"partitionDescription,omitempty"` + // ServicePackageActivationMode - The activation Mode of the service package. Possible values include: 'SharedProcess', 'ExclusiveProcess' + ServicePackageActivationMode ArmServicePackageActivationMode `json:"servicePackageActivationMode,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindServiceResourceProperties', 'ServiceKindStateful1', 'ServiceKindStateless1' + ServiceKind ServiceKindBasicServiceResourceProperties `json:"serviceKind,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"placementConstraints,omitempty"` + // CorrelationScheme - A list that describes the correlation of the service with other services. + CorrelationScheme *[]ServiceCorrelationDescription `json:"correlationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"serviceLoadMetrics,omitempty"` + // ServicePlacementPolicies - A list that describes the correlation of the service with other services. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"servicePlacementPolicies,omitempty"` + // DefaultMoveCost - Specifies the move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"defaultMoveCost,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceProperties. +func (ssp StatefulServiceProperties) MarshalJSON() ([]byte, error) { + ssp.ServiceKind = ServiceKindStateful1 + objectMap := make(map[string]interface{}) + if ssp.HasPersistedState != nil { + objectMap["hasPersistedState"] = ssp.HasPersistedState + } + if ssp.TargetReplicaSetSize != nil { + objectMap["targetReplicaSetSize"] = ssp.TargetReplicaSetSize + } + if ssp.MinReplicaSetSize != nil { + objectMap["minReplicaSetSize"] = ssp.MinReplicaSetSize + } + if ssp.ReplicaRestartWaitDuration != nil { + objectMap["replicaRestartWaitDuration"] = ssp.ReplicaRestartWaitDuration + } + if ssp.QuorumLossWaitDuration != nil { + objectMap["quorumLossWaitDuration"] = ssp.QuorumLossWaitDuration + } + if ssp.StandByReplicaKeepDuration != nil { + objectMap["standByReplicaKeepDuration"] = ssp.StandByReplicaKeepDuration + } + if ssp.ServiceTypeName != nil { + objectMap["serviceTypeName"] = ssp.ServiceTypeName + } + objectMap["partitionDescription"] = ssp.PartitionDescription + if ssp.ServicePackageActivationMode != "" { + objectMap["servicePackageActivationMode"] = ssp.ServicePackageActivationMode + } + if ssp.ServiceKind != "" { + objectMap["serviceKind"] = ssp.ServiceKind + } + if ssp.PlacementConstraints != nil { + objectMap["placementConstraints"] = ssp.PlacementConstraints + } + if ssp.CorrelationScheme != nil { + objectMap["correlationScheme"] = ssp.CorrelationScheme + } + if ssp.ServiceLoadMetrics != nil { + objectMap["serviceLoadMetrics"] = ssp.ServiceLoadMetrics + } + if ssp.ServicePlacementPolicies != nil { + objectMap["servicePlacementPolicies"] = ssp.ServicePlacementPolicies + } + if ssp.DefaultMoveCost != "" { + objectMap["defaultMoveCost"] = ssp.DefaultMoveCost + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceProperties is the BasicServiceResourceProperties implementation for StatefulServiceProperties. +func (ssp StatefulServiceProperties) AsStatefulServiceProperties() (*StatefulServiceProperties, bool) { + return &ssp, true +} + +// AsStatelessServiceProperties is the BasicServiceResourceProperties implementation for StatefulServiceProperties. +func (ssp StatefulServiceProperties) AsStatelessServiceProperties() (*StatelessServiceProperties, bool) { + return nil, false +} + +// AsServiceResourceProperties is the BasicServiceResourceProperties implementation for StatefulServiceProperties. +func (ssp StatefulServiceProperties) AsServiceResourceProperties() (*ServiceResourceProperties, bool) { + return nil, false +} + +// AsBasicServiceResourceProperties is the BasicServiceResourceProperties implementation for StatefulServiceProperties. +func (ssp StatefulServiceProperties) AsBasicServiceResourceProperties() (BasicServiceResourceProperties, bool) { + return &ssp, true +} + +// UnmarshalJSON is the custom unmarshaler for StatefulServiceProperties struct. +func (ssp *StatefulServiceProperties) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "hasPersistedState": + if v != nil { + var hasPersistedState bool + err = json.Unmarshal(*v, &hasPersistedState) + if err != nil { + return err + } + ssp.HasPersistedState = &hasPersistedState + } + case "targetReplicaSetSize": + if v != nil { + var targetReplicaSetSize int32 + err = json.Unmarshal(*v, &targetReplicaSetSize) + if err != nil { + return err + } + ssp.TargetReplicaSetSize = &targetReplicaSetSize + } + case "minReplicaSetSize": + if v != nil { + var minReplicaSetSize int32 + err = json.Unmarshal(*v, &minReplicaSetSize) + if err != nil { + return err + } + ssp.MinReplicaSetSize = &minReplicaSetSize + } + case "replicaRestartWaitDuration": + if v != nil { + var replicaRestartWaitDuration date.Time + err = json.Unmarshal(*v, &replicaRestartWaitDuration) + if err != nil { + return err + } + ssp.ReplicaRestartWaitDuration = &replicaRestartWaitDuration + } + case "quorumLossWaitDuration": + if v != nil { + var quorumLossWaitDuration date.Time + err = json.Unmarshal(*v, &quorumLossWaitDuration) + if err != nil { + return err + } + ssp.QuorumLossWaitDuration = &quorumLossWaitDuration + } + case "standByReplicaKeepDuration": + if v != nil { + var standByReplicaKeepDuration date.Time + err = json.Unmarshal(*v, &standByReplicaKeepDuration) + if err != nil { + return err + } + ssp.StandByReplicaKeepDuration = &standByReplicaKeepDuration + } + case "provisioningState": + if v != nil { + var provisioningState string + err = json.Unmarshal(*v, &provisioningState) + if err != nil { + return err + } + ssp.ProvisioningState = &provisioningState + } + case "serviceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + ssp.ServiceTypeName = &serviceTypeName + } + case "partitionDescription": + if v != nil { + partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v) + if err != nil { + return err + } + ssp.PartitionDescription = partitionDescription + } + case "servicePackageActivationMode": + if v != nil { + var servicePackageActivationMode ArmServicePackageActivationMode + err = json.Unmarshal(*v, &servicePackageActivationMode) + if err != nil { + return err + } + ssp.ServicePackageActivationMode = servicePackageActivationMode + } + case "serviceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceResourceProperties + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + ssp.ServiceKind = serviceKind + } + case "placementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + ssp.PlacementConstraints = &placementConstraints + } + case "correlationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + ssp.CorrelationScheme = &correlationScheme + } + case "serviceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + ssp.ServiceLoadMetrics = &serviceLoadMetrics + } + case "servicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + ssp.ServicePlacementPolicies = &servicePlacementPolicies + } + case "defaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + ssp.DefaultMoveCost = defaultMoveCost + } + } + } + + return nil +} + +// StatefulServiceUpdateProperties the properties of a stateful service resource for patch operations. +type StatefulServiceUpdateProperties struct { + // TargetReplicaSetSize - The target replica set size as a number. + TargetReplicaSetSize *int32 `json:"targetReplicaSetSize,omitempty"` + // MinReplicaSetSize - The minimum replica set size as a number. + MinReplicaSetSize *int32 `json:"minReplicaSetSize,omitempty"` + // ReplicaRestartWaitDuration - The duration between when a replica goes down and when a new replica is created, represented in ISO 8601 format (hh:mm:ss.s). + ReplicaRestartWaitDuration *date.Time `json:"replicaRestartWaitDuration,omitempty"` + // QuorumLossWaitDuration - The maximum duration for which a partition is allowed to be in a state of quorum loss, represented in ISO 8601 format (hh:mm:ss.s). + QuorumLossWaitDuration *date.Time `json:"quorumLossWaitDuration,omitempty"` + // StandByReplicaKeepDuration - The definition on how long StandBy replicas should be maintained before being removed, represented in ISO 8601 format (hh:mm:ss.s). + StandByReplicaKeepDuration *date.Time `json:"standByReplicaKeepDuration,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceResourceUpdatePropertiesServiceKindServiceResourceUpdateProperties', 'ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateful', 'ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateless' + ServiceKind ServiceKindBasicServiceResourceUpdateProperties `json:"serviceKind,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"placementConstraints,omitempty"` + // CorrelationScheme - A list that describes the correlation of the service with other services. + CorrelationScheme *[]ServiceCorrelationDescription `json:"correlationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"serviceLoadMetrics,omitempty"` + // ServicePlacementPolicies - A list that describes the correlation of the service with other services. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"servicePlacementPolicies,omitempty"` + // DefaultMoveCost - Specifies the move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"defaultMoveCost,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceUpdateProperties. +func (ssup StatefulServiceUpdateProperties) MarshalJSON() ([]byte, error) { + ssup.ServiceKind = ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateful + objectMap := make(map[string]interface{}) + if ssup.TargetReplicaSetSize != nil { + objectMap["targetReplicaSetSize"] = ssup.TargetReplicaSetSize + } + if ssup.MinReplicaSetSize != nil { + objectMap["minReplicaSetSize"] = ssup.MinReplicaSetSize + } + if ssup.ReplicaRestartWaitDuration != nil { + objectMap["replicaRestartWaitDuration"] = ssup.ReplicaRestartWaitDuration + } + if ssup.QuorumLossWaitDuration != nil { + objectMap["quorumLossWaitDuration"] = ssup.QuorumLossWaitDuration + } + if ssup.StandByReplicaKeepDuration != nil { + objectMap["standByReplicaKeepDuration"] = ssup.StandByReplicaKeepDuration + } + if ssup.ServiceKind != "" { + objectMap["serviceKind"] = ssup.ServiceKind + } + if ssup.PlacementConstraints != nil { + objectMap["placementConstraints"] = ssup.PlacementConstraints + } + if ssup.CorrelationScheme != nil { + objectMap["correlationScheme"] = ssup.CorrelationScheme + } + if ssup.ServiceLoadMetrics != nil { + objectMap["serviceLoadMetrics"] = ssup.ServiceLoadMetrics + } + if ssup.ServicePlacementPolicies != nil { + objectMap["servicePlacementPolicies"] = ssup.ServicePlacementPolicies + } + if ssup.DefaultMoveCost != "" { + objectMap["defaultMoveCost"] = ssup.DefaultMoveCost + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceUpdateProperties is the BasicServiceResourceUpdateProperties implementation for StatefulServiceUpdateProperties. +func (ssup StatefulServiceUpdateProperties) AsStatefulServiceUpdateProperties() (*StatefulServiceUpdateProperties, bool) { + return &ssup, true +} + +// AsStatelessServiceUpdateProperties is the BasicServiceResourceUpdateProperties implementation for StatefulServiceUpdateProperties. +func (ssup StatefulServiceUpdateProperties) AsStatelessServiceUpdateProperties() (*StatelessServiceUpdateProperties, bool) { + return nil, false +} + +// AsServiceResourceUpdateProperties is the BasicServiceResourceUpdateProperties implementation for StatefulServiceUpdateProperties. +func (ssup StatefulServiceUpdateProperties) AsServiceResourceUpdateProperties() (*ServiceResourceUpdateProperties, bool) { + return nil, false +} + +// AsBasicServiceResourceUpdateProperties is the BasicServiceResourceUpdateProperties implementation for StatefulServiceUpdateProperties. +func (ssup StatefulServiceUpdateProperties) AsBasicServiceResourceUpdateProperties() (BasicServiceResourceUpdateProperties, bool) { + return &ssup, true +} + +// UnmarshalJSON is the custom unmarshaler for StatefulServiceUpdateProperties struct. +func (ssup *StatefulServiceUpdateProperties) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "targetReplicaSetSize": + if v != nil { + var targetReplicaSetSize int32 + err = json.Unmarshal(*v, &targetReplicaSetSize) + if err != nil { + return err + } + ssup.TargetReplicaSetSize = &targetReplicaSetSize + } + case "minReplicaSetSize": + if v != nil { + var minReplicaSetSize int32 + err = json.Unmarshal(*v, &minReplicaSetSize) + if err != nil { + return err + } + ssup.MinReplicaSetSize = &minReplicaSetSize + } + case "replicaRestartWaitDuration": + if v != nil { + var replicaRestartWaitDuration date.Time + err = json.Unmarshal(*v, &replicaRestartWaitDuration) + if err != nil { + return err + } + ssup.ReplicaRestartWaitDuration = &replicaRestartWaitDuration + } + case "quorumLossWaitDuration": + if v != nil { + var quorumLossWaitDuration date.Time + err = json.Unmarshal(*v, &quorumLossWaitDuration) + if err != nil { + return err + } + ssup.QuorumLossWaitDuration = &quorumLossWaitDuration + } + case "standByReplicaKeepDuration": + if v != nil { + var standByReplicaKeepDuration date.Time + err = json.Unmarshal(*v, &standByReplicaKeepDuration) + if err != nil { + return err + } + ssup.StandByReplicaKeepDuration = &standByReplicaKeepDuration + } + case "serviceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceResourceUpdateProperties + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + ssup.ServiceKind = serviceKind + } + case "placementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + ssup.PlacementConstraints = &placementConstraints + } + case "correlationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + ssup.CorrelationScheme = &correlationScheme + } + case "serviceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + ssup.ServiceLoadMetrics = &serviceLoadMetrics + } + case "servicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + ssup.ServicePlacementPolicies = &servicePlacementPolicies + } + case "defaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + ssup.DefaultMoveCost = defaultMoveCost + } + } + } + + return nil +} + +// StatelessServiceProperties the properties of a stateless service resource. +type StatelessServiceProperties struct { + // InstanceCount - The instance count. + InstanceCount *int32 `json:"instanceCount,omitempty"` + // ProvisioningState - READ-ONLY; The current deployment or provisioning state, which only appears in the response + ProvisioningState *string `json:"provisioningState,omitempty"` + // ServiceTypeName - The name of the service type + ServiceTypeName *string `json:"serviceTypeName,omitempty"` + // PartitionDescription - Describes how the service is partitioned. + PartitionDescription BasicPartitionSchemeDescription `json:"partitionDescription,omitempty"` + // ServicePackageActivationMode - The activation Mode of the service package. Possible values include: 'SharedProcess', 'ExclusiveProcess' + ServicePackageActivationMode ArmServicePackageActivationMode `json:"servicePackageActivationMode,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindServiceResourceProperties', 'ServiceKindStateful1', 'ServiceKindStateless1' + ServiceKind ServiceKindBasicServiceResourceProperties `json:"serviceKind,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"placementConstraints,omitempty"` + // CorrelationScheme - A list that describes the correlation of the service with other services. + CorrelationScheme *[]ServiceCorrelationDescription `json:"correlationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"serviceLoadMetrics,omitempty"` + // ServicePlacementPolicies - A list that describes the correlation of the service with other services. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"servicePlacementPolicies,omitempty"` + // DefaultMoveCost - Specifies the move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"defaultMoveCost,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceProperties. +func (ssp StatelessServiceProperties) MarshalJSON() ([]byte, error) { + ssp.ServiceKind = ServiceKindStateless1 + objectMap := make(map[string]interface{}) + if ssp.InstanceCount != nil { + objectMap["instanceCount"] = ssp.InstanceCount + } + if ssp.ServiceTypeName != nil { + objectMap["serviceTypeName"] = ssp.ServiceTypeName + } + objectMap["partitionDescription"] = ssp.PartitionDescription + if ssp.ServicePackageActivationMode != "" { + objectMap["servicePackageActivationMode"] = ssp.ServicePackageActivationMode + } + if ssp.ServiceKind != "" { + objectMap["serviceKind"] = ssp.ServiceKind + } + if ssp.PlacementConstraints != nil { + objectMap["placementConstraints"] = ssp.PlacementConstraints + } + if ssp.CorrelationScheme != nil { + objectMap["correlationScheme"] = ssp.CorrelationScheme + } + if ssp.ServiceLoadMetrics != nil { + objectMap["serviceLoadMetrics"] = ssp.ServiceLoadMetrics + } + if ssp.ServicePlacementPolicies != nil { + objectMap["servicePlacementPolicies"] = ssp.ServicePlacementPolicies + } + if ssp.DefaultMoveCost != "" { + objectMap["defaultMoveCost"] = ssp.DefaultMoveCost + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceProperties is the BasicServiceResourceProperties implementation for StatelessServiceProperties. +func (ssp StatelessServiceProperties) AsStatefulServiceProperties() (*StatefulServiceProperties, bool) { + return nil, false +} + +// AsStatelessServiceProperties is the BasicServiceResourceProperties implementation for StatelessServiceProperties. +func (ssp StatelessServiceProperties) AsStatelessServiceProperties() (*StatelessServiceProperties, bool) { + return &ssp, true +} + +// AsServiceResourceProperties is the BasicServiceResourceProperties implementation for StatelessServiceProperties. +func (ssp StatelessServiceProperties) AsServiceResourceProperties() (*ServiceResourceProperties, bool) { + return nil, false +} + +// AsBasicServiceResourceProperties is the BasicServiceResourceProperties implementation for StatelessServiceProperties. +func (ssp StatelessServiceProperties) AsBasicServiceResourceProperties() (BasicServiceResourceProperties, bool) { + return &ssp, true +} + +// UnmarshalJSON is the custom unmarshaler for StatelessServiceProperties struct. +func (ssp *StatelessServiceProperties) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "instanceCount": + if v != nil { + var instanceCount int32 + err = json.Unmarshal(*v, &instanceCount) + if err != nil { + return err + } + ssp.InstanceCount = &instanceCount + } + case "provisioningState": + if v != nil { + var provisioningState string + err = json.Unmarshal(*v, &provisioningState) + if err != nil { + return err + } + ssp.ProvisioningState = &provisioningState + } + case "serviceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + ssp.ServiceTypeName = &serviceTypeName + } + case "partitionDescription": + if v != nil { + partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v) + if err != nil { + return err + } + ssp.PartitionDescription = partitionDescription + } + case "servicePackageActivationMode": + if v != nil { + var servicePackageActivationMode ArmServicePackageActivationMode + err = json.Unmarshal(*v, &servicePackageActivationMode) + if err != nil { + return err + } + ssp.ServicePackageActivationMode = servicePackageActivationMode + } + case "serviceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceResourceProperties + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + ssp.ServiceKind = serviceKind + } + case "placementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + ssp.PlacementConstraints = &placementConstraints + } + case "correlationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + ssp.CorrelationScheme = &correlationScheme + } + case "serviceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + ssp.ServiceLoadMetrics = &serviceLoadMetrics + } + case "servicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + ssp.ServicePlacementPolicies = &servicePlacementPolicies + } + case "defaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + ssp.DefaultMoveCost = defaultMoveCost + } + } + } + + return nil +} + +// StatelessServiceUpdateProperties the properties of a stateless service resource for patch operations. +type StatelessServiceUpdateProperties struct { + // InstanceCount - The instance count. + InstanceCount *int32 `json:"instanceCount,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceResourceUpdatePropertiesServiceKindServiceResourceUpdateProperties', 'ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateful', 'ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateless' + ServiceKind ServiceKindBasicServiceResourceUpdateProperties `json:"serviceKind,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"placementConstraints,omitempty"` + // CorrelationScheme - A list that describes the correlation of the service with other services. + CorrelationScheme *[]ServiceCorrelationDescription `json:"correlationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"serviceLoadMetrics,omitempty"` + // ServicePlacementPolicies - A list that describes the correlation of the service with other services. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"servicePlacementPolicies,omitempty"` + // DefaultMoveCost - Specifies the move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"defaultMoveCost,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceUpdateProperties. +func (ssup StatelessServiceUpdateProperties) MarshalJSON() ([]byte, error) { + ssup.ServiceKind = ServiceKindBasicServiceResourceUpdatePropertiesServiceKindStateless + objectMap := make(map[string]interface{}) + if ssup.InstanceCount != nil { + objectMap["instanceCount"] = ssup.InstanceCount + } + if ssup.ServiceKind != "" { + objectMap["serviceKind"] = ssup.ServiceKind + } + if ssup.PlacementConstraints != nil { + objectMap["placementConstraints"] = ssup.PlacementConstraints + } + if ssup.CorrelationScheme != nil { + objectMap["correlationScheme"] = ssup.CorrelationScheme + } + if ssup.ServiceLoadMetrics != nil { + objectMap["serviceLoadMetrics"] = ssup.ServiceLoadMetrics + } + if ssup.ServicePlacementPolicies != nil { + objectMap["servicePlacementPolicies"] = ssup.ServicePlacementPolicies + } + if ssup.DefaultMoveCost != "" { + objectMap["defaultMoveCost"] = ssup.DefaultMoveCost + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceUpdateProperties is the BasicServiceResourceUpdateProperties implementation for StatelessServiceUpdateProperties. +func (ssup StatelessServiceUpdateProperties) AsStatefulServiceUpdateProperties() (*StatefulServiceUpdateProperties, bool) { + return nil, false +} + +// AsStatelessServiceUpdateProperties is the BasicServiceResourceUpdateProperties implementation for StatelessServiceUpdateProperties. +func (ssup StatelessServiceUpdateProperties) AsStatelessServiceUpdateProperties() (*StatelessServiceUpdateProperties, bool) { + return &ssup, true +} + +// AsServiceResourceUpdateProperties is the BasicServiceResourceUpdateProperties implementation for StatelessServiceUpdateProperties. +func (ssup StatelessServiceUpdateProperties) AsServiceResourceUpdateProperties() (*ServiceResourceUpdateProperties, bool) { + return nil, false +} + +// AsBasicServiceResourceUpdateProperties is the BasicServiceResourceUpdateProperties implementation for StatelessServiceUpdateProperties. +func (ssup StatelessServiceUpdateProperties) AsBasicServiceResourceUpdateProperties() (BasicServiceResourceUpdateProperties, bool) { + return &ssup, true +} + +// UnmarshalJSON is the custom unmarshaler for StatelessServiceUpdateProperties struct. +func (ssup *StatelessServiceUpdateProperties) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "instanceCount": + if v != nil { + var instanceCount int32 + err = json.Unmarshal(*v, &instanceCount) + if err != nil { + return err + } + ssup.InstanceCount = &instanceCount + } + case "serviceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceResourceUpdateProperties + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + ssup.ServiceKind = serviceKind + } + case "placementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + ssup.PlacementConstraints = &placementConstraints + } + case "correlationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + ssup.CorrelationScheme = &correlationScheme + } + case "serviceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + ssup.ServiceLoadMetrics = &serviceLoadMetrics + } + case "servicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + ssup.ServicePlacementPolicies = &servicePlacementPolicies + } + case "defaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + ssup.DefaultMoveCost = defaultMoveCost + } + } + } + + return nil +} + +// UniformInt64RangePartitionSchemeDescription describes a partitioning scheme where an integer range is +// allocated evenly across a number of partitions. +type UniformInt64RangePartitionSchemeDescription struct { + // Count - The number of partitions. + Count *int32 `json:"Count,omitempty"` + // LowKey - String indicating the lower bound of the partition key range that + // should be split between the partition ‘Count’ + LowKey *string `json:"LowKey,omitempty"` + // HighKey - String indicating the upper bound of the partition key range that + // should be split between the partition ‘Count’ + HighKey *string `json:"HighKey,omitempty"` + // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed', 'PartitionSchemeSingleton', 'PartitionSchemeUniformInt64Range' + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"partitionScheme,omitempty"` +} + +// MarshalJSON is the custom marshaler for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) MarshalJSON() ([]byte, error) { + ui6rpsd.PartitionScheme = PartitionSchemeUniformInt64Range + objectMap := make(map[string]interface{}) + if ui6rpsd.Count != nil { + objectMap["Count"] = ui6rpsd.Count + } + if ui6rpsd.LowKey != nil { + objectMap["LowKey"] = ui6rpsd.LowKey + } + if ui6rpsd.HighKey != nil { + objectMap["HighKey"] = ui6rpsd.HighKey + } + if ui6rpsd.PartitionScheme != "" { + objectMap["partitionScheme"] = ui6rpsd.PartitionScheme + } + return json.Marshal(objectMap) +} + +// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) { + return nil, false +} + +// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) { + return nil, false +} + +// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) { + return &ui6rpsd, true +} + +// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) { + return nil, false +} + +// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) { + return &ui6rpsd, true +} diff --git a/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/operations.go b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/operations.go new file mode 100644 index 000000000000..212b6ff8ee34 --- /dev/null +++ b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/operations.go @@ -0,0 +1,147 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// OperationsClient is the service Fabric Management Client +type OperationsClient struct { + BaseClient +} + +// NewOperationsClient creates an instance of the OperationsClient client. +func NewOperationsClient(subscriptionID string) OperationsClient { + return NewOperationsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewOperationsClientWithBaseURI creates an instance of the OperationsClient client. +func NewOperationsClientWithBaseURI(baseURI string, subscriptionID string) OperationsClient { + return OperationsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// List get the list of available Service Fabric resource provider API operations. +func (client OperationsClient) List(ctx context.Context) (result OperationListResultPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsClient.List") + defer func() { + sc := -1 + if result.olr.Response.Response != nil { + sc = result.olr.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.OperationsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.olr.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.OperationsClient", "List", resp, "Failure sending request") + return + } + + result.olr, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.OperationsClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client OperationsClient) ListPreparer(ctx context.Context) (*http.Request, error) { + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/providers/Microsoft.ServiceFabric/operations"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client OperationsClient) ListSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client OperationsClient) ListResponder(resp *http.Response) (result OperationListResult, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client OperationsClient) listNextResults(ctx context.Context, lastResults OperationListResult) (result OperationListResult, err error) { + req, err := lastResults.operationListResultPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "servicefabric.OperationsClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "servicefabric.OperationsClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.OperationsClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client OperationsClient) ListComplete(ctx context.Context) (result OperationListResultIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx) + return +} diff --git a/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/servicefabricapi/interfaces.go b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/servicefabricapi/interfaces.go new file mode 100644 index 000000000000..623e813daddf --- /dev/null +++ b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/servicefabricapi/interfaces.go @@ -0,0 +1,95 @@ +package servicefabricapi + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/azure-sdk-for-go/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric" + "github.com/Azure/go-autorest/autorest" +) + +// ClustersClientAPI contains the set of methods on the ClustersClient type. +type ClustersClientAPI interface { + Create(ctx context.Context, resourceGroupName string, clusterName string, parameters servicefabric.Cluster) (result servicefabric.ClustersCreateFuture, err error) + Delete(ctx context.Context, resourceGroupName string, clusterName string) (result autorest.Response, err error) + Get(ctx context.Context, resourceGroupName string, clusterName string) (result servicefabric.Cluster, err error) + List(ctx context.Context) (result servicefabric.ClusterListResult, err error) + ListByResourceGroup(ctx context.Context, resourceGroupName string) (result servicefabric.ClusterListResult, err error) + Update(ctx context.Context, resourceGroupName string, clusterName string, parameters servicefabric.ClusterUpdateParameters) (result servicefabric.ClustersUpdateFuture, err error) +} + +var _ ClustersClientAPI = (*servicefabric.ClustersClient)(nil) + +// ClusterVersionsClientAPI contains the set of methods on the ClusterVersionsClient type. +type ClusterVersionsClientAPI interface { + Get(ctx context.Context, location string, clusterVersion string) (result servicefabric.ClusterCodeVersionsListResult, err error) + GetByEnvironment(ctx context.Context, location string, environment string, clusterVersion string) (result servicefabric.ClusterCodeVersionsListResult, err error) + List(ctx context.Context, location string) (result servicefabric.ClusterCodeVersionsListResult, err error) + ListByEnvironment(ctx context.Context, location string, environment string) (result servicefabric.ClusterCodeVersionsListResult, err error) +} + +var _ ClusterVersionsClientAPI = (*servicefabric.ClusterVersionsClient)(nil) + +// OperationsClientAPI contains the set of methods on the OperationsClient type. +type OperationsClientAPI interface { + List(ctx context.Context) (result servicefabric.OperationListResultPage, err error) +} + +var _ OperationsClientAPI = (*servicefabric.OperationsClient)(nil) + +// ApplicationTypesClientAPI contains the set of methods on the ApplicationTypesClient type. +type ApplicationTypesClientAPI interface { + Create(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, parameters servicefabric.ApplicationTypeResource) (result servicefabric.ApplicationTypeResource, err error) + Delete(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string) (result servicefabric.ApplicationTypesDeleteFuture, err error) + Get(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string) (result servicefabric.ApplicationTypeResource, err error) + List(ctx context.Context, resourceGroupName string, clusterName string) (result servicefabric.ApplicationTypeResourceList, err error) +} + +var _ ApplicationTypesClientAPI = (*servicefabric.ApplicationTypesClient)(nil) + +// ApplicationTypeVersionsClientAPI contains the set of methods on the ApplicationTypeVersionsClient type. +type ApplicationTypeVersionsClientAPI interface { + Create(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string, parameters servicefabric.ApplicationTypeVersionResource) (result servicefabric.ApplicationTypeVersionsCreateFuture, err error) + Delete(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string) (result servicefabric.ApplicationTypeVersionsDeleteFuture, err error) + Get(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string) (result servicefabric.ApplicationTypeVersionResource, err error) + List(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string) (result servicefabric.ApplicationTypeVersionResourceList, err error) +} + +var _ ApplicationTypeVersionsClientAPI = (*servicefabric.ApplicationTypeVersionsClient)(nil) + +// ApplicationsClientAPI contains the set of methods on the ApplicationsClient type. +type ApplicationsClientAPI interface { + Create(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, parameters servicefabric.ApplicationResource) (result servicefabric.ApplicationsCreateFuture, err error) + Delete(ctx context.Context, resourceGroupName string, clusterName string, applicationName string) (result servicefabric.ApplicationsDeleteFuture, err error) + Get(ctx context.Context, resourceGroupName string, clusterName string, applicationName string) (result servicefabric.ApplicationResource, err error) + List(ctx context.Context, resourceGroupName string, clusterName string) (result servicefabric.ApplicationResourceList, err error) + Update(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, parameters servicefabric.ApplicationResourceUpdate) (result servicefabric.ApplicationsUpdateFuture, err error) +} + +var _ ApplicationsClientAPI = (*servicefabric.ApplicationsClient)(nil) + +// ServicesClientAPI contains the set of methods on the ServicesClient type. +type ServicesClientAPI interface { + Create(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string, parameters servicefabric.ServiceResource) (result servicefabric.ServicesCreateFuture, err error) + Delete(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string) (result servicefabric.ServicesDeleteFuture, err error) + Get(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string) (result servicefabric.ServiceResource, err error) + List(ctx context.Context, resourceGroupName string, clusterName string, applicationName string) (result servicefabric.ServiceResourceList, err error) + Update(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string, parameters servicefabric.ServiceResourceUpdate) (result servicefabric.ServicesUpdateFuture, err error) +} + +var _ ServicesClientAPI = (*servicefabric.ServicesClient)(nil) diff --git a/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/services.go b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/services.go new file mode 100644 index 000000000000..7295ca94514c --- /dev/null +++ b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/services.go @@ -0,0 +1,451 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// ServicesClient is the service Fabric Management Client +type ServicesClient struct { + BaseClient +} + +// NewServicesClient creates an instance of the ServicesClient client. +func NewServicesClient(subscriptionID string) ServicesClient { + return NewServicesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewServicesClientWithBaseURI creates an instance of the ServicesClient client. +func NewServicesClientWithBaseURI(baseURI string, subscriptionID string) ServicesClient { + return ServicesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Create create or update a Service Fabric service resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationName - the name of the application resource. +// serviceName - the name of the service resource in the format of {applicationName}~{serviceName}. +// parameters - the service resource. +func (client ServicesClient) Create(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string, parameters ServiceResource) (result ServicesCreateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServicesClient.Create") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CreatePreparer(ctx, resourceGroupName, clusterName, applicationName, serviceName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "Create", nil, "Failure preparing request") + return + } + + result, err = client.CreateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "Create", result.Response(), "Failure sending request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client ServicesClient) CreatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string, parameters ServiceResource) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationName": autorest.Encode("path", applicationName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serviceName": autorest.Encode("path", serviceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}/services/{serviceName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client ServicesClient) CreateSender(req *http.Request) (future ServicesCreateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client ServicesClient) CreateResponder(resp *http.Response) (result ServiceResource, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete delete a Service Fabric service resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationName - the name of the application resource. +// serviceName - the name of the service resource in the format of {applicationName}~{serviceName}. +func (client ServicesClient) Delete(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string) (result ServicesDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServicesClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, resourceGroupName, clusterName, applicationName, serviceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client ServicesClient) DeletePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationName": autorest.Encode("path", applicationName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serviceName": autorest.Encode("path", serviceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}/services/{serviceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client ServicesClient) DeleteSender(req *http.Request) (future ServicesDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client ServicesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get a Service Fabric service resource created or in the process of being created in the Service Fabric +// application resource. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationName - the name of the application resource. +// serviceName - the name of the service resource in the format of {applicationName}~{serviceName}. +func (client ServicesClient) Get(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string) (result ServiceResource, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServicesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, resourceGroupName, clusterName, applicationName, serviceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client ServicesClient) GetPreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationName": autorest.Encode("path", applicationName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serviceName": autorest.Encode("path", serviceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}/services/{serviceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client ServicesClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client ServicesClient) GetResponder(resp *http.Response) (result ServiceResource, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets all service resources created or in the process of being created in the Service Fabric application +// resource. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationName - the name of the application resource. +func (client ServicesClient) List(ctx context.Context, resourceGroupName string, clusterName string, applicationName string) (result ServiceResourceList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServicesClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx, resourceGroupName, clusterName, applicationName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client ServicesClient) ListPreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationName": autorest.Encode("path", applicationName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}/services", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client ServicesClient) ListSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ServicesClient) ListResponder(resp *http.Response) (result ServiceResourceList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Update update a Service Fabric service resource with the specified name. +// Parameters: +// resourceGroupName - the name of the resource group. +// clusterName - the name of the cluster resource. +// applicationName - the name of the application resource. +// serviceName - the name of the service resource in the format of {applicationName}~{serviceName}. +// parameters - the service resource for patch operations. +func (client ServicesClient) Update(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string, parameters ServiceResourceUpdate) (result ServicesUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ServicesClient.Update") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, resourceGroupName, clusterName, applicationName, serviceName, parameters) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "Update", nil, "Failure preparing request") + return + } + + result, err = client.UpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "Update", result.Response(), "Failure sending request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client ServicesClient) UpdatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string, parameters ServiceResourceUpdate) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationName": autorest.Encode("path", applicationName), + "clusterName": autorest.Encode("path", clusterName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "serviceName": autorest.Encode("path", serviceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/clusters/{clusterName}/applications/{applicationName}/services/{serviceName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client ServicesClient) UpdateSender(req *http.Request) (future ServicesUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client ServicesClient) UpdateResponder(resp *http.Response) (result ServiceResource, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/version.go b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/version.go new file mode 100644 index 000000000000..74a7ddcbd499 --- /dev/null +++ b/services/preview/servicefabric/mgmt/2019-03-01-preview/servicefabric/version.go @@ -0,0 +1,30 @@ +package servicefabric + +import "github.com/Azure/azure-sdk-for-go/version" + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +// UserAgent returns the UserAgent string to use when sending http.Requests. +func UserAgent() string { + return "Azure-SDK-For-Go/" + version.Number + " servicefabric/2019-03-01-preview" +} + +// Version returns the semantic version (see http://semver.org) of the client. +func Version() string { + return version.Number +} diff --git a/services/servicefabric/mgmt/2019-03-01/servicefabric/applications.go b/services/servicefabric/mgmt/2019-03-01/servicefabric/applications.go index 09430d97a34e..069a1a741ce3 100644 --- a/services/servicefabric/mgmt/2019-03-01/servicefabric/applications.go +++ b/services/servicefabric/mgmt/2019-03-01/servicefabric/applications.go @@ -40,15 +40,15 @@ func NewApplicationsClientWithBaseURI(baseURI string, subscriptionID string) App return ApplicationsClient{NewWithBaseURI(baseURI, subscriptionID)} } -// Create create or update a Service Fabric application resource with the specified name. +// CreateOrUpdate create or update a Service Fabric application resource with the specified name. // Parameters: // resourceGroupName - the name of the resource group. // clusterName - the name of the cluster resource. // applicationName - the name of the application resource. // parameters - the application resource. -func (client ApplicationsClient) Create(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, parameters ApplicationResource) (result ApplicationsCreateFuture, err error) { +func (client ApplicationsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, parameters ApplicationResource) (result ApplicationsCreateOrUpdateFuture, err error) { if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationsClient.Create") + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationsClient.CreateOrUpdate") defer func() { sc := -1 if result.Response() != nil { @@ -57,23 +57,23 @@ func (client ApplicationsClient) Create(ctx context.Context, resourceGroupName s tracing.EndSpan(ctx, sc, err) }() } - req, err := client.CreatePreparer(ctx, resourceGroupName, clusterName, applicationName, parameters) + req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, clusterName, applicationName, parameters) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "Create", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "CreateOrUpdate", nil, "Failure preparing request") return } - result, err = client.CreateSender(req) + result, err = client.CreateOrUpdateSender(req) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "Create", result.Response(), "Failure sending request") + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsClient", "CreateOrUpdate", result.Response(), "Failure sending request") return } return } -// CreatePreparer prepares the Create request. -func (client ApplicationsClient) CreatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, parameters ApplicationResource) (*http.Request, error) { +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client ApplicationsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, parameters ApplicationResource) (*http.Request, error) { pathParameters := map[string]interface{}{ "applicationName": autorest.Encode("path", applicationName), "clusterName": autorest.Encode("path", clusterName), @@ -81,7 +81,7 @@ func (client ApplicationsClient) CreatePreparer(ctx context.Context, resourceGro "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -96,12 +96,12 @@ func (client ApplicationsClient) CreatePreparer(ctx context.Context, resourceGro return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// CreateSender sends the Create request. The method will close the +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the // http.Response Body if it receives an error. -func (client ApplicationsClient) CreateSender(req *http.Request) (future ApplicationsCreateFuture, err error) { +func (client ApplicationsClient) CreateOrUpdateSender(req *http.Request) (future ApplicationsCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) var resp *http.Response - resp, err = autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + resp, err = autorest.SendWithSender(client, req, sd...) if err != nil { return } @@ -109,9 +109,9 @@ func (client ApplicationsClient) CreateSender(req *http.Request) (future Applica return } -// CreateResponder handles the response to the Create request. The method always +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always // closes the http.Response Body. -func (client ApplicationsClient) CreateResponder(resp *http.Response) (result ApplicationResource, err error) { +func (client ApplicationsClient) CreateOrUpdateResponder(resp *http.Response) (result ApplicationResource, err error) { err = autorest.Respond( resp, client.ByInspecting(), @@ -162,7 +162,7 @@ func (client ApplicationsClient) DeletePreparer(ctx context.Context, resourceGro "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -178,9 +178,9 @@ func (client ApplicationsClient) DeletePreparer(ctx context.Context, resourceGro // DeleteSender sends the Delete request. The method will close the // http.Response Body if it receives an error. func (client ApplicationsClient) DeleteSender(req *http.Request) (future ApplicationsDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) var resp *http.Response - resp, err = autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + resp, err = autorest.SendWithSender(client, req, sd...) if err != nil { return } @@ -247,7 +247,7 @@ func (client ApplicationsClient) GetPreparer(ctx context.Context, resourceGroupN "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -263,8 +263,8 @@ func (client ApplicationsClient) GetPreparer(ctx context.Context, resourceGroupN // GetSender sends the Get request. The method will close the // http.Response Body if it receives an error. func (client ApplicationsClient) GetSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // GetResponder handles the response to the Get request. The method always @@ -325,7 +325,7 @@ func (client ApplicationsClient) ListPreparer(ctx context.Context, resourceGroup "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -341,8 +341,8 @@ func (client ApplicationsClient) ListPreparer(ctx context.Context, resourceGroup // ListSender sends the List request. The method will close the // http.Response Body if it receives an error. func (client ApplicationsClient) ListSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // ListResponder handles the response to the List request. The method always @@ -399,7 +399,7 @@ func (client ApplicationsClient) UpdatePreparer(ctx context.Context, resourceGro "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -417,9 +417,9 @@ func (client ApplicationsClient) UpdatePreparer(ctx context.Context, resourceGro // UpdateSender sends the Update request. The method will close the // http.Response Body if it receives an error. func (client ApplicationsClient) UpdateSender(req *http.Request) (future ApplicationsUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) var resp *http.Response - resp, err = autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + resp, err = autorest.SendWithSender(client, req, sd...) if err != nil { return } @@ -429,7 +429,7 @@ func (client ApplicationsClient) UpdateSender(req *http.Request) (future Applica // UpdateResponder handles the response to the Update request. The method always // closes the http.Response Body. -func (client ApplicationsClient) UpdateResponder(resp *http.Response) (result ApplicationResourceUpdate, err error) { +func (client ApplicationsClient) UpdateResponder(resp *http.Response) (result ApplicationResource, err error) { err = autorest.Respond( resp, client.ByInspecting(), diff --git a/services/servicefabric/mgmt/2019-03-01/servicefabric/applicationtypes.go b/services/servicefabric/mgmt/2019-03-01/servicefabric/applicationtypes.go index 34ff06ec7b35..ab95ffc76e99 100644 --- a/services/servicefabric/mgmt/2019-03-01/servicefabric/applicationtypes.go +++ b/services/servicefabric/mgmt/2019-03-01/servicefabric/applicationtypes.go @@ -40,15 +40,15 @@ func NewApplicationTypesClientWithBaseURI(baseURI string, subscriptionID string) return ApplicationTypesClient{NewWithBaseURI(baseURI, subscriptionID)} } -// Create create or update a Service Fabric application type name resource with the specified name. +// CreateOrUpdate create or update a Service Fabric application type name resource with the specified name. // Parameters: // resourceGroupName - the name of the resource group. // clusterName - the name of the cluster resource. // applicationTypeName - the name of the application type name resource. // parameters - the application type name resource. -func (client ApplicationTypesClient) Create(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, parameters ApplicationTypeResource) (result ApplicationTypeResource, err error) { +func (client ApplicationTypesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, parameters ApplicationTypeResource) (result ApplicationTypeResource, err error) { if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationTypesClient.Create") + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationTypesClient.CreateOrUpdate") defer func() { sc := -1 if result.Response.Response != nil { @@ -57,29 +57,29 @@ func (client ApplicationTypesClient) Create(ctx context.Context, resourceGroupNa tracing.EndSpan(ctx, sc, err) }() } - req, err := client.CreatePreparer(ctx, resourceGroupName, clusterName, applicationTypeName, parameters) + req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, clusterName, applicationTypeName, parameters) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "Create", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "CreateOrUpdate", nil, "Failure preparing request") return } - resp, err := client.CreateSender(req) + resp, err := client.CreateOrUpdateSender(req) if err != nil { result.Response = autorest.Response{Response: resp} - err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "Create", resp, "Failure sending request") + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "CreateOrUpdate", resp, "Failure sending request") return } - result, err = client.CreateResponder(resp) + result, err = client.CreateOrUpdateResponder(resp) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "Create", resp, "Failure responding to request") + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypesClient", "CreateOrUpdate", resp, "Failure responding to request") } return } -// CreatePreparer prepares the Create request. -func (client ApplicationTypesClient) CreatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, parameters ApplicationTypeResource) (*http.Request, error) { +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client ApplicationTypesClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, parameters ApplicationTypeResource) (*http.Request, error) { pathParameters := map[string]interface{}{ "applicationTypeName": autorest.Encode("path", applicationTypeName), "clusterName": autorest.Encode("path", clusterName), @@ -87,7 +87,7 @@ func (client ApplicationTypesClient) CreatePreparer(ctx context.Context, resourc "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -102,16 +102,16 @@ func (client ApplicationTypesClient) CreatePreparer(ctx context.Context, resourc return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// CreateSender sends the Create request. The method will close the +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the // http.Response Body if it receives an error. -func (client ApplicationTypesClient) CreateSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) +func (client ApplicationTypesClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } -// CreateResponder handles the response to the Create request. The method always +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always // closes the http.Response Body. -func (client ApplicationTypesClient) CreateResponder(resp *http.Response) (result ApplicationTypeResource, err error) { +func (client ApplicationTypesClient) CreateOrUpdateResponder(resp *http.Response) (result ApplicationTypeResource, err error) { err = autorest.Respond( resp, client.ByInspecting(), @@ -162,7 +162,7 @@ func (client ApplicationTypesClient) DeletePreparer(ctx context.Context, resourc "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -178,9 +178,9 @@ func (client ApplicationTypesClient) DeletePreparer(ctx context.Context, resourc // DeleteSender sends the Delete request. The method will close the // http.Response Body if it receives an error. func (client ApplicationTypesClient) DeleteSender(req *http.Request) (future ApplicationTypesDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) var resp *http.Response - resp, err = autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + resp, err = autorest.SendWithSender(client, req, sd...) if err != nil { return } @@ -247,7 +247,7 @@ func (client ApplicationTypesClient) GetPreparer(ctx context.Context, resourceGr "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -263,8 +263,8 @@ func (client ApplicationTypesClient) GetPreparer(ctx context.Context, resourceGr // GetSender sends the Get request. The method will close the // http.Response Body if it receives an error. func (client ApplicationTypesClient) GetSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // GetResponder handles the response to the Get request. The method always @@ -325,7 +325,7 @@ func (client ApplicationTypesClient) ListPreparer(ctx context.Context, resourceG "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -341,8 +341,8 @@ func (client ApplicationTypesClient) ListPreparer(ctx context.Context, resourceG // ListSender sends the List request. The method will close the // http.Response Body if it receives an error. func (client ApplicationTypesClient) ListSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // ListResponder handles the response to the List request. The method always diff --git a/services/servicefabric/mgmt/2019-03-01/servicefabric/applicationtypeversions.go b/services/servicefabric/mgmt/2019-03-01/servicefabric/applicationtypeversions.go index cbb637dcf33e..5764aa455349 100644 --- a/services/servicefabric/mgmt/2019-03-01/servicefabric/applicationtypeversions.go +++ b/services/servicefabric/mgmt/2019-03-01/servicefabric/applicationtypeversions.go @@ -41,16 +41,16 @@ func NewApplicationTypeVersionsClientWithBaseURI(baseURI string, subscriptionID return ApplicationTypeVersionsClient{NewWithBaseURI(baseURI, subscriptionID)} } -// Create create or update a Service Fabric application type version resource with the specified name. +// CreateOrUpdate create or update a Service Fabric application type version resource with the specified name. // Parameters: // resourceGroupName - the name of the resource group. // clusterName - the name of the cluster resource. // applicationTypeName - the name of the application type name resource. // version - the application type version. // parameters - the application type version resource. -func (client ApplicationTypeVersionsClient) Create(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string, parameters ApplicationTypeVersionResource) (result ApplicationTypeVersionsCreateFuture, err error) { +func (client ApplicationTypeVersionsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string, parameters ApplicationTypeVersionResource) (result ApplicationTypeVersionsCreateOrUpdateFuture, err error) { if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationTypeVersionsClient.Create") + ctx = tracing.StartSpan(ctx, fqdn+"/ApplicationTypeVersionsClient.CreateOrUpdate") defer func() { sc := -1 if result.Response() != nil { @@ -63,26 +63,26 @@ func (client ApplicationTypeVersionsClient) Create(ctx context.Context, resource {TargetValue: parameters, Constraints: []validation.Constraint{{Target: "parameters.ApplicationTypeVersionResourceProperties", Name: validation.Null, Rule: false, Chain: []validation.Constraint{{Target: "parameters.ApplicationTypeVersionResourceProperties.AppPackageURL", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { - return result, validation.NewError("servicefabric.ApplicationTypeVersionsClient", "Create", err.Error()) + return result, validation.NewError("servicefabric.ApplicationTypeVersionsClient", "CreateOrUpdate", err.Error()) } - req, err := client.CreatePreparer(ctx, resourceGroupName, clusterName, applicationTypeName, version, parameters) + req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, clusterName, applicationTypeName, version, parameters) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "Create", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "CreateOrUpdate", nil, "Failure preparing request") return } - result, err = client.CreateSender(req) + result, err = client.CreateOrUpdateSender(req) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "Create", result.Response(), "Failure sending request") + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsClient", "CreateOrUpdate", result.Response(), "Failure sending request") return } return } -// CreatePreparer prepares the Create request. -func (client ApplicationTypeVersionsClient) CreatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string, parameters ApplicationTypeVersionResource) (*http.Request, error) { +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client ApplicationTypeVersionsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string, parameters ApplicationTypeVersionResource) (*http.Request, error) { pathParameters := map[string]interface{}{ "applicationTypeName": autorest.Encode("path", applicationTypeName), "clusterName": autorest.Encode("path", clusterName), @@ -91,7 +91,7 @@ func (client ApplicationTypeVersionsClient) CreatePreparer(ctx context.Context, "version": autorest.Encode("path", version), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -106,12 +106,12 @@ func (client ApplicationTypeVersionsClient) CreatePreparer(ctx context.Context, return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// CreateSender sends the Create request. The method will close the +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the // http.Response Body if it receives an error. -func (client ApplicationTypeVersionsClient) CreateSender(req *http.Request) (future ApplicationTypeVersionsCreateFuture, err error) { +func (client ApplicationTypeVersionsClient) CreateOrUpdateSender(req *http.Request) (future ApplicationTypeVersionsCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) var resp *http.Response - resp, err = autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + resp, err = autorest.SendWithSender(client, req, sd...) if err != nil { return } @@ -119,9 +119,9 @@ func (client ApplicationTypeVersionsClient) CreateSender(req *http.Request) (fut return } -// CreateResponder handles the response to the Create request. The method always +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always // closes the http.Response Body. -func (client ApplicationTypeVersionsClient) CreateResponder(resp *http.Response) (result ApplicationTypeVersionResource, err error) { +func (client ApplicationTypeVersionsClient) CreateOrUpdateResponder(resp *http.Response) (result ApplicationTypeVersionResource, err error) { err = autorest.Respond( resp, client.ByInspecting(), @@ -174,7 +174,7 @@ func (client ApplicationTypeVersionsClient) DeletePreparer(ctx context.Context, "version": autorest.Encode("path", version), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -190,9 +190,9 @@ func (client ApplicationTypeVersionsClient) DeletePreparer(ctx context.Context, // DeleteSender sends the Delete request. The method will close the // http.Response Body if it receives an error. func (client ApplicationTypeVersionsClient) DeleteSender(req *http.Request) (future ApplicationTypeVersionsDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) var resp *http.Response - resp, err = autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + resp, err = autorest.SendWithSender(client, req, sd...) if err != nil { return } @@ -261,7 +261,7 @@ func (client ApplicationTypeVersionsClient) GetPreparer(ctx context.Context, res "version": autorest.Encode("path", version), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -277,8 +277,8 @@ func (client ApplicationTypeVersionsClient) GetPreparer(ctx context.Context, res // GetSender sends the Get request. The method will close the // http.Response Body if it receives an error. func (client ApplicationTypeVersionsClient) GetSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // GetResponder handles the response to the Get request. The method always @@ -341,7 +341,7 @@ func (client ApplicationTypeVersionsClient) ListPreparer(ctx context.Context, re "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -357,8 +357,8 @@ func (client ApplicationTypeVersionsClient) ListPreparer(ctx context.Context, re // ListSender sends the List request. The method will close the // http.Response Body if it receives an error. func (client ApplicationTypeVersionsClient) ListSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // ListResponder handles the response to the List request. The method always diff --git a/services/servicefabric/mgmt/2019-03-01/servicefabric/client.go b/services/servicefabric/mgmt/2019-03-01/servicefabric/client.go index 5d0f53e073fc..c1ab1f71bffb 100644 --- a/services/servicefabric/mgmt/2019-03-01/servicefabric/client.go +++ b/services/servicefabric/mgmt/2019-03-01/servicefabric/client.go @@ -1,4 +1,4 @@ -// Package servicefabric implements the Azure ARM Servicefabric service API version . +// Package servicefabric implements the Azure ARM Servicefabric service API version 2019-03-01. // // Service Fabric Management Client package servicefabric diff --git a/services/servicefabric/mgmt/2019-03-01/servicefabric/clusters.go b/services/servicefabric/mgmt/2019-03-01/servicefabric/clusters.go index 3cbbb86265ed..bf067d540602 100644 --- a/services/servicefabric/mgmt/2019-03-01/servicefabric/clusters.go +++ b/services/servicefabric/mgmt/2019-03-01/servicefabric/clusters.go @@ -41,14 +41,14 @@ func NewClustersClientWithBaseURI(baseURI string, subscriptionID string) Cluster return ClustersClient{NewWithBaseURI(baseURI, subscriptionID)} } -// Create create or update a Service Fabric cluster resource with the specified name. +// CreateOrUpdate create or update a Service Fabric cluster resource with the specified name. // Parameters: // resourceGroupName - the name of the resource group. // clusterName - the name of the cluster resource. // parameters - the cluster resource. -func (client ClustersClient) Create(ctx context.Context, resourceGroupName string, clusterName string, parameters Cluster) (result ClustersCreateFuture, err error) { +func (client ClustersClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, clusterName string, parameters Cluster) (result ClustersCreateOrUpdateFuture, err error) { if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/ClustersClient.Create") + ctx = tracing.StartSpan(ctx, fqdn+"/ClustersClient.CreateOrUpdate") defer func() { sc := -1 if result.Response() != nil { @@ -106,33 +106,33 @@ func (client ClustersClient) Create(ctx context.Context, resourceGroupName strin }}, }}, }}}}}); err != nil { - return result, validation.NewError("servicefabric.ClustersClient", "Create", err.Error()) + return result, validation.NewError("servicefabric.ClustersClient", "CreateOrUpdate", err.Error()) } - req, err := client.CreatePreparer(ctx, resourceGroupName, clusterName, parameters) + req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, clusterName, parameters) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "Create", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "CreateOrUpdate", nil, "Failure preparing request") return } - result, err = client.CreateSender(req) + result, err = client.CreateOrUpdateSender(req) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "Create", result.Response(), "Failure sending request") + err = autorest.NewErrorWithError(err, "servicefabric.ClustersClient", "CreateOrUpdate", result.Response(), "Failure sending request") return } return } -// CreatePreparer prepares the Create request. -func (client ClustersClient) CreatePreparer(ctx context.Context, resourceGroupName string, clusterName string, parameters Cluster) (*http.Request, error) { +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client ClustersClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, clusterName string, parameters Cluster) (*http.Request, error) { pathParameters := map[string]interface{}{ "clusterName": autorest.Encode("path", clusterName), "resourceGroupName": autorest.Encode("path", resourceGroupName), "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-02-01" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -147,12 +147,12 @@ func (client ClustersClient) CreatePreparer(ctx context.Context, resourceGroupNa return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// CreateSender sends the Create request. The method will close the +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the // http.Response Body if it receives an error. -func (client ClustersClient) CreateSender(req *http.Request) (future ClustersCreateFuture, err error) { +func (client ClustersClient) CreateOrUpdateSender(req *http.Request) (future ClustersCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) var resp *http.Response - resp, err = autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + resp, err = autorest.SendWithSender(client, req, sd...) if err != nil { return } @@ -160,9 +160,9 @@ func (client ClustersClient) CreateSender(req *http.Request) (future ClustersCre return } -// CreateResponder handles the response to the Create request. The method always +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always // closes the http.Response Body. -func (client ClustersClient) CreateResponder(resp *http.Response) (result Cluster, err error) { +func (client ClustersClient) CreateOrUpdateResponder(resp *http.Response) (result Cluster, err error) { err = autorest.Respond( resp, client.ByInspecting(), @@ -217,7 +217,7 @@ func (client ClustersClient) DeletePreparer(ctx context.Context, resourceGroupNa "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-02-01" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -233,8 +233,8 @@ func (client ClustersClient) DeletePreparer(ctx context.Context, resourceGroupNa // DeleteSender sends the Delete request. The method will close the // http.Response Body if it receives an error. func (client ClustersClient) DeleteSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // DeleteResponder handles the response to the Delete request. The method always @@ -294,7 +294,7 @@ func (client ClustersClient) GetPreparer(ctx context.Context, resourceGroupName "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-02-01" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -310,8 +310,8 @@ func (client ClustersClient) GetPreparer(ctx context.Context, resourceGroupName // GetSender sends the Get request. The method will close the // http.Response Body if it receives an error. func (client ClustersClient) GetSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // GetResponder handles the response to the Get request. The method always @@ -366,7 +366,7 @@ func (client ClustersClient) ListPreparer(ctx context.Context) (*http.Request, e "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-02-01" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -382,8 +382,8 @@ func (client ClustersClient) ListPreparer(ctx context.Context) (*http.Request, e // ListSender sends the List request. The method will close the // http.Response Body if it receives an error. func (client ClustersClient) ListSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // ListResponder handles the response to the List request. The method always @@ -442,7 +442,7 @@ func (client ClustersClient) ListByResourceGroupPreparer(ctx context.Context, re "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-02-01" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -458,8 +458,8 @@ func (client ClustersClient) ListByResourceGroupPreparer(ctx context.Context, re // ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the // http.Response Body if it receives an error. func (client ClustersClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always @@ -515,7 +515,7 @@ func (client ClustersClient) UpdatePreparer(ctx context.Context, resourceGroupNa "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-02-01" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -533,9 +533,9 @@ func (client ClustersClient) UpdatePreparer(ctx context.Context, resourceGroupNa // UpdateSender sends the Update request. The method will close the // http.Response Body if it receives an error. func (client ClustersClient) UpdateSender(req *http.Request) (future ClustersUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) var resp *http.Response - resp, err = autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + resp, err = autorest.SendWithSender(client, req, sd...) if err != nil { return } diff --git a/services/servicefabric/mgmt/2019-03-01/servicefabric/clusterversions.go b/services/servicefabric/mgmt/2019-03-01/servicefabric/clusterversions.go index 9702715a5ccf..cc740eb6e894 100644 --- a/services/servicefabric/mgmt/2019-03-01/servicefabric/clusterversions.go +++ b/services/servicefabric/mgmt/2019-03-01/servicefabric/clusterversions.go @@ -84,7 +84,7 @@ func (client ClusterVersionsClient) GetPreparer(ctx context.Context, location st "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-02-01" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -100,8 +100,8 @@ func (client ClusterVersionsClient) GetPreparer(ctx context.Context, location st // GetSender sends the Get request. The method will close the // http.Response Body if it receives an error. func (client ClusterVersionsClient) GetSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // GetResponder handles the response to the Get request. The method always @@ -163,7 +163,7 @@ func (client ClusterVersionsClient) GetByEnvironmentPreparer(ctx context.Context "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-02-01" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -179,8 +179,8 @@ func (client ClusterVersionsClient) GetByEnvironmentPreparer(ctx context.Context // GetByEnvironmentSender sends the GetByEnvironment request. The method will close the // http.Response Body if it receives an error. func (client ClusterVersionsClient) GetByEnvironmentSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // GetByEnvironmentResponder handles the response to the GetByEnvironment request. The method always @@ -238,7 +238,7 @@ func (client ClusterVersionsClient) ListPreparer(ctx context.Context, location s "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-02-01" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -254,8 +254,8 @@ func (client ClusterVersionsClient) ListPreparer(ctx context.Context, location s // ListSender sends the List request. The method will close the // http.Response Body if it receives an error. func (client ClusterVersionsClient) ListSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // ListResponder handles the response to the List request. The method always @@ -315,7 +315,7 @@ func (client ClusterVersionsClient) ListByEnvironmentPreparer(ctx context.Contex "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-02-01" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -331,8 +331,8 @@ func (client ClusterVersionsClient) ListByEnvironmentPreparer(ctx context.Contex // ListByEnvironmentSender sends the ListByEnvironment request. The method will close the // http.Response Body if it receives an error. func (client ClusterVersionsClient) ListByEnvironmentSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // ListByEnvironmentResponder handles the response to the ListByEnvironment request. The method always diff --git a/services/servicefabric/mgmt/2019-03-01/servicefabric/models.go b/services/servicefabric/mgmt/2019-03-01/servicefabric/models.go index 3a025711071e..8c5890118618 100644 --- a/services/servicefabric/mgmt/2019-03-01/servicefabric/models.go +++ b/services/servicefabric/mgmt/2019-03-01/servicefabric/models.go @@ -46,6 +46,23 @@ func PossibleArmServicePackageActivationModeValues() []ArmServicePackageActivati return []ArmServicePackageActivationMode{ExclusiveProcess, SharedProcess} } +// ArmUpgradeFailureAction enumerates the values for arm upgrade failure action. +type ArmUpgradeFailureAction string + +const ( + // Manual Indicates that a manual repair will need to be performed by the administrator if the upgrade + // fails. Service Fabric will not proceed to the next upgrade domain automatically. + Manual ArmUpgradeFailureAction = "Manual" + // Rollback Indicates that a rollback of the upgrade will be performed by Service Fabric if the upgrade + // fails. + Rollback ArmUpgradeFailureAction = "Rollback" +) + +// PossibleArmUpgradeFailureActionValues returns an array of possible values for the ArmUpgradeFailureAction const type. +func PossibleArmUpgradeFailureActionValues() []ArmUpgradeFailureAction { + return []ArmUpgradeFailureAction{Manual, Rollback} +} + // ClusterState enumerates the values for cluster state. type ClusterState string @@ -385,15 +402,15 @@ func PossibleTypeValues() []Type { type UpgradeMode string const ( - // Automatic ... - Automatic UpgradeMode = "Automatic" - // Manual ... - Manual UpgradeMode = "Manual" + // UpgradeModeAutomatic ... + UpgradeModeAutomatic UpgradeMode = "Automatic" + // UpgradeModeManual ... + UpgradeModeManual UpgradeMode = "Manual" ) // PossibleUpgradeModeValues returns an array of possible values for the UpgradeMode const type. func PossibleUpgradeModeValues() []UpgradeMode { - return []UpgradeMode{Automatic, Manual} + return []UpgradeMode{UpgradeModeAutomatic, UpgradeModeManual} } // UpgradeMode1 enumerates the values for upgrade mode 1. @@ -511,23 +528,23 @@ func (ahp ApplicationHealthPolicy) MarshalJSON() ([]byte, error) { // can be used to limit the total consumption of this metric by the services of this application. type ApplicationMetricDescription struct { // Name - The name of the metric. - Name *string `json:"Name,omitempty"` + Name *string `json:"name,omitempty"` // MaximumCapacity - The maximum node capacity for Service Fabric application. // This is the maximum Load for an instance of this application on a single node. Even if the capacity of node is greater than this value, Service Fabric will limit the total load of services within the application on each node to this value. // If set to zero, capacity for this metric is unlimited on each node. // When creating a new application with application capacity defined, the product of MaximumNodes and this value must always be smaller than or equal to TotalApplicationCapacity. // When updating existing application with application capacity, the product of MaximumNodes and this value must always be smaller than or equal to TotalApplicationCapacity. - MaximumCapacity *int64 `json:"MaximumCapacity,omitempty"` + MaximumCapacity *int64 `json:"maximumCapacity,omitempty"` // ReservationCapacity - The node reservation capacity for Service Fabric application. // This is the amount of load which is reserved on nodes which have instances of this application. // If MinimumNodes is specified, then the product of these values will be the capacity reserved in the cluster for the application. // If set to zero, no capacity is reserved for this metric. // When setting application capacity or when updating application capacity; this value must be smaller than or equal to MaximumCapacity for each metric. - ReservationCapacity *int64 `json:"ReservationCapacity,omitempty"` + ReservationCapacity *int64 `json:"reservationCapacity,omitempty"` // TotalApplicationCapacity - The total metric capacity for Service Fabric application. // This is the total metric capacity for this application in the cluster. Service Fabric will try to limit the sum of loads of services within the application to this value. // When creating a new application with application capacity defined, the product of MaximumNodes and MaximumCapacity must always be smaller than or equal to this value. - TotalApplicationCapacity *int64 `json:"TotalApplicationCapacity,omitempty"` + TotalApplicationCapacity *int64 `json:"totalApplicationCapacity,omitempty"` } // ApplicationResource the application resource. @@ -541,8 +558,12 @@ type ApplicationResource struct { Name *string `json:"name,omitempty"` // Type - READ-ONLY; Azure resource type. Type *string `json:"type,omitempty"` - // Location - Azure resource location. + // Location - It will be deprecated in New API, resource location depends on the parent resource. Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` } // MarshalJSON is the custom marshaler for ApplicationResource. @@ -554,6 +575,9 @@ func (ar ApplicationResource) MarshalJSON() ([]byte, error) { if ar.Location != nil { objectMap["location"] = ar.Location } + if ar.Tags != nil { + objectMap["tags"] = ar.Tags + } return json.Marshal(objectMap) } @@ -611,6 +635,24 @@ func (ar *ApplicationResource) UnmarshalJSON(body []byte) error { } ar.Location = &location } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + ar.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + ar.Etag = &etag + } } } @@ -621,6 +663,8 @@ func (ar *ApplicationResource) UnmarshalJSON(body []byte) error { type ApplicationResourceList struct { autorest.Response `json:"-"` Value *[]ApplicationResource `json:"value,omitempty"` + // NextLink - READ-ONLY; URL to get the next set of application list results if there are any. + NextLink *string `json:"nextLink,omitempty"` } // ApplicationResourceProperties the application resource properties. @@ -677,7 +721,6 @@ func (arp ApplicationResourceProperties) MarshalJSON() ([]byte, error) { // ApplicationResourceUpdate the application resource for patch operations. type ApplicationResourceUpdate struct { - autorest.Response `json:"-"` // ApplicationResourceUpdateProperties - The application resource properties for patch operations. *ApplicationResourceUpdateProperties `json:"properties,omitempty"` // ID - READ-ONLY; Azure resource identifier. @@ -686,8 +729,12 @@ type ApplicationResourceUpdate struct { Name *string `json:"name,omitempty"` // Type - READ-ONLY; Azure resource type. Type *string `json:"type,omitempty"` - // Location - Azure resource location. + // Location - It will be deprecated in New API, resource location depends on the parent resource. Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` } // MarshalJSON is the custom marshaler for ApplicationResourceUpdate. @@ -699,6 +746,9 @@ func (aru ApplicationResourceUpdate) MarshalJSON() ([]byte, error) { if aru.Location != nil { objectMap["location"] = aru.Location } + if aru.Tags != nil { + objectMap["tags"] = aru.Tags + } return json.Marshal(objectMap) } @@ -756,6 +806,24 @@ func (aru *ApplicationResourceUpdate) UnmarshalJSON(body []byte) error { } aru.Location = &location } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + aru.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + aru.Etag = &etag + } } } @@ -807,30 +875,30 @@ func (arup ApplicationResourceUpdateProperties) MarshalJSON() ([]byte, error) { return json.Marshal(objectMap) } -// ApplicationsCreateFuture an abstraction for monitoring and retrieving the results of a long-running -// operation. -type ApplicationsCreateFuture struct { +// ApplicationsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ApplicationsCreateOrUpdateFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ApplicationsCreateFuture) Result(client ApplicationsClient) (ar ApplicationResource, err error) { +func (future *ApplicationsCreateOrUpdateFuture) Result(client ApplicationsClient) (ar ApplicationResource, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsCreateFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("servicefabric.ApplicationsCreateFuture") + err = azure.NewAsyncOpIncompleteError("servicefabric.ApplicationsCreateOrUpdateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) if ar.Response.Response, err = future.GetResult(sender); err == nil && ar.Response.Response.StatusCode != http.StatusNoContent { - ar, err = client.CreateResponder(ar.Response.Response) + ar, err = client.CreateOrUpdateResponder(ar.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsCreateFuture", "Result", ar.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsCreateOrUpdateFuture", "Result", ar.Response.Response, "Failure responding to request") } } return @@ -867,7 +935,7 @@ type ApplicationsUpdateFuture struct { // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ApplicationsUpdateFuture) Result(client ApplicationsClient) (aru ApplicationResourceUpdate, err error) { +func (future *ApplicationsUpdateFuture) Result(client ApplicationsClient) (ar ApplicationResource, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { @@ -879,10 +947,10 @@ func (future *ApplicationsUpdateFuture) Result(client ApplicationsClient) (aru A return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if aru.Response.Response, err = future.GetResult(sender); err == nil && aru.Response.Response.StatusCode != http.StatusNoContent { - aru, err = client.UpdateResponder(aru.Response.Response) + if ar.Response.Response, err = future.GetResult(sender); err == nil && ar.Response.Response.StatusCode != http.StatusNoContent { + ar, err = client.UpdateResponder(ar.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsUpdateFuture", "Result", aru.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationsUpdateFuture", "Result", ar.Response.Response, "Failure responding to request") } } return @@ -899,8 +967,12 @@ type ApplicationTypeResource struct { Name *string `json:"name,omitempty"` // Type - READ-ONLY; Azure resource type. Type *string `json:"type,omitempty"` - // Location - Azure resource location. + // Location - It will be deprecated in New API, resource location depends on the parent resource. Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` } // MarshalJSON is the custom marshaler for ApplicationTypeResource. @@ -912,6 +984,9 @@ func (atr ApplicationTypeResource) MarshalJSON() ([]byte, error) { if atr.Location != nil { objectMap["location"] = atr.Location } + if atr.Tags != nil { + objectMap["tags"] = atr.Tags + } return json.Marshal(objectMap) } @@ -969,6 +1044,24 @@ func (atr *ApplicationTypeResource) UnmarshalJSON(body []byte) error { } atr.Location = &location } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + atr.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + atr.Etag = &etag + } } } @@ -979,6 +1072,8 @@ func (atr *ApplicationTypeResource) UnmarshalJSON(body []byte) error { type ApplicationTypeResourceList struct { autorest.Response `json:"-"` Value *[]ApplicationTypeResource `json:"value,omitempty"` + // NextLink - READ-ONLY; URL to get the next set of application type list results if there are any. + NextLink *string `json:"nextLink,omitempty"` } // ApplicationTypeResourceProperties the application type name properties @@ -1022,8 +1117,12 @@ type ApplicationTypeVersionResource struct { Name *string `json:"name,omitempty"` // Type - READ-ONLY; Azure resource type. Type *string `json:"type,omitempty"` - // Location - Azure resource location. + // Location - It will be deprecated in New API, resource location depends on the parent resource. Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` } // MarshalJSON is the custom marshaler for ApplicationTypeVersionResource. @@ -1035,6 +1134,9 @@ func (atvr ApplicationTypeVersionResource) MarshalJSON() ([]byte, error) { if atvr.Location != nil { objectMap["location"] = atvr.Location } + if atvr.Tags != nil { + objectMap["tags"] = atvr.Tags + } return json.Marshal(objectMap) } @@ -1092,6 +1194,24 @@ func (atvr *ApplicationTypeVersionResource) UnmarshalJSON(body []byte) error { } atvr.Location = &location } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + atvr.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + atvr.Etag = &etag + } } } @@ -1103,6 +1223,8 @@ func (atvr *ApplicationTypeVersionResource) UnmarshalJSON(body []byte) error { type ApplicationTypeVersionResourceList struct { autorest.Response `json:"-"` Value *[]ApplicationTypeVersionResource `json:"value,omitempty"` + // NextLink - READ-ONLY; URL to get the next set of application type version list results if there are any. + NextLink *string `json:"nextLink,omitempty"` } // ApplicationTypeVersionResourceProperties the properties of the application type version resource. @@ -1124,30 +1246,30 @@ func (atvrp ApplicationTypeVersionResourceProperties) MarshalJSON() ([]byte, err return json.Marshal(objectMap) } -// ApplicationTypeVersionsCreateFuture an abstraction for monitoring and retrieving the results of a -// long-running operation. -type ApplicationTypeVersionsCreateFuture struct { +// ApplicationTypeVersionsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of +// a long-running operation. +type ApplicationTypeVersionsCreateOrUpdateFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ApplicationTypeVersionsCreateFuture) Result(client ApplicationTypeVersionsClient) (atvr ApplicationTypeVersionResource, err error) { +func (future *ApplicationTypeVersionsCreateOrUpdateFuture) Result(client ApplicationTypeVersionsClient) (atvr ApplicationTypeVersionResource, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsCreateFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("servicefabric.ApplicationTypeVersionsCreateFuture") + err = azure.NewAsyncOpIncompleteError("servicefabric.ApplicationTypeVersionsCreateOrUpdateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) if atvr.Response.Response, err = future.GetResult(sender); err == nil && atvr.Response.Response.StatusCode != http.StatusNoContent { - atvr, err = client.CreateResponder(atvr.Response.Response) + atvr, err = client.CreateOrUpdateResponder(atvr.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsCreateFuture", "Result", atvr.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "servicefabric.ApplicationTypeVersionsCreateOrUpdateFuture", "Result", atvr.Response.Response, "Failure responding to request") } } return @@ -1179,11 +1301,11 @@ func (future *ApplicationTypeVersionsDeleteFuture) Result(client ApplicationType // ApplicationUpgradePolicy describes the policy for a monitored application upgrade. type ApplicationUpgradePolicy struct { // UpgradeReplicaSetCheckTimeout - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). - UpgradeReplicaSetCheckTimeout *int64 `json:"upgradeReplicaSetCheckTimeout,omitempty"` + UpgradeReplicaSetCheckTimeout *string `json:"upgradeReplicaSetCheckTimeout,omitempty"` // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). ForceRestart *bool `json:"forceRestart,omitempty"` // RollingUpgradeMonitoringPolicy - The policy used for monitoring the application upgrade - RollingUpgradeMonitoringPolicy *RollingUpgradeMonitoringPolicy `json:"rollingUpgradeMonitoringPolicy,omitempty"` + RollingUpgradeMonitoringPolicy *ArmRollingUpgradeMonitoringPolicy `json:"rollingUpgradeMonitoringPolicy,omitempty"` // ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities. ApplicationHealthPolicy *ArmApplicationHealthPolicy `json:"applicationHealthPolicy,omitempty"` } @@ -1192,37 +1314,64 @@ type ApplicationUpgradePolicy struct { // of its children entities. type ArmApplicationHealthPolicy struct { // ConsiderWarningAsError - Indicates whether warnings are treated with the same severity as errors. - ConsiderWarningAsError *bool `json:"ConsiderWarningAsError,omitempty"` + ConsiderWarningAsError *bool `json:"considerWarningAsError,omitempty"` // MaxPercentUnhealthyDeployedApplications - The maximum allowed percentage of unhealthy deployed applications. Allowed values are Byte values from zero to 100. // The percentage represents the maximum tolerated percentage of deployed applications that can be unhealthy before the application is considered in error. // This is calculated by dividing the number of unhealthy deployed applications over the number of nodes where the application is currently deployed on in the cluster. // The computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero. - MaxPercentUnhealthyDeployedApplications *int32 `json:"MaxPercentUnhealthyDeployedApplications,omitempty"` + MaxPercentUnhealthyDeployedApplications *int32 `json:"maxPercentUnhealthyDeployedApplications,omitempty"` // DefaultServiceTypeHealthPolicy - The health policy used by default to evaluate the health of a service type. - DefaultServiceTypeHealthPolicy *ServiceTypeHealthPolicy `json:"DefaultServiceTypeHealthPolicy,omitempty"` + DefaultServiceTypeHealthPolicy *ArmServiceTypeHealthPolicy `json:"defaultServiceTypeHealthPolicy,omitempty"` // ServiceTypeHealthPolicyMap - The map with service type health policy per service type name. The map is empty by default. - ServiceTypeHealthPolicyMap map[string]*ServiceTypeHealthPolicy `json:"ServiceTypeHealthPolicyMap"` + ServiceTypeHealthPolicyMap map[string]*ArmServiceTypeHealthPolicy `json:"serviceTypeHealthPolicyMap"` } // MarshalJSON is the custom marshaler for ArmApplicationHealthPolicy. func (aahp ArmApplicationHealthPolicy) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) if aahp.ConsiderWarningAsError != nil { - objectMap["ConsiderWarningAsError"] = aahp.ConsiderWarningAsError + objectMap["considerWarningAsError"] = aahp.ConsiderWarningAsError } if aahp.MaxPercentUnhealthyDeployedApplications != nil { - objectMap["MaxPercentUnhealthyDeployedApplications"] = aahp.MaxPercentUnhealthyDeployedApplications + objectMap["maxPercentUnhealthyDeployedApplications"] = aahp.MaxPercentUnhealthyDeployedApplications } if aahp.DefaultServiceTypeHealthPolicy != nil { - objectMap["DefaultServiceTypeHealthPolicy"] = aahp.DefaultServiceTypeHealthPolicy + objectMap["defaultServiceTypeHealthPolicy"] = aahp.DefaultServiceTypeHealthPolicy } if aahp.ServiceTypeHealthPolicyMap != nil { - objectMap["ServiceTypeHealthPolicyMap"] = aahp.ServiceTypeHealthPolicyMap + objectMap["serviceTypeHealthPolicyMap"] = aahp.ServiceTypeHealthPolicyMap } return json.Marshal(objectMap) } -// AvailableOperationDisplay operation supported by Service Fabric resource provider +// ArmRollingUpgradeMonitoringPolicy the policy used for monitoring the application upgrade +type ArmRollingUpgradeMonitoringPolicy struct { + // FailureAction - The activation Mode of the service package. Possible values include: 'Rollback', 'Manual' + FailureAction ArmUpgradeFailureAction `json:"failureAction,omitempty"` + // HealthCheckWaitDuration - The amount of time to wait after completing an upgrade domain before applying health policies. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckWaitDuration *string `json:"healthCheckWaitDuration,omitempty"` + // HealthCheckStableDuration - The amount of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckStableDuration *string `json:"healthCheckStableDuration,omitempty"` + // HealthCheckRetryTimeout - The amount of time to retry health evaluation when the application or cluster is unhealthy before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckRetryTimeout *string `json:"healthCheckRetryTimeout,omitempty"` + // UpgradeTimeout - The amount of time the overall upgrade has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeTimeout *string `json:"upgradeTimeout,omitempty"` + // UpgradeDomainTimeout - The amount of time each upgrade domain has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeDomainTimeout *string `json:"upgradeDomainTimeout,omitempty"` +} + +// ArmServiceTypeHealthPolicy represents the health policy used to evaluate the health of services +// belonging to a service type. +type ArmServiceTypeHealthPolicy struct { + // MaxPercentUnhealthyServices - The maximum percentage of services allowed to be unhealthy before your application is considered in error. + MaxPercentUnhealthyServices *int32 `json:"maxPercentUnhealthyServices,omitempty"` + // MaxPercentUnhealthyPartitionsPerService - The maximum percentage of partitions per service allowed to be unhealthy before your application is considered in error. + MaxPercentUnhealthyPartitionsPerService *int32 `json:"maxPercentUnhealthyPartitionsPerService,omitempty"` + // MaxPercentUnhealthyReplicasPerPartition - The maximum percentage of replicas per partition allowed to be unhealthy before your application is considered in error. + MaxPercentUnhealthyReplicasPerPartition *int32 `json:"maxPercentUnhealthyReplicasPerPartition,omitempty"` +} + +// AvailableOperationDisplay operation supported by the Service Fabric resource provider type AvailableOperationDisplay struct { // Provider - The name of the provider. Provider *string `json:"provider,omitempty"` @@ -1287,6 +1436,8 @@ type Cluster struct { Location *string `json:"location,omitempty"` // Tags - Azure resource tags. Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` } // MarshalJSON is the custom marshaler for Cluster. @@ -1367,13 +1518,22 @@ func (c *Cluster) UnmarshalJSON(body []byte) error { } c.Tags = tags } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + c.Etag = &etag + } } } return nil } -// ClusterCodeVersionsListResult the list results of the ServiceFabric runtime versions. +// ClusterCodeVersionsListResult the list results of the Service Fabric runtime versions. type ClusterCodeVersionsListResult struct { autorest.Response `json:"-"` Value *[]ClusterCodeVersionsResult `json:"value,omitempty"` @@ -1381,7 +1541,7 @@ type ClusterCodeVersionsListResult struct { NextLink *string `json:"nextLink,omitempty"` } -// ClusterCodeVersionsResult the result of the ServiceFabric runtime versions +// ClusterCodeVersionsResult the result of the Service Fabric runtime versions type ClusterCodeVersionsResult struct { // ID - The identification of the result ID *string `json:"id,omitempty"` @@ -1542,6 +1702,8 @@ type ClusterProperties struct { ClusterState ClusterState `json:"clusterState,omitempty"` // DiagnosticsStorageAccountConfig - The storage account information for storing Service Fabric diagnostic logs. DiagnosticsStorageAccountConfig *DiagnosticsStorageAccountConfig `json:"diagnosticsStorageAccountConfig,omitempty"` + // EventStoreServiceEnabled - Indicates if the event store service is enabled. + EventStoreServiceEnabled *bool `json:"eventStoreServiceEnabled,omitempty"` // FabricSettings - The list of custom fabric settings to configure the cluster. FabricSettings *[]SettingsSectionDescription `json:"fabricSettings,omitempty"` // ManagementEndpoint - The http management endpoint of the cluster. @@ -1567,7 +1729,7 @@ type ClusterProperties struct { // UpgradeMode - The upgrade mode of the cluster when new Service Fabric runtime version is available. // - Automatic - The cluster will be automatically upgraded to the latest Service Fabric runtime version as soon as it is available. // - Manual - The cluster will not be automatically upgraded to the latest Service Fabric runtime version. The cluster is upgraded by setting the **clusterCodeVersion** property in the cluster resource. - // . Possible values include: 'Automatic', 'Manual' + // . Possible values include: 'UpgradeModeAutomatic', 'UpgradeModeManual' UpgradeMode UpgradeMode `json:"upgradeMode,omitempty"` // VMImage - The VM image VMSS has been configured with. Generic names such as Windows or Linux can be used. VMImage *string `json:"vmImage,omitempty"` @@ -1588,6 +1750,8 @@ type ClusterPropertiesUpdateParameters struct { ClientCertificateThumbprints *[]ClientCertificateThumbprint `json:"clientCertificateThumbprints,omitempty"` // ClusterCodeVersion - The Service Fabric runtime version of the cluster. This property can only by set the user when **upgradeMode** is set to 'Manual'. To get list of available Service Fabric versions for new clusters use [ClusterVersion API](./ClusterVersion.md). To get the list of available version for existing clusters use **availableClusterVersions**. ClusterCodeVersion *string `json:"clusterCodeVersion,omitempty"` + // EventStoreServiceEnabled - Indicates if the event store service is enabled. + EventStoreServiceEnabled *bool `json:"eventStoreServiceEnabled,omitempty"` // FabricSettings - The list of custom fabric settings to configure the cluster. This will overwrite the existing list. FabricSettings *[]SettingsSectionDescription `json:"fabricSettings,omitempty"` // NodeTypes - The list of node types in the cluster. This will overwrite the existing list. @@ -1611,30 +1775,30 @@ type ClusterPropertiesUpdateParameters struct { UpgradeMode UpgradeMode1 `json:"upgradeMode,omitempty"` } -// ClustersCreateFuture an abstraction for monitoring and retrieving the results of a long-running +// ClustersCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running // operation. -type ClustersCreateFuture struct { +type ClustersCreateOrUpdateFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ClustersCreateFuture) Result(client ClustersClient) (c Cluster, err error) { +func (future *ClustersCreateOrUpdateFuture) Result(client ClustersClient) (c Cluster, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ClustersCreateFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "servicefabric.ClustersCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("servicefabric.ClustersCreateFuture") + err = azure.NewAsyncOpIncompleteError("servicefabric.ClustersCreateOrUpdateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) if c.Response.Response, err = future.GetResult(sender); err == nil && c.Response.Response.StatusCode != http.StatusNoContent { - c, err = client.CreateResponder(c.Response.Response) + c, err = client.CreateOrUpdateResponder(c.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ClustersCreateFuture", "Result", c.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "servicefabric.ClustersCreateOrUpdateFuture", "Result", c.Response.Response, "Failure responding to request") } } return @@ -1762,7 +1926,7 @@ func (cudhp ClusterUpgradeDeltaHealthPolicy) MarshalJSON() ([]byte, error) { type ClusterUpgradePolicy struct { // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). ForceRestart *bool `json:"forceRestart,omitempty"` - // UpgradeReplicaSetCheckTimeout - The maximum amount of time to block processing of an upgrade domain and revent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. The timeout can be in either hh:mm:ss or in d.hh:mm:ss.ms format. + // UpgradeReplicaSetCheckTimeout - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. The timeout can be in either hh:mm:ss or in d.hh:mm:ss.ms format. UpgradeReplicaSetCheckTimeout *string `json:"upgradeReplicaSetCheckTimeout,omitempty"` // HealthCheckWaitDuration - The length of time to wait after completing an upgrade domain before performing health checks. The duration can be in either hh:mm:ss or in d.hh:mm:ss.ms format. HealthCheckWaitDuration *string `json:"healthCheckWaitDuration,omitempty"` @@ -1834,7 +1998,7 @@ type NamedPartitionSchemeDescription struct { // Names - Array of size specified by the ‘Count’ parameter, for the names of the partitions. Names *[]string `json:"Names,omitempty"` // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed', 'PartitionSchemeSingleton', 'PartitionSchemeUniformInt64Range' - PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"` + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"partitionScheme,omitempty"` } // MarshalJSON is the custom marshaler for NamedPartitionSchemeDescription. @@ -1848,7 +2012,7 @@ func (npsd NamedPartitionSchemeDescription) MarshalJSON() ([]byte, error) { objectMap["Names"] = npsd.Names } if npsd.PartitionScheme != "" { - objectMap["PartitionScheme"] = npsd.PartitionScheme + objectMap["partitionScheme"] = npsd.PartitionScheme } return json.Marshal(objectMap) } @@ -1899,7 +2063,7 @@ type NodeTypeDescription struct { DurabilityLevel DurabilityLevel `json:"durabilityLevel,omitempty"` // ApplicationPorts - The range of ports from which cluster assigned port to Service Fabric applications. ApplicationPorts *EndpointRangeDescription `json:"applicationPorts,omitempty"` - // EphemeralPorts - The range of empheral ports that nodes in this node type should be configured with. + // EphemeralPorts - The range of ephemeral ports that nodes in this node type should be configured with. EphemeralPorts *EndpointRangeDescription `json:"ephemeralPorts,omitempty"` // IsPrimary - The node type on which system services will run. Only one node type should be marked as primary. Primary node type cannot be deleted or changed for existing clusters. IsPrimary *bool `json:"isPrimary,omitempty"` @@ -1948,10 +2112,11 @@ func (ntd NodeTypeDescription) MarshalJSON() ([]byte, error) { return json.Marshal(objectMap) } -// OperationListResult describes the result of the request to list Service Fabric operations. +// OperationListResult describes the result of the request to list Service Fabric resource provider +// operations. type OperationListResult struct { autorest.Response `json:"-"` - // Value - List of Service Fabric operations supported by the Microsoft.ServiceFabric resource provider. + // Value - List of operations supported by the Service Fabric resource provider. Value *[]OperationResult `json:"value,omitempty"` // NextLink - READ-ONLY; URL to get the next set of operation list results if there are any. NextLink *string `json:"nextLink,omitempty"` @@ -2117,7 +2282,7 @@ type BasicPartitionSchemeDescription interface { // PartitionSchemeDescription describes how the service is partitioned. type PartitionSchemeDescription struct { // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed', 'PartitionSchemeSingleton', 'PartitionSchemeUniformInt64Range' - PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"` + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"partitionScheme,omitempty"` } func unmarshalBasicPartitionSchemeDescription(body []byte) (BasicPartitionSchemeDescription, error) { @@ -2127,7 +2292,7 @@ func unmarshalBasicPartitionSchemeDescription(body []byte) (BasicPartitionScheme return nil, err } - switch m["PartitionScheme"] { + switch m["partitionScheme"] { case string(PartitionSchemeNamed): var npsd NamedPartitionSchemeDescription err := json.Unmarshal(body, &npsd) @@ -2170,7 +2335,7 @@ func (psd PartitionSchemeDescription) MarshalJSON() ([]byte, error) { psd.PartitionScheme = PartitionSchemePartitionSchemeDescription objectMap := make(map[string]interface{}) if psd.PartitionScheme != "" { - objectMap["PartitionScheme"] = psd.PartitionScheme + objectMap["partitionScheme"] = psd.PartitionScheme } return json.Marshal(objectMap) } @@ -2208,8 +2373,24 @@ type ProxyResource struct { Name *string `json:"name,omitempty"` // Type - READ-ONLY; Azure resource type. Type *string `json:"type,omitempty"` - // Location - Azure resource location. + // Location - It will be deprecated in New API, resource location depends on the parent resource. Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` +} + +// MarshalJSON is the custom marshaler for ProxyResource. +func (pr ProxyResource) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if pr.Location != nil { + objectMap["location"] = pr.Location + } + if pr.Tags != nil { + objectMap["tags"] = pr.Tags + } + return json.Marshal(objectMap) } // Resource the resource model definition. @@ -2224,6 +2405,8 @@ type Resource struct { Location *string `json:"location,omitempty"` // Tags - Azure resource tags. Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` } // MarshalJSON is the custom marshaler for Resource. @@ -2238,20 +2421,6 @@ func (r Resource) MarshalJSON() ([]byte, error) { return json.Marshal(objectMap) } -// RollingUpgradeMonitoringPolicy the policy used for monitoring the application upgrade -type RollingUpgradeMonitoringPolicy struct { - // HealthCheckWaitDuration - The amount of time to wait after completing an upgrade domain before applying health policies. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. - HealthCheckWaitDuration *string `json:"healthCheckWaitDuration,omitempty"` - // HealthCheckStableDuration - The amount of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. - HealthCheckStableDuration *string `json:"healthCheckStableDuration,omitempty"` - // HealthCheckRetryTimeout - The amount of time to retry health evaluation when the application or cluster is unhealthy before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. - HealthCheckRetryTimeout *string `json:"healthCheckRetryTimeout,omitempty"` - // UpgradeTimeout - The amount of time the overall upgrade has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. - UpgradeTimeout *string `json:"upgradeTimeout,omitempty"` - // UpgradeDomainTimeout - The amount of time each upgrade domain has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. - UpgradeDomainTimeout *string `json:"upgradeDomainTimeout,omitempty"` -} - // ServerCertificateCommonName describes the server certificate details using common name. type ServerCertificateCommonName struct { // CertificateCommonName - The common name of the server certificate. @@ -2272,23 +2441,23 @@ type ServerCertificateCommonNames struct { // ServiceCorrelationDescription creates a particular correlation between services. type ServiceCorrelationDescription struct { // Scheme - The ServiceCorrelationScheme which describes the relationship between this service and the service specified via ServiceName. Possible values include: 'ServiceCorrelationSchemeInvalid', 'ServiceCorrelationSchemeAffinity', 'ServiceCorrelationSchemeAlignedAffinity', 'ServiceCorrelationSchemeNonAlignedAffinity' - Scheme ServiceCorrelationScheme `json:"Scheme,omitempty"` + Scheme ServiceCorrelationScheme `json:"scheme,omitempty"` // ServiceName - The name of the service that the correlation relationship is established with. - ServiceName *string `json:"ServiceName,omitempty"` + ServiceName *string `json:"serviceName,omitempty"` } // ServiceLoadMetricDescription specifies a metric to load balance a service during runtime. type ServiceLoadMetricDescription struct { // Name - The name of the metric. If the service chooses to report load during runtime, the load metric name should match the name that is specified in Name exactly. Note that metric names are case sensitive. - Name *string `json:"Name,omitempty"` + Name *string `json:"name,omitempty"` // Weight - The service load metric relative weight, compared to other metrics configured for this service, as a number. Possible values include: 'ServiceLoadMetricWeightZero', 'ServiceLoadMetricWeightLow', 'ServiceLoadMetricWeightMedium', 'ServiceLoadMetricWeightHigh' - Weight ServiceLoadMetricWeight `json:"Weight,omitempty"` + Weight ServiceLoadMetricWeight `json:"weight,omitempty"` // PrimaryDefaultLoad - Used only for Stateful services. The default amount of load, as a number, that this service creates for this metric when it is a Primary replica. - PrimaryDefaultLoad *int32 `json:"PrimaryDefaultLoad,omitempty"` + PrimaryDefaultLoad *int32 `json:"primaryDefaultLoad,omitempty"` // SecondaryDefaultLoad - Used only for Stateful services. The default amount of load, as a number, that this service creates for this metric when it is a Secondary replica. - SecondaryDefaultLoad *int32 `json:"SecondaryDefaultLoad,omitempty"` + SecondaryDefaultLoad *int32 `json:"secondaryDefaultLoad,omitempty"` // DefaultLoad - Used only for Stateless services. The default amount of load, as a number, that this service creates for this metric. - DefaultLoad *int32 `json:"DefaultLoad,omitempty"` + DefaultLoad *int32 `json:"defaultLoad,omitempty"` } // BasicServicePlacementPolicyDescription describes the policy to be used for placement of a Service Fabric service. @@ -2366,8 +2535,12 @@ type ServiceResource struct { Name *string `json:"name,omitempty"` // Type - READ-ONLY; Azure resource type. Type *string `json:"type,omitempty"` - // Location - Azure resource location. + // Location - It will be deprecated in New API, resource location depends on the parent resource. Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` } // MarshalJSON is the custom marshaler for ServiceResource. @@ -2377,6 +2550,9 @@ func (sr ServiceResource) MarshalJSON() ([]byte, error) { if sr.Location != nil { objectMap["location"] = sr.Location } + if sr.Tags != nil { + objectMap["tags"] = sr.Tags + } return json.Marshal(objectMap) } @@ -2433,6 +2609,24 @@ func (sr *ServiceResource) UnmarshalJSON(body []byte) error { } sr.Location = &location } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + sr.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + sr.Etag = &etag + } } } @@ -2443,6 +2637,8 @@ func (sr *ServiceResource) UnmarshalJSON(body []byte) error { type ServiceResourceList struct { autorest.Response `json:"-"` Value *[]ServiceResource `json:"value,omitempty"` + // NextLink - READ-ONLY; URL to get the next set of service list results if there are any. + NextLink *string `json:"nextLink,omitempty"` } // BasicServiceResourceProperties the service resource properties. @@ -2747,7 +2943,6 @@ func (srpb *ServiceResourcePropertiesBase) UnmarshalJSON(body []byte) error { // ServiceResourceUpdate the service resource for patch operations. type ServiceResourceUpdate struct { - autorest.Response `json:"-"` // BasicServiceResourceUpdateProperties - The service resource properties for patch operations. BasicServiceResourceUpdateProperties `json:"properties,omitempty"` // ID - READ-ONLY; Azure resource identifier. @@ -2756,8 +2951,12 @@ type ServiceResourceUpdate struct { Name *string `json:"name,omitempty"` // Type - READ-ONLY; Azure resource type. Type *string `json:"type,omitempty"` - // Location - Azure resource location. + // Location - It will be deprecated in New API, resource location depends on the parent resource. Location *string `json:"location,omitempty"` + // Tags - Azure resource tags. + Tags map[string]*string `json:"tags"` + // Etag - READ-ONLY; Azure resource etag. + Etag *string `json:"etag,omitempty"` } // MarshalJSON is the custom marshaler for ServiceResourceUpdate. @@ -2767,6 +2966,9 @@ func (sru ServiceResourceUpdate) MarshalJSON() ([]byte, error) { if sru.Location != nil { objectMap["location"] = sru.Location } + if sru.Tags != nil { + objectMap["tags"] = sru.Tags + } return json.Marshal(objectMap) } @@ -2823,6 +3025,24 @@ func (sru *ServiceResourceUpdate) UnmarshalJSON(body []byte) error { } sru.Location = &location } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + sru.Tags = tags + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + sru.Etag = &etag + } } } @@ -3006,30 +3226,30 @@ func (srup *ServiceResourceUpdateProperties) UnmarshalJSON(body []byte) error { return nil } -// ServicesCreateFuture an abstraction for monitoring and retrieving the results of a long-running +// ServicesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running // operation. -type ServicesCreateFuture struct { +type ServicesCreateOrUpdateFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ServicesCreateFuture) Result(client ServicesClient) (sr ServiceResource, err error) { +func (future *ServicesCreateOrUpdateFuture) Result(client ServicesClient) (sr ServiceResource, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ServicesCreateFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "servicefabric.ServicesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("servicefabric.ServicesCreateFuture") + err = azure.NewAsyncOpIncompleteError("servicefabric.ServicesCreateOrUpdateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) if sr.Response.Response, err = future.GetResult(sender); err == nil && sr.Response.Response.StatusCode != http.StatusNoContent { - sr, err = client.CreateResponder(sr.Response.Response) + sr, err = client.CreateOrUpdateResponder(sr.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ServicesCreateFuture", "Result", sr.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "servicefabric.ServicesCreateOrUpdateFuture", "Result", sr.Response.Response, "Failure responding to request") } } return @@ -3066,7 +3286,7 @@ type ServicesUpdateFuture struct { // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ServicesUpdateFuture) Result(client ServicesClient) (sru ServiceResourceUpdate, err error) { +func (future *ServicesUpdateFuture) Result(client ServicesClient) (sr ServiceResource, err error) { var done bool done, err = future.DoneWithContext(context.Background(), client) if err != nil { @@ -3078,10 +3298,10 @@ func (future *ServicesUpdateFuture) Result(client ServicesClient) (sru ServiceRe return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if sru.Response.Response, err = future.GetResult(sender); err == nil && sru.Response.Response.StatusCode != http.StatusNoContent { - sru, err = client.UpdateResponder(sru.Response.Response) + if sr.Response.Response, err = future.GetResult(sender); err == nil && sr.Response.Response.StatusCode != http.StatusNoContent { + sr, err = client.UpdateResponder(sr.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ServicesUpdateFuture", "Result", sru.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "servicefabric.ServicesUpdateFuture", "Result", sr.Response.Response, "Failure responding to request") } } return @@ -3123,7 +3343,7 @@ type SettingsSectionDescription struct { // non-partitioned service. type SingletonPartitionSchemeDescription struct { // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed', 'PartitionSchemeSingleton', 'PartitionSchemeUniformInt64Range' - PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"` + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"partitionScheme,omitempty"` } // MarshalJSON is the custom marshaler for SingletonPartitionSchemeDescription. @@ -3131,7 +3351,7 @@ func (spsd SingletonPartitionSchemeDescription) MarshalJSON() ([]byte, error) { spsd.PartitionScheme = PartitionSchemeSingleton objectMap := make(map[string]interface{}) if spsd.PartitionScheme != "" { - objectMap["PartitionScheme"] = spsd.PartitionScheme + objectMap["partitionScheme"] = spsd.PartitionScheme } return json.Marshal(objectMap) } @@ -3971,7 +4191,7 @@ type UniformInt64RangePartitionSchemeDescription struct { // should be split between the partition ‘Count’ HighKey *string `json:"HighKey,omitempty"` // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed', 'PartitionSchemeSingleton', 'PartitionSchemeUniformInt64Range' - PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"` + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"partitionScheme,omitempty"` } // MarshalJSON is the custom marshaler for UniformInt64RangePartitionSchemeDescription. @@ -3988,7 +4208,7 @@ func (ui6rpsd UniformInt64RangePartitionSchemeDescription) MarshalJSON() ([]byte objectMap["HighKey"] = ui6rpsd.HighKey } if ui6rpsd.PartitionScheme != "" { - objectMap["PartitionScheme"] = ui6rpsd.PartitionScheme + objectMap["partitionScheme"] = ui6rpsd.PartitionScheme } return json.Marshal(objectMap) } diff --git a/services/servicefabric/mgmt/2019-03-01/servicefabric/operations.go b/services/servicefabric/mgmt/2019-03-01/servicefabric/operations.go index aa4d64183cf9..b73bec1e42c9 100644 --- a/services/servicefabric/mgmt/2019-03-01/servicefabric/operations.go +++ b/services/servicefabric/mgmt/2019-03-01/servicefabric/operations.go @@ -76,7 +76,7 @@ func (client OperationsClient) List(ctx context.Context) (result OperationListRe // ListPreparer prepares the List request. func (client OperationsClient) ListPreparer(ctx context.Context) (*http.Request, error) { - const APIVersion = "" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -92,8 +92,8 @@ func (client OperationsClient) ListPreparer(ctx context.Context) (*http.Request, // ListSender sends the List request. The method will close the // http.Response Body if it receives an error. func (client OperationsClient) ListSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + sd := autorest.GetSendDecorators(req.Context(), autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + return autorest.SendWithSender(client, req, sd...) } // ListResponder handles the response to the List request. The method always diff --git a/services/servicefabric/mgmt/2019-03-01/servicefabric/servicefabricapi/interfaces.go b/services/servicefabric/mgmt/2019-03-01/servicefabric/servicefabricapi/interfaces.go index 2163b5a64f60..c51278701ea2 100644 --- a/services/servicefabric/mgmt/2019-03-01/servicefabric/servicefabricapi/interfaces.go +++ b/services/servicefabric/mgmt/2019-03-01/servicefabric/servicefabricapi/interfaces.go @@ -25,7 +25,7 @@ import ( // ClustersClientAPI contains the set of methods on the ClustersClient type. type ClustersClientAPI interface { - Create(ctx context.Context, resourceGroupName string, clusterName string, parameters servicefabric.Cluster) (result servicefabric.ClustersCreateFuture, err error) + CreateOrUpdate(ctx context.Context, resourceGroupName string, clusterName string, parameters servicefabric.Cluster) (result servicefabric.ClustersCreateOrUpdateFuture, err error) Delete(ctx context.Context, resourceGroupName string, clusterName string) (result autorest.Response, err error) Get(ctx context.Context, resourceGroupName string, clusterName string) (result servicefabric.Cluster, err error) List(ctx context.Context) (result servicefabric.ClusterListResult, err error) @@ -54,7 +54,7 @@ var _ OperationsClientAPI = (*servicefabric.OperationsClient)(nil) // ApplicationTypesClientAPI contains the set of methods on the ApplicationTypesClient type. type ApplicationTypesClientAPI interface { - Create(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, parameters servicefabric.ApplicationTypeResource) (result servicefabric.ApplicationTypeResource, err error) + CreateOrUpdate(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, parameters servicefabric.ApplicationTypeResource) (result servicefabric.ApplicationTypeResource, err error) Delete(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string) (result servicefabric.ApplicationTypesDeleteFuture, err error) Get(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string) (result servicefabric.ApplicationTypeResource, err error) List(ctx context.Context, resourceGroupName string, clusterName string) (result servicefabric.ApplicationTypeResourceList, err error) @@ -64,7 +64,7 @@ var _ ApplicationTypesClientAPI = (*servicefabric.ApplicationTypesClient)(nil) // ApplicationTypeVersionsClientAPI contains the set of methods on the ApplicationTypeVersionsClient type. type ApplicationTypeVersionsClientAPI interface { - Create(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string, parameters servicefabric.ApplicationTypeVersionResource) (result servicefabric.ApplicationTypeVersionsCreateFuture, err error) + CreateOrUpdate(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string, parameters servicefabric.ApplicationTypeVersionResource) (result servicefabric.ApplicationTypeVersionsCreateOrUpdateFuture, err error) Delete(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string) (result servicefabric.ApplicationTypeVersionsDeleteFuture, err error) Get(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string, version string) (result servicefabric.ApplicationTypeVersionResource, err error) List(ctx context.Context, resourceGroupName string, clusterName string, applicationTypeName string) (result servicefabric.ApplicationTypeVersionResourceList, err error) @@ -74,7 +74,7 @@ var _ ApplicationTypeVersionsClientAPI = (*servicefabric.ApplicationTypeVersions // ApplicationsClientAPI contains the set of methods on the ApplicationsClient type. type ApplicationsClientAPI interface { - Create(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, parameters servicefabric.ApplicationResource) (result servicefabric.ApplicationsCreateFuture, err error) + CreateOrUpdate(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, parameters servicefabric.ApplicationResource) (result servicefabric.ApplicationsCreateOrUpdateFuture, err error) Delete(ctx context.Context, resourceGroupName string, clusterName string, applicationName string) (result servicefabric.ApplicationsDeleteFuture, err error) Get(ctx context.Context, resourceGroupName string, clusterName string, applicationName string) (result servicefabric.ApplicationResource, err error) List(ctx context.Context, resourceGroupName string, clusterName string) (result servicefabric.ApplicationResourceList, err error) @@ -85,7 +85,7 @@ var _ ApplicationsClientAPI = (*servicefabric.ApplicationsClient)(nil) // ServicesClientAPI contains the set of methods on the ServicesClient type. type ServicesClientAPI interface { - Create(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string, parameters servicefabric.ServiceResource) (result servicefabric.ServicesCreateFuture, err error) + CreateOrUpdate(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string, parameters servicefabric.ServiceResource) (result servicefabric.ServicesCreateOrUpdateFuture, err error) Delete(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string) (result servicefabric.ServicesDeleteFuture, err error) Get(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string) (result servicefabric.ServiceResource, err error) List(ctx context.Context, resourceGroupName string, clusterName string, applicationName string) (result servicefabric.ServiceResourceList, err error) diff --git a/services/servicefabric/mgmt/2019-03-01/servicefabric/services.go b/services/servicefabric/mgmt/2019-03-01/servicefabric/services.go index 10016d12bd83..1ef4a2539bbd 100644 --- a/services/servicefabric/mgmt/2019-03-01/servicefabric/services.go +++ b/services/servicefabric/mgmt/2019-03-01/servicefabric/services.go @@ -40,16 +40,16 @@ func NewServicesClientWithBaseURI(baseURI string, subscriptionID string) Service return ServicesClient{NewWithBaseURI(baseURI, subscriptionID)} } -// Create create or update a Service Fabric service resource with the specified name. +// CreateOrUpdate create or update a Service Fabric service resource with the specified name. // Parameters: // resourceGroupName - the name of the resource group. // clusterName - the name of the cluster resource. // applicationName - the name of the application resource. // serviceName - the name of the service resource in the format of {applicationName}~{serviceName}. // parameters - the service resource. -func (client ServicesClient) Create(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string, parameters ServiceResource) (result ServicesCreateFuture, err error) { +func (client ServicesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string, parameters ServiceResource) (result ServicesCreateOrUpdateFuture, err error) { if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/ServicesClient.Create") + ctx = tracing.StartSpan(ctx, fqdn+"/ServicesClient.CreateOrUpdate") defer func() { sc := -1 if result.Response() != nil { @@ -58,23 +58,23 @@ func (client ServicesClient) Create(ctx context.Context, resourceGroupName strin tracing.EndSpan(ctx, sc, err) }() } - req, err := client.CreatePreparer(ctx, resourceGroupName, clusterName, applicationName, serviceName, parameters) + req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, clusterName, applicationName, serviceName, parameters) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "Create", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "CreateOrUpdate", nil, "Failure preparing request") return } - result, err = client.CreateSender(req) + result, err = client.CreateOrUpdateSender(req) if err != nil { - err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "Create", result.Response(), "Failure sending request") + err = autorest.NewErrorWithError(err, "servicefabric.ServicesClient", "CreateOrUpdate", result.Response(), "Failure sending request") return } return } -// CreatePreparer prepares the Create request. -func (client ServicesClient) CreatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string, parameters ServiceResource) (*http.Request, error) { +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client ServicesClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, clusterName string, applicationName string, serviceName string, parameters ServiceResource) (*http.Request, error) { pathParameters := map[string]interface{}{ "applicationName": autorest.Encode("path", applicationName), "clusterName": autorest.Encode("path", clusterName), @@ -83,7 +83,7 @@ func (client ServicesClient) CreatePreparer(ctx context.Context, resourceGroupNa "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -98,12 +98,12 @@ func (client ServicesClient) CreatePreparer(ctx context.Context, resourceGroupNa return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// CreateSender sends the Create request. The method will close the +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the // http.Response Body if it receives an error. -func (client ServicesClient) CreateSender(req *http.Request) (future ServicesCreateFuture, err error) { +func (client ServicesClient) CreateOrUpdateSender(req *http.Request) (future ServicesCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) var resp *http.Response - resp, err = autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + resp, err = autorest.SendWithSender(client, req, sd...) if err != nil { return } @@ -111,9 +111,9 @@ func (client ServicesClient) CreateSender(req *http.Request) (future ServicesCre return } -// CreateResponder handles the response to the Create request. The method always +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always // closes the http.Response Body. -func (client ServicesClient) CreateResponder(resp *http.Response) (result ServiceResource, err error) { +func (client ServicesClient) CreateOrUpdateResponder(resp *http.Response) (result ServiceResource, err error) { err = autorest.Respond( resp, client.ByInspecting(), @@ -166,7 +166,7 @@ func (client ServicesClient) DeletePreparer(ctx context.Context, resourceGroupNa "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -182,9 +182,9 @@ func (client ServicesClient) DeletePreparer(ctx context.Context, resourceGroupNa // DeleteSender sends the Delete request. The method will close the // http.Response Body if it receives an error. func (client ServicesClient) DeleteSender(req *http.Request) (future ServicesDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) var resp *http.Response - resp, err = autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + resp, err = autorest.SendWithSender(client, req, sd...) if err != nil { return } @@ -253,7 +253,7 @@ func (client ServicesClient) GetPreparer(ctx context.Context, resourceGroupName "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -269,8 +269,8 @@ func (client ServicesClient) GetPreparer(ctx context.Context, resourceGroupName // GetSender sends the Get request. The method will close the // http.Response Body if it receives an error. func (client ServicesClient) GetSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // GetResponder handles the response to the Get request. The method always @@ -333,7 +333,7 @@ func (client ServicesClient) ListPreparer(ctx context.Context, resourceGroupName "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -349,8 +349,8 @@ func (client ServicesClient) ListPreparer(ctx context.Context, resourceGroupName // ListSender sends the List request. The method will close the // http.Response Body if it receives an error. func (client ServicesClient) ListSender(req *http.Request) (*http.Response, error) { - return autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) } // ListResponder handles the response to the List request. The method always @@ -409,7 +409,7 @@ func (client ServicesClient) UpdatePreparer(ctx context.Context, resourceGroupNa "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2019-03-01-preview" + const APIVersion = "2019-03-01" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -427,9 +427,9 @@ func (client ServicesClient) UpdatePreparer(ctx context.Context, resourceGroupNa // UpdateSender sends the Update request. The method will close the // http.Response Body if it receives an error. func (client ServicesClient) UpdateSender(req *http.Request) (future ServicesUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) var resp *http.Response - resp, err = autorest.SendWithSender(client, req, - azure.DoRetryWithRegistration(client.Client)) + resp, err = autorest.SendWithSender(client, req, sd...) if err != nil { return } @@ -439,7 +439,7 @@ func (client ServicesClient) UpdateSender(req *http.Request) (future ServicesUpd // UpdateResponder handles the response to the Update request. The method always // closes the http.Response Body. -func (client ServicesClient) UpdateResponder(resp *http.Response) (result ServiceResourceUpdate, err error) { +func (client ServicesClient) UpdateResponder(resp *http.Response) (result ServiceResource, err error) { err = autorest.Respond( resp, client.ByInspecting(),