{-# 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.KinesisAnalyticsV2.AddApplicationVpcConfiguration -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Adds a Virtual Private Cloud (VPC) configuration to the application. -- Applications can use VPCs to store and access resources securely. -- -- Note the following about VPC configurations for Kinesis Data Analytics -- applications: -- -- - VPC configurations are not supported for SQL applications. -- -- - When a VPC is added to a Kinesis Data Analytics application, the -- application can no longer be accessed from the Internet directly. To -- enable Internet access to the application, add an Internet gateway -- to your VPC. module Amazonka.KinesisAnalyticsV2.AddApplicationVpcConfiguration ( -- * Creating a Request AddApplicationVpcConfiguration (..), newAddApplicationVpcConfiguration, -- * Request Lenses addApplicationVpcConfiguration_conditionalToken, addApplicationVpcConfiguration_currentApplicationVersionId, addApplicationVpcConfiguration_applicationName, addApplicationVpcConfiguration_vpcConfiguration, -- * Destructuring the Response AddApplicationVpcConfigurationResponse (..), newAddApplicationVpcConfigurationResponse, -- * Response Lenses addApplicationVpcConfigurationResponse_applicationARN, addApplicationVpcConfigurationResponse_applicationVersionId, addApplicationVpcConfigurationResponse_vpcConfigurationDescription, addApplicationVpcConfigurationResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.KinesisAnalyticsV2.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newAddApplicationVpcConfiguration' smart constructor. data AddApplicationVpcConfiguration = AddApplicationVpcConfiguration' { -- | A value you use to implement strong concurrency for application updates. -- You must provide the @ApplicationVersionID@ or the @ConditionalToken@. -- You get the application\'s current @ConditionalToken@ using -- DescribeApplication. For better concurrency support, use the -- @ConditionalToken@ parameter instead of @CurrentApplicationVersionId@. conditionalToken :: Prelude.Maybe Prelude.Text, -- | The version of the application to which you want to add the VPC -- configuration. You must provide the @CurrentApplicationVersionId@ or the -- @ConditionalToken@. You can use the DescribeApplication operation to get -- the current application version. If the version specified is not the -- current version, the @ConcurrentModificationException@ is returned. For -- better concurrency support, use the @ConditionalToken@ parameter instead -- of @CurrentApplicationVersionId@. currentApplicationVersionId :: Prelude.Maybe Prelude.Natural, -- | The name of an existing application. applicationName :: Prelude.Text, -- | Description of the VPC to add to the application. vpcConfiguration :: VpcConfiguration } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'AddApplicationVpcConfiguration' 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: -- -- 'conditionalToken', 'addApplicationVpcConfiguration_conditionalToken' - A value you use to implement strong concurrency for application updates. -- You must provide the @ApplicationVersionID@ or the @ConditionalToken@. -- You get the application\'s current @ConditionalToken@ using -- DescribeApplication. For better concurrency support, use the -- @ConditionalToken@ parameter instead of @CurrentApplicationVersionId@. -- -- 'currentApplicationVersionId', 'addApplicationVpcConfiguration_currentApplicationVersionId' - The version of the application to which you want to add the VPC -- configuration. You must provide the @CurrentApplicationVersionId@ or the -- @ConditionalToken@. You can use the DescribeApplication operation to get -- the current application version. If the version specified is not the -- current version, the @ConcurrentModificationException@ is returned. For -- better concurrency support, use the @ConditionalToken@ parameter instead -- of @CurrentApplicationVersionId@. -- -- 'applicationName', 'addApplicationVpcConfiguration_applicationName' - The name of an existing application. -- -- 'vpcConfiguration', 'addApplicationVpcConfiguration_vpcConfiguration' - Description of the VPC to add to the application. newAddApplicationVpcConfiguration :: -- | 'applicationName' Prelude.Text -> -- | 'vpcConfiguration' VpcConfiguration -> AddApplicationVpcConfiguration newAddApplicationVpcConfiguration pApplicationName_ pVpcConfiguration_ = AddApplicationVpcConfiguration' { conditionalToken = Prelude.Nothing, currentApplicationVersionId = Prelude.Nothing, applicationName = pApplicationName_, vpcConfiguration = pVpcConfiguration_ } -- | A value you use to implement strong concurrency for application updates. -- You must provide the @ApplicationVersionID@ or the @ConditionalToken@. -- You get the application\'s current @ConditionalToken@ using -- DescribeApplication. For better concurrency support, use the -- @ConditionalToken@ parameter instead of @CurrentApplicationVersionId@. addApplicationVpcConfiguration_conditionalToken :: Lens.Lens' AddApplicationVpcConfiguration (Prelude.Maybe Prelude.Text) addApplicationVpcConfiguration_conditionalToken = Lens.lens (\AddApplicationVpcConfiguration' {conditionalToken} -> conditionalToken) (\s@AddApplicationVpcConfiguration' {} a -> s {conditionalToken = a} :: AddApplicationVpcConfiguration) -- | The version of the application to which you want to add the VPC -- configuration. You must provide the @CurrentApplicationVersionId@ or the -- @ConditionalToken@. You can use the DescribeApplication operation to get -- the current application version. If the version specified is not the -- current version, the @ConcurrentModificationException@ is returned. For -- better concurrency support, use the @ConditionalToken@ parameter instead -- of @CurrentApplicationVersionId@. addApplicationVpcConfiguration_currentApplicationVersionId :: Lens.Lens' AddApplicationVpcConfiguration (Prelude.Maybe Prelude.Natural) addApplicationVpcConfiguration_currentApplicationVersionId = Lens.lens (\AddApplicationVpcConfiguration' {currentApplicationVersionId} -> currentApplicationVersionId) (\s@AddApplicationVpcConfiguration' {} a -> s {currentApplicationVersionId = a} :: AddApplicationVpcConfiguration) -- | The name of an existing application. addApplicationVpcConfiguration_applicationName :: Lens.Lens' AddApplicationVpcConfiguration Prelude.Text addApplicationVpcConfiguration_applicationName = Lens.lens (\AddApplicationVpcConfiguration' {applicationName} -> applicationName) (\s@AddApplicationVpcConfiguration' {} a -> s {applicationName = a} :: AddApplicationVpcConfiguration) -- | Description of the VPC to add to the application. addApplicationVpcConfiguration_vpcConfiguration :: Lens.Lens' AddApplicationVpcConfiguration VpcConfiguration addApplicationVpcConfiguration_vpcConfiguration = Lens.lens (\AddApplicationVpcConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@AddApplicationVpcConfiguration' {} a -> s {vpcConfiguration = a} :: AddApplicationVpcConfiguration) instance Core.AWSRequest AddApplicationVpcConfiguration where type AWSResponse AddApplicationVpcConfiguration = AddApplicationVpcConfigurationResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> AddApplicationVpcConfigurationResponse' Prelude.<$> (x Data..?> "ApplicationARN") Prelude.<*> (x Data..?> "ApplicationVersionId") Prelude.<*> (x Data..?> "VpcConfigurationDescription") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable AddApplicationVpcConfiguration where hashWithSalt _salt AddApplicationVpcConfiguration' {..} = _salt `Prelude.hashWithSalt` conditionalToken `Prelude.hashWithSalt` currentApplicationVersionId `Prelude.hashWithSalt` applicationName `Prelude.hashWithSalt` vpcConfiguration instance Prelude.NFData AddApplicationVpcConfiguration where rnf AddApplicationVpcConfiguration' {..} = Prelude.rnf conditionalToken `Prelude.seq` Prelude.rnf currentApplicationVersionId `Prelude.seq` Prelude.rnf applicationName `Prelude.seq` Prelude.rnf vpcConfiguration instance Data.ToHeaders AddApplicationVpcConfiguration where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "KinesisAnalytics_20180523.AddApplicationVpcConfiguration" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON AddApplicationVpcConfiguration where toJSON AddApplicationVpcConfiguration' {..} = Data.object ( Prelude.catMaybes [ ("ConditionalToken" Data..=) Prelude.<$> conditionalToken, ("CurrentApplicationVersionId" Data..=) Prelude.<$> currentApplicationVersionId, Prelude.Just ("ApplicationName" Data..= applicationName), Prelude.Just ("VpcConfiguration" Data..= vpcConfiguration) ] ) instance Data.ToPath AddApplicationVpcConfiguration where toPath = Prelude.const "/" instance Data.ToQuery AddApplicationVpcConfiguration where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newAddApplicationVpcConfigurationResponse' smart constructor. data AddApplicationVpcConfigurationResponse = AddApplicationVpcConfigurationResponse' { -- | The ARN of the application. applicationARN :: Prelude.Maybe Prelude.Text, -- | Provides the current application version. Kinesis Data Analytics updates -- the ApplicationVersionId each time you update the application. applicationVersionId :: Prelude.Maybe Prelude.Natural, -- | The parameters of the new VPC configuration. vpcConfigurationDescription :: Prelude.Maybe VpcConfigurationDescription, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'AddApplicationVpcConfigurationResponse' 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: -- -- 'applicationARN', 'addApplicationVpcConfigurationResponse_applicationARN' - The ARN of the application. -- -- 'applicationVersionId', 'addApplicationVpcConfigurationResponse_applicationVersionId' - Provides the current application version. Kinesis Data Analytics updates -- the ApplicationVersionId each time you update the application. -- -- 'vpcConfigurationDescription', 'addApplicationVpcConfigurationResponse_vpcConfigurationDescription' - The parameters of the new VPC configuration. -- -- 'httpStatus', 'addApplicationVpcConfigurationResponse_httpStatus' - The response's http status code. newAddApplicationVpcConfigurationResponse :: -- | 'httpStatus' Prelude.Int -> AddApplicationVpcConfigurationResponse newAddApplicationVpcConfigurationResponse pHttpStatus_ = AddApplicationVpcConfigurationResponse' { applicationARN = Prelude.Nothing, applicationVersionId = Prelude.Nothing, vpcConfigurationDescription = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The ARN of the application. addApplicationVpcConfigurationResponse_applicationARN :: Lens.Lens' AddApplicationVpcConfigurationResponse (Prelude.Maybe Prelude.Text) addApplicationVpcConfigurationResponse_applicationARN = Lens.lens (\AddApplicationVpcConfigurationResponse' {applicationARN} -> applicationARN) (\s@AddApplicationVpcConfigurationResponse' {} a -> s {applicationARN = a} :: AddApplicationVpcConfigurationResponse) -- | Provides the current application version. Kinesis Data Analytics updates -- the ApplicationVersionId each time you update the application. addApplicationVpcConfigurationResponse_applicationVersionId :: Lens.Lens' AddApplicationVpcConfigurationResponse (Prelude.Maybe Prelude.Natural) addApplicationVpcConfigurationResponse_applicationVersionId = Lens.lens (\AddApplicationVpcConfigurationResponse' {applicationVersionId} -> applicationVersionId) (\s@AddApplicationVpcConfigurationResponse' {} a -> s {applicationVersionId = a} :: AddApplicationVpcConfigurationResponse) -- | The parameters of the new VPC configuration. addApplicationVpcConfigurationResponse_vpcConfigurationDescription :: Lens.Lens' AddApplicationVpcConfigurationResponse (Prelude.Maybe VpcConfigurationDescription) addApplicationVpcConfigurationResponse_vpcConfigurationDescription = Lens.lens (\AddApplicationVpcConfigurationResponse' {vpcConfigurationDescription} -> vpcConfigurationDescription) (\s@AddApplicationVpcConfigurationResponse' {} a -> s {vpcConfigurationDescription = a} :: AddApplicationVpcConfigurationResponse) -- | The response's http status code. addApplicationVpcConfigurationResponse_httpStatus :: Lens.Lens' AddApplicationVpcConfigurationResponse Prelude.Int addApplicationVpcConfigurationResponse_httpStatus = Lens.lens (\AddApplicationVpcConfigurationResponse' {httpStatus} -> httpStatus) (\s@AddApplicationVpcConfigurationResponse' {} a -> s {httpStatus = a} :: AddApplicationVpcConfigurationResponse) instance Prelude.NFData AddApplicationVpcConfigurationResponse where rnf AddApplicationVpcConfigurationResponse' {..} = Prelude.rnf applicationARN `Prelude.seq` Prelude.rnf applicationVersionId `Prelude.seq` Prelude.rnf vpcConfigurationDescription `Prelude.seq` Prelude.rnf httpStatus