{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.VoiceId.StartFraudsterRegistrationJob -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Starts a new batch fraudster registration job using provided details. module Amazonka.VoiceId.StartFraudsterRegistrationJob ( -- * Creating a Request StartFraudsterRegistrationJob (..), newStartFraudsterRegistrationJob, -- * Request Lenses startFraudsterRegistrationJob_clientToken, startFraudsterRegistrationJob_jobName, startFraudsterRegistrationJob_registrationConfig, startFraudsterRegistrationJob_dataAccessRoleArn, startFraudsterRegistrationJob_domainId, startFraudsterRegistrationJob_inputDataConfig, startFraudsterRegistrationJob_outputDataConfig, -- * Destructuring the Response StartFraudsterRegistrationJobResponse (..), newStartFraudsterRegistrationJobResponse, -- * Response Lenses startFraudsterRegistrationJobResponse_job, startFraudsterRegistrationJobResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response import Amazonka.VoiceId.Types -- | /See:/ 'newStartFraudsterRegistrationJob' smart constructor. data StartFraudsterRegistrationJob = StartFraudsterRegistrationJob' { -- | The idempotency token for starting a new fraudster registration job. If -- not provided, Amazon Web Services SDK populates this field. clientToken :: Prelude.Maybe Prelude.Text, -- | The name of the new fraudster registration job. jobName :: Prelude.Maybe (Data.Sensitive Prelude.Text), -- | The registration config containing details such as the action to take -- when a duplicate fraudster is detected, and the similarity threshold to -- use for detecting a duplicate fraudster. registrationConfig :: Prelude.Maybe RegistrationConfig, -- | The IAM role Amazon Resource Name (ARN) that grants Voice ID permissions -- to access customer\'s buckets to read the input manifest file and write -- the Job output file. Refer to the -- -- documentation for the permissions needed in this role. dataAccessRoleArn :: Prelude.Text, -- | The identifier of the domain containing the fraudster registration job -- and in which the fraudsters are registered. domainId :: Prelude.Text, -- | The input data config containing an S3 URI for the input manifest file -- that contains the list of fraudster registration requests. inputDataConfig :: InputDataConfig, -- | The output data config containing the S3 location where Voice ID writes -- the job output file; you must also include a KMS key ID to encrypt the -- file. outputDataConfig :: OutputDataConfig } deriving (Prelude.Eq, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'StartFraudsterRegistrationJob' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'clientToken', 'startFraudsterRegistrationJob_clientToken' - The idempotency token for starting a new fraudster registration job. If -- not provided, Amazon Web Services SDK populates this field. -- -- 'jobName', 'startFraudsterRegistrationJob_jobName' - The name of the new fraudster registration job. -- -- 'registrationConfig', 'startFraudsterRegistrationJob_registrationConfig' - The registration config containing details such as the action to take -- when a duplicate fraudster is detected, and the similarity threshold to -- use for detecting a duplicate fraudster. -- -- 'dataAccessRoleArn', 'startFraudsterRegistrationJob_dataAccessRoleArn' - The IAM role Amazon Resource Name (ARN) that grants Voice ID permissions -- to access customer\'s buckets to read the input manifest file and write -- the Job output file. Refer to the -- -- documentation for the permissions needed in this role. -- -- 'domainId', 'startFraudsterRegistrationJob_domainId' - The identifier of the domain containing the fraudster registration job -- and in which the fraudsters are registered. -- -- 'inputDataConfig', 'startFraudsterRegistrationJob_inputDataConfig' - The input data config containing an S3 URI for the input manifest file -- that contains the list of fraudster registration requests. -- -- 'outputDataConfig', 'startFraudsterRegistrationJob_outputDataConfig' - The output data config containing the S3 location where Voice ID writes -- the job output file; you must also include a KMS key ID to encrypt the -- file. newStartFraudsterRegistrationJob :: -- | 'dataAccessRoleArn' Prelude.Text -> -- | 'domainId' Prelude.Text -> -- | 'inputDataConfig' InputDataConfig -> -- | 'outputDataConfig' OutputDataConfig -> StartFraudsterRegistrationJob newStartFraudsterRegistrationJob pDataAccessRoleArn_ pDomainId_ pInputDataConfig_ pOutputDataConfig_ = StartFraudsterRegistrationJob' { clientToken = Prelude.Nothing, jobName = Prelude.Nothing, registrationConfig = Prelude.Nothing, dataAccessRoleArn = pDataAccessRoleArn_, domainId = pDomainId_, inputDataConfig = pInputDataConfig_, outputDataConfig = pOutputDataConfig_ } -- | The idempotency token for starting a new fraudster registration job. If -- not provided, Amazon Web Services SDK populates this field. startFraudsterRegistrationJob_clientToken :: Lens.Lens' StartFraudsterRegistrationJob (Prelude.Maybe Prelude.Text) startFraudsterRegistrationJob_clientToken = Lens.lens (\StartFraudsterRegistrationJob' {clientToken} -> clientToken) (\s@StartFraudsterRegistrationJob' {} a -> s {clientToken = a} :: StartFraudsterRegistrationJob) -- | The name of the new fraudster registration job. startFraudsterRegistrationJob_jobName :: Lens.Lens' StartFraudsterRegistrationJob (Prelude.Maybe Prelude.Text) startFraudsterRegistrationJob_jobName = Lens.lens (\StartFraudsterRegistrationJob' {jobName} -> jobName) (\s@StartFraudsterRegistrationJob' {} a -> s {jobName = a} :: StartFraudsterRegistrationJob) Prelude.. Lens.mapping Data._Sensitive -- | The registration config containing details such as the action to take -- when a duplicate fraudster is detected, and the similarity threshold to -- use for detecting a duplicate fraudster. startFraudsterRegistrationJob_registrationConfig :: Lens.Lens' StartFraudsterRegistrationJob (Prelude.Maybe RegistrationConfig) startFraudsterRegistrationJob_registrationConfig = Lens.lens (\StartFraudsterRegistrationJob' {registrationConfig} -> registrationConfig) (\s@StartFraudsterRegistrationJob' {} a -> s {registrationConfig = a} :: StartFraudsterRegistrationJob) -- | The IAM role Amazon Resource Name (ARN) that grants Voice ID permissions -- to access customer\'s buckets to read the input manifest file and write -- the Job output file. Refer to the -- -- documentation for the permissions needed in this role. startFraudsterRegistrationJob_dataAccessRoleArn :: Lens.Lens' StartFraudsterRegistrationJob Prelude.Text startFraudsterRegistrationJob_dataAccessRoleArn = Lens.lens (\StartFraudsterRegistrationJob' {dataAccessRoleArn} -> dataAccessRoleArn) (\s@StartFraudsterRegistrationJob' {} a -> s {dataAccessRoleArn = a} :: StartFraudsterRegistrationJob) -- | The identifier of the domain containing the fraudster registration job -- and in which the fraudsters are registered. startFraudsterRegistrationJob_domainId :: Lens.Lens' StartFraudsterRegistrationJob Prelude.Text startFraudsterRegistrationJob_domainId = Lens.lens (\StartFraudsterRegistrationJob' {domainId} -> domainId) (\s@StartFraudsterRegistrationJob' {} a -> s {domainId = a} :: StartFraudsterRegistrationJob) -- | The input data config containing an S3 URI for the input manifest file -- that contains the list of fraudster registration requests. startFraudsterRegistrationJob_inputDataConfig :: Lens.Lens' StartFraudsterRegistrationJob InputDataConfig startFraudsterRegistrationJob_inputDataConfig = Lens.lens (\StartFraudsterRegistrationJob' {inputDataConfig} -> inputDataConfig) (\s@StartFraudsterRegistrationJob' {} a -> s {inputDataConfig = a} :: StartFraudsterRegistrationJob) -- | The output data config containing the S3 location where Voice ID writes -- the job output file; you must also include a KMS key ID to encrypt the -- file. startFraudsterRegistrationJob_outputDataConfig :: Lens.Lens' StartFraudsterRegistrationJob OutputDataConfig startFraudsterRegistrationJob_outputDataConfig = Lens.lens (\StartFraudsterRegistrationJob' {outputDataConfig} -> outputDataConfig) (\s@StartFraudsterRegistrationJob' {} a -> s {outputDataConfig = a} :: StartFraudsterRegistrationJob) instance Core.AWSRequest StartFraudsterRegistrationJob where type AWSResponse StartFraudsterRegistrationJob = StartFraudsterRegistrationJobResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> StartFraudsterRegistrationJobResponse' Prelude.<$> (x Data..?> "Job") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable StartFraudsterRegistrationJob where hashWithSalt _salt StartFraudsterRegistrationJob' {..} = _salt `Prelude.hashWithSalt` clientToken `Prelude.hashWithSalt` jobName `Prelude.hashWithSalt` registrationConfig `Prelude.hashWithSalt` dataAccessRoleArn `Prelude.hashWithSalt` domainId `Prelude.hashWithSalt` inputDataConfig `Prelude.hashWithSalt` outputDataConfig instance Prelude.NFData StartFraudsterRegistrationJob where rnf StartFraudsterRegistrationJob' {..} = Prelude.rnf clientToken `Prelude.seq` Prelude.rnf jobName `Prelude.seq` Prelude.rnf registrationConfig `Prelude.seq` Prelude.rnf dataAccessRoleArn `Prelude.seq` Prelude.rnf domainId `Prelude.seq` Prelude.rnf inputDataConfig `Prelude.seq` Prelude.rnf outputDataConfig instance Data.ToHeaders StartFraudsterRegistrationJob where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "VoiceID.StartFraudsterRegistrationJob" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.0" :: Prelude.ByteString ) ] ) instance Data.ToJSON StartFraudsterRegistrationJob where toJSON StartFraudsterRegistrationJob' {..} = Data.object ( Prelude.catMaybes [ ("ClientToken" Data..=) Prelude.<$> clientToken, ("JobName" Data..=) Prelude.<$> jobName, ("RegistrationConfig" Data..=) Prelude.<$> registrationConfig, Prelude.Just ("DataAccessRoleArn" Data..= dataAccessRoleArn), Prelude.Just ("DomainId" Data..= domainId), Prelude.Just ("InputDataConfig" Data..= inputDataConfig), Prelude.Just ("OutputDataConfig" Data..= outputDataConfig) ] ) instance Data.ToPath StartFraudsterRegistrationJob where toPath = Prelude.const "/" instance Data.ToQuery StartFraudsterRegistrationJob where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newStartFraudsterRegistrationJobResponse' smart constructor. data StartFraudsterRegistrationJobResponse = StartFraudsterRegistrationJobResponse' { -- | Details about the started fraudster registration job. job :: Prelude.Maybe FraudsterRegistrationJob, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'StartFraudsterRegistrationJobResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'job', 'startFraudsterRegistrationJobResponse_job' - Details about the started fraudster registration job. -- -- 'httpStatus', 'startFraudsterRegistrationJobResponse_httpStatus' - The response's http status code. newStartFraudsterRegistrationJobResponse :: -- | 'httpStatus' Prelude.Int -> StartFraudsterRegistrationJobResponse newStartFraudsterRegistrationJobResponse pHttpStatus_ = StartFraudsterRegistrationJobResponse' { job = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Details about the started fraudster registration job. startFraudsterRegistrationJobResponse_job :: Lens.Lens' StartFraudsterRegistrationJobResponse (Prelude.Maybe FraudsterRegistrationJob) startFraudsterRegistrationJobResponse_job = Lens.lens (\StartFraudsterRegistrationJobResponse' {job} -> job) (\s@StartFraudsterRegistrationJobResponse' {} a -> s {job = a} :: StartFraudsterRegistrationJobResponse) -- | The response's http status code. startFraudsterRegistrationJobResponse_httpStatus :: Lens.Lens' StartFraudsterRegistrationJobResponse Prelude.Int startFraudsterRegistrationJobResponse_httpStatus = Lens.lens (\StartFraudsterRegistrationJobResponse' {httpStatus} -> httpStatus) (\s@StartFraudsterRegistrationJobResponse' {} a -> s {httpStatus = a} :: StartFraudsterRegistrationJobResponse) instance Prelude.NFData StartFraudsterRegistrationJobResponse where rnf StartFraudsterRegistrationJobResponse' {..} = Prelude.rnf job `Prelude.seq` Prelude.rnf httpStatus