/**
 * common Constant service
 *
 * @module app/common/services/constants
 * @exports Constants
 * @name Constants

 */

window.angular && (function(angular) {
  'use strict';

  angular.module('app.common.services', []).service('Constants', function() {
    return {
      API_CREDENTIALS:
          {host_storage_key: 'API_HOST_KEY', default_protocol: 'https'},
      API_RESPONSE: {
        ERROR_STATUS: 'error',
        ERROR_MESSAGE: '401 Unauthorized',
        SUCCESS_STATUS: 'ok',
        SUCCESS_MESSAGE: '200 OK'
      },
      CERTIFICATE_TYPES: [
        {
          'Description': 'HTTPS Certificate',
          'location':
              '/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/',
          'name': 'HTTPS Certificate'
        },
        {
          'Description': 'LDAP Certificate',
          'location': '/redfish/v1/AccountService/LDAP/Certificates/',
          'name': 'LDAP Certificate'
        },
        {
          'Description': 'TrustStore Certificate',
          'location': '/redfish/v1/Managers/bmc/Truststore/Certificates/',
          'name': 'CA Certificate'
        }
      ],
      HOST_STATE_TEXT: {
        on: 'Running',
        on_code: 'xyz.openbmc_project.State.Host.HostState.Running',
        off: 'Off',
        off_code: 'xyz.openbmc_project.State.Host.HostState.Off',
        error: 'Quiesced',
        error_code: 'xyz.openbmc_project.State.Host.HostState.Quiesced',
        unreachable: 'Unreachable'
      },
      LED_STATE: {on: true, off: false},
      LED_STATE_TEXT: {on: 'on', off: 'off'},
      SEVERITY_TO_PRIORITY_MAP: {
        Emergency: 'High',
        Alert: 'High',
        Critical: 'High',
        Error: 'High',
        Warning: 'Medium',
        Notice: 'Low',
        Debug: 'Low',
        Informational: 'Low'
      },
      PAGINATION: {LOG_ITEMS_PER_PAGE: 25},
      HARDWARE: {
        component_key_filter: '/xyz/openbmc_project/inventory/system',
        parent_components: [
          /xyz\/openbmc_project\/inventory\/system\/chassis\/motherboard\/cpu\d+\//
        ],
        uppercase_titles: ['cpu', 'dimm']
      },
      SENSOR_UNIT_MAP: {
        'xyz.openbmc_project.Sensor.Value.Unit.RPMS': 'rpms',
        'xyz.openbmc_project.Sensor.Value.Unit.DegreesC': 'C',
        'xyz.openbmc_project.Sensor.Value.Unit.Volts': 'volts',
        'xyz.openbmc_project.Sensor.Value.Unit.Meters': 'meters',
        'xyz.openbmc_project.Sensor.Value.Unit.Watts': 'watts',
        'xyz.openbmc_project.Sensor.Value.Unit.Amperes': 'amperes',
        'xyz.openbmc_project.Sensor.Value.Unit.Joules': 'joules'
      },
      SERVER_HEALTH: {
        critical: 'Critical',
        warning: 'Warning',
        good: 'Good',
        unknown: 'Unknown'
      },
      SENSOR_SORT_ORDER: [
        'xyz.openbmc_project.Sensor.Value.Unit.DegreesC',
        'xyz.openbmc_project.Sensor.Value.Unit.RPMS',
        'xyz.openbmc_project.Sensor.Value.Unit.Watts',
        'xyz.openbmc_project.Sensor.Value.Unit.Volts',
        'xyz.openbmc_project.Sensor.Value.Unit.Amperes',
        'xyz.openbmc_project.Sensor.Value.Unit.Joules',
        'xyz.openbmc_project.Sensor.Value.Unit.Meters'
      ],
      SENSOR_SORT_ORDER_DEFAULT: 8,
      FIRMWARE: {
        ACTIVATE_FIRMWARE:
            'xyz.openbmc_project.Software.Activation.RequestedActivations.Active',
        FUNCTIONAL_OBJPATH: '/xyz/openbmc_project/software/functional'
      },
      POLL_INTERVALS: {
        ACTIVATION: 5000,
        DOWNLOAD_IMAGE: 5000,
        POWER_OP: 5000,
      },
      TIMEOUT: {
        ACTIVATION: 1000 * 60 * 10,        // 10 mins
        DOWNLOAD_IMAGE: 1000 * 60 * 2,     // 2 mins
        HOST_ON: 1000 * 60 * 5,            // 5 mins
        HOST_OFF: 1000 * 60 * 5,           // 5 mins
        HOST_OFF_IMMEDIATE: 1000 * 60 * 2  // 2 mins
      },
      CERTIFICATE: {
        KEY_BIT_LENGTH: [2048],
        KEY_PAIR_ALGORITHM: ['EC', 'RSA'],
        KEY_CURVE_ID: ['prime256v1', 'secp521r1', 'secp384r1']
      },
      COUNTRIES: [
        {Name: 'Afghanistan', code: 'AF'},
        {Name: 'Albania', code: 'AL'},
        {Name: 'Algeria', code: 'DZ'},
        {Name: 'American Samoa', code: 'AS'},
        {Name: 'Andorra', code: 'AD'},
        {Name: 'Angola', code: 'AO'},
        {Name: 'Anguilla', code: 'AI'},
        {Name: 'Antarctica', code: 'AQ'},
        {Name: 'Antigua and Barbuda', code: 'AG'},
        {Name: 'Argentina', code: 'AR'},
        {Name: 'Armenia', code: 'AM'},
        {Name: 'Aruba', code: 'AW'},
        {Name: 'Australia', code: 'AU'},
        {Name: 'Austria', code: 'AT'},
        {Name: 'Azerbaijan', code: 'AZ'},
        {Name: 'Bahamas, The', code: 'BS'},
        {Name: 'Bahrain', code: 'BH'},
        {Name: 'Bangladesh', code: 'BD'},
        {Name: 'Barbados', code: 'BB'},
        {Name: 'Belarus', code: 'BY'},
        {Name: 'Belgium', code: 'BE'},
        {Name: 'Belize', code: 'BZ'},
        {Name: 'Benin', code: 'BJ'},
        {Name: 'Bermuda', code: 'BM'},
        {Name: 'Bhutan', code: 'BT'},
        {Name: 'Bolivia', code: 'BO'},
        {Name: 'Bonaire, Sint Eustatius and Saba', code: 'BQ'},
        {Name: 'Bosnia and Herzegovina ', code: 'BA'},
        {Name: 'Bostwana', code: 'BW'},
        {Name: 'Bouvet Island', code: 'BV'},
        {Name: 'Brazil', code: 'BR'},
        {Name: 'British Indian Ocean Territory', code: 'IO'},
        {Name: 'Brunei Darussalam ', code: 'BN'},
        {Name: 'Bulgaria', code: 'BG'},
        {Name: 'Burkina Faso', code: 'BF'},
        {Name: 'Burundi', code: 'BI'},
        {Name: 'Cabo Verde', code: 'CV'},
        {Name: 'Cambodia', code: 'KH'},
        {Name: 'Cameroon', code: 'CM'},
        {Name: 'Canada', code: 'CA'},
        {Name: 'Cayman Islands', code: 'KY'},
        {Name: 'Central African Republic', code: 'CF'},
        {Name: 'Chad', code: 'TD'},
        {Name: 'Chile', code: 'CL'},
        {Name: 'China', code: 'CN'},
        {Name: 'Christmas Island ', code: 'CX'},
        {Name: 'Cocos(Keeling) Islands', code: 'CC'},
        {Name: 'Columbia', code: 'CO'},
        {Name: 'Comoros', code: 'KM'},
        {Name: 'Congo, The Democratic Republic of the', code: 'CD'},
        {Name: 'Congo', code: 'CG'},
        {Name: 'Cook Islands', code: 'CK'},
        {Name: 'Costa Rica', code: 'CR'},
        {Name: 'Croatia', code: 'HR'},
        {Name: 'Cuba', code: 'CU'},
        {Name: 'Curaçao', code: 'CW'},
        {Name: 'Cyprus', code: 'CY'},
        {Name: 'Czechia', code: 'CZ'},
        {Name: 'Côte d\'Ivoire', code: 'CI'},
        {Name: 'Denmark', code: 'DK'},
        {Name: 'Djibouti', code: 'DJ'},
        {Name: 'Dominica', code: 'DM'},
        {Name: 'Dominican Republic', code: 'DO'},
        {Name: 'Ecuador', code: 'EC'},
        {Name: 'Egypt', code: 'EG'},
        {Name: 'El Salvador', code: 'SV'},
        {Name: 'Equatorial Guinea ', code: 'GQ'},
        {Name: 'Eritrea', code: 'ER'},
        {Name: 'Estonia', code: 'EE'},
        {Name: 'Eswatini', code: 'SZ'},
        {Name: 'Ethiopia', code: 'ET'},
        {Name: 'Falkland Islands (Malvinas)', code: 'FK'},
        {Name: 'Faroe Islands', code: 'FO'},
        {Name: 'Fiji', code: 'FJ'},
        {Name: 'Finland', code: 'FI'},
        {Name: 'France', code: 'FR'},
        {Name: 'French Guiana', code: 'GF'},
        {Name: 'French Polynesia', code: 'PF'},
        {Name: 'French Southern Territories', code: 'TF'},
        {Name: 'Gabon', code: 'GA'},
        {Name: 'Gambia, The', code: 'GM'},
        {Name: 'Georgia', code: 'GE'},
        {Name: 'Germany', code: 'DE'},
        {Name: 'Ghana', code: 'GH'},
        {Name: 'Gibraltar', code: 'GI'},
        {Name: 'Greece', code: 'GR'},
        {Name: 'Greenland', code: 'GL'},
        {Name: 'Grenada', code: 'GD'},
        {Name: 'Guadeloupe', code: 'GP'},
        {Name: 'Guam', code: 'GU'},
        {Name: 'Guatemala', code: 'GT'},
        {Name: 'Guernsey', code: 'GG'},
        {Name: 'Guinea', code: 'GN'},
        {Name: 'Guinea-Bissau', code: 'GW'},
        {Name: 'Guyana', code: 'GY'},
        {Name: 'Haiti', code: 'HT'},
        {Name: 'Heard Island and McDonald Islands', code: 'HM'},
        {Name: 'Holy See', code: 'VA'},
        {Name: 'Honduras', code: 'HN'},
        {Name: 'Hong Kong', code: 'HK'},
        {Name: 'Hungary', code: 'HU'},
        {Name: 'Iceland', code: 'IS'},
        {Name: 'India', code: 'IN'},
        {Name: 'Indonesia', code: 'ID'},
        {Name: 'Iran, Islamic Republic of', code: 'IR'},
        {Name: 'Iraq', code: 'IQ'},
        {Name: 'Ireland', code: 'IE'},
        {Name: 'Isle of Man', code: 'IM'},
        {Name: 'Israel', code: 'IL'},
        {Name: 'Italy', code: 'IT'},
        {Name: 'Jamaica', code: 'JM'},
        {Name: 'Japan', code: 'JP'},
        {Name: 'Jersey', code: 'JE'},
        {Name: 'Jordan', code: 'JO'},
        {Name: 'Kazakhstan', code: 'KZ'},
        {Name: 'Kenya', code: 'KE'},
        {Name: 'Kiribati', code: 'KI'},
        {Name: 'Korea, Republic of', code: 'KR'},
        {Name: 'Korea, Democratic People\'s Republic of', code: 'KP'},
        {Name: 'Kuwait', code: 'KW'},
        {Name: 'Kyrgyzstan', code: 'KG'},
        {Name: 'Lao People\'s Democratic Republic', code: 'LA'},
        {Name: 'Latvia', code: 'LV'},
        {Name: 'Lebanon', code: 'LB'},
        {Name: 'Lesotho', code: 'LS'},
        {Name: 'Liberia', code: 'LR'},
        {Name: 'Libya', code: 'LY'},
        {Name: 'Liechtenstein', code: 'LI'},
        {Name: 'Lithuania', code: 'LT'},
        {Name: 'Luxembourg', code: 'LU'},
        {Name: 'Macao', code: 'MO'},
        {Name: 'Macedonia, The Former Yugoslav Republic of', code: 'MK'},
        {Name: 'Madagascar', code: 'MG'},
        {Name: 'Malawi', code: 'MW'},
        {Name: 'Malaysia', code: 'MY'},
        {Name: 'Maldives', code: 'MV'},
        {Name: 'Mali', code: 'ML'},
        {Name: 'Malta', code: 'MT'},
        {Name: 'Marshall Islands', code: 'MH'},
        {Name: 'Martinique', code: 'MQ'},
        {Name: 'Mauritania', code: 'MR'},
        {Name: 'Mauritius', code: 'MU'},
        {Name: 'Mayotte', code: 'YT'},
        {Name: 'Mexico', code: 'MX'},
        {Name: 'Micronesia, Federated States of', code: 'FM'},
        {Name: 'Moldova, Republic of', code: 'MD'},
        {Name: 'Monaco', code: 'MC'},
        {Name: 'Mongolia', code: 'MN'},
        {Name: 'Montenegro', code: 'ME'},
        {Name: 'Montserrat', code: 'MS'},
        {Name: 'Morocco', code: 'MA'},
        {Name: 'Mozambique', code: 'MZ'},
        {Name: 'Myanmar', code: 'MM'},
        {Name: 'Namibia', code: 'NA'},
        {Name: 'Nauru', code: 'NR'},
        {Name: 'Nepal', code: 'NP'},
        {Name: 'Netherlands', code: 'NL'},
        {Name: 'New Caledonia', code: 'NC'},
        {Name: 'New Zealand', code: 'NZ'},
        {Name: 'Nicaragua', code: 'NI'},
        {Name: 'Niger', code: 'NE'},
        {Name: 'Nigeria', code: 'NG'},
        {Name: 'Niue', code: 'NU'},
        {Name: 'Norfolk Island', code: 'NF'},
        {Name: 'Northern Mariana Islands', code: 'MP'},
        {Name: 'Norway', code: 'NO'},
        {Name: 'Oman', code: 'OM'},
        {Name: 'Pakistan', code: 'PK'},
        {Name: 'Palau', code: 'PW'},
        {Name: 'Palestine', code: 'PS'},
        {Name: 'Panama', code: 'PA'},
        {Name: 'Papua New Guinea', code: 'PG'},
        {Name: 'Paraguay', code: 'PY'},
        {Name: 'Peru', code: 'PE'},
        {Name: 'Philippines', code: 'PH'},
        {Name: 'Pitcairn', code: 'PN'},
        {Name: 'Poland', code: 'PL'},
        {Name: 'Portugal', code: 'PT'},
        {Name: 'Puerto Rico', code: 'PR'},
        {Name: 'Qatar', code: 'QA'},
        {Name: 'Romania', code: 'RO'},
        {Name: 'Russian Federation', code: 'RU'},
        {Name: 'Rwanda', code: 'RW'},
        {Name: 'Réunion', code: 'RE'},
        {Name: 'Saint Barthélemy', code: 'BL'},
        {Name: 'Saint Helena, Ascension and Tristan da Cunha', code: 'SH'},
        {Name: 'Saint Kitts and Nevis ', code: 'KN'},
        {Name: 'Saint Lucia', code: 'LC'},
        {Name: 'Saint Martin', code: 'MF'},
        {Name: 'Saint Pierre and Miquelon', code: 'PM'},
        {Name: 'Saint Vincent and the Grenadines', code: 'VC'},
        {Name: 'Samoa', code: 'WS'},
        {Name: 'San Marino ', code: 'SM'},
        {Name: 'Sao Tome and Principe', code: 'ST'},
        {Name: 'Saudi Arabia', code: 'SA'},
        {Name: 'Senegal', code: 'SN'},
        {Name: 'Serbia', code: 'RS'},
        {Name: 'Seychelles', code: 'SC'},
        {Name: 'Sierra Leone', code: 'SL'},
        {Name: 'Singapore', code: 'SG'},
        {Name: 'Sint Maarten', code: 'SX'},
        {Name: 'Slovakia', code: 'SK'},
        {Name: 'Slovenia', code: 'SI'},
        {Name: 'Solomon Islands', code: 'SB'},
        {Name: 'Somalia', code: 'SO'},
        {Name: 'South Africa ', code: 'ZA'},
        {Name: 'South Georgia and the South Sandwich Islands', code: 'GS'},
        {Name: 'South Sudan', code: 'SS'},
        {Name: 'Spain', code: 'ES'},
        {Name: 'Sri Lanka', code: 'LK'},
        {Name: 'Sudan', code: 'SD'},
        {Name: 'Suriname', code: 'SR'},
        {Name: 'Svalbard and Jan Mayen', code: 'SJ'},
        {Name: 'Sweden', code: 'SE'},
        {Name: 'Switzerland', code: 'CH'},
        {Name: 'Syrian Arab Republic', code: 'SY'},
        {Name: 'Taiwan', code: 'TW'},
        {Name: 'Tajikistan', code: 'TJ'},
        {Name: 'Tanzania, United Republic of', code: 'TZ'},
        {Name: 'Thailand', code: 'TH'},
        {Name: 'Timor-Leste', code: 'TL'},
        {Name: 'Togo', code: 'TG'},
        {Name: 'Tokelau', code: 'TK'},
        {Name: 'Tonga', code: 'TO'},
        {Name: 'Trinidad and Tobago', code: 'TT'},
        {Name: 'Tunisia', code: 'TN'},
        {Name: 'Turkey', code: 'TR'},
        {Name: 'Turkmenistan', code: 'TM'},
        {Name: 'Turks and Caicos Islands', code: 'TC'},
        {Name: 'Tuvalu', code: 'TV'},
        {Name: 'Uganda', code: 'UG'},
        {Name: 'Ukraine', code: 'UA'},
        {Name: 'United Arab Emirates', code: 'AE'},
        {Name: 'United Kingdom', code: 'GB'},
        {Name: 'United States Minor Outlying Islands', code: 'UM'},
        {Name: 'United States of America', code: 'US'},
        {Name: 'Uruguay', code: 'UY'},
        {Name: 'Uzbekistan', code: 'UZ'},
        {Name: 'Vanuatu', code: 'VU'},
        {Name: 'Venezuela', code: 'VE'},
        {Name: 'Viet Nam', code: 'VN'},
        {Name: 'Virgin Islands, British', code: 'VG'},
        {Name: 'Virgin Islands, U.S', code: 'VI'},
        {Name: 'Wallis and Futuna', code: 'WF'},
        {Name: 'Western Sahara', code: 'EH'},
        {Name: 'Yemen', code: 'YE'},
        {Name: 'Zambia', code: 'ZM'},
        {Name: 'Zimbabwe', code: 'ZW'},
        {Name: 'Åland Islands', code: 'AX'}
      ],
      MESSAGES: {
        POLL: {
          HOST_ON_TIMEOUT:
              'Time out. System did not reach Running state in allotted time.',
          HOST_OFF_TIMEOUT:
              'Time out. System did not reach Off state in allotted time.',
          HOST_QUIESCED: 'System is in Error state.',
          DOWNLOAD_IMAGE_TIMEOUT:
              'Time out. Did not download image in allotted time.',
        },
        POWER_OP: {
          POWER_ON_FAILED: 'Power on failed.',
          WARM_REBOOT_FAILED: 'Warm reboot failed.',
          COLD_REBOOT_FAILED: 'Cold reboot failed.',
          ORDERLY_SHUTDOWN_FAILED: 'Orderly shutdown failed.',
          IMMEDIATE_SHUTDOWN_FAILED: 'Immediate shutdown failed.',
        },
        SENSOR: {
          NO_SENSOR_DATA: 'There are no sensors found.',
          CRITICAL_NO_SENSOR_DATA: 'There are no sensors in Critical state.',
          WARNING_NO_SENSOR_DATA: 'There are no sensors in Warning state.',
          NORMAL_NO_SENSOR_DATA: 'There are no sensors in Normal state.'
        },
        ERROR_MESSAGE_DESC_TEMPLATE: '{{status}} - {{description}}',
      },
      POWER_CAP_TEXT: {unit: 'W', disabled: 'Not Enabled'},
      POWER_CONSUMPTION_TEXT: {
        'xyz.openbmc_project.Sensor.Value.Unit.Watts': 'W',
        notavailable: 'Not Available'
      },
    };
  });
})(window.angular);
