Azure SDK for Go (April 2022)
The Azure SDK team is pleased to announce our April 2022 client library releases.
15 packages released this month.
Beta Packages (15)
-
Core
-
Identity
-
Key Vault - Certificates
-
Key Vault - Keys
-
Key Vault - Secrets
-
Messaging Internal
-
Resource Management - Cognitive Services
-
Resource Management - Datafactory
-
Resource Management - Media Services
-
Resource Management - Mobilenetwork
-
Resource Management - MySQL Flexible Servers
-
Resource Management - Resources
-
Resource Management - Signalr
-
Service Bus
-
Tables
Release highlights
Core 0.23.0 Changelog
Features Added
- Added
runtime.Pager[T any]
andruntime.Poller[T any]
supporting types for central, generic, implementations. - Added
cloud
package with a new API for cloud configuration - Added
FinalStateVia
field toruntime.NewPollerOptions[T any]
type.
Breaking Changes
- Removed the
Poller
type-alias to the internal poller implementation. - Added
Ptr[T any]
andSliceOfPtrs[T any]
in theto
package and removed all non-generic implementations. NullValue
andIsNullValue
now take a generic type parameter instead of an interface func parameter.- Replaced
arm.Endpoint
withcloud
API - Removed the
endpoint
parameter fromNewRPRegistrationPolicy()
arm/runtime.NewPipeline()
and.NewRPRegistrationPolicy()
now return anerror
- Refactored
NewPoller
andNewPollerFromResumeToken
funcs inarm/runtime
andruntime
packages. - Removed the
pollerID
parameter as it’s no longer required. - Created optional parameter structs and moved optional parameters into them.
- Changed
FinalStateVia
field to aconst
type.
Identity 0.14.0 Changelog
Breaking Changes
- This module now requires Go 1.18
- Removed
AuthorityHost
. Credentials are now configured for sovereign or private clouds with the API inazcore/cloud
, for example: ```go // before opts := azidentity.ClientSecretCredentialOptions{AuthorityHost: azidentity.AzureGovernment} cred, err := azidentity.NewClientSecretCredential(tenantID, clientID, secret, &opts)
// after import “github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud”
opts := azidentity.ClientSecretCredentialOptions{} opts.Cloud = cloud.AzureGovernment cred, err := azidentity.NewClientSecretCredential(tenantID, clientID, secret, &opts)
### Key Vault - Certificates 0.3.0 [Changelog](https://github.com/Azure/azure-sdk-for-go/tree/sdk/keyvault/azcertificates/v0.3.0/sdk/keyvault/azcertificates/CHANGELOG.md)
#### Features Added
* Added PossibleValues functions for `CertificateKeyUsage`, `CertificateKeyType`, `CertificateKeyCurveName`, and `CertificatePolicyAction` constants.
* Added the `ResumeToken` method on pollers for resuming operations later
* Added the `ResumeToken` field to the options structs of `Begin` methods for resuming operations
* Added the `Name *string` field to `Certificate`, `CertificateItem`, `DeletedCertificate`, `DeletedCertificateItem`
#### Breaking Changes
* Requires Go 1.18
* Fixed a misspelling of `CerificateKeyUsage`, changed to `CertificateKeyUsage`
* Removed all `ToPtr` methods from constants
* Renamed `CertificateOperation` to `Operation`
* Renamed `Operation.Csr` to `Operation.CSR`
* Renamed `KeyVaultCertificateWithPolicy` to `CertificateWithPolicy`
* Abbreviated `EmailAddress` to `Email`
* Changed `Upns` to `UserPrincipalNames`
* Removed the `Trigger` struct and elevated it to the `LifetimeAction`
* Renamed `DeletedDate` to `DeletedOn` and `Expires` to `ExpiresOn`
### Key Vault - Keys 0.5.0 [Changelog](https://github.com/Azure/azure-sdk-for-go/tree/sdk/keyvault/azkeys/v0.5.0/sdk/keyvault/azkeys/CHANGELOG.md)
#### Features Added
* Added the Name property on `Key`
#### Breaking Changes
* Requires go 1.18
* `ListPropertiesOfDeletedKeysPager` has `More() bool` and `NextPage(context.Context) (ListPropertiesOfDeletedKeysPage, error)` for paging over deleted keys.
* `ListPropertiesOfKeyVersionsPager` has `More() bool` and `NextPage(context.Context) (ListPropertiesOfKeyVersionsPage, error)` for paging over deleted keys.
* Removing `RawResponse *http.Response` from `crypto` response types
### Key Vault - Secrets 0.7.0 [Changelog](https://github.com/Azure/azure-sdk-for-go/tree/sdk/keyvault/azsecrets/v0.7.0/sdk/keyvault/azsecrets/CHANGELOG.md)
#### Features Added
* Added `PossibleDeletionRecoveryLevelValues` to iterate over all valid `DeletionRecoveryLevel` values
* Implemented generic pagers from `runtime.Pager` for all List operations
* Added `Name *string` to `DeletedSecret`, `Properties`, `Secret`, `SecretItem`, and `SecretItem`
* Added `Client.VaultURL` to determine the vault URL for debugging
* Adding `ResumeToken` method to pollers for resuming polling at a later date by using the added `ResumeToken` optional parameter on client polling methods
#### Breaking Changes
* Requires a minimum version of go 1.18
* Removed `RawResponse` from pollers
* Removed `DeletionRecoveryLevel`
* Polling operations return a Poller struct directly instead of a Response envelope
* Removed `ToPtr` methods
* `Client.UpdateSecretProperties` takes a `Secret`
* Renamed `Client.ListSecrets` to `Client.ListPropertiesOfSecrets`
* Renamed `Client.ListSecretVersions` to `Client.ListPropertiesOfSecretVersions`
* Renamed `DeletedDate` to `DeletedOn` and `Managed` to `IsManaged`
* Moved `ContentType`, `Tags`, `KeyID`, and `IsManaged` to `Properties`
### Messaging Internal 0.1.0 [Changelog](https://github.com/Azure/azure-sdk-for-go/tree/sdk/messaging/internal/v0.1.0/sdk/messaging/internal/CHANGELOG.md)
- Internal package, only for support of azservicebus.
### Resource Management - Cognitive Services 0.4.0 [Changelog](https://github.com/Azure/azure-sdk-for-go/tree/sdk/resourcemanager/cognitiveservices/armcognitiveservices/v0.4.0/sdk/resourcemanager/cognitiveservices/armcognitiveservices/CHANGELOG.md)
### Resource Management - Datafactory 0.3.0 [Changelog](https://github.com/Azure/azure-sdk-for-go/tree/sdk/resourcemanager/datafactory/armdatafactory/v0.3.0/sdk/resourcemanager/datafactory/armdatafactory/CHANGELOG.md)
### Resource Management - Media Services 0.4.0 [Changelog](https://github.com/Azure/azure-sdk-for-go/tree/sdk/resourcemanager/mediaservices/armmediaservices/v0.4.0/sdk/resourcemanager/mediaservices/armmediaservices/CHANGELOG.md)
### Resource Management - Mobilenetwork 0.2.0 [Changelog](https://github.com/Azure/azure-sdk-for-go/tree/sdk/resourcemanager/mobilenetwork/armmobilenetwork/v0.2.0/sdk/resourcemanager/mobilenetwork/armmobilenetwork/CHANGELOG.md)
### Resource Management - MySQL Flexible Servers 0.4.0 [Changelog](https://github.com/Azure/azure-sdk-for-go/tree/sdk/resourcemanager/mysql/armmysqlflexibleservers/v0.4.0/sdk/resourcemanager/mysql/armmysqlflexibleservers/CHANGELOG.md)
### Resource Management - Resources 0.4.0 [Changelog](https://github.com/Azure/azure-sdk-for-go/tree/sdk/resourcemanager/resources/armresources/v0.4.0/sdk/resourcemanager/resources/armresources/CHANGELOG.md)
### Resource Management - Signalr 0.3.0 [Changelog](https://github.com/Azure/azure-sdk-for-go/tree/sdk/resourcemanager/signalr/armsignalr/v0.3.0/sdk/resourcemanager/signalr/armsignalr/CHANGELOG.md)
### Service Bus 0.4.0 [Changelog](https://github.com/Azure/azure-sdk-for-go/tree/sdk/messaging/azservicebus/v0.4.0/sdk/messaging/azservicebus/CHANGELOG.md)
#### Bugs Fixed
- Fixed bug where message batch size calculation was inaccurate, resulting in batches that were too large to be sent. (#17318)
- Fixing an issue with an entity not being found leading to a longer timeout than needed. (#17279)
- Fixed the RPCLink so it does better handling of connection/link failures. (#17389)
- Fixed issue where a message lock expiring would cause unnecessary retries. These retries could cause message settlement calls (ex: Receiver.CompleteMessage)
to appear to hang. (#17382)
- Fixed issue where a cancellation on ReceiveMessages() would work, but wouldn't return the proper cancellation error. (#17422)
#### Features Added
- Support for using a SharedAccessSignature in a connection string. Ex: `Endpoint=sb://<sb>.servicebus.windows.net;SharedAccessSignature=SharedAccessSignature sr=<sb>.servicebus.windows.net&sig=<base64-sig>&se=<expiry>&skn=<keyname>` (#17314)
#### Breaking Changes
- This module now requires Go 1.18
- Multiple functions have had `options` parameters added.
- `SessionReceiver.RenewMessageLock` has been removed - it isn't used for sessions. SessionReceivers should use `SessionReceiver.RenewSessionLock`.
- The `admin.Client` type has been changed to conform with the latest Azure Go SDK guidelines. As part of this:
- Embedded `*Result` structs in `admin.Client`'s APIs have been removed. Inner *Properties values have been hoisted up to the `*Response` instead.
- `.Response` fields have been removed for successful results. These will be added back using a different pattern in the next release.
- Fields that were of type `time.Duration` have been changed to `*string`, where the value of the string is an ISO8601 timestamp.
Affected fields from Queues, Topics and Subscriptions: AutoDeleteOnIdle, DefaultMessageTimeToLive, DuplicateDetectionHistoryTimeWindow, LockDuration.
- Properties that were passed as a parameter to CreateQueue, CreateTopic or CreateSubscription are now in the `options` parameter (as they were optional):
Previously:
```go
// older code
adminClient.CreateQueue(context.Background(), queueName, &queueProperties, nil)
And now:
// new code
adminClient.CreateQueue(context.Background(), queueName, &admin.CreateQueueOptions{
Properties: queueProperties,
})
- Pagers have been changed to use the new generics-based
runtime.Pager
:
Previously:
// older code
for queuePager.NextPage(context.TODO()) {
for _, queue := range queuePager.PageResponse().Items {
fmt.Printf("Queue name: %s, max size in MB: %d\n", queue.QueueName, *queue.MaxSizeInMegabytes)
}
}
if err := queuePager.Err(); err != nil {
panic(err)
}
And now:
// new code
for queuePager.More() {
page, err := queuePager.NextPage(context.TODO())
if err != nil {
panic(err)
}
for _, queue := range page.Queues {
fmt.Printf("Queue name: %s, max size in MB: %d\n", queue.QueueName, *queue.MaxSizeInMegabytes)
}
}
Tables 0.7.0 Changelog
Breaking Changes
- This module now requires Go 1.18
- Removed the
ODataID
,ODataEditLink
, andODataType
onTableProperties
- Removed
ODataMetadata
onListTablesPageResponse
- Removed
ResponsePreference
onAddEntityOptions
- Renamed
ListEntitiesOptions.PartitionKey
toListEntitiesOptions.NextPartitionKey
. - Renamed
ListEntitiesOptionsRowKey
toListEntitiesOptions.NextRowKey
- Renamed
Client.Create
toClient.CreateTable
- Renamed
ListEntitiesPageResponse
toListEntitiesResponse
- Removed the
Entity
prefix onEntityUpdateModeMerge
andEntityUpdateModeReplace
- Renamed
Client.InsertEntity
toClient.UpsertEntity
- Removed the
Continuation
prefix fromContinuationNextPartitionKey
,ContinuationNextRowKey
, andContinuationNextTable
- Removed the
ResponseFormat
type - Renamed
Client.List
toClient.ListEntities
- Renamed
Client.GetTableSASToken
toClient.GetTableSASURL
andServiceClient.GetAccountSASToken
toServiceClient.GetAccountSASURL
ServiceClient.GetProperties
returns aServiceProperties
struct which can be used on theServiceClient.SetProperties
- Removed the
Type
suffix fromGeoReplicationStatusType
ServiceClient.CreateTable
returns a response struct with the name of the table created, not aClient
SASSignatureValues.NewSASQueryParameters
is nowSASSignatureValues.Sign
and returns an encoded SAS
Features Added
- Added the
NextTableName
continuation token option toListTablesOptions
- Added the
TableName
property toCreateTableResponse
Need help
- For reference documentation visit the Azure SDK for Go documentation.
- For tutorials, samples, quick starts and other documentation, visit the Azure SDK for Go repository.
- File an issue via Github Issues.
Latest Releases
View all the latest versions of go packages here.
Installation Instructions
To use the latest GA and beta libraries use the go get
command to add the package to a go.mod file. If your project does not use Go modules, refer to the Go documentation for information about specifying dependencies.
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/azcore@v0.23.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/azidentity@v0.14.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/data/aztables@v0.7.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/keyvault/azcertificates@v0.3.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/keyvault/azkeys@v0.5.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/keyvault/azsecrets@v0.7.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/messaging/azservicebus@v0.4.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/messaging/internal@v0.1.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/resourcemanager/cognitiveservices/armcognitiveservices@v0.4.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/resourcemanager/datafactory/armdatafactory@v0.3.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/resourcemanager/mediaservices/armmediaservices@v0.4.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/resourcemanager/mobilenetwork/armmobilenetwork@v0.2.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/resourcemanager/mysql/armmysqlflexibleservers@v0.4.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/resourcemanager/resources/armresources@v0.4.0
go get -u github.com/Azure/azure-sdk-for-go/sdk/sdk/resourcemanager/signalr/armsignalr@v0.3.0
Feedback
If you have a bug or feature request for one of the libraries, please post an issue to GitHub.