variable "account" {
  type        = string
  description = "snowflake account id"
  default     = "delphidev"
}

variable "legacy_service_users" {
  type = map(object({
    default_role                   = string,
    roles                          = optional(list(string), []),
    login                          = optional(string, ""),
    disabled                       = optional(bool, false),
    comment                        = optional(string),
    default_wh                     = optional(string),
    default_namespace              = optional(string),
    default_secondary_roles_option = optional(string, "NONE")
    email                          = optional(string),
    owner                          = optional(string, "USERADMIN"),
    rsa_public_key                 = optional(string),
    network_policy                 = optional(string),
  }))
  description = "A map of legacy service users"
  default = {
    "DAILY_DATA_ALERT_SERVICE_USER" = {
      comment        = "Service user for daily data alert lambda (ex-l2support)"
      default_wh     = "TEAM_L2_SUPPORT_WH"
      default_role   = "DELPHI_DATA_DAILY_ALERT"
      roles          = ["DELPHI_DATA_DAILY_ALERT"]
      network_policy = "qa-delphi-nat-policy"
    },
    "JENKINS_CLI_USER" = {
      comment        = "Service user for Orchard Jenkins"
      default_role   = "JENKINS_CLI_ROLE"
      roles          = ["JENKINS_CLI_ROLE", "QUICKSIGHT_ADMIN"]
      rsa_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5+PsUSdY5cnHvlDKXQy3+PSDZYLekqFAodbcUn++eO5qsx9VAPgEdqmuLRiToKP51qr18Y/ulfsrwCIcJ+7KKk5RamUs5nRMONNwY1ssUbJoHToZ4+pkMTEyCH7NUvaCNvVb7qirwX2KX8D96bBAZdCBPX59MCAdjeGMMNdJ+JTkEkpCE9o9LjuFas2/469dcq3As8LwOB7hJhRjFPdZGa3DKH88MnJaHa5AgLmEXlufrZIIeiq5kSZZBxjEcRCNE3ZEFzwShh8EDP4z9OFd5x0a95IqHETGWcWNmjfBryPjYSiS8GcAYEKCToHjJjcvEsve0OkXgH3YS93CbC8npQIDAQAB"
      network_policy = "jenkins-cli-network-policy"
    },
    "TESTAUTOMATION" = {
      default_role   = "EXPLORATION_ADV_USER"
      roles          = ["EXPLORATION_ADV_USER", "EXPLORATION_AD_PLUS", "EXPLORATION_USER", "SYSADMIN"]
      network_policy = "gdb-jenkins-nat-policy"
    },
    "QUICKSIGHT_USER" = {
      default_wh     = "QUICKSIGHT_WH"
      default_role   = "SYSADMIN"
      network_policy = "delphi-stage-nat-policy"
      roles          = ["SYSADMIN"]
    },
    "FIVETRAN" = {
      default_wh     = "FIVETRAN_WAREHOUSE"
      default_role   = "FIVETRAN_ROLE"
      roles          = ["FIVETRAN_ROLE"]
      network_policy = "fivetran-policy"
      disabled       = true
    },
    "FIVETRAN_QA_USER" = {
      default_wh     = "FIVETRAN_WAREHOUSE"
      default_role   = "FIVETRAN_QA_ROLE"
      roles          = ["FIVETRAN_QA_ROLE"]
      network_policy = "fivetran-policy"
    },
  }
}

