topicArn: validateArn()

in dashboards-notifications/public/pages/CreateChannel/components/SNSSettings.tsx [47:102]


              topicArn: validateArn(props.topicArn),
            });
          }}
        />
      </EuiFormRow>

      {mainStateContext.tooltipSupport ? (
        <>
          <EuiFormRow
            label={
              <span>
                IAM role ARN - <i style={{ fontWeight: 'normal' }}>optional</i>
              </span>
            }
          >
            <>
              <EuiText size="xs" color="subdued">
                IAM role ARN can only be used for clusters running on AWS
                network.
              </EuiText>
              <EuiSpacer size="s" />
              <EuiFieldText
                data-test-subj="sns-settings-role-arn-input"
                placeholder="ARN key"
                value={props.roleArn}
                onChange={(e) => props.setRoleArn(e.target.value)}
              />
            </>
          </EuiFormRow>
          <EuiSpacer />
          <EuiCallOut
            title="Using Amazon SNS outside of AWS"
            style={{ maxWidth: 720 }}
          >
            <div>
              If your cluster is not running on AWS, you must configure aws
              credentials on your OpenSearch cluster.{' '}
              <EuiLink href={DOCUMENTATION_LINK} target="_blank" external>
                Learn more
              </EuiLink>
            </div>
          </EuiCallOut>
        </>
      ) : (
        <EuiFormRow
          label="IAM role ARN"
          error={context.inputErrors.roleArn.join(' ')}
          isInvalid={context.inputErrors.roleArn.length > 0}
        >
          <EuiFieldText
            placeholder="ARN key"
            data-test-subj="sns-settings-role-arn-input"
            value={props.roleArn}
            onChange={(e) => props.setRoleArn(e.target.value)}
            isInvalid={context.inputErrors.roleArn.length > 0}
            onBlur={() => {