All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.transfer.Server Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.transfer;

import com.pulumi.aws.Utilities;
import com.pulumi.aws.transfer.ServerArgs;
import com.pulumi.aws.transfer.inputs.ServerState;
import com.pulumi.aws.transfer.outputs.ServerEndpointDetails;
import com.pulumi.aws.transfer.outputs.ServerProtocolDetails;
import com.pulumi.aws.transfer.outputs.ServerS3StorageOptions;
import com.pulumi.aws.transfer.outputs.ServerWorkflowDetails;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Nullable;

/**
 * Provides a AWS Transfer Server resource.
 * 
 * > **NOTE on AWS IAM permissions:** If the `endpoint_type` is set to `VPC`, the `ec2:DescribeVpcEndpoints` and `ec2:ModifyVpcEndpoint` [actions](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) are used.
 * 
 * > **NOTE:** Use the `aws.transfer.Tag` resource to manage the system tags used for [custom hostnames](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-dns.html#tag-custom-hostname-cdk).
 * 
 * ## Example Usage
 * 
 * ### Basic
 * 
 * <!--Start PulumiCodeChooser -->
 * 
 * {@code
 * package generated_program;
 * 
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.transfer.Server;
 * import com.pulumi.aws.transfer.ServerArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * 
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 * 
 *     public static void stack(Context ctx) {
 *         var example = new Server("example", ServerArgs.builder()
 *             .tags(Map.of("Name", "Example"))
 *             .build());
 * 
 *     }
 * }
 * }
 * 
* <!--End PulumiCodeChooser --> * * ### Security Policy Name * * <!--Start PulumiCodeChooser --> *
 * {@code
 * package generated_program;
 * 
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.transfer.Server;
 * import com.pulumi.aws.transfer.ServerArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * 
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 * 
 *     public static void stack(Context ctx) {
 *         var example = new Server("example", ServerArgs.builder()
 *             .securityPolicyName("TransferSecurityPolicy-2020-06")
 *             .build());
 * 
 *     }
 * }
 * }
 * 
* <!--End PulumiCodeChooser --> * * ### VPC Endpoint * * <!--Start PulumiCodeChooser --> *
 * {@code
 * package generated_program;
 * 
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.transfer.Server;
 * import com.pulumi.aws.transfer.ServerArgs;
 * import com.pulumi.aws.transfer.inputs.ServerEndpointDetailsArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * 
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 * 
 *     public static void stack(Context ctx) {
 *         var example = new Server("example", ServerArgs.builder()
 *             .endpointType("VPC")
 *             .endpointDetails(ServerEndpointDetailsArgs.builder()
 *                 .addressAllocationIds(exampleAwsEip.id())
 *                 .subnetIds(exampleAwsSubnet.id())
 *                 .vpcId(exampleAwsVpc.id())
 *                 .build())
 *             .build());
 * 
 *     }
 * }
 * }
 * 
* <!--End PulumiCodeChooser --> * * ### AWS Directory authentication * * <!--Start PulumiCodeChooser --> *
 * {@code
 * package generated_program;
 * 
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.transfer.Server;
 * import com.pulumi.aws.transfer.ServerArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * 
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 * 
 *     public static void stack(Context ctx) {
 *         var example = new Server("example", ServerArgs.builder()
 *             .identityProviderType("AWS_DIRECTORY_SERVICE")
 *             .directoryId(exampleAwsDirectoryServiceDirectory.id())
 *             .build());
 * 
 *     }
 * }
 * }
 * 
* <!--End PulumiCodeChooser --> * * ### AWS Lambda authentication * * <!--Start PulumiCodeChooser --> *
 * {@code
 * package generated_program;
 * 
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.transfer.Server;
 * import com.pulumi.aws.transfer.ServerArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * 
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 * 
 *     public static void stack(Context ctx) {
 *         var example = new Server("example", ServerArgs.builder()
 *             .identityProviderType("AWS_LAMBDA")
 *             .function(exampleAwsLambdaIdentityProvider.arn())
 *             .build());
 * 
 *     }
 * }
 * }
 * 
* <!--End PulumiCodeChooser --> * * ### Protocols * * <!--Start PulumiCodeChooser --> *
 * {@code
 * package generated_program;
 * 
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.transfer.Server;
 * import com.pulumi.aws.transfer.ServerArgs;
 * import com.pulumi.aws.transfer.inputs.ServerEndpointDetailsArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * 
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 * 
 *     public static void stack(Context ctx) {
 *         var example = new Server("example", ServerArgs.builder()
 *             .endpointType("VPC")
 *             .endpointDetails(ServerEndpointDetailsArgs.builder()
 *                 .subnetIds(exampleAwsSubnet.id())
 *                 .vpcId(exampleAwsVpc.id())
 *                 .build())
 *             .protocols(            
 *                 "FTP",
 *                 "FTPS")
 *             .certificate(exampleAwsAcmCertificate.arn())
 *             .identityProviderType("API_GATEWAY")
 *             .url(String.format("%s%s", exampleAwsApiGatewayDeployment.invokeUrl(),exampleAwsApiGatewayResource.path()))
 *             .build());
 * 
 *     }
 * }
 * }
 * 
* <!--End PulumiCodeChooser --> * * ### Using Structured Logging Destinations * * <!--Start PulumiCodeChooser --> *
 * {@code
 * package generated_program;
 * 
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.cloudwatch.LogGroup;
 * import com.pulumi.aws.cloudwatch.LogGroupArgs;
 * import com.pulumi.aws.iam.IamFunctions;
 * import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
 * import com.pulumi.aws.iam.Role;
 * import com.pulumi.aws.iam.RoleArgs;
 * import com.pulumi.aws.transfer.Server;
 * import com.pulumi.aws.transfer.ServerArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * 
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 * 
 *     public static void stack(Context ctx) {
 *         var transfer = new LogGroup("transfer", LogGroupArgs.builder()
 *             .namePrefix("transfer_test_")
 *             .build());
 * 
 *         final var transferAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
 *             .statements(GetPolicyDocumentStatementArgs.builder()
 *                 .effect("Allow")
 *                 .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
 *                     .type("Service")
 *                     .identifiers("transfer.amazonaws.com")
 *                     .build())
 *                 .actions("sts:AssumeRole")
 *                 .build())
 *             .build());
 * 
 *         var iamForTransfer = new Role("iamForTransfer", RoleArgs.builder()
 *             .namePrefix("iam_for_transfer_")
 *             .assumeRolePolicy(transferAssumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
 *             .managedPolicyArns("arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess")
 *             .build());
 * 
 *         var transferServer = new Server("transferServer", ServerArgs.builder()
 *             .endpointType("PUBLIC")
 *             .loggingRole(iamForTransfer.arn())
 *             .protocols("SFTP")
 *             .structuredLogDestinations(transfer.arn().applyValue(arn -> String.format("%s:*", arn)))
 *             .build());
 * 
 *     }
 * }
 * }
 * 
* <!--End PulumiCodeChooser --> * * ## Import * * In Terraform v1.5.0 and later, use an `import` Block to import Transfer Servers using the server `id`. For example: * * Using `pulumi import`, import Transfer Servers using the server `id`. For example: * * ```sh * $ pulumi import aws:transfer/server:Server example s-12345678 * ``` * Certain resource arguments, such as `host_key`, cannot be read via the API and imported into the provider. This provider will display a difference for these arguments the first run after import if declared in the provider configuration for an imported resource. * */ @ResourceType(type="aws:transfer/server:Server") public class Server extends com.pulumi.resources.CustomResource { /** * Amazon Resource Name (ARN) of Transfer Server * */ @Export(name="arn", refs={String.class}, tree="[0]") private Output arn; /** * @return Amazon Resource Name (ARN) of Transfer Server * */ public Output arn() { return this.arn; } /** * The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS` * */ @Export(name="certificate", refs={String.class}, tree="[0]") private Output certificate; /** * @return The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS` * */ public Output> certificate() { return Codegen.optional(this.certificate); } /** * The directory service ID of the directory service you want to connect to with an `identity_provider_type` of `AWS_DIRECTORY_SERVICE`. * */ @Export(name="directoryId", refs={String.class}, tree="[0]") private Output directoryId; /** * @return The directory service ID of the directory service you want to connect to with an `identity_provider_type` of `AWS_DIRECTORY_SERVICE`. * */ public Output> directoryId() { return Codegen.optional(this.directoryId); } /** * The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. * */ @Export(name="domain", refs={String.class}, tree="[0]") private Output domain; /** * @return The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. * */ public Output> domain() { return Codegen.optional(this.domain); } /** * The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`) * */ @Export(name="endpoint", refs={String.class}, tree="[0]") private Output endpoint; /** * @return The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`) * */ public Output endpoint() { return this.endpoint; } /** * The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. * */ @Export(name="endpointDetails", refs={ServerEndpointDetails.class}, tree="[0]") private Output endpointDetails; /** * @return The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpoint_details` Block below for details. * */ public Output> endpointDetails() { return Codegen.optional(this.endpointDetails); } /** * The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`. Defaults to `PUBLIC`. * */ @Export(name="endpointType", refs={String.class}, tree="[0]") private Output endpointType; /** * @return The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`. Defaults to `PUBLIC`. * */ public Output> endpointType() { return Codegen.optional(this.endpointType); } /** * A boolean that indicates all users associated with the server should be deleted so that the Server can be destroyed without error. The default value is `false`. This option only applies to servers configured with a `SERVICE_MANAGED` `identity_provider_type`. * */ @Export(name="forceDestroy", refs={Boolean.class}, tree="[0]") private Output forceDestroy; /** * @return A boolean that indicates all users associated with the server should be deleted so that the Server can be destroyed without error. The default value is `false`. This option only applies to servers configured with a `SERVICE_MANAGED` `identity_provider_type`. * */ public Output> forceDestroy() { return Codegen.optional(this.forceDestroy); } /** * The ARN for a lambda function to use for the Identity provider. * */ @Export(name="function", refs={String.class}, tree="[0]") private Output function; /** * @return The ARN for a lambda function to use for the Identity provider. * */ public Output> function() { return Codegen.optional(this.function); } /** * RSA, ECDSA, or ED25519 private key (e.g., as generated by the `ssh-keygen -t rsa -b 2048 -N "" -m PEM -f my-new-server-key`, `ssh-keygen -t ecdsa -b 256 -N "" -m PEM -f my-new-server-key` or `ssh-keygen -t ed25519 -N "" -f my-new-server-key` commands). * */ @Export(name="hostKey", refs={String.class}, tree="[0]") private Output hostKey; /** * @return RSA, ECDSA, or ED25519 private key (e.g., as generated by the `ssh-keygen -t rsa -b 2048 -N "" -m PEM -f my-new-server-key`, `ssh-keygen -t ecdsa -b 256 -N "" -m PEM -f my-new-server-key` or `ssh-keygen -t ed25519 -N "" -f my-new-server-key` commands). * */ public Output> hostKey() { return Codegen.optional(this.hostKey); } /** * This value contains the message-digest algorithm (MD5) hash of the server's host key. This value is equivalent to the output of the `ssh-keygen -l -E md5 -f my-new-server-key` command. * */ @Export(name="hostKeyFingerprint", refs={String.class}, tree="[0]") private Output hostKeyFingerprint; /** * @return This value contains the message-digest algorithm (MD5) hash of the server's host key. This value is equivalent to the output of the `ssh-keygen -l -E md5 -f my-new-server-key` command. * */ public Output hostKeyFingerprint() { return this.hostKeyFingerprint; } /** * The mode of authentication enabled for this service. The default value is `SERVICE_MANAGED`, which allows you to store and access SFTP user credentials within the service. `API_GATEWAY` indicates that user authentication requires a call to an API Gateway endpoint URL provided by you to integrate an identity provider of your choice. Using `AWS_DIRECTORY_SERVICE` will allow for authentication against AWS Managed Active Directory or Microsoft Active Directory in your on-premises environment, or in AWS using AD Connectors. Use the `AWS_LAMBDA` value to directly use a Lambda function as your identity provider. If you choose this value, you must specify the ARN for the lambda function in the `function` argument. * */ @Export(name="identityProviderType", refs={String.class}, tree="[0]") private Output identityProviderType; /** * @return The mode of authentication enabled for this service. The default value is `SERVICE_MANAGED`, which allows you to store and access SFTP user credentials within the service. `API_GATEWAY` indicates that user authentication requires a call to an API Gateway endpoint URL provided by you to integrate an identity provider of your choice. Using `AWS_DIRECTORY_SERVICE` will allow for authentication against AWS Managed Active Directory or Microsoft Active Directory in your on-premises environment, or in AWS using AD Connectors. Use the `AWS_LAMBDA` value to directly use a Lambda function as your identity provider. If you choose this value, you must specify the ARN for the lambda function in the `function` argument. * */ public Output> identityProviderType() { return Codegen.optional(this.identityProviderType); } /** * Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identity_provider_type` of `API_GATEWAY`. * */ @Export(name="invocationRole", refs={String.class}, tree="[0]") private Output invocationRole; /** * @return Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identity_provider_type` of `API_GATEWAY`. * */ public Output> invocationRole() { return Codegen.optional(this.invocationRole); } /** * Amazon Resource Name (ARN) of an IAM role that allows the service to write your SFTP users’ activity to your Amazon CloudWatch logs for monitoring and auditing purposes. * */ @Export(name="loggingRole", refs={String.class}, tree="[0]") private Output loggingRole; /** * @return Amazon Resource Name (ARN) of an IAM role that allows the service to write your SFTP users’ activity to your Amazon CloudWatch logs for monitoring and auditing purposes. * */ public Output> loggingRole() { return Codegen.optional(this.loggingRole); } /** * Specify a string to display when users connect to a server. This string is displayed after the user authenticates. The SFTP protocol does not support post-authentication display banners. * */ @Export(name="postAuthenticationLoginBanner", refs={String.class}, tree="[0]") private Output postAuthenticationLoginBanner; /** * @return Specify a string to display when users connect to a server. This string is displayed after the user authenticates. The SFTP protocol does not support post-authentication display banners. * */ public Output> postAuthenticationLoginBanner() { return Codegen.optional(this.postAuthenticationLoginBanner); } /** * Specify a string to display when users connect to a server. This string is displayed before the user authenticates. * */ @Export(name="preAuthenticationLoginBanner", refs={String.class}, tree="[0]") private Output preAuthenticationLoginBanner; /** * @return Specify a string to display when users connect to a server. This string is displayed before the user authenticates. * */ public Output> preAuthenticationLoginBanner() { return Codegen.optional(this.preAuthenticationLoginBanner); } /** * The protocol settings that are configured for your server. See `protocol_details` Block below for details. * */ @Export(name="protocolDetails", refs={ServerProtocolDetails.class}, tree="[0]") private Output protocolDetails; /** * @return The protocol settings that are configured for your server. See `protocol_details` Block below for details. * */ public Output protocolDetails() { return this.protocolDetails; } /** * Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are: * * `AS2`: File transfer over Applicability Statement 2 * * `SFTP`: File transfer over SSH * * `FTPS`: File transfer with TLS encryption * * `FTP`: Unencrypted file transfer * */ @Export(name="protocols", refs={List.class,String.class}, tree="[0,1]") private Output> protocols; /** * @return Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are: * * `AS2`: File transfer over Applicability Statement 2 * * `SFTP`: File transfer over SSH * * `FTPS`: File transfer with TLS encryption * * `FTP`: Unencrypted file transfer * */ public Output> protocols() { return this.protocols; } /** * Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. * */ @Export(name="s3StorageOptions", refs={ServerS3StorageOptions.class}, tree="[0]") private Output s3StorageOptions; /** * @return Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3_storage_options` Block below for details. * */ public Output s3StorageOptions() { return this.s3StorageOptions; } /** * Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: * * `TransferSecurityPolicy-2018-11` * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2022-03` * * `TransferSecurityPolicy-2023-05` * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` * * `TransferSecurityPolicy-FIPS-2023-05` * * `TransferSecurityPolicy-FIPS-2024-01` * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` * * `TransferSecurityPolicy-Restricted-2018-11` * * `TransferSecurityPolicy-Restricted-2020-06` * * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. * */ @Export(name="securityPolicyName", refs={String.class}, tree="[0]") private Output securityPolicyName; /** * @return Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: * * `TransferSecurityPolicy-2018-11` * * `TransferSecurityPolicy-2020-06` * * `TransferSecurityPolicy-2022-03` * * `TransferSecurityPolicy-2023-05` * * `TransferSecurityPolicy-2024-01` * * `TransferSecurityPolicy-FIPS-2020-06` * * `TransferSecurityPolicy-FIPS-2023-05` * * `TransferSecurityPolicy-FIPS-2024-01` * * `TransferSecurityPolicy-FIPS-2024-05` * * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` * * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` * * `TransferSecurityPolicy-Restricted-2018-11` * * `TransferSecurityPolicy-Restricted-2020-06` * * See [Security policies for AWS Transfer Family servers](https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html) for details. * */ public Output> securityPolicyName() { return Codegen.optional(this.securityPolicyName); } /** * For SFTP-enabled servers, and for custom identity providers only. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`. * */ @Export(name="sftpAuthenticationMethods", refs={String.class}, tree="[0]") private Output sftpAuthenticationMethods; /** * @return For SFTP-enabled servers, and for custom identity providers only. Valid values are `PASSWORD`, `PUBLIC_KEY`, `PUBLIC_KEY_OR_PASSWORD` and `PUBLIC_KEY_AND_PASSWORD`. Default value is: `PUBLIC_KEY_OR_PASSWORD`. * */ public Output sftpAuthenticationMethods() { return this.sftpAuthenticationMethods; } /** * A set of ARNs of destinations that will receive structured logs from the transfer server such as CloudWatch Log Group ARNs. If provided this enables the transfer server to emit structured logs to the specified locations. * */ @Export(name="structuredLogDestinations", refs={List.class,String.class}, tree="[0,1]") private Output> structuredLogDestinations; /** * @return A set of ARNs of destinations that will receive structured logs from the transfer server such as CloudWatch Log Group ARNs. If provided this enables the transfer server to emit structured logs to the specified locations. * */ public Output>> structuredLogDestinations() { return Codegen.optional(this.structuredLogDestinations); } /** * A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. * */ @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") private Output> tags; /** * @return A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. * */ public Output>> tags() { return Codegen.optional(this.tags); } /** * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. * * @deprecated * Please use `tags` instead. * */ @Deprecated /* Please use `tags` instead. */ @Export(name="tagsAll", refs={Map.class,String.class}, tree="[0,1,1]") private Output> tagsAll; /** * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. * */ public Output> tagsAll() { return this.tagsAll; } /** * URL of the service endpoint used to authenticate users with an `identity_provider_type` of `API_GATEWAY`. * */ @Export(name="url", refs={String.class}, tree="[0]") private Output url; /** * @return URL of the service endpoint used to authenticate users with an `identity_provider_type` of `API_GATEWAY`. * */ public Output> url() { return Codegen.optional(this.url); } /** * Specifies the workflow details. See `workflow_details` Block below for details. * */ @Export(name="workflowDetails", refs={ServerWorkflowDetails.class}, tree="[0]") private Output workflowDetails; /** * @return Specifies the workflow details. See `workflow_details` Block below for details. * */ public Output> workflowDetails() { return Codegen.optional(this.workflowDetails); } /** * * @param name The _unique_ name of the resulting resource. */ public Server(java.lang.String name) { this(name, ServerArgs.Empty); } /** * * @param name The _unique_ name of the resulting resource. * @param args The arguments to use to populate this resource's properties. */ public Server(java.lang.String name, @Nullable ServerArgs args) { this(name, args, null); } /** * * @param name The _unique_ name of the resulting resource. * @param args The arguments to use to populate this resource's properties. * @param options A bag of options that control this resource's behavior. */ public Server(java.lang.String name, @Nullable ServerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("aws:transfer/server:Server", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); } private Server(java.lang.String name, Output id, @Nullable ServerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("aws:transfer/server:Server", name, state, makeResourceOptions(options, id), false); } private static ServerArgs makeArgs(@Nullable ServerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { if (options != null && options.getUrn().isPresent()) { return null; } return args == null ? ServerArgs.Empty : args; } private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) .additionalSecretOutputs(List.of( "hostKey", "postAuthenticationLoginBanner", "preAuthenticationLoginBanner" )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); } /** * Get an existing Host resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state * @param options Optional settings to control the behavior of the CustomResource. */ public static Server get(java.lang.String name, Output id, @Nullable ServerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { return new Server(name, id, state, options); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy