hasher-matcher-actioner/terraform/api/variables.tf (165 lines of code) (raw):

# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved variable "prefix" { description = "Prefix to use for resource names" type = string } variable "api_and_webapp_user_pool_id" { description = "user pool id that can be used to create a URL to the JWT issuer (used by the api gateway authorizer)" type = string } variable "api_authorizer_audience" { description = "The audience entry for the JWT authorizer (used by the api gateway authorizer; for Cognito integration, must be the app client id)" type = string } variable "lambda_docker_info" { description = "Docker container information for lambda functions" type = object({ uri = string commands = object({ api_root = string api_auth = string }) }) } variable "image_data_storage" { description = "Configuration information for the S3 Bucket that will hold uploaded content" type = object({ bucket_name = string image_prefix = string }) } variable "index_data_storage" { description = "Configuration information for the S3 Bucket that will hold PDQ Index data" type = object({ bucket_name = string index_folder_key = string }) } variable "threat_exchange_data" { description = "Configuration information for the S3 Bucket that will hold ThreatExchange Data" type = object({ bucket_name = string data_folder = string }) } variable "datastore" { description = "DynamoDB Table to store hash and match information into" type = object({ name = string arn = string }) } variable "banks_datastore" { description = "DynamoDB Table to store bank information into" type = object({ name = string arn = string }) } variable "counts_datastore" { description = "The DynamoDBTable we be write counts to." type = object({ name = string arn = string }) } variable "log_retention_in_days" { description = "How long to retain cloudwatch logs for lambda functions in days" type = number } variable "additional_tags" { description = "Additional resource tags" type = map(string) } variable "config_table" { description = "The name and arn of the DynamoDB table used for persisting configs." type = object({ arn = string name = string }) } variable "te_api_token_secret" { description = "The aws secret where the ThreatExchange API token is stored" type = object({ name = string arn = string }) } variable "hma_api_access_tokens_secret" { description = "The aws secret to the set of access tokens checked for in authorizer api as an alternative to cognito user tokens." type = object({ name = string arn = string }) } variable "measure_performance" { description = "Send metrics to cloudwatch. Useful for benchmarking, but can incur costs. Set to string True for this to work." type = bool } variable "writebacks_queue" { description = "ARN and url to send writebacks to" type = object({ url = string arn = string }) } variable "submissions_queue" { description = "URL and ARN for submissions queue. Messages from the submission APIs will be dropped on this queue" type = object({ url = string arn = string }) } variable "hashes_queue" { description = "URL and ARN for unified hashes queue. Messages from the submission APIs will be dropped on this queue" type = object({ url = string arn = string }) } variable "partner_image_buckets" { description = "Names and arns of s3 buckets to consider as inputs to HMA. All images uploaded to these buckets will be processed by the hasher" type = list(object({ name = string arn = string params = map(string) })) } variable "enable_partner_upload_notification" { description = "Enable the upload notfication of partner buckets if given." type = bool default = false } variable "banks_media_storage" { description = "Name and arn where we store bank media." type = object({ bucket_name = string bucket_arn = string }) } variable "api_in_vpc" { description = "Should the API gateway used with HMA be made private behind a VPC. (Either way API will also require authorization)" type = bool } variable "vpc_id" { description = "vpc that locks down the API and UI to the specfic vpc_subnets and security_groups. Required if api_in_vpc = true" type = string default = "" } variable "vpc_subnets" { description = "Subnet ids of the vpc given in for vpc_id. Required if api_in_vpc = true" type = list(string) default = [] } variable "security_groups" { description = "Security group ids to be used with the vpc given in for vpc_id. Required if api_in_vpc = true" type = list(string) default = [] } variable "indexer_function_name" { description = "Name of the lambda function that does indexing." type = string } variable "indexer_function_arn" { description = "ARN of the lambda function that does indexing." type = string }