/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
export const pmc = [
  {
    name: ' Aaron Suddjian',
    github: 'https://github.com/suddjian',
    image: 'https://github.com/suddjian.png',
  },
  {
    name: 'Beto Dealmeida',
    github: 'https://github.com/betodealmeida',
    image: 'https://github.com/betodealmeida.png',
  },
  {
    name: 'Bogdan Kyryliuk',
    github: 'https://github.com/bkyryliuk',
    image: 'https://github.com/bkyryliuk.png',
  },
  {
    name: 'Chris Williams',
    github: 'https://github.com/williaster',
    image: 'https://github.com/williaster.png',
  },
  {
    name: 'Craig Rueda',
    github: 'https://github.com/craig-rueda',
    image: 'https://github.com/craig-rueda.png',
  },
  {
    name: 'Daniel Gaspar',
    github: 'https://github.com/dpgaspar',
    image: 'https://github.com/dpgaspar.png',
  },
  {
    name: 'Erik Ritter',
    github: 'https://github.com/etr2460',
    image: 'https://github.com/etr2460.png',
  },
  {
    name: 'Evan Rusackas',
    github: 'https://github.com/rusackas',
    image: 'https://github.com/rusackas.png',
  },

  {
    name: 'Grace Guo',
    github: 'https://github.com/graceguo-supercat',
    image: 'https://github.com/graceguo-supercat.png',
  },

  {
    name: 'Jeff Feng',
    github: 'https://github.com/jfeng15',
    image: 'https://github.com/jfeng15.png',
  },

  {
    name: 'Jesse Yang',
    github: 'https://github.com/ktmud',
    image: 'https://github.com/ktmud.png',
  },

  {
    name: 'John Bodley',
    github: 'https://github.com/john-bodley',
    image: 'https://github.com/john-bodley.png',
  },

  {
    name: 'Krist Wongsuphasawat',
    github: 'https://github.com/kristw',
    image: 'https://github.com/kristw.png',
  },
  {
    name: 'Maxime Beauchemin',
    github: 'https://github.com/mistercrunch',
    image: 'https://github.com/mistercrunch.png',
  },

  {
    name: 'Michelle Thomas',
    github: 'https://github.com/michellethomas',
    image: 'https://github.com/michellethomas.png',
  },

  {
    name: 'Nishant Bangarwa',
    github: 'https://github.com/nishantmonu51',
    image: 'https://github.com/nishantmonu51.png',
  },

  {
    name: 'Tai Dupree',
    github: 'https://github.com/nytai',
    image: 'https://github.com/nytai.png',
  },

  {
    name: 'Ville Brofeldt',
    github: 'https://github.com/villebro',
    image: 'https://github.com/villebro.png',
  },
  {
    name: 'Will Barrett',
    github: 'https://github.com/willbarrett',
    image: 'https://github.com/willbarrett.png',
  },
];

export const Databases = [
  {
    title: 'Amazon Redshfit',
    href: 'https://aws.amazon.com/redshift/',
    imgName: 'aws-redshift.png',
    width: 50,
  },
  {
    title: 'Apache Druid',
    href: 'http://druid.io/',
    imgName: 'druid.png',
  },
  {
    title: 'Apache Kylin',
    href: 'http://kylin.apache.org/',
    imgName: 'apache-kylin.png',
  },
  {
    title: 'BigQuery',
    href: 'https://cloud.google.com/bigquery/',
    imgName: 'googleBQ.png',
  },
  {
    title: 'ClickHouse',
    href: 'https://clickhouse.tech/',
    imgName: 'clickhouse.png',
  },
  {
    title: 'Dremio',
    href: 'https://dremio.com/',
    imgName: 'dremio.png',
  },
  {
    title: 'Exasol',
    href: 'https://www.exasol.com/en/',
    imgName: 'exasol.png',
  },
  {
    title: 'FireBirdSql',
    href: 'https://firebirdsql.org/',
    imgName: 'firebird.png',
  },
  {
    title: 'Green Plum',
    href: 'https://greenplum.org/',
    imgName: 'greenplum.png',
  },
  {
    title: 'IBM Db2',
    href: 'https://www.ibm.com/analytics/db2',
    imgName: 'ibmdb2.png',
  },
  {
    title: 'MySQL',
    href: 'https://www.mysql.com/',
    imgName: 'mysql.png',
  },
  {
    title: 'Microsoft SqlServer',
    href: 'https://www.microsoft.com/en-us/sql-server',
    imgName: 'msql.png',
  },
  {
    title: 'MonetDB',
    href: 'https://www.monetdb.org/',
    imgName: 'monet.png',
  },
  {
    title: 'Oracle',
    href: 'https://www.oracle.com/database/',
    imgName: 'oraclelogo.png',
  },
  {
    title: 'PostgresSQL',
    href: 'https://www.postgresql.org/',
    imgName: 'postsql.png',
  },
  {
    title: 'Presto',
    href: 'https://prestodb.io/',
    imgName: 'presto-og.png',
  },
  {
    title: 'Snowflake',
    href: 'https://www.snowflake.com/',
    imgName: 'snowflake.png',
  },
  {
    title: 'SQLite',
    href: 'https://www.sqlite.org/index.html',
    imgName: 'sqllite.png',
  },
  {
    title: 'Trino',
    href: 'https://trino.io/',
    imgName: 'trino2.jpg',
  },
  {
    title: 'Rockset',
    href: 'https://rockset.com/',
    imgName: 'rockset.png',
  },
  {
    title: 'Vertica',
    href: 'https://www.vertica.com/',
    imgName: 'vertica.png',
  },
  {
    title: 'Hologres',
    href: 'https://www.alibabacloud.com/product/hologres',
    imgName: 'hologres.png',
  },
  {
    title: 'IBM Netezza Performance Server',
    href: 'https://www.ibm.com/products/netezza',
    imgName: 'netezza.png',
  },
];
