github.com/kaleido-io/firefly@v0.0.0-20210622132723-8b4b6aacb971/internal/restclient/config.go (about)

     1  // Copyright © 2021 Kaleido, Inc.
     2  //
     3  // SPDX-License-Identifier: Apache-2.0
     4  //
     5  // Licensed under the Apache License, Version 2.0 (the "License");
     6  // you may not use this file except in compliance with the License.
     7  // You may obtain a copy of the License at
     8  //
     9  //     http://www.apache.org/licenses/LICENSE-2.0
    10  //
    11  // Unless required by applicable law or agreed to in writing, software
    12  // distributed under the License is distributed on an "AS IS" BASIS,
    13  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  // See the License for the specific language governing permissions and
    15  // limitations under the License.
    16  
    17  package restclient
    18  
    19  import "github.com/kaleido-io/firefly/internal/config"
    20  
    21  const (
    22  	defaultRetryEnabled     = false
    23  	defaultRetryCount       = 5
    24  	defaultRetryWaitTime    = "250ms"
    25  	defaultRetryMaxWaitTime = "30s"
    26  	defaultRequestTimeout   = "30s"
    27  )
    28  
    29  const (
    30  	// HTTPConfigURL is the url to connect to for this HTTP configuration
    31  	HTTPConfigURL = "url"
    32  	// HTTPConfigHeaders adds custom headers to the requests
    33  	HTTPConfigHeaders = "headers"
    34  	// HTTPConfigAuthUsername HTTPS Basic Auth configuration - username
    35  	HTTPConfigAuthUsername = "auth.username"
    36  	// HTTPConfigAuthPassword HTTPS Basic Auth configuration - secret / password
    37  	HTTPConfigAuthPassword = "auth.password"
    38  	// HTTPConfigRetryEnabled whether retry is enabled on the actions performed over this HTTP request (does not disable retry at higher layers)
    39  	HTTPConfigRetryEnabled = "retry.enabled"
    40  	// HTTPConfigRetryCount the maximum number of retries
    41  	HTTPConfigRetryCount = "retry.count"
    42  	// HTTPConfigRetryInitDelay the initial retry delay
    43  	HTTPConfigRetryInitDelay = "retry.initWaitTime"
    44  	// HTTPConfigRetryMaxDelay the maximum retry delay
    45  	HTTPConfigRetryMaxDelay = "retry.maxWaitTime"
    46  	// HTTPConfigRequestTimeout the request timeout
    47  	HTTPConfigRequestTimeout = "requestTimeout"
    48  
    49  	// HTTPCustomClient - unit test only - allows injection of a custom HTTP client to resty
    50  	HTTPCustomClient = "customClient"
    51  )
    52  
    53  func InitPrefix(prefix config.Prefix) {
    54  	prefix.AddKnownKey(HTTPConfigURL)
    55  	prefix.AddKnownKey(HTTPConfigHeaders)
    56  	prefix.AddKnownKey(HTTPConfigAuthUsername)
    57  	prefix.AddKnownKey(HTTPConfigAuthPassword)
    58  	prefix.AddKnownKey(HTTPConfigRetryEnabled, defaultRetryEnabled)
    59  	prefix.AddKnownKey(HTTPConfigRetryCount, defaultRetryCount)
    60  	prefix.AddKnownKey(HTTPConfigRetryInitDelay, defaultRetryWaitTime)
    61  	prefix.AddKnownKey(HTTPConfigRetryMaxDelay, defaultRetryMaxWaitTime)
    62  	prefix.AddKnownKey(HTTPConfigRequestTimeout, defaultRequestTimeout)
    63  
    64  	prefix.AddKnownKey(HTTPCustomClient)
    65  }