diff --git a/profiles/preview/preview/hanaonazure/mgmt/hanaonazure/models.go b/profiles/preview/preview/hanaonazure/mgmt/hanaonazure/models.go index ec581469d41c..e53621bc833c 100644 --- a/profiles/preview/preview/hanaonazure/mgmt/hanaonazure/models.go +++ b/profiles/preview/preview/hanaonazure/mgmt/hanaonazure/models.go @@ -50,24 +50,41 @@ const ( type HanaInstanceSizeNamesEnum = original.HanaInstanceSizeNamesEnum const ( - S144 HanaInstanceSizeNamesEnum = original.S144 - S144m HanaInstanceSizeNamesEnum = original.S144m - S192 HanaInstanceSizeNamesEnum = original.S192 - S192m HanaInstanceSizeNamesEnum = original.S192m - S192xm HanaInstanceSizeNamesEnum = original.S192xm - S384 HanaInstanceSizeNamesEnum = original.S384 - S384m HanaInstanceSizeNamesEnum = original.S384m - S384xm HanaInstanceSizeNamesEnum = original.S384xm - S384xxm HanaInstanceSizeNamesEnum = original.S384xxm - S576m HanaInstanceSizeNamesEnum = original.S576m - S576xm HanaInstanceSizeNamesEnum = original.S576xm - S72 HanaInstanceSizeNamesEnum = original.S72 - S72m HanaInstanceSizeNamesEnum = original.S72m - S768 HanaInstanceSizeNamesEnum = original.S768 - S768m HanaInstanceSizeNamesEnum = original.S768m - S768xm HanaInstanceSizeNamesEnum = original.S768xm - S96 HanaInstanceSizeNamesEnum = original.S96 - S960m HanaInstanceSizeNamesEnum = original.S960m + S144 HanaInstanceSizeNamesEnum = original.S144 + S144m HanaInstanceSizeNamesEnum = original.S144m + S192 HanaInstanceSizeNamesEnum = original.S192 + S192m HanaInstanceSizeNamesEnum = original.S192m + S192xm HanaInstanceSizeNamesEnum = original.S192xm + S224m HanaInstanceSizeNamesEnum = original.S224m + S224o HanaInstanceSizeNamesEnum = original.S224o + S224om HanaInstanceSizeNamesEnum = original.S224om + S224oxm HanaInstanceSizeNamesEnum = original.S224oxm + S224oxxm HanaInstanceSizeNamesEnum = original.S224oxxm + S384 HanaInstanceSizeNamesEnum = original.S384 + S384m HanaInstanceSizeNamesEnum = original.S384m + S384xm HanaInstanceSizeNamesEnum = original.S384xm + S384xxm HanaInstanceSizeNamesEnum = original.S384xxm + S576m HanaInstanceSizeNamesEnum = original.S576m + S576xm HanaInstanceSizeNamesEnum = original.S576xm + S72 HanaInstanceSizeNamesEnum = original.S72 + S72m HanaInstanceSizeNamesEnum = original.S72m + S768 HanaInstanceSizeNamesEnum = original.S768 + S768m HanaInstanceSizeNamesEnum = original.S768m + S768xm HanaInstanceSizeNamesEnum = original.S768xm + S96 HanaInstanceSizeNamesEnum = original.S96 + S960m HanaInstanceSizeNamesEnum = original.S960m +) + +type HanaProvisioningStatesEnum = original.HanaProvisioningStatesEnum + +const ( + Accepted HanaProvisioningStatesEnum = original.Accepted + Creating HanaProvisioningStatesEnum = original.Creating + Deleting HanaProvisioningStatesEnum = original.Deleting + Failed HanaProvisioningStatesEnum = original.Failed + Migrating HanaProvisioningStatesEnum = original.Migrating + Succeeded HanaProvisioningStatesEnum = original.Succeeded + Updating HanaProvisioningStatesEnum = original.Updating ) type BaseClient = original.BaseClient @@ -77,6 +94,7 @@ type ErrorResponse = original.ErrorResponse type HanaInstance = original.HanaInstance type HanaInstanceProperties = original.HanaInstanceProperties type HanaInstancesClient = original.HanaInstancesClient +type HanaInstancesCreateFuture = original.HanaInstancesCreateFuture type HanaInstancesEnableMonitoringFuture = original.HanaInstancesEnableMonitoringFuture type HanaInstancesListResult = original.HanaInstancesListResult type HanaInstancesListResultIterator = original.HanaInstancesListResultIterator @@ -127,6 +145,9 @@ func PossibleHanaInstancePowerStateEnumValues() []HanaInstancePowerStateEnum { func PossibleHanaInstanceSizeNamesEnumValues() []HanaInstanceSizeNamesEnum { return original.PossibleHanaInstanceSizeNamesEnumValues() } +func PossibleHanaProvisioningStatesEnumValues() []HanaProvisioningStatesEnum { + return original.PossibleHanaProvisioningStatesEnumValues() +} func UserAgent() string { return original.UserAgent() + " profiles/preview" } diff --git a/services/preview/hanaonazure/mgmt/2017-11-03-preview/hanaonazure/hanainstances.go b/services/preview/hanaonazure/mgmt/2017-11-03-preview/hanaonazure/hanainstances.go index b54b850efbdb..14461003797d 100644 --- a/services/preview/hanaonazure/mgmt/2017-11-03-preview/hanaonazure/hanainstances.go +++ b/services/preview/hanaonazure/mgmt/2017-11-03-preview/hanaonazure/hanainstances.go @@ -40,6 +40,86 @@ func NewHanaInstancesClientWithBaseURI(baseURI string, subscriptionID string) Ha return HanaInstancesClient{NewWithBaseURI(baseURI, subscriptionID)} } +// Create creates a SAP HANA instance for the specified subscription, resource group, and instance name. +// Parameters: +// resourceGroupName - name of the resource group. +// hanaInstanceName - name of the SAP HANA on Azure instance. +// hanaInstanceParameter - request body representing a HanaInstance +func (client HanaInstancesClient) Create(ctx context.Context, resourceGroupName string, hanaInstanceName string, hanaInstanceParameter HanaInstance) (result HanaInstancesCreateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/HanaInstancesClient.Create") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CreatePreparer(ctx, resourceGroupName, hanaInstanceName, hanaInstanceParameter) + if err != nil { + err = autorest.NewErrorWithError(err, "hanaonazure.HanaInstancesClient", "Create", nil, "Failure preparing request") + return + } + + result, err = client.CreateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "hanaonazure.HanaInstancesClient", "Create", result.Response(), "Failure sending request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client HanaInstancesClient) CreatePreparer(ctx context.Context, resourceGroupName string, hanaInstanceName string, hanaInstanceParameter HanaInstance) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "hanaInstanceName": autorest.Encode("path", hanaInstanceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2017-11-03-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.HanaOnAzure/hanaInstances/{hanaInstanceName}", pathParameters), + autorest.WithJSON(hanaInstanceParameter), + 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 HanaInstancesClient) CreateSender(req *http.Request) (future HanaInstancesCreateFuture, err error) { + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) + 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 HanaInstancesClient) CreateResponder(resp *http.Response) (result HanaInstance, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + // EnableMonitoring the operation to add a monitor to an SAP HANA instance. // Parameters: // resourceGroupName - name of the resource group. diff --git a/services/preview/hanaonazure/mgmt/2017-11-03-preview/hanaonazure/hanaonazureapi/interfaces.go b/services/preview/hanaonazure/mgmt/2017-11-03-preview/hanaonazure/hanaonazureapi/interfaces.go index 07c1e2912968..8b7fa9be8af6 100644 --- a/services/preview/hanaonazure/mgmt/2017-11-03-preview/hanaonazure/hanaonazureapi/interfaces.go +++ b/services/preview/hanaonazure/mgmt/2017-11-03-preview/hanaonazure/hanaonazureapi/interfaces.go @@ -31,6 +31,7 @@ var _ OperationsClientAPI = (*hanaonazure.OperationsClient)(nil) // HanaInstancesClientAPI contains the set of methods on the HanaInstancesClient type. type HanaInstancesClientAPI interface { + Create(ctx context.Context, resourceGroupName string, hanaInstanceName string, hanaInstanceParameter hanaonazure.HanaInstance) (result hanaonazure.HanaInstancesCreateFuture, err error) EnableMonitoring(ctx context.Context, resourceGroupName string, hanaInstanceName string, monitoringParameter hanaonazure.MonitoringDetails) (result hanaonazure.HanaInstancesEnableMonitoringFuture, err error) Get(ctx context.Context, resourceGroupName string, hanaInstanceName string) (result hanaonazure.HanaInstance, err error) List(ctx context.Context) (result hanaonazure.HanaInstancesListResultPage, err error) diff --git a/services/preview/hanaonazure/mgmt/2017-11-03-preview/hanaonazure/models.go b/services/preview/hanaonazure/mgmt/2017-11-03-preview/hanaonazure/models.go index 7bb7ee28a67e..88f117076916 100644 --- a/services/preview/hanaonazure/mgmt/2017-11-03-preview/hanaonazure/models.go +++ b/services/preview/hanaonazure/mgmt/2017-11-03-preview/hanaonazure/models.go @@ -82,6 +82,16 @@ const ( S192m HanaInstanceSizeNamesEnum = "S192m" // S192xm ... S192xm HanaInstanceSizeNamesEnum = "S192xm" + // S224m ... + S224m HanaInstanceSizeNamesEnum = "S224m" + // S224o ... + S224o HanaInstanceSizeNamesEnum = "S224o" + // S224om ... + S224om HanaInstanceSizeNamesEnum = "S224om" + // S224oxm ... + S224oxm HanaInstanceSizeNamesEnum = "S224oxm" + // S224oxxm ... + S224oxxm HanaInstanceSizeNamesEnum = "S224oxxm" // S384 ... S384 HanaInstanceSizeNamesEnum = "S384" // S384m ... @@ -112,7 +122,32 @@ const ( // PossibleHanaInstanceSizeNamesEnumValues returns an array of possible values for the HanaInstanceSizeNamesEnum const type. func PossibleHanaInstanceSizeNamesEnumValues() []HanaInstanceSizeNamesEnum { - return []HanaInstanceSizeNamesEnum{S144, S144m, S192, S192m, S192xm, S384, S384m, S384xm, S384xxm, S576m, S576xm, S72, S72m, S768, S768m, S768xm, S96, S960m} + return []HanaInstanceSizeNamesEnum{S144, S144m, S192, S192m, S192xm, S224m, S224o, S224om, S224oxm, S224oxxm, S384, S384m, S384xm, S384xxm, S576m, S576xm, S72, S72m, S768, S768m, S768xm, S96, S960m} +} + +// HanaProvisioningStatesEnum enumerates the values for hana provisioning states enum. +type HanaProvisioningStatesEnum string + +const ( + // Accepted ... + Accepted HanaProvisioningStatesEnum = "Accepted" + // Creating ... + Creating HanaProvisioningStatesEnum = "Creating" + // Deleting ... + Deleting HanaProvisioningStatesEnum = "Deleting" + // Failed ... + Failed HanaProvisioningStatesEnum = "Failed" + // Migrating ... + Migrating HanaProvisioningStatesEnum = "Migrating" + // Succeeded ... + Succeeded HanaProvisioningStatesEnum = "Succeeded" + // Updating ... + Updating HanaProvisioningStatesEnum = "Updating" +) + +// PossibleHanaProvisioningStatesEnumValues returns an array of possible values for the HanaProvisioningStatesEnum const type. +func PossibleHanaProvisioningStatesEnumValues() []HanaProvisioningStatesEnum { + return []HanaProvisioningStatesEnum{Accepted, Creating, Deleting, Failed, Migrating, Succeeded, Updating} } // Disk specifies the disk information fo the HANA instance @@ -260,6 +295,39 @@ type HanaInstanceProperties struct { ProximityPlacementGroup *string `json:"proximityPlacementGroup,omitempty"` // HwRevision - READ-ONLY; Hardware revision of a HANA instance HwRevision *string `json:"hwRevision,omitempty"` + // PartnerNodeID - READ-ONLY; ARM ID of another HanaInstance that will share a network with this HanaInstance + PartnerNodeID *string `json:"partnerNodeId,omitempty"` + // ProvisioningState - READ-ONLY; State of provisioning of the HanaInstance. Possible values include: 'Accepted', 'Creating', 'Updating', 'Failed', 'Succeeded', 'Deleting', 'Migrating' + ProvisioningState HanaProvisioningStatesEnum `json:"provisioningState,omitempty"` +} + +// HanaInstancesCreateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type HanaInstancesCreateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *HanaInstancesCreateFuture) Result(client HanaInstancesClient) (hi HanaInstance, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "hanaonazure.HanaInstancesCreateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("hanaonazure.HanaInstancesCreateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if hi.Response.Response, err = future.GetResult(sender); err == nil && hi.Response.Response.StatusCode != http.StatusNoContent { + hi, err = client.CreateResponder(hi.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "hanaonazure.HanaInstancesCreateFuture", "Result", hi.Response.Response, "Failure responding to request") + } + } + return } // HanaInstancesEnableMonitoringFuture an abstraction for monitoring and retrieving the results of a @@ -458,7 +526,7 @@ func (future *HanaInstancesRestartFuture) Result(client HanaInstancesClient) (ar type HardwareProfile struct { // HardwareType - READ-ONLY; Name of the hardware type (vendor and/or their product name). Possible values include: 'CiscoUCS', 'HPE' HardwareType HanaHardwareTypeNamesEnum `json:"hardwareType,omitempty"` - // HanaInstanceSize - READ-ONLY; Specifies the HANA instance SKU. Possible values include: 'S72m', 'S144m', 'S72', 'S144', 'S192', 'S192m', 'S192xm', 'S96', 'S384', 'S384m', 'S384xm', 'S384xxm', 'S576m', 'S576xm', 'S768', 'S768m', 'S768xm', 'S960m' + // HanaInstanceSize - READ-ONLY; Specifies the HANA instance SKU. Possible values include: 'S72m', 'S144m', 'S72', 'S144', 'S192', 'S192m', 'S192xm', 'S96', 'S384', 'S384m', 'S384xm', 'S384xxm', 'S576m', 'S576xm', 'S768', 'S768m', 'S768xm', 'S960m', 'S224o', 'S224m', 'S224om', 'S224oxm', 'S224oxxm' HanaInstanceSize HanaInstanceSizeNamesEnum `json:"hanaInstanceSize,omitempty"` } @@ -515,6 +583,8 @@ type OSProfile struct { OsType *string `json:"osType,omitempty"` // Version - READ-ONLY; Specifies version of operating system. Version *string `json:"version,omitempty"` + // SSHPublicKey - READ-ONLY; Specifies the SSH public key used to access the operating system. + SSHPublicKey *string `json:"sshPublicKey,omitempty"` } // Resource the resource model definition.