[
  {
    "name": "Route53Dns",
    "type": "dns",
    "driverClass": "bubble.cloud.dns.route53.Route53DnsDriver",
    "driverConfig": {},
    "credentials": {
      "params": [
        {"name": "AWS_ACCESS_KEY_ID", "value": "{{AWS_ACCESS_KEY_ID}}"},
        {"name": "AWS_SECRET_KEY", "value": "{{AWS_SECRET_KEY}}"}
      ]
    },
    "template": true
  },

  {
    "name": "GoDaddyDns",
    "type": "dns",
    "driverClass": "bubble.cloud.dns.godaddy.GoDaddyDnsDriver",
    "driverConfig": {},
    "credentials": {
      "params": [
        {"name": "GODADDY_API_KEY", "value": "{{GODADDY_API_KEY}}"},
        {"name": "GODADDY_API_SECRET", "value": "{{GODADDY_API_SECRET}}"}
      ]
    },
    "template": true
  },

  {
    "name": "LocalStorage",
    "type": "storage",
    "driverClass": "bubble.cloud.storage.local.LocalStorageDriver",
    "driverConfig": { "baseDir": "{{#exists LOCALSTORAGE_BASE_DIR}}{{LOCALSTORAGE_BASE_DIR}}{{else}}.bubble_local_storage{{/exists}}" },
    "template": false
  },

  {
    "name": "S3Storage",
    "type": "storage",
    "driverClass": "bubble.cloud.storage.s3.S3StorageDriver",
    "driverConfig": {
      "region": "{{#exists BUBBLE_S3_REGION}}{{BUBBLE_S3_REGION}}{{else}}US_EAST_1{{/exists}}",
      "bucket": "{{BUBBLE_S3_BUCKET}}",
      "prefix": "{{#exists BUBBLE_S3_BUCKET_PREFIX}}{{BUBBLE_S3_BUCKET_PREFIX}}{{else}}bubble_data{{/exists}}",
      "listFetchSize": 100
    },
    "credentials": {
      "params": [
        {"name": "AWS_ACCESS_KEY_ID", "value": "{{AWS_ACCESS_KEY_ID}}"},
        {"name": "AWS_SECRET_KEY", "value": "{{AWS_SECRET_KEY}}"}
      ]
    },
    "template": true
  },

  {
    "name": "GoogleGeoCoder",
    "type": "geoCode",
    "driverClass": "bubble.cloud.geoCode.google.GoogleGeoCodeDriver",
    "credentials": { "params": [ {"name": "apiKey", "value": "{{GOOGLE_API_KEY}}"} ] },
    "template": true
  },

  {
    "name": "TOTPAuthenticator",
    "type": "authenticator",
    "driverClass": "bubble.cloud.authenticator.TOTPAuthenticatorDriver",
    "template": true
  },

  {
    "name": "SmtpEmail",
    "type": "email",
    "driverClass": "bubble.cloud.email.SmtpEmailDriver",
    "driverConfig": {
      "tlsEnabled": true
    },
    "credentials": {
      "params": [
        {"name": "user", "value": "{{BUBBLE_SMTP_USER}}"},
        {"name": "password", "value": "{{BUBBLE_SMTP_PASS}}"},
        {"name": "host", "value": "{{BUBBLE_SMTP_SERVER}}"},
        {"name": "port", "value": "{{BUBBLE_SMTP_PORT}}"}
      ]
    },
    "template": true
  },

  {
    "name": "SendGridEmail",
    "type": "email",
    "driverClass": "bubble.cloud.email.sendgrid.SendGridEmailDriver",
    "driverConfig": {},
    "credentials": {
      "params": [
        {"name": "apiKey", "value": "{{BUBBLE_SENDGRID_API_KEY}}"}
      ]
    },
    "template": true
  },

  {
    "name": "MailgunEmail",
    "type": "email",
    "driverClass": "bubble.cloud.email.mailgun.MailgunEmailDriver",
    "driverConfig": {},
    "credentials": {
      "params": [
        {"name": "domain", "value": "{{BUBBLE_MAILGUN_DOMAIN}}"},
        {"name": "apiKey", "value": "{{BUBBLE_MAILGUN_API_KEY}}"}
      ]
    },
    "template": true
  },

  {
    "name": "TwilioSms",
    "type": "sms",
    "driverClass": "bubble.cloud.sms.twilio.TwilioSmsDriver",
    "driverConfig": {},
    "credentials": {
      "params": [
        {"name": "accountSID", "value": "{{TWILIO_ACCOUNT_SID}}"},
        {"name": "authToken", "value": "{{TWILIO_AUTH_TOKEN}}"},
        {"name": "fromPhoneNumber", "value": "{{TWILIO_FROM_PHONE_NUMBER}}"}
      ]
    },
    "template": true
  },

  {
    "name": "MaxMind",
    "type": "geoLocation",
    "driverClass": "bubble.cloud.geoLocation.maxmind.MaxMindDriver",
    "driverConfig": {
      "url": "{{#exists MAXMIND_URL}}{{{MAXMIND_URL}}}{{else}}https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key=[[apiKey]]&suffix=tar.gz{{/exists}}",
      "file": "{{#exists MAXMIND_FILE_REGEX}}{{{MAXMIND_FILE_REGEX}}}{{else}}GeoLite2-City_20[\\d]{6}/GeoLite2-City\\.mmdb{{/exists}}"
    },
    "credentials": {
      "params": [ {"name": "apiKey", "value": "{{{MAXMIND_API_KEY}}}"} ]
    },
    "template": true
  },

  {
    "name": "GoogleGeoTime",
    "type": "geoTime",
    "driverClass": "bubble.cloud.geoTime.google.GoogleGeoTimeDriver",
    "credentials": {  "params": [ {"name": "apiKey", "value": "{{GOOGLE_API_KEY}}"} ] },
    "template": true
  },

  {
    "name": "VultrCompute",
    "type": "compute",
    "driverClass": "bubble.cloud.compute.vultr.VultrDriver",
    "driverConfig": {
      "regions": [{
        "name": "Vultr - Dallas",
        "internalName": "Dallas",
        "location": {"city": "Dallas", "country": "US", "region": "TX", "lat": "32.779167", "lon": "-96.808889"}
      }, {
        "name": "Vultr - Los Angeles",
        "internalName": "Los Angeles",
        "location": {"city": "Los Angeles", "country": "US", "region": "CA", "lat": "34.05", "lon": "-118.25"}
      }, {
        "name": "Vultr - Miami",
        "internalName": "Miami",
        "location": {"city": "Miami", "country": "US", "region": "FL", "lat": "25.775278", "lon": "-80.208889"}
      }, {
        "name": "Vultr - Seattle",
        "internalName": "Seattle",
        "location": {"city": "Seattle", "country": "US", "region": "WA", "lat": "47.609722", "lon": "-122.333056"}
      }, {
        "name": "Vultr - New Jersey",
        "internalName": "New Jersey",
        "location": {"city": "Newark", "country": "US", "region": "NJ", "lat": "40.72", "lon": "-74.17"}
      }, {
        "name": "Vultr - Atlanta",
        "internalName": "Atlanta",
        "location": {"city": "Atlanta", "country": "US", "region": "GA", "lat": "33.755", "lon": "-84.39"}
      }, {
        "name": "Vultr - Chicago",
        "internalName": "Chicago",
        "location": {"city": "Chicago", "country": "US", "region": "IL", "lat": "41.881944", "lon": "-87.627778"}
      }, {
        "name": "Vultr - San Jose",
        "internalName": "Silicon Valley",
        "location": {"city": "San Jose", "country": "US", "region": "CA", "lat": "37.333333", "lon": "-121.9"}
      }, {
        "name": "Vultr - Toronto",
        "internalName": "Toronto",
        "location": {"city": "Toronto", "country": "CA", "region": "ON", "lat": "43.741667", "lon": "-79.373333"}
      }, {
        "name": "Vultr - London",
        "internalName": "London",
        "location": {"city": "London", "country": "GB", "region": "London", "lat": "51.507222", "lon": "-0.1275"}
      }, {
        "name": "Vultr - Paris",
        "internalName": "Paris",
        "location": {"city": "Paris", "country": "FR", "region": "Ile-de-Paris", "lat": "48.8567", "lon": "2.3508"}
      }, {
        "name": "Vultr - Frankfurt",
        "internalName": "Frankfurt",
        "location": {"city": "Frankfurt", "country": "DE", "region": "Hesse", "lat": "50.116667", "lon": "8.683333"}
      }, {
        "name": "Vultr - Singapore",
        "internalName": "Singapore",
        "location": {"city": "Singapore", "country": "SG", "region": "Singapore", "lat": "1.283333", "lon": "103.833333"}
      }, {
        "name": "Vultr - Tokyo",
        "internalName": "Tokyo",
        "location": {"city": "Tokyo", "country": "JP", "region": "Kantō", "lat": "35.689722", "lon": "139.692222"}
      }, {
        "name": "Vultr - Seoul",
        "internalName": "Seoul",
        "location": {"city": "Seoul", "country": "KR", "region": "Sudogwon", "lat": "37.566667", "lon": "126.966667"}
      }, {
        "name": "Vultr - Sydney",
        "internalName": "Sydney",
        "location": {"city": "Sydney", "country": "AU", "region": "NSW", "lat": "-33.865", "lon": "151.209444"}
      }, {
        "name": "Vultr - Amsterdam",
        "internalName": "ams3",
        "location": {"city": "Amsterdam", "country": "NL", "region": "North Holland", "lat": "52.366667", "lon": "4.9"}
      }],
      "sizes": [
        {"name": "small", "type": "small", "internalName": "1024 MB RAM,25 GB SSD,1.00 TB BW", "vcpu": 1, "memoryMB": 1024, "diskGB": 25},
        {"name": "medium", "type": "medium", "internalName": "2048 MB RAM,55 GB SSD,2.00 TB BW", "vcpu": 1, "memoryMB": 2048, "diskGB": 55},
        {"name": "large", "type": "large", "internalName": "4096 MB RAM,80 GB SSD,3.00 TB BW", "vcpu": 2, "memoryMB": 4096, "diskGB": 80}
      ],
      "os": "Ubuntu 20.04 x64",
      "packer": {
        "vars": [{"name": "VULTR_API_KEY", "value": "[[credentials.apiKey]]"}],
        "builder": {
          "type": "vultr",
          "ssh_username": "root",
          "api_key": "[[user `VULTR_API_KEY`]]",
          "os_id": "<<os.id>>",
          "region_id": "<<buildRegion.id>>",
          "plan_id": "<<sizes.small.id>>",
          "instance_label": "<<packerImageName>>",
          "snapshot_description": "<<packerImageName>>",
          "tag": "<<packerImageName>>"
        }
      }
    },
    "credentials": {
      "params": [
        {"name": "apiKey", "value": "{{VULTR_API_KEY}}"}
      ]
    },
    "template": true
  },

  {
    "name": "DigitalOceanCompute",
    "type": "compute",
    "driverClass": "bubble.cloud.compute.digitalocean.DigitalOceanDriver",
    "driverConfig": {
      "regions": [
        {
        "name": "DigitalOcean - New York City 1",
        "internalName": "nyc1",
        "location": {"city": "New York", "country": "US", "region": "NY", "lat": "40.661", "lon": "-73.944"}
      },{
        "name": "DigitalOcean - New York City 3",
        "internalName": "nyc3",
        "location": {"city": "New York", "country": "US", "region": "NY", "lat": "40.661", "lon": "-73.944"}
      }, {
        "name": "DigitalOcean - Singapore 1",
        "internalName": "sgp1",
        "location": {"city": "Singapore", "country": "SG", "region": "Singapore", "lat": "1.283333", "lon": "103.833333"}
      }, {
        "name": "DigitalOcean - London 1",
        "internalName": "lon1",
        "location": {"city": "London", "country": "GB", "region": "London", "lat": "51.507222", "lon": "-0.1275"}
      }, {
        "name": "DigitalOcean - Amsterdam 3",
        "internalName": "ams3",
        "location": {"city": "Amsterdam", "country": "NL", "region": "North Holland", "lat": "52.366667", "lon": "4.9"}
      }, {
        "name": "DigitalOcean - Frankfurt 1",
        "internalName": "fra1",
        "location": {"city": "Frankfurt", "country": "DE", "region": "Hesse", "lat": "50.116667", "lon": "8.683333"}
      }, {
        "name": "DigitalOcean - Toronto 1",
        "internalName": "tor1",
        "location": {"city": "Toronto", "country": "CA", "region": "ON", "lat": "43.741667", "lon": "-79.373333"}
      }, {
        "name": "DigitalOcean - San Francisco 2",
        "internalName": "sfo2",
        "location": {"city": "San Francisco", "country": "US", "region": "CA", "lat": "37.783333", "lon": "-122.416667"}
      }, {
        "name": "DigitalOcean - Bangalore 1",
        "internalName": "blr1",
        "location": {"city": "Bangalore", "country": "IN", "region": "Karnataka", "lat": "12.983333", "lon": "77.583333"}
      }],
      "sizes": [
        {"name": "small", "type": "small", "internalName": "s-1vcpu-1gb"},
        {"name": "medium", "type": "medium", "internalName": "s-1vcpu-2gb"},
        {"name": "large", "type": "large", "internalName": "s-2vcpu-4gb"}
      ],
      "os": "ubuntu-20-04-x64",
      "packer": {
        "vars": [{"name": "DIGITALOCEAN_API_KEY", "value": "[[credentials.apiKey]]"}],
        "builder": {
          "type": "digitalocean",
          "ssh_username": "root",
          "api_token": "[[user `DIGITALOCEAN_API_KEY`]]",
          "image": "<<os.name>>",
          "region": "<<buildRegion.internalName>>",
          "size": "<<sizes.small.internalName>>",
          "ipv6": true,
          "snapshot_name": "<<packerImageName>>",
          "snapshot_regions": ["<<<imageRegions>>>"]
        }
      }
    },
    "credentials": {
      "params": [
        {"name": "apiKey", "value": "{{DIGITALOCEAN_API_KEY}}"}
      ]
    },
    "template": true
  },

  {
    "name": "AmazonEC2Compute",
    "type": "compute",
    "driverClass": "bubble.cloud.compute.ec2.AmazonEC2Driver",
    "driverConfig": {
      "regions": [{
        "name": "Amazon - N. Virginia", "description": "US East 1 (N. Virginia)", "internalName": "us-east-1",
        "location": {"city": "Arlington", "region": "VA", "country": "US", "lat": "38.880278", "lon": "-77.108333"}
      }, {
        "name": "Amazon - Ohio", "description": "US East 2 (Ohio)", "internalName": "us-east-2",
        "location": {"region": "OH", "country": "US", "lat": "40.3416167", "lon": "-84.9180579"}
      }, {
        "name": "Amazon - N. California", "description": "US West 1 (N. California)", "internalName": "us-west-1",
        "location": {"city": "San Jose", "country": "US", "region": "CA", "lat": "37.333333", "lon": "-121.9"}
      }, {
        "name": "Amazon - Oregon", "description": "US West 2 (Oregon)", "internalName": "us-west-2",
        "location": {"city": "Hermiston", "region": "OR", "country": "US", "lat": "45.841111", "lon": "-119.291667"}
      }, {
        "name": "Amazon - Canada", "description": "Canada (Central)", "internalName": "ca-central-1",
        "location": {"region": "QC", "country": "CA", "lat": "46.813889", "lon": "-71.208056"}
      }, {
        "name": "Amazon - Stockholm", "description": "EU (Stockholm)", "internalName": "eu-north-1",
        "location": {"city": "Stockholm", "region": "Södermanland", "country": "SE", "lat": "59.329444", "lon": "18.068611"}
      }, {
        "name": "Amazon - Ireland", "description": "EU (Ireland)", "internalName": "eu-west-1",
        "location": {"city": "Dublin", "region": "Leinster", "country": "IE", "lat": "53.35", "lon": "-6.266667"}
      }, {
        "name": "Amazon - London", "description": "EU (London)", "internalName": "eu-west-2",
        "location": {"city": "London", "country": "GB", "region": "London", "lat": "51.507222", "lon": "-0.1275"}
      }, {
        "name": "Amazon - Milan", "description": "EU (Milan)", "internalName": "eu-west-3",
        "location": {"city": "Milan", "country": "IT", "region": "Lombardy", "lat": "45.466944", "lon": "9.19"}
      }, {
        "name": "Amazon - Frankfurt", "description": "EU (Frankfurt)", "internalName": "eu-central-1",
        "location": {"city": "Frankfurt", "country": "DE", "region": "Hesse", "lat": "50.116667", "lon": "8.683333"}
      }, {
        "name": "Amazon - Tokyo", "description": "Asia Pacific (Tokyo)", "internalName": "ap-northeast-1",
        "location": {"city": "Tokyo", "country": "JP", "region": "Kantō", "lat": "35.689722", "lon": "139.692222"}
      }, {
        "name": "Amazon - Seoul", "description": "Asia Pacific (Seoul)", "internalName": "ap-northeast-2",
        "location": {"city": "Seoul", "country": "KR", "region": "Sudogwon", "lat": "37.566667", "lon": "126.966667"}
      }, {
        "name": "Amazon - Singapore", "description": "Asia Pacific (Singapore)", "internalName": "ap-southeast-1",
        "location": {"city": "Singapore", "country": "SG", "region": "Singapore", "lat": "1.283333", "lon": "103.833333"}
      }, {
        "name": "Amazon - Sydney", "description": "Asia Pacific (Sydney)", "internalName": "ap-southeast-2",
        "location": {"city": "Sydney", "country": "AU", "region": "NSW", "lat": "-33.865", "lon": "151.209444"}
      }, {
        "name": "Amazon - Mumbai", "description": "Asia Pacific (Mumbai)", "internalName": "ap-south-1",
        "location": {"city": "Mumbai", "country": "IN", "region": "Konkan", "lat": "18.975", "lon": "72.825833"}
      }, {
        "name": "Amazon - São Paulo", "description": "South America (São Paulo)", "internalName": "sa-east-1",
        "location": {"city": "São Paulo", "country": "BR", "region": "São Paulo", "lat": "-23.55", "lon": "-46.633333"}
      }],
      "sizes": [
        {"name": "small", "type": "small", "internalName": "t2.micro", "vcpu": 1, "memoryMB": 1024, "diskGB": 10, "diskType": "ebs_magnetic"},
        {"name": "medium", "type": "medium", "internalName": "t2.small", "vcpu": 1, "memoryMB": 2048, "diskGB": 20, "diskType": "ebs_magnetic"},
        {"name": "large", "type": "large", "internalName": "t2.medium", "vcpu": 2, "memoryMB": 4096, "diskGB": 40, "diskType": "ebs_magnetic"}
      ],
      "os": "ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-????????",
      "config": [
        {"name": "securityGroup", "value": "{{AWS_EC2_SECURITY_GROUP}}"}
      ],
      "packer": {
        "vars": [
          {"name": "AWS_ACCESS_KEY_ID", "value": "[[credentials.AWS_ACCESS_KEY_ID]]"},
          {"name": "AWS_SECRET_KEY", "value": "[[credentials.AWS_SECRET_KEY]]"}
        ],
        "iterateRegions": true,
        "builder": {
          "type": "amazon-ebs",
          "name": "amazon-ebs-<<region.internalName>>",
          "access_key": "[[user `AWS_ACCESS_KEY_ID`]]",
          "secret_key": "[[user `AWS_SECRET_KEY`]]",
          "region": "<<region.internalName>>",
          "ami_name": "<<packerImageName>>",
          "ssh_username": "ubuntu",
          "source_ami": "<<imageForRegion.id>>",
          "instance_type": "<<sizes.small.internalName>>",
          "vpc_id": "<<vpcForRegion.vpcId>>",
          "availability_zone": "<<availabilityZoneForRegion>>",
          "subnet_id": "<<subnetForRegion.subnetId>>",
          "associate_public_ip_address": true
        }
      }
    },
    "credentials": {
      "params": [
        {"name": "AWS_ACCESS_KEY_ID", "value": "{{AWS_ACCESS_KEY_ID}}"},
        {"name": "AWS_SECRET_KEY", "value": "{{AWS_SECRET_KEY}}"}
      ]
    },
    "template": true
  }
]
