{-# 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.CodeBuild.ImportSourceCredentials -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Imports the source repository credentials for an CodeBuild project that -- has its source code stored in a GitHub, GitHub Enterprise, or Bitbucket -- repository. module Amazonka.CodeBuild.ImportSourceCredentials ( -- * Creating a Request ImportSourceCredentials (..), newImportSourceCredentials, -- * Request Lenses importSourceCredentials_shouldOverwrite, importSourceCredentials_username, importSourceCredentials_token, importSourceCredentials_serverType, importSourceCredentials_authType, -- * Destructuring the Response ImportSourceCredentialsResponse (..), newImportSourceCredentialsResponse, -- * Response Lenses importSourceCredentialsResponse_arn, importSourceCredentialsResponse_httpStatus, ) where import Amazonka.CodeBuild.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:/ 'newImportSourceCredentials' smart constructor. data ImportSourceCredentials = ImportSourceCredentials' { -- | Set to @false@ to prevent overwriting the repository source credentials. -- Set to @true@ to overwrite the repository source credentials. The -- default value is @true@. shouldOverwrite :: Prelude.Maybe Prelude.Bool, -- | The Bitbucket username when the @authType@ is BASIC_AUTH. This parameter -- is not valid for other types of source providers or connections. username :: Prelude.Maybe Prelude.Text, -- | For GitHub or GitHub Enterprise, this is the personal access token. For -- Bitbucket, this is the app password. token :: Data.Sensitive Prelude.Text, -- | The source provider used for this project. serverType :: ServerType, -- | The type of authentication used to connect to a GitHub, GitHub -- Enterprise, or Bitbucket repository. An OAUTH connection is not -- supported by the API and must be created using the CodeBuild console. authType :: AuthType } deriving (Prelude.Eq, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ImportSourceCredentials' 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: -- -- 'shouldOverwrite', 'importSourceCredentials_shouldOverwrite' - Set to @false@ to prevent overwriting the repository source credentials. -- Set to @true@ to overwrite the repository source credentials. The -- default value is @true@. -- -- 'username', 'importSourceCredentials_username' - The Bitbucket username when the @authType@ is BASIC_AUTH. This parameter -- is not valid for other types of source providers or connections. -- -- 'token', 'importSourceCredentials_token' - For GitHub or GitHub Enterprise, this is the personal access token. For -- Bitbucket, this is the app password. -- -- 'serverType', 'importSourceCredentials_serverType' - The source provider used for this project. -- -- 'authType', 'importSourceCredentials_authType' - The type of authentication used to connect to a GitHub, GitHub -- Enterprise, or Bitbucket repository. An OAUTH connection is not -- supported by the API and must be created using the CodeBuild console. newImportSourceCredentials :: -- | 'token' Prelude.Text -> -- | 'serverType' ServerType -> -- | 'authType' AuthType -> ImportSourceCredentials newImportSourceCredentials pToken_ pServerType_ pAuthType_ = ImportSourceCredentials' { shouldOverwrite = Prelude.Nothing, username = Prelude.Nothing, token = Data._Sensitive Lens.# pToken_, serverType = pServerType_, authType = pAuthType_ } -- | Set to @false@ to prevent overwriting the repository source credentials. -- Set to @true@ to overwrite the repository source credentials. The -- default value is @true@. importSourceCredentials_shouldOverwrite :: Lens.Lens' ImportSourceCredentials (Prelude.Maybe Prelude.Bool) importSourceCredentials_shouldOverwrite = Lens.lens (\ImportSourceCredentials' {shouldOverwrite} -> shouldOverwrite) (\s@ImportSourceCredentials' {} a -> s {shouldOverwrite = a} :: ImportSourceCredentials) -- | The Bitbucket username when the @authType@ is BASIC_AUTH. This parameter -- is not valid for other types of source providers or connections. importSourceCredentials_username :: Lens.Lens' ImportSourceCredentials (Prelude.Maybe Prelude.Text) importSourceCredentials_username = Lens.lens (\ImportSourceCredentials' {username} -> username) (\s@ImportSourceCredentials' {} a -> s {username = a} :: ImportSourceCredentials) -- | For GitHub or GitHub Enterprise, this is the personal access token. For -- Bitbucket, this is the app password. importSourceCredentials_token :: Lens.Lens' ImportSourceCredentials Prelude.Text importSourceCredentials_token = Lens.lens (\ImportSourceCredentials' {token} -> token) (\s@ImportSourceCredentials' {} a -> s {token = a} :: ImportSourceCredentials) Prelude.. Data._Sensitive -- | The source provider used for this project. importSourceCredentials_serverType :: Lens.Lens' ImportSourceCredentials ServerType importSourceCredentials_serverType = Lens.lens (\ImportSourceCredentials' {serverType} -> serverType) (\s@ImportSourceCredentials' {} a -> s {serverType = a} :: ImportSourceCredentials) -- | The type of authentication used to connect to a GitHub, GitHub -- Enterprise, or Bitbucket repository. An OAUTH connection is not -- supported by the API and must be created using the CodeBuild console. importSourceCredentials_authType :: Lens.Lens' ImportSourceCredentials AuthType importSourceCredentials_authType = Lens.lens (\ImportSourceCredentials' {authType} -> authType) (\s@ImportSourceCredentials' {} a -> s {authType = a} :: ImportSourceCredentials) instance Core.AWSRequest ImportSourceCredentials where type AWSResponse ImportSourceCredentials = ImportSourceCredentialsResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> ImportSourceCredentialsResponse' Prelude.<$> (x Data..?> "arn") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable ImportSourceCredentials where hashWithSalt _salt ImportSourceCredentials' {..} = _salt `Prelude.hashWithSalt` shouldOverwrite `Prelude.hashWithSalt` username `Prelude.hashWithSalt` token `Prelude.hashWithSalt` serverType `Prelude.hashWithSalt` authType instance Prelude.NFData ImportSourceCredentials where rnf ImportSourceCredentials' {..} = Prelude.rnf shouldOverwrite `Prelude.seq` Prelude.rnf username `Prelude.seq` Prelude.rnf token `Prelude.seq` Prelude.rnf serverType `Prelude.seq` Prelude.rnf authType instance Data.ToHeaders ImportSourceCredentials where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "CodeBuild_20161006.ImportSourceCredentials" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON ImportSourceCredentials where toJSON ImportSourceCredentials' {..} = Data.object ( Prelude.catMaybes [ ("shouldOverwrite" Data..=) Prelude.<$> shouldOverwrite, ("username" Data..=) Prelude.<$> username, Prelude.Just ("token" Data..= token), Prelude.Just ("serverType" Data..= serverType), Prelude.Just ("authType" Data..= authType) ] ) instance Data.ToPath ImportSourceCredentials where toPath = Prelude.const "/" instance Data.ToQuery ImportSourceCredentials where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newImportSourceCredentialsResponse' smart constructor. data ImportSourceCredentialsResponse = ImportSourceCredentialsResponse' { -- | The Amazon Resource Name (ARN) of the token. arn :: Prelude.Maybe Prelude.Text, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ImportSourceCredentialsResponse' 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: -- -- 'arn', 'importSourceCredentialsResponse_arn' - The Amazon Resource Name (ARN) of the token. -- -- 'httpStatus', 'importSourceCredentialsResponse_httpStatus' - The response's http status code. newImportSourceCredentialsResponse :: -- | 'httpStatus' Prelude.Int -> ImportSourceCredentialsResponse newImportSourceCredentialsResponse pHttpStatus_ = ImportSourceCredentialsResponse' { arn = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The Amazon Resource Name (ARN) of the token. importSourceCredentialsResponse_arn :: Lens.Lens' ImportSourceCredentialsResponse (Prelude.Maybe Prelude.Text) importSourceCredentialsResponse_arn = Lens.lens (\ImportSourceCredentialsResponse' {arn} -> arn) (\s@ImportSourceCredentialsResponse' {} a -> s {arn = a} :: ImportSourceCredentialsResponse) -- | The response's http status code. importSourceCredentialsResponse_httpStatus :: Lens.Lens' ImportSourceCredentialsResponse Prelude.Int importSourceCredentialsResponse_httpStatus = Lens.lens (\ImportSourceCredentialsResponse' {httpStatus} -> httpStatus) (\s@ImportSourceCredentialsResponse' {} a -> s {httpStatus = a} :: ImportSourceCredentialsResponse) instance Prelude.NFData ImportSourceCredentialsResponse where rnf ImportSourceCredentialsResponse' {..} = Prelude.rnf arn `Prelude.seq` Prelude.rnf httpStatus