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 }