...

Text file src/github.com/Azure/go-autorest/CHANGELOG.md

Documentation: github.com/Azure/go-autorest

     1# CHANGELOG
     2
     3## v14.2.0
     4
     5- Added package comment to make `github.com/Azure/go-autorest` importable.
     6
     7## v14.1.1
     8
     9### Bug Fixes
    10
    11- Change `x-ms-authorization-auxiliary` header value separator to comma.
    12
    13## v14.1.0
    14
    15### New Features
    16
    17- Added `azure.SetEnvironment()` that will update the global environments map with the specified values.
    18
    19## v14.0.1
    20
    21### Bug Fixes
    22
    23- Fix race condition when refreshing token.
    24- Fixed some tests to work with Go 1.14.
    25
    26## v14.0.0
    27
    28## Breaking Changes
    29
    30- By default, the `DoRetryForStatusCodes` functions will no longer infinitely retry a request when the response returns an HTTP status code of 429 (StatusTooManyRequests).  To opt in to the old behavior set `autorest.Count429AsRetry` to `false`.
    31
    32## New Features
    33
    34- Variable `autorest.Max429Delay` can be used to control the maximum delay between retries when a 429 is received with no `Retry-After` header.  The default is zero which means there is no cap.
    35
    36## v13.4.0
    37
    38## New Features
    39
    40- Added field `SendDecorators` to the `Client` type.  This can be used to specify a custom chain of SendDecorators per client.
    41- Added method `Client.Send()` which includes logic for selecting the preferred chain of SendDecorators.
    42
    43## v13.3.3
    44
    45### Bug Fixes
    46
    47- Fixed connection leak when retrying requests.
    48- Enabled exponential back-off with a 2-minute cap when retrying on 429.
    49- Fixed some cases where errors were inadvertently dropped.
    50
    51## v13.3.2
    52
    53### Bug Fixes
    54
    55- Updated `autorest.AsStringSlice()` to convert slice elements to their string representation.
    56
    57## v13.3.1
    58
    59- Updated external dependencies.
    60
    61### Bug Fixes
    62
    63## v13.3.0
    64
    65### New Features
    66
    67- Added support for shared key and shared access signature token authorization.
    68  - `autorest.NewSharedKeyAuthorizer()` and dependent types.
    69  - `autorest.NewSASTokenAuthorizer()` and dependent types.
    70- Added `ServicePrincipalToken.SetCustomRefresh()` so a custom refresh function can be invoked when a token has expired.
    71
    72### Bug Fixes
    73
    74- Fixed `cli.AccessTokensPath()` to respect `AZURE_CONFIG_DIR` when set.
    75- Support parsing error messages in XML responses.
    76
    77## v13.2.0
    78
    79### New Features
    80
    81- Added the following functions to replace their versions that don't take a context.
    82  - `adal.InitiateDeviceAuthWithContext()`
    83  - `adal.CheckForUserCompletionWithContext()`
    84  - `adal.WaitForUserCompletionWithContext()`
    85
    86## v13.1.0
    87
    88### New Features
    89
    90- Added support for MSI authentication on Azure App Service and Azure Functions.
    91
    92## v13.0.2
    93
    94### Bug Fixes
    95
    96- Always retry a request even if the sender returns a non-nil error.
    97
    98## v13.0.1
    99
   100## Bug Fixes
   101
   102- Fixed `autorest.WithQueryParameters()` so that it properly encodes multi-value query parameters.
   103
   104## v13.0.0
   105
   106## Breaking Changes
   107
   108The `tracing` package has been rewritten to provide a common interface for consumers to wire in the tracing package of their choice.
   109What this means is that by default no tracing provider will be compiled into your program and setting the `AZURE_SDK_TRACING_ENABLED`
   110environment variable will have no effect.  To enable this previous behavior you must now add the following import to your source file.
   111```go
   112  import _ "github.com/Azure/go-autorest/tracing/opencensus"
   113```
   114The APIs required by autorest-generated code have remained but some APIs have been removed and new ones added.
   115The following APIs and variables have been removed (the majority of them were moved to the `opencensus` package).
   116- tracing.Transport
   117- tracing.Enable()
   118- tracing.EnableWithAIForwarding()
   119- tracing.Disable()
   120
   121The following APIs and types have been added
   122- tracing.Tracer
   123- tracing.Register()
   124
   125To hook up a tracer simply call `tracing.Register()` passing in a type that satisfies the `tracing.Tracer` interface.
   126
   127## v12.4.3
   128
   129### Bug Fixes
   130
   131- `autorest.MultiTenantServicePrincipalTokenAuthorizer` will now properly add its auxiliary bearer tokens.
   132
   133## v12.4.2
   134
   135### Bug Fixes
   136
   137- Improvements to the fixes made in v12.4.1.
   138  - Remove `override` stanza from Gopkg.toml and `replace` directive from go.mod as they don't apply when being consumed as a dependency.
   139  - Switched to latest version of `ocagent` that still depends on protobuf v1.2.
   140  - Add indirect dependencies to the `required` clause with matching `constraint` stanzas so that `dep` dependencies match go.sum.
   141
   142## v12.4.1
   143
   144### Bug Fixes
   145
   146- Updated OpenCensus and OCAgent versions to versions that don't depend on v1.3+ of protobuf as it was breaking kubernetes.
   147- Pinned opencensus-proto to a version that's compatible with our versions of OpenCensus and OCAgent.
   148
   149## v12.4.0
   150
   151### New Features
   152
   153- Added `autorest.WithPrepareDecorators` and `autorest.GetPrepareDecorators` for adding and retrieving a custom chain of PrepareDecorators to the provided context.
   154
   155## v12.3.0
   156
   157### New Features
   158
   159- Support for multi-tenant via x-ms-authorization-auxiliary header has been added for client credentials with
   160  secret scenario; this basically bundles multiple OAuthConfig and ServicePrincipalToken types into corresponding
   161  MultiTenant* types along with a new authorizer that adds the primary and auxiliary token headers to the reqest.
   162  The authenticaion helpers have been updated to support this scenario; if environment var AZURE_AUXILIARY_TENANT_IDS
   163  is set with a semicolon delimited list of tenants the multi-tenant codepath will kick in to create the appropriate authorizer.
   164  See `adal.NewMultiTenantOAuthConfig`, `adal.NewMultiTenantServicePrincipalToken` and `autorest.NewMultiTenantServicePrincipalTokenAuthorizer`
   165  along with their supporting types and methods.
   166- Added `autorest.WithSendDecorators` and `autorest.GetSendDecorators` for adding and retrieving a custom chain of SendDecorators to the provided context.
   167- Added `autorest.DoRetryForStatusCodesWithCap` and `autorest.DelayForBackoffWithCap` to enforce an upper bound on the duration between retries.
   168
   169## v12.2.0
   170
   171### New Features
   172
   173- Added `autorest.WithXML`, `autorest.AsMerge`, `autorest.WithBytes` preparer decorators.
   174- Added `autorest.ByUnmarshallingBytes` response decorator.
   175- Added `Response.IsHTTPStatus` and `Response.HasHTTPStatus` helper methods for inspecting HTTP status code in `autorest.Response` types.
   176
   177### Bug Fixes
   178
   179- `autorest.DelayWithRetryAfter` now supports HTTP-Dates in the `Retry-After` header and is not limited to just 429 status codes.
   180
   181## v12.1.0
   182
   183### New Features
   184
   185- Added `to.ByteSlicePtr()`.
   186- Added blob/queue storage resource ID to `azure.ResourceIdentifier`.
   187
   188## v12.0.0
   189
   190### Breaking Changes
   191
   192In preparation for modules the following deprecated content has been removed.
   193
   194  - async.NewFuture()
   195  - async.Future.Done()
   196  - async.Future.WaitForCompletion()
   197  - async.DoPollForAsynchronous()
   198  - The `utils` package
   199  - validation.NewErrorWithValidationError()
   200  - The `version` package
   201
   202## v11.9.0
   203
   204### New Features
   205
   206- Add `ResourceIdentifiers` field to `azure.Environment` containing resource IDs for public and sovereign clouds.
   207
   208## v11.8.0
   209
   210### New Features
   211
   212- Added `autorest.NewClientWithOptions()` to support endpoints that require free renegotiation.
   213
   214## v11.7.1
   215
   216### Bug Fixes
   217
   218- Fix missing support for http(s) proxy when using the default sender.
   219
   220## v11.7.0
   221
   222### New Features
   223
   224- Added methods to obtain a ServicePrincipalToken on the various credential configuration types in the `auth` package.
   225
   226## v11.6.1
   227
   228### Bug Fixes
   229
   230- Fix ACR DNS endpoint for government clouds.
   231- Add Cosmos DB DNS endpoints.
   232- Update dependencies to resolve build breaks in OpenCensus.
   233
   234## v11.6.0
   235
   236### New Features
   237
   238- Added type `autorest.BasicAuthorizer` to support Basic authentication.
   239
   240## v11.5.2
   241
   242### Bug Fixes
   243
   244- Fixed `GetTokenFromCLI` did not work with zsh.
   245
   246## v11.5.1
   247
   248### Bug Fixes
   249
   250- In `Client.sender()` set the minimum TLS version on HTTP clients to 1.2.
   251
   252## v11.5.0
   253
   254### New Features
   255
   256- The `auth` package has been refactored so that the environment and file settings are now available.
   257- The methods used in `auth.NewAuthorizerFromEnvironment()` are now exported so that custom authorization chains can be created.
   258- Added support for certificate authorization for file-based config.
   259
   260## v11.4.0
   261
   262### New Features
   263
   264- Added `adal.AddToUserAgent()` so callers can append custom data to the user-agent header used for ADAL requests.
   265- Exported `adal.UserAgent()` for parity with `autorest.Client`.
   266
   267## v11.3.2
   268
   269### Bug Fixes
   270
   271- In `Future.WaitForCompletionRef()` if the provided context has a deadline don't add the default deadline.
   272
   273## v11.3.1
   274
   275### Bug Fixes
   276
   277- For an LRO PUT operation the final GET URL was incorrectly set to the Location polling header in some cases.
   278
   279## v11.3.0
   280
   281### New Features
   282
   283- Added method `ServicePrincipalToken()` to `DeviceFlowConfig` type.
   284
   285## v11.2.8
   286
   287### Bug Fixes
   288
   289- Deprecate content in the `version` package. The functionality has been superseded by content in the `autorest` package.
   290
   291## v11.2.7
   292
   293### Bug Fixes
   294
   295- Fix environment variable name for enabling tracing from `AZURE_SDK_TRACING_ENABELD` to `AZURE_SDK_TRACING_ENABLED`.
   296  Note that for backward compatibility reasons, both will work until the next major version release of the package.
   297
   298## v11.2.6
   299
   300### Bug Fixes
   301
   302- If zero bytes are read from a polling response body don't attempt to unmarshal them.
   303
   304## v11.2.5
   305
   306### Bug Fixes
   307
   308- Removed race condition in `autorest.DoRetryForStatusCodes`.
   309
   310## v11.2.4
   311
   312### Bug Fixes
   313
   314- Function `cli.ProfilePath` now respects environment `AZURE_CONFIG_DIR` if available.
   315
   316## v11.2.1
   317
   318NOTE: Versions of Go prior to 1.10 have been removed from CI as they no
   319longer work with golint.
   320
   321### Bug Fixes
   322
   323- Method `MSIConfig.Authorizer` now supports user-assigned identities.
   324- The adal package now reports its own user-agent string.
   325
   326## v11.2.0
   327
   328### New Features
   329
   330- Added `tracing` package that enables instrumentation of HTTP and API calls.
   331  Setting the env variable `AZURE_SDK_TRACING_ENABLED` or calling `tracing.Enable`
   332  will start instrumenting the code for metrics and traces.
   333  Additionally, setting the env variable `OCAGENT_TRACE_EXPORTER_ENDPOINT` or
   334  calling `tracing.EnableWithAIForwarding` will start the instrumentation and connect to an
   335  App Insights Local Forwarder that is needs to be running. Note that if the
   336  AI Local Forwarder is not running tracking will still be enabled.
   337  By default, instrumentation is disabled. Once enabled, instrumentation can also
   338  be programatically disabled by calling `Disable`.
   339- Added `DoneWithContext` call for checking LRO status. `Done` has been deprecated.
   340
   341### Bug Fixes
   342
   343- Don't use the initial request's context for LRO polling.
   344- Don't override the `refreshLock` and the `http.Client` when unmarshalling `ServicePrincipalToken` if
   345  it is already set.
   346
   347## v11.1.1
   348
   349### Bug Fixes
   350
   351- When creating a future always include the polling tracker even if there's a failure; this allows the underlying response to be obtained by the caller.
   352
   353## v11.1.0
   354
   355### New Features
   356
   357- Added `auth.NewAuthorizerFromCLI` to create an authorizer configured from the Azure 2.0 CLI.
   358- Added `adal.NewOAuthConfigWithAPIVersion` to create an OAuthConfig with the specified API version.
   359
   360## v11.0.1
   361
   362### New Features
   363
   364- Added `x5c` header to client assertion for certificate Issuer+Subject Name authentication.
   365
   366## v11.0.0
   367
   368### Breaking Changes
   369
   370- To handle differences between ADFS and AAD the following fields have had their types changed from `string` to `json.Number`
   371  - ExpiresIn
   372  - ExpiresOn
   373  - NotBefore
   374
   375### New Features
   376
   377- Added `auth.NewAuthorizerFromFileWithResource` to create an authorizer from the config file with the specified resource.
   378- Setting a client's `PollingDuration` to zero will use the provided context to control a LRO's polling duration.
   379
   380## v10.15.5
   381
   382### Bug Fixes
   383
   384- In `DoRetryForStatusCodes`, if a request's context is cancelled return the last response.
   385
   386## v10.15.4
   387
   388### Bug Fixes
   389
   390- If a polling operation returns a failure status code return the associated error.
   391
   392## v10.15.3
   393
   394### Bug Fixes
   395
   396- Initialize the polling URL and method for an LRO tracker on each iteration, favoring the Azure-AsyncOperation header.
   397
   398## v10.15.2
   399
   400### Bug Fixes
   401
   402- Use fmt.Fprint when printing request/response so that any escape sequences aren't treated as format specifiers.
   403
   404## v10.15.1
   405
   406### Bug Fixes
   407
   408- If an LRO API returns a `Failed` provisioning state in the initial response return an error at that point so the caller doesn't have to poll.
   409- For failed LROs without an OData v4 error include the response body in the error's `AdditionalInfo` field to aid in diagnosing the failure.
   410
   411## v10.15.0
   412
   413### New Features
   414
   415- Add initial support for request/response logging via setting environment variables.
   416  Setting `AZURE_GO_SDK_LOG_LEVEL` to `LogInfo` will log request/response
   417  without their bodies. To include the bodies set the log level to `LogDebug`.
   418  By default the logger writes to strerr, however it can also write to stdout or a file
   419  if specified in `AZURE_GO_SDK_LOG_FILE`. Note that if the specified file
   420  already exists it will be truncated.
   421  IMPORTANT: by default the logger will redact the Authorization and Ocp-Apim-Subscription-Key
   422  headers. Any other secrets will _not_ be redacted.
   423
   424## v10.14.0
   425
   426### New Features
   427
   428- Added package version that contains version constants and user-agent data.
   429
   430### Bug Fixes
   431
   432- Add the user-agent to token requests.
   433
   434## v10.13.0
   435
   436- Added support for additionalInfo in ServiceError type.
   437
   438## v10.12.0
   439
   440### New Features
   441
   442- Added field ServicePrincipalToken.MaxMSIRefreshAttempts to configure the maximun number of attempts to refresh an MSI token.
   443
   444## v10.11.4
   445
   446### Bug Fixes
   447
   448- If an LRO returns http.StatusOK on the initial response with no async headers return the response body from Future.GetResult().
   449- If there is no "final GET URL" return an error from Future.GetResult().
   450
   451## v10.11.3
   452
   453### Bug Fixes
   454
   455- In IMDS retry logic, if we don't receive a response don't retry.
   456  - Renamed the retry function so it's clear it's meant for IMDS only.
   457- For error response bodies that aren't OData-v4 compliant stick the raw JSON in the ServiceError.Details field so the information isn't lost.
   458  - Also add the raw HTTP response to the DetailedResponse.
   459- Removed superfluous wrapping of response error in azure.DoRetryWithRegistration().
   460
   461## v10.11.2
   462
   463### Bug Fixes
   464
   465- Validation for integers handles int and int64 types.
   466
   467## v10.11.1
   468
   469### Bug Fixes
   470
   471- Adding User information to authorization config as parsed from CLI cache.
   472
   473## v10.11.0
   474
   475### New Features
   476
   477- Added NewServicePrincipalTokenFromManualTokenSecret for creating a new SPT using a manual token and secret
   478- Added method ServicePrincipalToken.MarshalTokenJSON() to marshall the inner Token
   479
   480## v10.10.0
   481
   482### New Features
   483
   484- Most ServicePrincipalTokens can now be marshalled/unmarshall to/from JSON (ServicePrincipalCertificateSecret and ServicePrincipalMSISecret are not supported).
   485- Added method ServicePrincipalToken.SetRefreshCallbacks().
   486
   487## v10.9.2
   488
   489### Bug Fixes
   490
   491- Refreshing a refresh token obtained from a web app authorization code now works.
   492
   493## v10.9.1
   494
   495### Bug Fixes
   496
   497- The retry logic for MSI token requests now uses exponential backoff per the guidelines.
   498- IsTemporaryNetworkError() will return true for errors that don't implement the net.Error interface.
   499
   500## v10.9.0
   501
   502### Deprecated Methods
   503
   504|                 Old Method |          New Method           |
   505| -------------------------: | :---------------------------: |
   506|          azure.NewFuture() | azure.NewFutureFromResponse() |
   507| Future.WaitForCompletion() | Future.WaitForCompletionRef() |
   508
   509### New Features
   510
   511- Added azure.NewFutureFromResponse() for creating a Future from the initial response from an async operation.
   512- Added Future.GetResult() for making the final GET call to retrieve the result from an async operation.
   513
   514### Bug Fixes
   515
   516- Some futures failed to return their results, this should now be fixed.
   517
   518## v10.8.2
   519
   520### Bug Fixes
   521
   522- Add nil-gaurd to token retry logic.
   523
   524## v10.8.1
   525
   526### Bug Fixes
   527
   528- Return a TokenRefreshError if the sender fails on the initial request.
   529- Don't retry on non-temporary network errors.
   530
   531## v10.8.0
   532
   533- Added NewAuthorizerFromEnvironmentWithResource() helper function.
   534
   535## v10.7.0
   536
   537### New Features
   538
   539- Added \*WithContext() methods to ADAL token refresh operations.
   540
   541## v10.6.2
   542
   543- Fixed a bug on device authentication.
   544
   545## v10.6.1
   546
   547- Added retries to MSI token get request.
   548
   549## v10.6.0
   550
   551- Changed MSI token implementation. Now, the token endpoint is the IMDS endpoint.
   552
   553## v10.5.1
   554
   555### Bug Fixes
   556
   557- `DeviceFlowConfig.Authorizer()` now prints the device code message when running `go test`. `-v` flag is required.
   558
   559## v10.5.0
   560
   561### New Features
   562
   563- Added NewPollingRequestWithContext() for use with polling asynchronous operations.
   564
   565### Bug Fixes
   566
   567- Make retry logic use the request's context instead of the deprecated Cancel object.
   568
   569## v10.4.0
   570
   571### New Features
   572
   573- Added helper for parsing Azure Resource ID's.
   574- Added deprecation message to utils.GetEnvVarOrExit()
   575
   576## v10.3.0
   577
   578### New Features
   579
   580- Added EnvironmentFromURL method to load an Environment from a given URL. This function is particularly useful in the private and hybrid Cloud model, where one may define their own endpoints
   581- Added TokenAudience endpoint to Environment structure. This is useful in private and hybrid cloud models where TokenAudience endpoint can be different from ResourceManagerEndpoint
   582
   583## v10.2.0
   584
   585### New Features
   586
   587- Added endpoints for batch management.
   588
   589## v10.1.3
   590
   591### Bug Fixes
   592
   593- In Client.Do() invoke WithInspection() last so that it will inspect WithAuthorization().
   594- Fixed authorization methods to invoke p.Prepare() first, aligning them with the other preparers.
   595
   596## v10.1.2
   597
   598- Corrected comment for auth.NewAuthorizerFromFile() function.
   599
   600## v10.1.1
   601
   602- Updated version number to match current release.
   603
   604## v10.1.0
   605
   606### New Features
   607
   608- Expose the polling URL for futures.
   609
   610### Bug Fixes
   611
   612- Add validation.NewErrorWithValidationError back to prevent breaking changes (it is deprecated).
   613
   614## v10.0.0
   615
   616### New Features
   617
   618- Added target and innererror fields to ServiceError to comply with OData v4 spec.
   619- The Done() method on futures will now return a ServiceError object when available (it used to return a partial value of such errors).
   620- Added helper methods for obtaining authorizers.
   621- Expose the polling URL for futures.
   622
   623### Bug Fixes
   624
   625- Switched from glide to dep for dependency management.
   626- Fixed unmarshaling of ServiceError for JSON bodies that don't conform to the OData spec.
   627- Fixed a race condition in token refresh.
   628
   629### Breaking Changes
   630
   631- The ServiceError.Details field type has been changed to match the OData v4 spec.
   632- Go v1.7 has been dropped from CI.
   633- API parameter validation failures will now return a unique error type validation.Error.
   634- The adal.Token type has been decomposed from adal.ServicePrincipalToken (this was necessary in order to fix the token refresh race).
   635
   636## v9.10.0
   637
   638- Fix the Service Bus suffix in Azure public env
   639- Add Service Bus Endpoint (AAD ResourceURI) for use in [Azure Service Bus RBAC Preview](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-role-based-access-control)
   640
   641## v9.9.0
   642
   643### New Features
   644
   645- Added EventGridKeyAuthorizer for key authorization with event grid topics.
   646
   647### Bug Fixes
   648
   649- Fixed race condition when auto-refreshing service principal tokens.
   650
   651## v9.8.1
   652
   653### Bug Fixes
   654
   655- Added http.StatusNoContent (204) to the list of expected status codes for long-running operations.
   656- Updated runtime version info so it's current.
   657
   658## v9.8.0
   659
   660### New Features
   661
   662- Added type azure.AsyncOpIncompleteError to be returned from a future's Result() method when the operation has not completed.
   663
   664## v9.7.1
   665
   666### Bug Fixes
   667
   668- Use correct AAD and Graph endpoints for US Gov environment.
   669
   670## v9.7.0
   671
   672### New Features
   673
   674- Added support for application/octet-stream MIME types.
   675
   676## v9.6.1
   677
   678### Bug Fixes
   679
   680- Ensure Authorization header is added to request when polling for registration status.
   681
   682## v9.6.0
   683
   684### New Features
   685
   686- Added support for acquiring tokens via MSI with a user assigned identity.
   687
   688## v9.5.3
   689
   690### Bug Fixes
   691
   692- Don't remove encoding of existing URL Query parameters when calling autorest.WithQueryParameters.
   693- Set correct Content Type when using autorest.WithFormData.
   694
   695## v9.5.2
   696
   697### Bug Fixes
   698
   699- Check for nil \*http.Response before dereferencing it.
   700
   701## v9.5.1
   702
   703### Bug Fixes
   704
   705- Don't count http.StatusTooManyRequests (429) against the retry cap.
   706- Use retry logic when SkipResourceProviderRegistration is set to true.
   707
   708## v9.5.0
   709
   710### New Features
   711
   712- Added support for username + password, API key, authoriazation code and cognitive services authentication.
   713- Added field SkipResourceProviderRegistration to clients to provide a way to skip auto-registration of RPs.
   714- Added utility function AsStringSlice() to convert its parameters to a string slice.
   715
   716### Bug Fixes
   717
   718- When checking for authentication failures look at the error type not the status code as it could vary.
   719
   720## v9.4.2
   721
   722### Bug Fixes
   723
   724- Validate parameters when creating credentials.
   725- Don't retry requests if the returned status is a 401 (http.StatusUnauthorized) as it will never succeed.
   726
   727## v9.4.1
   728
   729### Bug Fixes
   730
   731- Update the AccessTokensPath() to read access tokens path through AZURE_ACCESS_TOKEN_FILE. If this
   732  environment variable is not set, it will fall back to use default path set by Azure CLI.
   733- Use case-insensitive string comparison for polling states.
   734
   735## v9.4.0
   736
   737### New Features
   738
   739- Added WaitForCompletion() to Future as a default polling implementation.
   740
   741### Bug Fixes
   742
   743- Method Future.Done() shouldn't update polling status for unexpected HTTP status codes.
   744
   745## v9.3.1
   746
   747### Bug Fixes
   748
   749- DoRetryForStatusCodes will retry if sender.Do returns a non-nil error.
   750
   751## v9.3.0
   752
   753### New Features
   754
   755- Added PollingMethod() to Future so callers know what kind of polling mechanism is used.
   756- Added azure.ChangeToGet() which transforms an http.Request into a GET (to be used with LROs).
   757
   758## v9.2.0
   759
   760### New Features
   761
   762- Added support for custom Azure Stack endpoints.
   763- Added type azure.Future used to track the status of long-running operations.
   764
   765### Bug Fixes
   766
   767- Preserve the original error in DoRetryWithRegistration when registration fails.
   768
   769## v9.1.1
   770
   771- Fixes a bug regarding the cookie jar on `autorest.Client.Sender`.
   772
   773## v9.1.0
   774
   775### New Features
   776
   777- In cases where there is a non-empty error from the service, attempt to unmarshal it instead of uniformly calling it an "Unknown" error.
   778- Support for loading Azure CLI Authentication files.
   779- Automatically register your subscription with the Azure Resource Provider if it hadn't been previously.
   780
   781### Bug Fixes
   782
   783- RetriableRequest can now tolerate a ReadSeekable body being read but not reset.
   784- Adding missing Apache Headers
   785
   786## v9.0.0
   787
   788> **IMPORTANT:** This release was intially labeled incorrectly as `v8.4.0`. From the time it was released, it should have been marked `v9.0.0` because it contains breaking changes to the MSI packages. We appologize for any inconvenience this causes.
   789
   790Adding MSI Endpoint Support and CLI token rehydration.
   791
   792## v8.3.1
   793
   794Pick up bug fix in adal for MSI support.
   795
   796## v8.3.0
   797
   798Updates to Error string formats for clarity. Also, adding a copy of the http.Response to errors for an improved debugging experience.
   799
   800## v8.2.0
   801
   802### New Features
   803
   804- Add support for bearer authentication callbacks
   805- Support 429 response codes that include "Retry-After" header
   806- Support validation constraint "Pattern" for map keys
   807
   808### Bug Fixes
   809
   810- Make RetriableRequest work with multiple versions of Go
   811
   812## v8.1.1
   813
   814Updates the RetriableRequest to take advantage of GetBody() added in Go 1.8.
   815
   816## v8.1.0
   817
   818Adds RetriableRequest type for more efficient handling of retrying HTTP requests.
   819
   820## v8.0.0
   821
   822ADAL refactored into its own package.
   823Support for UNIX time.
   824
   825## v7.3.1
   826
   827- Version Testing now removed from production bits that are shipped with the library.
   828
   829## v7.3.0
   830
   831- Exposing new `RespondDecorator`, `ByDiscardingBody`. This allows operations
   832  to acknowledge that they do not need either the entire or a trailing portion
   833  of accepts response body. In doing so, Go's http library can reuse HTTP
   834  connections more readily.
   835- Adding `PrepareDecorator` to target custom BaseURLs.
   836- Adding ACR suffix to public cloud environment.
   837- Updating Glide dependencies.
   838
   839## v7.2.5
   840
   841- Fixed the Active Directory endpoint for the China cloud.
   842- Removes UTF-8 BOM if present in response payload.
   843- Added telemetry.
   844
   845## v7.2.3
   846
   847- Fixing bug in calls to `DelayForBackoff` that caused doubling of delay
   848  duration.
   849
   850## v7.2.2
   851
   852- autorest/azure: added ASM and ARM VM DNS suffixes.
   853
   854## v7.2.1
   855
   856- fixed parsing of UTC times that are not RFC3339 conformant.
   857
   858## v7.2.0
   859
   860- autorest/validation: Reformat validation error for better error message.
   861
   862## v7.1.0
   863
   864- preparer: Added support for multipart formdata - WithMultiPartFormdata()
   865- preparer: Added support for sending file in request body - WithFile
   866- client: Added RetryDuration parameter.
   867- autorest/validation: new package for validation code for Azure Go SDK.
   868
   869## v7.0.7
   870
   871- Add trailing / to endpoint
   872- azure: add EnvironmentFromName
   873
   874## v7.0.6
   875
   876- Add retry logic for 408, 500, 502, 503 and 504 status codes.
   877- Change url path and query encoding logic.
   878- Fix DelayForBackoff for proper exponential delay.
   879- Add CookieJar in Client.
   880
   881## v7.0.5
   882
   883- Add check to start polling only when status is in [200,201,202].
   884- Refactoring for unchecked errors.
   885- azure/persist changes.
   886- Fix 'file in use' issue in renewing token in deviceflow.
   887- Store header RetryAfter for subsequent requests in polling.
   888- Add attribute details in service error.
   889
   890## v7.0.4
   891
   892- Better error messages for long running operation failures
   893
   894## v7.0.3
   895
   896- Corrected DoPollForAsynchronous to properly handle the initial response
   897
   898## v7.0.2
   899
   900- Corrected DoPollForAsynchronous to continue using the polling method first discovered
   901
   902## v7.0.1
   903
   904- Fixed empty JSON input error in ByUnmarshallingJSON
   905- Fixed polling support for GET calls
   906- Changed format name from TimeRfc1123 to TimeRFC1123
   907
   908## v7.0.0
   909
   910- Added ByCopying responder with supporting TeeReadCloser
   911- Rewrote Azure asynchronous handling
   912- Reverted to only unmarshalling JSON
   913- Corrected handling of RFC3339 time strings and added support for Rfc1123 time format
   914
   915The `json.Decoder` does not catch bad data as thoroughly as `json.Unmarshal`. Since
   916`encoding/json` successfully deserializes all core types, and extended types normally provide
   917their custom JSON serialization handlers, the code has been reverted back to using
   918`json.Unmarshal`. The original change to use `json.Decode` was made to reduce duplicate
   919code; there is no loss of function, and there is a gain in accuracy, by reverting.
   920
   921Additionally, Azure services indicate requests to be polled by multiple means. The existing code
   922only checked for one of those (that is, the presence of the `Azure-AsyncOperation` header).
   923The new code correctly covers all cases and aligns with the other Azure SDKs.
   924
   925## v6.1.0
   926
   927- Introduced `date.ByUnmarshallingJSONDate` and `date.ByUnmarshallingJSONTime` to enable JSON encoded values.
   928
   929## v6.0.0
   930
   931- Completely reworked the handling of polled and asynchronous requests
   932- Removed unnecessary routines
   933- Reworked `mocks.Sender` to replay a series of `http.Response` objects
   934- Added `PrepareDecorators` for primitive types (e.g., bool, int32)
   935
   936Handling polled and asynchronous requests is no longer part of `Client#Send`. Instead new
   937`SendDecorators` implement different styles of polled behavior. See`autorest.DoPollForStatusCodes`
   938and `azure.DoPollForAsynchronous` for examples.
   939
   940## v5.0.0
   941
   942- Added new RespondDecorators unmarshalling primitive types
   943- Corrected application of inspection and authorization PrependDecorators
   944
   945## v4.0.0
   946
   947- Added support for Azure long-running operations.
   948- Added cancelation support to all decorators and functions that may delay.
   949- Breaking: `DelayForBackoff` now accepts a channel, which may be nil.
   950
   951## v3.1.0
   952
   953- Add support for OAuth Device Flow authorization.
   954- Add support for ServicePrincipalTokens that are backed by an existing token, rather than other secret material.
   955- Add helpers for persisting and restoring Tokens.
   956- Increased code coverage in the github.com/Azure/autorest/azure package
   957
   958## v3.0.0
   959
   960- Breaking: `NewErrorWithError` no longer takes `statusCode int`.
   961- Breaking: `NewErrorWithStatusCode` is replaced with `NewErrorWithResponse`.
   962- Breaking: `Client#Send()` no longer takes `codes ...int` argument.
   963- Add: XML unmarshaling support with `ByUnmarshallingXML()`
   964- Stopped vending dependencies locally and switched to [Glide](https://github.com/Masterminds/glide).
   965  Applications using this library should either use Glide or vendor dependencies locally some other way.
   966- Add: `azure.WithErrorUnlessStatusCode()` decorator to handle Azure errors.
   967- Fix: use `net/http.DefaultClient` as base client.
   968- Fix: Missing inspection for polling responses added.
   969- Add: CopyAndDecode helpers.
   970- Improved `./autorest/to` with `[]string` helpers.
   971- Removed golint suppressions in .travis.yml.
   972
   973## v2.1.0
   974
   975- Added `StatusCode` to `Error` for more easily obtaining the HTTP Reponse StatusCode (if any)
   976
   977## v2.0.0
   978
   979- Changed `to.StringMapPtr` method signature to return a pointer
   980- Changed `ServicePrincipalCertificateSecret` and `NewServicePrincipalTokenFromCertificate` to support generic certificate and private keys
   981
   982## v1.0.0
   983
   984- Added Logging inspectors to trace http.Request / Response
   985- Added support for User-Agent header
   986- Changed WithHeader PrepareDecorator to use set vs. add
   987- Added JSON to error when unmarshalling fails
   988- Added Client#Send method
   989- Corrected case of "Azure" in package paths
   990- Added "to" helpers, Azure helpers, and improved ease-of-use
   991- Corrected golint issues
   992
   993## v1.0.1
   994
   995- Added CHANGELOG.md
   996
   997## v1.1.0
   998
   999- Added mechanism to retrieve a ServicePrincipalToken using a certificate-signed JWT
  1000- Added an example of creating a certificate-based ServicePrincipal and retrieving an OAuth token using the certificate
  1001
  1002## v1.1.1
  1003
  1004- Introduce godeps and vendor dependencies introduced in v1.1.1

View as plain text