github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/transfer/server.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package transfer 5 6 import ( 7 "context" 8 "reflect" 9 10 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 11 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 12 ) 13 14 // Provides a AWS Transfer Server resource. 15 // 16 // > **NOTE on AWS IAM permissions:** If the `endpointType` 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. 17 // 18 // > **NOTE:** Use the `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). 19 // 20 // ## Example Usage 21 // 22 // ### Basic 23 // 24 // <!--Start PulumiCodeChooser --> 25 // ```go 26 // package main 27 // 28 // import ( 29 // 30 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer" 31 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 32 // 33 // ) 34 // 35 // func main() { 36 // pulumi.Run(func(ctx *pulumi.Context) error { 37 // _, err := transfer.NewServer(ctx, "example", &transfer.ServerArgs{ 38 // Tags: pulumi.StringMap{ 39 // "Name": pulumi.String("Example"), 40 // }, 41 // }) 42 // if err != nil { 43 // return err 44 // } 45 // return nil 46 // }) 47 // } 48 // 49 // ``` 50 // <!--End PulumiCodeChooser --> 51 // 52 // ### Security Policy Name 53 // 54 // <!--Start PulumiCodeChooser --> 55 // ```go 56 // package main 57 // 58 // import ( 59 // 60 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer" 61 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 62 // 63 // ) 64 // 65 // func main() { 66 // pulumi.Run(func(ctx *pulumi.Context) error { 67 // _, err := transfer.NewServer(ctx, "example", &transfer.ServerArgs{ 68 // SecurityPolicyName: pulumi.String("TransferSecurityPolicy-2020-06"), 69 // }) 70 // if err != nil { 71 // return err 72 // } 73 // return nil 74 // }) 75 // } 76 // 77 // ``` 78 // <!--End PulumiCodeChooser --> 79 // 80 // ### VPC Endpoint 81 // 82 // <!--Start PulumiCodeChooser --> 83 // ```go 84 // package main 85 // 86 // import ( 87 // 88 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer" 89 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 90 // 91 // ) 92 // 93 // func main() { 94 // pulumi.Run(func(ctx *pulumi.Context) error { 95 // _, err := transfer.NewServer(ctx, "example", &transfer.ServerArgs{ 96 // EndpointType: pulumi.String("VPC"), 97 // EndpointDetails: &transfer.ServerEndpointDetailsArgs{ 98 // AddressAllocationIds: pulumi.StringArray{ 99 // exampleAwsEip.Id, 100 // }, 101 // SubnetIds: pulumi.StringArray{ 102 // exampleAwsSubnet.Id, 103 // }, 104 // VpcId: pulumi.Any(exampleAwsVpc.Id), 105 // }, 106 // }) 107 // if err != nil { 108 // return err 109 // } 110 // return nil 111 // }) 112 // } 113 // 114 // ``` 115 // <!--End PulumiCodeChooser --> 116 // 117 // ### AWS Directory authentication 118 // 119 // <!--Start PulumiCodeChooser --> 120 // ```go 121 // package main 122 // 123 // import ( 124 // 125 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer" 126 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 127 // 128 // ) 129 // 130 // func main() { 131 // pulumi.Run(func(ctx *pulumi.Context) error { 132 // _, err := transfer.NewServer(ctx, "example", &transfer.ServerArgs{ 133 // IdentityProviderType: pulumi.String("AWS_DIRECTORY_SERVICE"), 134 // DirectoryId: pulumi.Any(exampleAwsDirectoryServiceDirectory.Id), 135 // }) 136 // if err != nil { 137 // return err 138 // } 139 // return nil 140 // }) 141 // } 142 // 143 // ``` 144 // <!--End PulumiCodeChooser --> 145 // 146 // ### AWS Lambda authentication 147 // 148 // <!--Start PulumiCodeChooser --> 149 // ```go 150 // package main 151 // 152 // import ( 153 // 154 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer" 155 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 156 // 157 // ) 158 // 159 // func main() { 160 // pulumi.Run(func(ctx *pulumi.Context) error { 161 // _, err := transfer.NewServer(ctx, "example", &transfer.ServerArgs{ 162 // IdentityProviderType: pulumi.String("AWS_LAMBDA"), 163 // Function: pulumi.Any(exampleAwsLambdaIdentityProvider.Arn), 164 // }) 165 // if err != nil { 166 // return err 167 // } 168 // return nil 169 // }) 170 // } 171 // 172 // ``` 173 // <!--End PulumiCodeChooser --> 174 // 175 // ### Protocols 176 // 177 // <!--Start PulumiCodeChooser --> 178 // ```go 179 // package main 180 // 181 // import ( 182 // 183 // "fmt" 184 // 185 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer" 186 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 187 // 188 // ) 189 // 190 // func main() { 191 // pulumi.Run(func(ctx *pulumi.Context) error { 192 // _, err := transfer.NewServer(ctx, "example", &transfer.ServerArgs{ 193 // EndpointType: pulumi.String("VPC"), 194 // EndpointDetails: &transfer.ServerEndpointDetailsArgs{ 195 // SubnetIds: pulumi.StringArray{ 196 // exampleAwsSubnet.Id, 197 // }, 198 // VpcId: pulumi.Any(exampleAwsVpc.Id), 199 // }, 200 // Protocols: pulumi.StringArray{ 201 // pulumi.String("FTP"), 202 // pulumi.String("FTPS"), 203 // }, 204 // Certificate: pulumi.Any(exampleAwsAcmCertificate.Arn), 205 // IdentityProviderType: pulumi.String("API_GATEWAY"), 206 // Url: pulumi.String(fmt.Sprintf("%v%v", exampleAwsApiGatewayDeployment.InvokeUrl, exampleAwsApiGatewayResource.Path)), 207 // }) 208 // if err != nil { 209 // return err 210 // } 211 // return nil 212 // }) 213 // } 214 // 215 // ``` 216 // <!--End PulumiCodeChooser --> 217 // 218 // ### Using Structured Logging Destinations 219 // 220 // <!--Start PulumiCodeChooser --> 221 // ```go 222 // package main 223 // 224 // import ( 225 // 226 // "fmt" 227 // 228 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" 229 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 230 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer" 231 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 232 // 233 // ) 234 // 235 // func main() { 236 // pulumi.Run(func(ctx *pulumi.Context) error { 237 // transfer, err := cloudwatch.NewLogGroup(ctx, "transfer", &cloudwatch.LogGroupArgs{ 238 // NamePrefix: pulumi.String("transfer_test_"), 239 // }) 240 // if err != nil { 241 // return err 242 // } 243 // transferAssumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ 244 // Statements: []iam.GetPolicyDocumentStatement{ 245 // { 246 // Effect: pulumi.StringRef("Allow"), 247 // Principals: []iam.GetPolicyDocumentStatementPrincipal{ 248 // { 249 // Type: "Service", 250 // Identifiers: []string{ 251 // "transfer.amazonaws.com", 252 // }, 253 // }, 254 // }, 255 // Actions: []string{ 256 // "sts:AssumeRole", 257 // }, 258 // }, 259 // }, 260 // }, nil) 261 // if err != nil { 262 // return err 263 // } 264 // iamForTransfer, err := iam.NewRole(ctx, "iam_for_transfer", &iam.RoleArgs{ 265 // NamePrefix: pulumi.String("iam_for_transfer_"), 266 // AssumeRolePolicy: pulumi.String(transferAssumeRole.Json), 267 // ManagedPolicyArns: pulumi.StringArray{ 268 // pulumi.String("arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess"), 269 // }, 270 // }) 271 // if err != nil { 272 // return err 273 // } 274 // _, err = transfer.NewServer(ctx, "transfer", &transfer.ServerArgs{ 275 // EndpointType: pulumi.String("PUBLIC"), 276 // LoggingRole: iamForTransfer.Arn, 277 // Protocols: pulumi.StringArray{ 278 // pulumi.String("SFTP"), 279 // }, 280 // StructuredLogDestinations: pulumi.StringArray{ 281 // transfer.Arn.ApplyT(func(arn string) (string, error) { 282 // return fmt.Sprintf("%v:*", arn), nil 283 // }).(pulumi.StringOutput), 284 // }, 285 // }) 286 // if err != nil { 287 // return err 288 // } 289 // return nil 290 // }) 291 // } 292 // 293 // ``` 294 // <!--End PulumiCodeChooser --> 295 // 296 // ## Import 297 // 298 // Using `pulumi import`, import Transfer Servers using the server `id`. For example: 299 // 300 // ```sh 301 // $ pulumi import aws:transfer/server:Server example s-12345678 302 // ``` 303 // 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. 304 type Server struct { 305 pulumi.CustomResourceState 306 307 // Amazon Resource Name (ARN) of Transfer Server 308 Arn pulumi.StringOutput `pulumi:"arn"` 309 // The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS` 310 Certificate pulumi.StringPtrOutput `pulumi:"certificate"` 311 // The directory service ID of the directory service you want to connect to with an `identityProviderType` of `AWS_DIRECTORY_SERVICE`. 312 DirectoryId pulumi.StringPtrOutput `pulumi:"directoryId"` 313 // The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. 314 Domain pulumi.StringPtrOutput `pulumi:"domain"` 315 // The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`) 316 Endpoint pulumi.StringOutput `pulumi:"endpoint"` 317 // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. 318 EndpointDetails ServerEndpointDetailsPtrOutput `pulumi:"endpointDetails"` 319 // 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`. 320 EndpointType pulumi.StringPtrOutput `pulumi:"endpointType"` 321 // 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` `identityProviderType`. 322 ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"` 323 // The ARN for a lambda function to use for the Identity provider. 324 Function pulumi.StringPtrOutput `pulumi:"function"` 325 // 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). 326 HostKey pulumi.StringPtrOutput `pulumi:"hostKey"` 327 // 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. 328 HostKeyFingerprint pulumi.StringOutput `pulumi:"hostKeyFingerprint"` 329 // 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. 330 IdentityProviderType pulumi.StringPtrOutput `pulumi:"identityProviderType"` 331 // Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identityProviderType` of `API_GATEWAY`. 332 InvocationRole pulumi.StringPtrOutput `pulumi:"invocationRole"` 333 // 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. 334 LoggingRole pulumi.StringPtrOutput `pulumi:"loggingRole"` 335 // 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. 336 PostAuthenticationLoginBanner pulumi.StringPtrOutput `pulumi:"postAuthenticationLoginBanner"` 337 // Specify a string to display when users connect to a server. This string is displayed before the user authenticates. 338 PreAuthenticationLoginBanner pulumi.StringPtrOutput `pulumi:"preAuthenticationLoginBanner"` 339 // The protocol settings that are configured for your server. See `protocolDetails` block below for details. 340 ProtocolDetails ServerProtocolDetailsOutput `pulumi:"protocolDetails"` 341 // 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: 342 Protocols pulumi.StringArrayOutput `pulumi:"protocols"` 343 // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. 344 S3StorageOptions ServerS3StorageOptionsOutput `pulumi:"s3StorageOptions"` 345 // Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: 346 // * `TransferSecurityPolicy-2024-01` 347 // * `TransferSecurityPolicy-2023-05` 348 // * `TransferSecurityPolicy-2022-03` 349 // * `TransferSecurityPolicy-2020-06` 350 // * `TransferSecurityPolicy-2018-11` 351 // * `TransferSecurityPolicy-FIPS-2024-01` 352 // * `TransferSecurityPolicy-FIPS-2023-05` 353 // * `TransferSecurityPolicy-FIPS-2020-06` 354 // * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` 355 // * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` 356 SecurityPolicyName pulumi.StringPtrOutput `pulumi:"securityPolicyName"` 357 // 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. 358 StructuredLogDestinations pulumi.StringArrayOutput `pulumi:"structuredLogDestinations"` 359 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 360 Tags pulumi.StringMapOutput `pulumi:"tags"` 361 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 362 // 363 // Deprecated: Please use `tags` instead. 364 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 365 // URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`. 366 Url pulumi.StringPtrOutput `pulumi:"url"` 367 // Specifies the workflow details. See `workflowDetails` block below for details. 368 WorkflowDetails ServerWorkflowDetailsPtrOutput `pulumi:"workflowDetails"` 369 } 370 371 // NewServer registers a new resource with the given unique name, arguments, and options. 372 func NewServer(ctx *pulumi.Context, 373 name string, args *ServerArgs, opts ...pulumi.ResourceOption) (*Server, error) { 374 if args == nil { 375 args = &ServerArgs{} 376 } 377 378 if args.HostKey != nil { 379 args.HostKey = pulumi.ToSecret(args.HostKey).(pulumi.StringPtrInput) 380 } 381 if args.PostAuthenticationLoginBanner != nil { 382 args.PostAuthenticationLoginBanner = pulumi.ToSecret(args.PostAuthenticationLoginBanner).(pulumi.StringPtrInput) 383 } 384 if args.PreAuthenticationLoginBanner != nil { 385 args.PreAuthenticationLoginBanner = pulumi.ToSecret(args.PreAuthenticationLoginBanner).(pulumi.StringPtrInput) 386 } 387 secrets := pulumi.AdditionalSecretOutputs([]string{ 388 "hostKey", 389 "postAuthenticationLoginBanner", 390 "preAuthenticationLoginBanner", 391 }) 392 opts = append(opts, secrets) 393 opts = internal.PkgResourceDefaultOpts(opts) 394 var resource Server 395 err := ctx.RegisterResource("aws:transfer/server:Server", name, args, &resource, opts...) 396 if err != nil { 397 return nil, err 398 } 399 return &resource, nil 400 } 401 402 // GetServer gets an existing Server resource's state with the given name, ID, and optional 403 // state properties that are used to uniquely qualify the lookup (nil if not required). 404 func GetServer(ctx *pulumi.Context, 405 name string, id pulumi.IDInput, state *ServerState, opts ...pulumi.ResourceOption) (*Server, error) { 406 var resource Server 407 err := ctx.ReadResource("aws:transfer/server:Server", name, id, state, &resource, opts...) 408 if err != nil { 409 return nil, err 410 } 411 return &resource, nil 412 } 413 414 // Input properties used for looking up and filtering Server resources. 415 type serverState struct { 416 // Amazon Resource Name (ARN) of Transfer Server 417 Arn *string `pulumi:"arn"` 418 // The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS` 419 Certificate *string `pulumi:"certificate"` 420 // The directory service ID of the directory service you want to connect to with an `identityProviderType` of `AWS_DIRECTORY_SERVICE`. 421 DirectoryId *string `pulumi:"directoryId"` 422 // The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. 423 Domain *string `pulumi:"domain"` 424 // The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`) 425 Endpoint *string `pulumi:"endpoint"` 426 // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. 427 EndpointDetails *ServerEndpointDetails `pulumi:"endpointDetails"` 428 // 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`. 429 EndpointType *string `pulumi:"endpointType"` 430 // 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` `identityProviderType`. 431 ForceDestroy *bool `pulumi:"forceDestroy"` 432 // The ARN for a lambda function to use for the Identity provider. 433 Function *string `pulumi:"function"` 434 // 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). 435 HostKey *string `pulumi:"hostKey"` 436 // 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. 437 HostKeyFingerprint *string `pulumi:"hostKeyFingerprint"` 438 // 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. 439 IdentityProviderType *string `pulumi:"identityProviderType"` 440 // Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identityProviderType` of `API_GATEWAY`. 441 InvocationRole *string `pulumi:"invocationRole"` 442 // 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. 443 LoggingRole *string `pulumi:"loggingRole"` 444 // 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. 445 PostAuthenticationLoginBanner *string `pulumi:"postAuthenticationLoginBanner"` 446 // Specify a string to display when users connect to a server. This string is displayed before the user authenticates. 447 PreAuthenticationLoginBanner *string `pulumi:"preAuthenticationLoginBanner"` 448 // The protocol settings that are configured for your server. See `protocolDetails` block below for details. 449 ProtocolDetails *ServerProtocolDetails `pulumi:"protocolDetails"` 450 // 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: 451 Protocols []string `pulumi:"protocols"` 452 // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. 453 S3StorageOptions *ServerS3StorageOptions `pulumi:"s3StorageOptions"` 454 // Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: 455 // * `TransferSecurityPolicy-2024-01` 456 // * `TransferSecurityPolicy-2023-05` 457 // * `TransferSecurityPolicy-2022-03` 458 // * `TransferSecurityPolicy-2020-06` 459 // * `TransferSecurityPolicy-2018-11` 460 // * `TransferSecurityPolicy-FIPS-2024-01` 461 // * `TransferSecurityPolicy-FIPS-2023-05` 462 // * `TransferSecurityPolicy-FIPS-2020-06` 463 // * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` 464 // * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` 465 SecurityPolicyName *string `pulumi:"securityPolicyName"` 466 // 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. 467 StructuredLogDestinations []string `pulumi:"structuredLogDestinations"` 468 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 469 Tags map[string]string `pulumi:"tags"` 470 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 471 // 472 // Deprecated: Please use `tags` instead. 473 TagsAll map[string]string `pulumi:"tagsAll"` 474 // URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`. 475 Url *string `pulumi:"url"` 476 // Specifies the workflow details. See `workflowDetails` block below for details. 477 WorkflowDetails *ServerWorkflowDetails `pulumi:"workflowDetails"` 478 } 479 480 type ServerState struct { 481 // Amazon Resource Name (ARN) of Transfer Server 482 Arn pulumi.StringPtrInput 483 // The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS` 484 Certificate pulumi.StringPtrInput 485 // The directory service ID of the directory service you want to connect to with an `identityProviderType` of `AWS_DIRECTORY_SERVICE`. 486 DirectoryId pulumi.StringPtrInput 487 // The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. 488 Domain pulumi.StringPtrInput 489 // The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`) 490 Endpoint pulumi.StringPtrInput 491 // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. 492 EndpointDetails ServerEndpointDetailsPtrInput 493 // 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`. 494 EndpointType pulumi.StringPtrInput 495 // 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` `identityProviderType`. 496 ForceDestroy pulumi.BoolPtrInput 497 // The ARN for a lambda function to use for the Identity provider. 498 Function pulumi.StringPtrInput 499 // 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). 500 HostKey pulumi.StringPtrInput 501 // 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. 502 HostKeyFingerprint pulumi.StringPtrInput 503 // 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. 504 IdentityProviderType pulumi.StringPtrInput 505 // Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identityProviderType` of `API_GATEWAY`. 506 InvocationRole pulumi.StringPtrInput 507 // 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. 508 LoggingRole pulumi.StringPtrInput 509 // 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. 510 PostAuthenticationLoginBanner pulumi.StringPtrInput 511 // Specify a string to display when users connect to a server. This string is displayed before the user authenticates. 512 PreAuthenticationLoginBanner pulumi.StringPtrInput 513 // The protocol settings that are configured for your server. See `protocolDetails` block below for details. 514 ProtocolDetails ServerProtocolDetailsPtrInput 515 // 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: 516 Protocols pulumi.StringArrayInput 517 // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. 518 S3StorageOptions ServerS3StorageOptionsPtrInput 519 // Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: 520 // * `TransferSecurityPolicy-2024-01` 521 // * `TransferSecurityPolicy-2023-05` 522 // * `TransferSecurityPolicy-2022-03` 523 // * `TransferSecurityPolicy-2020-06` 524 // * `TransferSecurityPolicy-2018-11` 525 // * `TransferSecurityPolicy-FIPS-2024-01` 526 // * `TransferSecurityPolicy-FIPS-2023-05` 527 // * `TransferSecurityPolicy-FIPS-2020-06` 528 // * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` 529 // * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` 530 SecurityPolicyName pulumi.StringPtrInput 531 // 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. 532 StructuredLogDestinations pulumi.StringArrayInput 533 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 534 Tags pulumi.StringMapInput 535 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 536 // 537 // Deprecated: Please use `tags` instead. 538 TagsAll pulumi.StringMapInput 539 // URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`. 540 Url pulumi.StringPtrInput 541 // Specifies the workflow details. See `workflowDetails` block below for details. 542 WorkflowDetails ServerWorkflowDetailsPtrInput 543 } 544 545 func (ServerState) ElementType() reflect.Type { 546 return reflect.TypeOf((*serverState)(nil)).Elem() 547 } 548 549 type serverArgs struct { 550 // The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS` 551 Certificate *string `pulumi:"certificate"` 552 // The directory service ID of the directory service you want to connect to with an `identityProviderType` of `AWS_DIRECTORY_SERVICE`. 553 DirectoryId *string `pulumi:"directoryId"` 554 // The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. 555 Domain *string `pulumi:"domain"` 556 // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. 557 EndpointDetails *ServerEndpointDetails `pulumi:"endpointDetails"` 558 // 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`. 559 EndpointType *string `pulumi:"endpointType"` 560 // 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` `identityProviderType`. 561 ForceDestroy *bool `pulumi:"forceDestroy"` 562 // The ARN for a lambda function to use for the Identity provider. 563 Function *string `pulumi:"function"` 564 // 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). 565 HostKey *string `pulumi:"hostKey"` 566 // 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. 567 IdentityProviderType *string `pulumi:"identityProviderType"` 568 // Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identityProviderType` of `API_GATEWAY`. 569 InvocationRole *string `pulumi:"invocationRole"` 570 // 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. 571 LoggingRole *string `pulumi:"loggingRole"` 572 // 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. 573 PostAuthenticationLoginBanner *string `pulumi:"postAuthenticationLoginBanner"` 574 // Specify a string to display when users connect to a server. This string is displayed before the user authenticates. 575 PreAuthenticationLoginBanner *string `pulumi:"preAuthenticationLoginBanner"` 576 // The protocol settings that are configured for your server. See `protocolDetails` block below for details. 577 ProtocolDetails *ServerProtocolDetails `pulumi:"protocolDetails"` 578 // 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: 579 Protocols []string `pulumi:"protocols"` 580 // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. 581 S3StorageOptions *ServerS3StorageOptions `pulumi:"s3StorageOptions"` 582 // Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: 583 // * `TransferSecurityPolicy-2024-01` 584 // * `TransferSecurityPolicy-2023-05` 585 // * `TransferSecurityPolicy-2022-03` 586 // * `TransferSecurityPolicy-2020-06` 587 // * `TransferSecurityPolicy-2018-11` 588 // * `TransferSecurityPolicy-FIPS-2024-01` 589 // * `TransferSecurityPolicy-FIPS-2023-05` 590 // * `TransferSecurityPolicy-FIPS-2020-06` 591 // * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` 592 // * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` 593 SecurityPolicyName *string `pulumi:"securityPolicyName"` 594 // 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. 595 StructuredLogDestinations []string `pulumi:"structuredLogDestinations"` 596 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 597 Tags map[string]string `pulumi:"tags"` 598 // URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`. 599 Url *string `pulumi:"url"` 600 // Specifies the workflow details. See `workflowDetails` block below for details. 601 WorkflowDetails *ServerWorkflowDetails `pulumi:"workflowDetails"` 602 } 603 604 // The set of arguments for constructing a Server resource. 605 type ServerArgs struct { 606 // The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS` 607 Certificate pulumi.StringPtrInput 608 // The directory service ID of the directory service you want to connect to with an `identityProviderType` of `AWS_DIRECTORY_SERVICE`. 609 DirectoryId pulumi.StringPtrInput 610 // The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. 611 Domain pulumi.StringPtrInput 612 // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. 613 EndpointDetails ServerEndpointDetailsPtrInput 614 // 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`. 615 EndpointType pulumi.StringPtrInput 616 // 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` `identityProviderType`. 617 ForceDestroy pulumi.BoolPtrInput 618 // The ARN for a lambda function to use for the Identity provider. 619 Function pulumi.StringPtrInput 620 // 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). 621 HostKey pulumi.StringPtrInput 622 // 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. 623 IdentityProviderType pulumi.StringPtrInput 624 // Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identityProviderType` of `API_GATEWAY`. 625 InvocationRole pulumi.StringPtrInput 626 // 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. 627 LoggingRole pulumi.StringPtrInput 628 // 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. 629 PostAuthenticationLoginBanner pulumi.StringPtrInput 630 // Specify a string to display when users connect to a server. This string is displayed before the user authenticates. 631 PreAuthenticationLoginBanner pulumi.StringPtrInput 632 // The protocol settings that are configured for your server. See `protocolDetails` block below for details. 633 ProtocolDetails ServerProtocolDetailsPtrInput 634 // 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: 635 Protocols pulumi.StringArrayInput 636 // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. 637 S3StorageOptions ServerS3StorageOptionsPtrInput 638 // Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: 639 // * `TransferSecurityPolicy-2024-01` 640 // * `TransferSecurityPolicy-2023-05` 641 // * `TransferSecurityPolicy-2022-03` 642 // * `TransferSecurityPolicy-2020-06` 643 // * `TransferSecurityPolicy-2018-11` 644 // * `TransferSecurityPolicy-FIPS-2024-01` 645 // * `TransferSecurityPolicy-FIPS-2023-05` 646 // * `TransferSecurityPolicy-FIPS-2020-06` 647 // * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` 648 // * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` 649 SecurityPolicyName pulumi.StringPtrInput 650 // 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. 651 StructuredLogDestinations pulumi.StringArrayInput 652 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 653 Tags pulumi.StringMapInput 654 // URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`. 655 Url pulumi.StringPtrInput 656 // Specifies the workflow details. See `workflowDetails` block below for details. 657 WorkflowDetails ServerWorkflowDetailsPtrInput 658 } 659 660 func (ServerArgs) ElementType() reflect.Type { 661 return reflect.TypeOf((*serverArgs)(nil)).Elem() 662 } 663 664 type ServerInput interface { 665 pulumi.Input 666 667 ToServerOutput() ServerOutput 668 ToServerOutputWithContext(ctx context.Context) ServerOutput 669 } 670 671 func (*Server) ElementType() reflect.Type { 672 return reflect.TypeOf((**Server)(nil)).Elem() 673 } 674 675 func (i *Server) ToServerOutput() ServerOutput { 676 return i.ToServerOutputWithContext(context.Background()) 677 } 678 679 func (i *Server) ToServerOutputWithContext(ctx context.Context) ServerOutput { 680 return pulumi.ToOutputWithContext(ctx, i).(ServerOutput) 681 } 682 683 // ServerArrayInput is an input type that accepts ServerArray and ServerArrayOutput values. 684 // You can construct a concrete instance of `ServerArrayInput` via: 685 // 686 // ServerArray{ ServerArgs{...} } 687 type ServerArrayInput interface { 688 pulumi.Input 689 690 ToServerArrayOutput() ServerArrayOutput 691 ToServerArrayOutputWithContext(context.Context) ServerArrayOutput 692 } 693 694 type ServerArray []ServerInput 695 696 func (ServerArray) ElementType() reflect.Type { 697 return reflect.TypeOf((*[]*Server)(nil)).Elem() 698 } 699 700 func (i ServerArray) ToServerArrayOutput() ServerArrayOutput { 701 return i.ToServerArrayOutputWithContext(context.Background()) 702 } 703 704 func (i ServerArray) ToServerArrayOutputWithContext(ctx context.Context) ServerArrayOutput { 705 return pulumi.ToOutputWithContext(ctx, i).(ServerArrayOutput) 706 } 707 708 // ServerMapInput is an input type that accepts ServerMap and ServerMapOutput values. 709 // You can construct a concrete instance of `ServerMapInput` via: 710 // 711 // ServerMap{ "key": ServerArgs{...} } 712 type ServerMapInput interface { 713 pulumi.Input 714 715 ToServerMapOutput() ServerMapOutput 716 ToServerMapOutputWithContext(context.Context) ServerMapOutput 717 } 718 719 type ServerMap map[string]ServerInput 720 721 func (ServerMap) ElementType() reflect.Type { 722 return reflect.TypeOf((*map[string]*Server)(nil)).Elem() 723 } 724 725 func (i ServerMap) ToServerMapOutput() ServerMapOutput { 726 return i.ToServerMapOutputWithContext(context.Background()) 727 } 728 729 func (i ServerMap) ToServerMapOutputWithContext(ctx context.Context) ServerMapOutput { 730 return pulumi.ToOutputWithContext(ctx, i).(ServerMapOutput) 731 } 732 733 type ServerOutput struct{ *pulumi.OutputState } 734 735 func (ServerOutput) ElementType() reflect.Type { 736 return reflect.TypeOf((**Server)(nil)).Elem() 737 } 738 739 func (o ServerOutput) ToServerOutput() ServerOutput { 740 return o 741 } 742 743 func (o ServerOutput) ToServerOutputWithContext(ctx context.Context) ServerOutput { 744 return o 745 } 746 747 // Amazon Resource Name (ARN) of Transfer Server 748 func (o ServerOutput) Arn() pulumi.StringOutput { 749 return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 750 } 751 752 // The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS` 753 func (o ServerOutput) Certificate() pulumi.StringPtrOutput { 754 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.Certificate }).(pulumi.StringPtrOutput) 755 } 756 757 // The directory service ID of the directory service you want to connect to with an `identityProviderType` of `AWS_DIRECTORY_SERVICE`. 758 func (o ServerOutput) DirectoryId() pulumi.StringPtrOutput { 759 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.DirectoryId }).(pulumi.StringPtrOutput) 760 } 761 762 // The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`. 763 func (o ServerOutput) Domain() pulumi.StringPtrOutput { 764 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.Domain }).(pulumi.StringPtrOutput) 765 } 766 767 // The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`) 768 func (o ServerOutput) Endpoint() pulumi.StringOutput { 769 return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput) 770 } 771 772 // The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. See `endpointDetails` block below for details. 773 func (o ServerOutput) EndpointDetails() ServerEndpointDetailsPtrOutput { 774 return o.ApplyT(func(v *Server) ServerEndpointDetailsPtrOutput { return v.EndpointDetails }).(ServerEndpointDetailsPtrOutput) 775 } 776 777 // 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`. 778 func (o ServerOutput) EndpointType() pulumi.StringPtrOutput { 779 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.EndpointType }).(pulumi.StringPtrOutput) 780 } 781 782 // 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` `identityProviderType`. 783 func (o ServerOutput) ForceDestroy() pulumi.BoolPtrOutput { 784 return o.ApplyT(func(v *Server) pulumi.BoolPtrOutput { return v.ForceDestroy }).(pulumi.BoolPtrOutput) 785 } 786 787 // The ARN for a lambda function to use for the Identity provider. 788 func (o ServerOutput) Function() pulumi.StringPtrOutput { 789 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.Function }).(pulumi.StringPtrOutput) 790 } 791 792 // 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). 793 func (o ServerOutput) HostKey() pulumi.StringPtrOutput { 794 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.HostKey }).(pulumi.StringPtrOutput) 795 } 796 797 // 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. 798 func (o ServerOutput) HostKeyFingerprint() pulumi.StringOutput { 799 return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.HostKeyFingerprint }).(pulumi.StringOutput) 800 } 801 802 // 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. 803 func (o ServerOutput) IdentityProviderType() pulumi.StringPtrOutput { 804 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.IdentityProviderType }).(pulumi.StringPtrOutput) 805 } 806 807 // Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identityProviderType` of `API_GATEWAY`. 808 func (o ServerOutput) InvocationRole() pulumi.StringPtrOutput { 809 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.InvocationRole }).(pulumi.StringPtrOutput) 810 } 811 812 // 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. 813 func (o ServerOutput) LoggingRole() pulumi.StringPtrOutput { 814 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.LoggingRole }).(pulumi.StringPtrOutput) 815 } 816 817 // 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. 818 func (o ServerOutput) PostAuthenticationLoginBanner() pulumi.StringPtrOutput { 819 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.PostAuthenticationLoginBanner }).(pulumi.StringPtrOutput) 820 } 821 822 // Specify a string to display when users connect to a server. This string is displayed before the user authenticates. 823 func (o ServerOutput) PreAuthenticationLoginBanner() pulumi.StringPtrOutput { 824 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.PreAuthenticationLoginBanner }).(pulumi.StringPtrOutput) 825 } 826 827 // The protocol settings that are configured for your server. See `protocolDetails` block below for details. 828 func (o ServerOutput) ProtocolDetails() ServerProtocolDetailsOutput { 829 return o.ApplyT(func(v *Server) ServerProtocolDetailsOutput { return v.ProtocolDetails }).(ServerProtocolDetailsOutput) 830 } 831 832 // 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: 833 func (o ServerOutput) Protocols() pulumi.StringArrayOutput { 834 return o.ApplyT(func(v *Server) pulumi.StringArrayOutput { return v.Protocols }).(pulumi.StringArrayOutput) 835 } 836 837 // Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. See `s3StorageOptions` block below for details. 838 func (o ServerOutput) S3StorageOptions() ServerS3StorageOptionsOutput { 839 return o.ApplyT(func(v *Server) ServerS3StorageOptionsOutput { return v.S3StorageOptions }).(ServerS3StorageOptionsOutput) 840 } 841 842 // Specifies the name of the security policy that is attached to the server. Default value is: `TransferSecurityPolicy-2018-11`. The available values are: 843 // * `TransferSecurityPolicy-2024-01` 844 // * `TransferSecurityPolicy-2023-05` 845 // * `TransferSecurityPolicy-2022-03` 846 // * `TransferSecurityPolicy-2020-06` 847 // * `TransferSecurityPolicy-2018-11` 848 // * `TransferSecurityPolicy-FIPS-2024-01` 849 // * `TransferSecurityPolicy-FIPS-2023-05` 850 // * `TransferSecurityPolicy-FIPS-2020-06` 851 // * `TransferSecurityPolicy-PQ-SSH-Experimental-2023-04` 852 // * `TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04` 853 func (o ServerOutput) SecurityPolicyName() pulumi.StringPtrOutput { 854 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.SecurityPolicyName }).(pulumi.StringPtrOutput) 855 } 856 857 // 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. 858 func (o ServerOutput) StructuredLogDestinations() pulumi.StringArrayOutput { 859 return o.ApplyT(func(v *Server) pulumi.StringArrayOutput { return v.StructuredLogDestinations }).(pulumi.StringArrayOutput) 860 } 861 862 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 863 func (o ServerOutput) Tags() pulumi.StringMapOutput { 864 return o.ApplyT(func(v *Server) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 865 } 866 867 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 868 // 869 // Deprecated: Please use `tags` instead. 870 func (o ServerOutput) TagsAll() pulumi.StringMapOutput { 871 return o.ApplyT(func(v *Server) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 872 } 873 874 // URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`. 875 func (o ServerOutput) Url() pulumi.StringPtrOutput { 876 return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.Url }).(pulumi.StringPtrOutput) 877 } 878 879 // Specifies the workflow details. See `workflowDetails` block below for details. 880 func (o ServerOutput) WorkflowDetails() ServerWorkflowDetailsPtrOutput { 881 return o.ApplyT(func(v *Server) ServerWorkflowDetailsPtrOutput { return v.WorkflowDetails }).(ServerWorkflowDetailsPtrOutput) 882 } 883 884 type ServerArrayOutput struct{ *pulumi.OutputState } 885 886 func (ServerArrayOutput) ElementType() reflect.Type { 887 return reflect.TypeOf((*[]*Server)(nil)).Elem() 888 } 889 890 func (o ServerArrayOutput) ToServerArrayOutput() ServerArrayOutput { 891 return o 892 } 893 894 func (o ServerArrayOutput) ToServerArrayOutputWithContext(ctx context.Context) ServerArrayOutput { 895 return o 896 } 897 898 func (o ServerArrayOutput) Index(i pulumi.IntInput) ServerOutput { 899 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Server { 900 return vs[0].([]*Server)[vs[1].(int)] 901 }).(ServerOutput) 902 } 903 904 type ServerMapOutput struct{ *pulumi.OutputState } 905 906 func (ServerMapOutput) ElementType() reflect.Type { 907 return reflect.TypeOf((*map[string]*Server)(nil)).Elem() 908 } 909 910 func (o ServerMapOutput) ToServerMapOutput() ServerMapOutput { 911 return o 912 } 913 914 func (o ServerMapOutput) ToServerMapOutputWithContext(ctx context.Context) ServerMapOutput { 915 return o 916 } 917 918 func (o ServerMapOutput) MapIndex(k pulumi.StringInput) ServerOutput { 919 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Server { 920 return vs[0].(map[string]*Server)[vs[1].(string)] 921 }).(ServerOutput) 922 } 923 924 func init() { 925 pulumi.RegisterInputType(reflect.TypeOf((*ServerInput)(nil)).Elem(), &Server{}) 926 pulumi.RegisterInputType(reflect.TypeOf((*ServerArrayInput)(nil)).Elem(), ServerArray{}) 927 pulumi.RegisterInputType(reflect.TypeOf((*ServerMapInput)(nil)).Elem(), ServerMap{}) 928 pulumi.RegisterOutputType(ServerOutput{}) 929 pulumi.RegisterOutputType(ServerArrayOutput{}) 930 pulumi.RegisterOutputType(ServerMapOutput{}) 931 }