Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | 219x 219x 219x 219x 219x 219x 219x 219x 219x 2x 2x 2x 2x 2x 2x 1x 1x 2x 219x | /*
* Copyright 2021 Harness Inc. All rights reserved.
* Use of this source code is governed by the PolyForm Free Trial 1.0.0 license
* that can be found in the licenses directory at the root of this repository, also available at
* https://polyformproject.org/wp-content/uploads/2020/05/PolyForm-Free-Trial-1.0.0.txt.
*/
import React from 'react'
import type { FormikProps } from 'formik'
import { FormInput, Text, SelectOption, Icon } from '@wings-software/uicore'
import { Color, FontVariation } from '@harness/design-system'
import { useStrings } from 'framework/strings'
import { useListAwsRegions } from 'services/portal'
import { useToaster } from '@common/exports'
import { AwsKmsConfigFormData, CredTypeValues } from '@connectors/interfaces/ConnectorInterface'
import SecretInput from '@secrets/components/SecretInput/SecretInput'
interface AwsKmsAccessKeyFormProps {
formik: FormikProps<AwsKmsConfigFormData>
accountId: string
}
const AwsKmsAccessKeyForm: React.FC<AwsKmsAccessKeyFormProps> = ({ formik, accountId }) => {
const { getString } = useStrings()
const [regions, setRegions] = React.useState<SelectOption[]>([])
const { showError } = useToaster()
const {
data: regionData,
loading,
error
} = useListAwsRegions({
queryParams: {
accountId
}
})
Iif (error) {
showError(error.message)
}
React.useEffect(() => {
const regionValues = (regionData?.resource || []).map(region => ({
value: region.value,
label: region.name
}))
setRegions(regionValues as SelectOption[])
}, [regionData?.resource])
return (
<>
<Text font={{ variation: FontVariation.LEAD }} margin={{ bottom: 'medium', top: 'xlarge' }} color={Color.BLACK}>
{getString('authentication')}
</Text>
{formik.values?.credType === CredTypeValues.ManualConfig && (
<>
<SecretInput
name="accessKey"
label={getString('connectors.awsKms.accessKeyLabel')}
connectorTypeContext={'AwsKms'}
/>
<SecretInput
name="secretKey"
label={getString('connectors.awsKms.secretKeyLabel')}
connectorTypeContext={'AwsKms'}
/>
</>
)}
<SecretInput name="awsArn" label={getString('connectors.awsKms.arnLabel')} connectorTypeContext={'AwsKms'} />
{loading ? (
<Icon margin="medium" name="spinner" size={15} color={Color.BLUE_500} />
) : (
<FormInput.Select name="region" items={regions} label={getString('regionLabel')} />
)}
</>
)
}
export default AwsKmsAccessKeyForm
|