variable "service_users" {
  type = map(object({
    default_role                   = string,
    roles                          = optional(list(string), []),
    login                          = optional(string, ""),
    disabled                       = optional(bool, false),
    comment                        = optional(string),
    default_wh                     = optional(string),
    default_namespace              = optional(string),
    default_secondary_roles_option = optional(string, "NONE")
    email                          = optional(string),
    owner                          = optional(string, "USERADMIN"),
    rsa_public_key                 = optional(string),
    network_policy                 = optional(string),
  }))
  description = "A map of service users with login as a key"
  default = {
    "CHARTMETRIC_SERVICE_USER" = {
      default_role   = "CHARTMETRIC_USER"
      roles          = ["CHARTMETRIC_USER"]
      rsa_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqI05iM0+AnFkKQsUCoF2+AdDP+0W9gbSwXuuCE4wiuxVZKPm8sy13A+DQPKPtDCBkwCuYBJhMxZTkksg90f8LZG1vUk4zzMpKcQ/i0X3wTC/2NmKpe7lwNo66DZbjvK0HxgNAJiyHAK4fngmpY+fsLi+LhcqPKKIFIYupjjzTmQt/oJ+BuxO5OAr6xFvzFB8FmDLMNevnGB9/s2b2UbokEQtl5Q+sfYHHbYLop2SsiattzGC4zIQSiggQzDramLIyZdAL44XMLAqgZEVLg28NUlviOat3STwXaEbJknxYZzaS0sAn+Nm4LZYzZwaNUd7q+VCb1ifHlwZ1Zr9/ClDoQIDAQAB"
    },
    "CRM_DEV_FIVETRAN_USER" = {
      comment      = "System user by Carlos V"
      default_wh   = "CRM_DATA_DEV_WH"
      default_role = "FIVETRAN_QA_ROLE"
      roles        = ["CRM_ECOMMERCE_ROLE", "FIVETRAN_QA_ROLE"]
      disabled     = true
    },
    "CRM_ECOMMERCE_SYSTEM_USER" = {
      comment        = "CRM Ecommerce application user"
      default_wh     = "CRM_DATA_DEV_WH"
      default_role   = "FIVETRAN_QA_USER"
      roles          = ["CRM_ECOMMERCE_ROLE", "FIVETRAN_PRIME", "FIVETRAN_QA_ROLE"]
      rsa_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAva9xGp+0MzP/TTrz+CXUbV7ymMQYahD9ftLj1BzMvIP+4HoCi80iOVdocbFYWwOaQ65nfzMs9jLnPoBgwOwlADZDEteDq83XxvDD0SX7uBd0kGCJtqsgeJnHwGHT39wyXV/YRMBSMxUm0dEwxdE/PREgqJnu4cFnKkIk8Rlv6SaVUEQ4SClApBPRmkbJG2/u3brDf61cectPxeJJ1W+fLnxrLLEwPqR4AvOQqrcJuIygAHqrdabMiQbld3RvgpQ50yc+TlPugtxGNHpKwaCtm99amaLu5YxLt0kS34mieIVA2OUw0PBqw3a+nxvi5YTnI56JyLCge/E80XuStmBmhQIDAQAB"
    },
    "OCTOPUS_DEPLOY" = {
      default_role   = "SYSADMIN"
      roles          = ["CRM_ECOMMERCE_ROLE", "FIVETRAN_PRIME", "SYSADMIN", "QUICKSIGHT_ADMIN", "JENKINS_CLI_ROLE"]
      rsa_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3U1rmjHPfTVgKYxD22tJOBjFMZOKVeibdZoudQe11YhEtQVCv2igOZRjBqTF/89r4ZzxlV4R3yeDnb+edj68AyC3PnrzK5+EBDqI1vTrb+RZ3vfUagEZZl2JHr0IVSADCwd5ius639C7bMnN4mRHUttADZbPMdxBZmsqvzv2xinZ5ofYB3n9w2xHsj9kTXkeLpUOWcAToWJZDSXlg4URFuNzLXec8QI0g++dF76HROjpWJVaZfchCGZYMdCrM5vu5L85DZeotMFcFn1YlAqQ7ja6HruNROKYXRtOqLqE6P1goujnn0qN0jA4sl3GMcGEjl6P1TXHys6ve8dBz5T9LwIDAQAB"
      disabled       = false
    },
    "DATADOG_USER" = {
      default_wh        = "CICD_WH"
      default_namespace = "SNOWFLAKE.ACCOUNT_USAGE"
      default_role      = "DATADOG"
      roles             = ["DATADOG"]
      network_policy    = "gdb-infra-prod-policy"
      rsa_public_key    = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsgfwchyPsrBpC8kQQfj7Qrd48WidwgkNoo90VYI2UHGSZ0fzS/xVjVibJ+FsoHpv77kvrerrUPcMKRSoYYYMXSbBTlMR+5ROLsZnvy1vTBjdwcSIZgAC8JFLDudctD/TKSUZ6NAumWGwJINSTteNIJMxAElKlEU4rJNpkCnWf8ZsDGOaNn2QRUG+Wvs7MckpyfWGHAT0IhDSFk1hJ0clZfzcD776quP96KiSMuNJLNmv7jGU8MOagT1UN/oTclyulBSBRciv1Y7WSVS5QNbfaO/arxU3e9Xhns9H8VjUweomI1I5xHMCPeTETR1uOYStNvQMDUWaBH4cQQMxT7EBbQIDAQAB"
    },
    "DATADOG_INTEGRATION_USER" = {
      default_wh        = "CICD_WH"
      default_namespace = "SNOWFLAKE.ACCOUNT_USAGE"
      default_role      = "PROD_DATADOG_INTEGRATION"
      roles             = ["PROD_DATADOG_INTEGRATION"]
      network_policy    = "datadog-webhooks-network-policy"
      rsa_public_key    = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuMUXW4hD2rfyc58Lo6HjCca8itiTf9EevupaF6+YqM+rEioC2usYtyteBu3U3SeEF3TQKeemExDBoUcviYtaeMvy17pDppygPvPNXPeEyPmKYROd7o/dqrjGJgW2zQQLYAcWCKihfug/0rXlVRaplU8gtGtssxl8ipJzngaIfTUC2IXSme6Onf2NtDCBXO/pKNlHHJMnMIaMpBSuf5sQIlHR8IUhsXyvqsnkv/8sY7l9JnG2xF7TLrYhp1/JZ1oOmHYY3lN1lacdRHY0EKrJVq4tPr4dRD9SAgAEV+z7kcq0xltAwRzFueCG9gSbkvu1XA3fR1WZaOXO8ZaurROTQwIDAQAB"
    },
    "DELPHI_EXPLORATION_USER" = {
      default_role = "DELPHI_EXPLORATION_RW"
      roles        = ["DELPHI_EXPLORATION_RW"]
      disabled     = true
    },
    "DELPHI_EXPLORATION_SYS_USER" = {
      default_wh     = "EXPLORATION_SYS_DEV_WH"
      default_role   = "EXPLORATION_SYS_USER"
      roles          = ["EXPLORATION_SYS_USER"]
      rsa_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAim6HF6tu6gJAwn6scBhrIwX0xN5qlRgr3Pi7umOSYNxq9lmetZhxXLkZPyg1YpbNMBDQ4/m/zBZBai6v2dqcUkeJ/wgFCuzAUlnItsSqsA5fKw3hnM1GP7FgaofGHx7VBesgRoDQno5M/e6dvfzwxGE7tofksjtlGOSeYZukxxT/KVTpLYzx4GaYGqhpFpUAVBmaEUk+/WrX132QgHle9nf6UojaAPNdFwmIUcpx3cRDwaP+J0cHert0GJESmzBNXRobyFSIicdEvrsBTPzkVj4dD1hITckkE95DsTISC/AcVz+zVAwBgkp0SBAEthLq25aJ70nJByYp4xXgxVc5OwIDAQAB"
    },
    "DELPHI_EXPLORATION_READER" = {
      default_role   = "READER"
      roles          = ["READER"]
      rsa_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuhyVT0Cqjkbhuz2okPxC1gyOVANUo++o23ELapTBN7odFTZYcXeIdybIMIwDQZTy36Ve4KQrnLsXVexl9T5vVzpSXNyT7dQRRu7iEJLZhC/4C/ea0YjQpuHh0eSbA6rQF6NqdPLuptdA/Gmq/bnTF7u4GLPSy7ph9FbMi0eAZykJTlwOIyHz0I7lrQu8P44Saqz0umBGssKQ1d+0TV8dA7KfyvANTGV0BuKRnisp655gM2bLkaDUoZnei9ikEjunPczSJ92UYam5mHGS2i0nDLZzcoE0zrGZGDxNdUu+6xNWVc0ifNv7GjtyOB7pLN9MRDmnGN80lWwcWB7yi92W7wIDAQAB"
    },
    "APOLLO" = {
      email        = "apollo@sonymusic.com"
      default_role = "APOLLO_TEAM_ROLE"
      roles        = ["APOLLO_TEAM_ROLE"]
    },
    "KAFKA_DB_DEPLOY_DELPHI_DEV" = {
      comment        = "Service user for snowflake for db-deploy"
      default_wh     = "KAFKA_DATA_HIGHWAY_WH"
      default_role   = "KAFKA_DATA_HIGHWAY_TEAM"
      roles          = ["KAFKA_DATA_HIGHWAY_TEAM"]
      rsa_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArq4gOHnrHH6FFZAtvRuPAOLTnr5m4vvLaA15cxxtPy5vfcebVRxd8gc+wAapaBlGI5bu2ykA+GoIvdAohaD148mXslV3cc52clQnSZGysVUw8EWhXox7RTOwNJX7LCGuFseI7uLFzPmGJIxPJM0smQo3xjeDhx+1mUoTLzdabHrBsYUkaXS9fGGq+LR/zHNQZ4mZaLKMnwFqxwaFVZdv6YculjIZzdGNYpTFTVgfphYt0r3c2fE9MLpE371Vxzm7Y68TZ0h/wuQIJkKXZFM3L3/n6ZTCYPy43iJWr26SzsNExbCMeKNO38Jm9NbvpOVx9TqRGo+fGpUCzZPYR8bNlQIDAQAB"
    },
    "QA_KAFKA_CONNECT_DELPHI_DEV" = {
      comment        = "Service user for snowflake sink for salesforce"
      default_wh     = "KAFKA_DATA_HIGHWAY_WH"
      default_role   = "QA_KAFKA_CONNECT_DELPHI_DEV"
      roles          = ["QA_KAFKA_CONNECT_DELPHI_DEV"]
      rsa_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkZ5DoyIuro3fnXghizzRkn0OWZo8D6BiX02WdBnVflZ/ua996ljHPNBu64P5zO4NnJMaRvTorb3jIB2iJB3og9YhA01d2nvqH5fmtiKvE9HYm1FrCg1V0x6MlAo1nnvTqyhMKx9tN9tsLY/1u2ymOoKJ6pCDHUKrQuE5p/aotGhSwskYnPwOVG954lbwFSITupAs1FHPB0Idh6C5h54dc1kFWSBdmd61uK3iVvQ0oHM3u8ovO6kXRoVlFiks9T6veF/f0MW6pQnZF+VqMj/V5L0E/BPTz8a5hMEAGcrxS6FPjYA5bFsDBcaETH2XY4JsApy0IqSQ+WW6CmwllDV3+QIDAQAB"
    },
    "QA_MARTECH_SNOWFLAKE_SALESFORCE_NODE" = {
      comment        = "Service user for martech qa-snowflake-salesforce-node service"
      default_wh     = "QA_MARTECH_SNOWFLAKE_SALESFORCE_NODE_WH"
      default_role   = "CRM_ADMIN_USER"
      roles          = ["CRM_ADMIN_USER"]
      rsa_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzEaIORP7t0h5C+Q6TkcD1U6CHCZl4dC79tHIWbdHaS37NFbXPkXVIb/O8dflxTMBz7TSv9Zj+6WTu/GZ+jjvmF7roU/P75V0T1iKI4hMYFXS91+szH6YklDcST/Wnfv/6/M34+vlh5exZLc1ku+6iRpcpuJDftcNqe/RO437y9LITlNebEttDRxoio0a0G/UZ9n8F5ZJnOkRD36BoJqqR/n8HDjXQinpexT3X7yFfNP5juQrsusAHJDQW5mWn5abftYDV+MwBGRXFkQpyaLPeYcXHKbnxBEQ279LX4HIR8utQyBLvRsFLJzpEsf9m+zGoFb8Fz1pP/yPRS+74pGUJwIDAQAB"
    },
    "QA_SWF_TICEKTEK_ETL" = {
      comment        = "Service user for swf-feed-ingestion flow ticketek"
      default_role   = "QA_ETL_TICKETEK_ROLE"
      roles          = ["QA_ETL_TICKETEK_ROLE"]
      rsa_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy2bxvZ7oOduGiu7vK9sh48bdfVr8kWUs1q3cGJZH+nDk3h8JelmQtW2oGbSbyIPQDxRIU+39gM08AQFcSvVEom6QNRnou1g0IUSDiRLzOEbndzg1hsClHVuV4/ip+Okq3mMhp0bGmt4V2H1xdjsLsM0/g39sv8Akh7me5chxrivRHsoqFIbCTHjLGQqbytgvCqxV5pVRg05c1Mhefh159vPUNeytLJjh6Q/g5HtxHs4qlq0pMk70MKUo6xRrjh7W9QUBNKjulAAqrTBrdi3Nf0zDr/4HNb1RmMlp5MoI/zjyg6sm89sdXu5AtkbBlPXSnhHhzMJvfDqVcTx4HCxEmwIDAQAB"
    },
    "QA_SWF_DELPHI_CRM_ETL" = {
      comment        = "Service user for swf-feed-ingestion flow delphi_crm"
      default_role   = "QA_ETL_DELPHI_CRM_ROLE"
      roles          = ["QA_ETL_DELPHI_CRM_ROLE"]
      rsa_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1s6foFpRDuwHBXlJDK+uwnUPoDxqD5Lmfj7tPvg72ARp++CphQhTlMreLeIqycOqxDCKuanaJoJk4sOAyzX4gxb8rePKtOqyRycC8xxjZs+iim9WTy1W2OO6ZYJ+YSx+0azuQEGSwKgGxJpZsYItCDqMY/VYJ3Ad66bea3kWPeZ2Lj/7YIWJT2eEar7EROxuFZRb0ckgakMl0oNcDR1sBzefuUaEaKemhelOE81fJAuonYzfwvScd7HCEZbrYtyj2jiggMqLFItdm8Tu7bGSmxiMBPvVmiYxjsX8W67qKbVFUtHblAWv9D4wMBr/8C0vviDyYwlOZdshpgXFUZn2FQIDAQAB"
    },
  }
}
