Skip to content

Commit

Permalink
Merge pull request #12785 from terraform-providers/f/signalr-embedded…
Browse files Browse the repository at this point in the history
…-sdk

SignalR: refactoring to use an Embedded SDK
  • Loading branch information
tombuildsstuff committed Aug 4, 2021
2 parents dba1eaa + d9dc0e0 commit 87c7905
Show file tree
Hide file tree
Showing 75 changed files with 3,694 additions and 3,995 deletions.
6 changes: 3 additions & 3 deletions azurerm/internal/services/signalr/client/client.go
@@ -1,16 +1,16 @@
package client

import (
"github.com/Azure/azure-sdk-for-go/services/signalr/mgmt/2020-05-01/signalr"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/common"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/signalr/sdk/signalr"
)

type Client struct {
Client *signalr.Client
Client *signalr.SignalRClient
}

func NewClient(o *common.ClientOptions) *Client {
client := signalr.NewClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId)
client := signalr.NewSignalRClientWithBaseURI(o.ResourceManagerEndpoint)
o.ConfigureClient(&client.Client, o.ResourceManagerAuthorizer)

return &Client{
Expand Down
69 changes: 0 additions & 69 deletions azurerm/internal/services/signalr/parse/service.go

This file was deleted.

112 changes: 0 additions & 112 deletions azurerm/internal/services/signalr/parse/service_test.go

This file was deleted.

3 changes: 0 additions & 3 deletions azurerm/internal/services/signalr/resourceids.go

This file was deleted.

15 changes: 15 additions & 0 deletions azurerm/internal/services/signalr/sdk/signalr/client.go
@@ -0,0 +1,15 @@
package signalr

import "github.com/Azure/go-autorest/autorest"

type SignalRClient struct {
Client autorest.Client
baseUri string
}

func NewSignalRClientWithBaseURI(endpoint string) SignalRClient {
return SignalRClient{
Client: autorest.NewClientWithUserAgent(userAgent()),
baseUri: endpoint,
}
}
70 changes: 70 additions & 0 deletions azurerm/internal/services/signalr/sdk/signalr/constants.go
@@ -0,0 +1,70 @@
package signalr

type ACLAction string

const (
ACLActionAllow ACLAction = "Allow"
ACLActionDeny ACLAction = "Deny"
)

type FeatureFlags string

const (
FeatureFlagsEnableConnectivityLogs FeatureFlags = "EnableConnectivityLogs"
FeatureFlagsEnableMessagingLogs FeatureFlags = "EnableMessagingLogs"
FeatureFlagsServiceMode FeatureFlags = "ServiceMode"
)

type KeyType string

const (
KeyTypePrimary KeyType = "Primary"
KeyTypeSecondary KeyType = "Secondary"
)

type PrivateLinkServiceConnectionStatus string

const (
PrivateLinkServiceConnectionStatusApproved PrivateLinkServiceConnectionStatus = "Approved"
PrivateLinkServiceConnectionStatusDisconnected PrivateLinkServiceConnectionStatus = "Disconnected"
PrivateLinkServiceConnectionStatusPending PrivateLinkServiceConnectionStatus = "Pending"
PrivateLinkServiceConnectionStatusRejected PrivateLinkServiceConnectionStatus = "Rejected"
)

type ProvisioningState string

const (
ProvisioningStateCanceled ProvisioningState = "Canceled"
ProvisioningStateCreating ProvisioningState = "Creating"
ProvisioningStateDeleting ProvisioningState = "Deleting"
ProvisioningStateFailed ProvisioningState = "Failed"
ProvisioningStateMoving ProvisioningState = "Moving"
ProvisioningStateRunning ProvisioningState = "Running"
ProvisioningStateSucceeded ProvisioningState = "Succeeded"
ProvisioningStateUnknown ProvisioningState = "Unknown"
ProvisioningStateUpdating ProvisioningState = "Updating"
)

type ServiceKind string

const (
ServiceKindRawWebSockets ServiceKind = "RawWebSockets"
ServiceKindSignalR ServiceKind = "SignalR"
)

type SignalRRequestType string

const (
SignalRRequestTypeClientConnection SignalRRequestType = "ClientConnection"
SignalRRequestTypeRESTAPI SignalRRequestType = "RESTAPI"
SignalRRequestTypeServerConnection SignalRRequestType = "ServerConnection"
)

type SignalRSkuTier string

const (
SignalRSkuTierBasic SignalRSkuTier = "Basic"
SignalRSkuTierFree SignalRSkuTier = "Free"
SignalRSkuTierPremium SignalRSkuTier = "Premium"
SignalRSkuTierStandard SignalRSkuTier = "Standard"
)
95 changes: 95 additions & 0 deletions azurerm/internal/services/signalr/sdk/signalr/id_location.go
@@ -0,0 +1,95 @@
package signalr

import (
"fmt"
"strings"

"github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids"
)

type LocationId struct {
SubscriptionId string
Name string
}

func NewLocationID(subscriptionId, name string) LocationId {
return LocationId{
SubscriptionId: subscriptionId,
Name: name,
}
}

func (id LocationId) String() string {
segments := []string{
fmt.Sprintf("Name %q", id.Name),
}
segmentsStr := strings.Join(segments, " / ")
return fmt.Sprintf("%s: (%s)", "Location", segmentsStr)
}

func (id LocationId) ID() string {
fmtString := "/subscriptions/%s/providers/Microsoft.SignalRService/locations/%s"
return fmt.Sprintf(fmtString, id.SubscriptionId, id.Name)
}

// ParseLocationID parses a Location ID into an LocationId struct
func ParseLocationID(input string) (*LocationId, error) {
id, err := resourceids.ParseAzureResourceID(input)
if err != nil {
return nil, err
}

resourceId := LocationId{
SubscriptionId: id.SubscriptionID,
}

if resourceId.SubscriptionId == "" {
return nil, fmt.Errorf("ID was missing the 'subscriptions' element")
}

if resourceId.Name, err = id.PopSegment("locations"); err != nil {
return nil, err
}

if err := id.ValidateNoEmptySegments(input); err != nil {
return nil, err
}

return &resourceId, nil
}

// ParseLocationIDInsensitively parses an Location ID into an LocationId struct, insensitively
// This should only be used to parse an ID for rewriting to a consistent casing,
// the ParseLocationID method should be used instead for validation etc.
func ParseLocationIDInsensitively(input string) (*LocationId, error) {
id, err := resourceids.ParseAzureResourceID(input)
if err != nil {
return nil, err
}

resourceId := LocationId{
SubscriptionId: id.SubscriptionID,
}

if resourceId.SubscriptionId == "" {
return nil, fmt.Errorf("ID was missing the 'subscriptions' element")
}

// find the correct casing for the 'locations' segment
locationsKey := "locations"
for key := range id.Path {
if strings.EqualFold(key, locationsKey) {
locationsKey = key
break
}
}
if resourceId.Name, err = id.PopSegment(locationsKey); err != nil {
return nil, err
}

if err := id.ValidateNoEmptySegments(input); err != nil {
return nil, err
}

return &resourceId, nil
}

0 comments on commit 87c7905

Please sign in to comment.