amazonka-codeguru-reviewer-2.0: gen/Amazonka/CodeGuruReviewer/CreateCodeReview.hs
{-# 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.CodeGuruReviewer.CreateCodeReview
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Use to create a code review with a
-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReviewType.html CodeReviewType>
-- of @RepositoryAnalysis@. This type of code review analyzes all code
-- under a specified branch in an associated repository. @PullRequest@ code
-- reviews are automatically triggered by a pull request.
module Amazonka.CodeGuruReviewer.CreateCodeReview
( -- * Creating a Request
CreateCodeReview (..),
newCreateCodeReview,
-- * Request Lenses
createCodeReview_clientRequestToken,
createCodeReview_name,
createCodeReview_repositoryAssociationArn,
createCodeReview_type,
-- * Destructuring the Response
CreateCodeReviewResponse (..),
newCreateCodeReviewResponse,
-- * Response Lenses
createCodeReviewResponse_codeReview,
createCodeReviewResponse_httpStatus,
)
where
import Amazonka.CodeGuruReviewer.Types
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
-- | /See:/ 'newCreateCodeReview' smart constructor.
data CreateCodeReview = CreateCodeReview'
{ -- | Amazon CodeGuru Reviewer uses this value to prevent the accidental
-- creation of duplicate code reviews if there are failures and retries.
clientRequestToken :: Prelude.Maybe Prelude.Text,
-- | The name of the code review. The name of each code review in your Amazon
-- Web Services account must be unique.
name :: Prelude.Text,
-- | The Amazon Resource Name (ARN) of the
-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>
-- object. You can retrieve this ARN by calling
-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.
--
-- A code review can only be created on an associated repository. This is
-- the ARN of the associated repository.
repositoryAssociationArn :: Prelude.Text,
-- | The type of code review to create. This is specified using a
-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReviewType.html CodeReviewType>
-- object. You can create a code review only of type @RepositoryAnalysis@.
type' :: CodeReviewType
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'CreateCodeReview' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'clientRequestToken', 'createCodeReview_clientRequestToken' - Amazon CodeGuru Reviewer uses this value to prevent the accidental
-- creation of duplicate code reviews if there are failures and retries.
--
-- 'name', 'createCodeReview_name' - The name of the code review. The name of each code review in your Amazon
-- Web Services account must be unique.
--
-- 'repositoryAssociationArn', 'createCodeReview_repositoryAssociationArn' - The Amazon Resource Name (ARN) of the
-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>
-- object. You can retrieve this ARN by calling
-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.
--
-- A code review can only be created on an associated repository. This is
-- the ARN of the associated repository.
--
-- 'type'', 'createCodeReview_type' - The type of code review to create. This is specified using a
-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReviewType.html CodeReviewType>
-- object. You can create a code review only of type @RepositoryAnalysis@.
newCreateCodeReview ::
-- | 'name'
Prelude.Text ->
-- | 'repositoryAssociationArn'
Prelude.Text ->
-- | 'type''
CodeReviewType ->
CreateCodeReview
newCreateCodeReview
pName_
pRepositoryAssociationArn_
pType_ =
CreateCodeReview'
{ clientRequestToken =
Prelude.Nothing,
name = pName_,
repositoryAssociationArn =
pRepositoryAssociationArn_,
type' = pType_
}
-- | Amazon CodeGuru Reviewer uses this value to prevent the accidental
-- creation of duplicate code reviews if there are failures and retries.
createCodeReview_clientRequestToken :: Lens.Lens' CreateCodeReview (Prelude.Maybe Prelude.Text)
createCodeReview_clientRequestToken = Lens.lens (\CreateCodeReview' {clientRequestToken} -> clientRequestToken) (\s@CreateCodeReview' {} a -> s {clientRequestToken = a} :: CreateCodeReview)
-- | The name of the code review. The name of each code review in your Amazon
-- Web Services account must be unique.
createCodeReview_name :: Lens.Lens' CreateCodeReview Prelude.Text
createCodeReview_name = Lens.lens (\CreateCodeReview' {name} -> name) (\s@CreateCodeReview' {} a -> s {name = a} :: CreateCodeReview)
-- | The Amazon Resource Name (ARN) of the
-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>
-- object. You can retrieve this ARN by calling
-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.
--
-- A code review can only be created on an associated repository. This is
-- the ARN of the associated repository.
createCodeReview_repositoryAssociationArn :: Lens.Lens' CreateCodeReview Prelude.Text
createCodeReview_repositoryAssociationArn = Lens.lens (\CreateCodeReview' {repositoryAssociationArn} -> repositoryAssociationArn) (\s@CreateCodeReview' {} a -> s {repositoryAssociationArn = a} :: CreateCodeReview)
-- | The type of code review to create. This is specified using a
-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReviewType.html CodeReviewType>
-- object. You can create a code review only of type @RepositoryAnalysis@.
createCodeReview_type :: Lens.Lens' CreateCodeReview CodeReviewType
createCodeReview_type = Lens.lens (\CreateCodeReview' {type'} -> type') (\s@CreateCodeReview' {} a -> s {type' = a} :: CreateCodeReview)
instance Core.AWSRequest CreateCodeReview where
type
AWSResponse CreateCodeReview =
CreateCodeReviewResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
CreateCodeReviewResponse'
Prelude.<$> (x Data..?> "CodeReview")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable CreateCodeReview where
hashWithSalt _salt CreateCodeReview' {..} =
_salt
`Prelude.hashWithSalt` clientRequestToken
`Prelude.hashWithSalt` name
`Prelude.hashWithSalt` repositoryAssociationArn
`Prelude.hashWithSalt` type'
instance Prelude.NFData CreateCodeReview where
rnf CreateCodeReview' {..} =
Prelude.rnf clientRequestToken
`Prelude.seq` Prelude.rnf name
`Prelude.seq` Prelude.rnf repositoryAssociationArn
`Prelude.seq` Prelude.rnf type'
instance Data.ToHeaders CreateCodeReview where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateCodeReview where
toJSON CreateCodeReview' {..} =
Data.object
( Prelude.catMaybes
[ ("ClientRequestToken" Data..=)
Prelude.<$> clientRequestToken,
Prelude.Just ("Name" Data..= name),
Prelude.Just
( "RepositoryAssociationArn"
Data..= repositoryAssociationArn
),
Prelude.Just ("Type" Data..= type')
]
)
instance Data.ToPath CreateCodeReview where
toPath = Prelude.const "/codereviews"
instance Data.ToQuery CreateCodeReview where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newCreateCodeReviewResponse' smart constructor.
data CreateCodeReviewResponse = CreateCodeReviewResponse'
{ codeReview :: Prelude.Maybe CodeReview,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'CreateCodeReviewResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'codeReview', 'createCodeReviewResponse_codeReview' - Undocumented member.
--
-- 'httpStatus', 'createCodeReviewResponse_httpStatus' - The response's http status code.
newCreateCodeReviewResponse ::
-- | 'httpStatus'
Prelude.Int ->
CreateCodeReviewResponse
newCreateCodeReviewResponse pHttpStatus_ =
CreateCodeReviewResponse'
{ codeReview =
Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | Undocumented member.
createCodeReviewResponse_codeReview :: Lens.Lens' CreateCodeReviewResponse (Prelude.Maybe CodeReview)
createCodeReviewResponse_codeReview = Lens.lens (\CreateCodeReviewResponse' {codeReview} -> codeReview) (\s@CreateCodeReviewResponse' {} a -> s {codeReview = a} :: CreateCodeReviewResponse)
-- | The response's http status code.
createCodeReviewResponse_httpStatus :: Lens.Lens' CreateCodeReviewResponse Prelude.Int
createCodeReviewResponse_httpStatus = Lens.lens (\CreateCodeReviewResponse' {httpStatus} -> httpStatus) (\s@CreateCodeReviewResponse' {} a -> s {httpStatus = a} :: CreateCodeReviewResponse)
instance Prelude.NFData CreateCodeReviewResponse where
rnf CreateCodeReviewResponse' {..} =
Prelude.rnf codeReview
`Prelude.seq` Prelude.rnf httpStatus